Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Липаев В.В. Программная инженерия

.pdf
Скачиваний:
722
Добавлен:
02.05.2014
Размер:
10.14 Mб
Скачать

Лекция 5. Технико-экономическое обоснование проектов программных средств

ботки. Поэтому планы на этих этапах имеют характер общих взаимосвя­ зей содержания работ, которые требуют распределения во времени, инди­ видуально для каждого проекта. В результате прогнозирование и планиро­ вание трудоемкости и длительности этапов приходится производить ите­ рационно на базе накопления опыта и анализа развития конкретных версий ПС, а также от их успеха на рынке.

Для прогнозирования и планирования любых процессов или харак­ теристик объектов (в частности ПС) используются исходные данные

двух типов:

функции и номенклатура характеристик самого прогнозируемого объекта или процесса, для которого необходимо спланировать жизненный цикл;

характеристики прототипов и пилотных проектов, в некоторой степени подобных планируемому объекту, о которых известны реализо­ ванные планы и необходимые экономические характеристики уже завер­ шенных аналогичных процессов или объектов.

Совместная, корректная обработка исходных данных этих двух типов позволяет при проектировании оценивать и получать новые, прогнозируе­ мые характеристики процессов, планов и экономических показателей со­ здания ПС. Исходные данные первого типа отражают характеристики кон­ кретного создаваемого объекта или процесса, доступные методы и инст­ рументальные средства автоматизации труда при их создании. Эти данные последовательно детализируются и уточняются в процессе проектирова­ ния и дальнейшего ЖЦ ПС, что, в частности, позволяет уточнять выбор компонентов аналогичных объектов и их характеристик для исходных данных второго типа.

Второй тип исходных данных для обоснования и планирования раз­ работки ПС составляют обобщенный опыт проектирования и экономичес­ кие характеристики прототипов нового программного продукта. Для до­ стоверного планирования необходимо накопление, обобщение и изучение конкретных данных о реализованных планах, затратах и использованных ресурсах завершенных разработок ПС в различных аспектах. Такие ТЭП и факторы, их определяющие, изучены в процессе обработки значительного статистического материала реальных отечественных и зарубежных проек­ тов программных продуктов и использованы ниже в методиках прогнози­ рования (см. п. 5.2—5.4).

130

5.1. Цели и процессы технико-экономического обоснования проектов...

При технико-экономическом обосновании проекта ПС на любом уров­ не целесообразно применять методы и методики, адекватные целям и эта­ пам его реализации. Следует согласовывать цели оценивания ТЭП с по­ требностями в информации, способствующей принятию решений для планирования затрат труда и других ресурсов. В общем случае необходи­ мо достигать сбалансированного состава целей оценивания разных ха­ рактеристик, которые бы давали примерно одинаковую абсолютную вели­ чину уровня неопределенности оценок для всех компонентов ПС. Кроме того, каждая оценка ТЭП должна сопровождаться указанием степени ее неопределенности. По мере разработки проекта их необходимо пересмат­ ривать и изменять, когда это становится выгодным.

Привлечение заказчика помогает менее болезненно решать пробле­ мы управления масштабом проекта и реализуемыми функциями с учетом ограничений ресурсов. В зависимости от этапа разработки сложного ком­ плекса программ и достоверности исходных данных о характеристиках и особенностях проекта ПС целесообразно выбирать и применять разные методики и сценарии технико-экономического обоснования проекта и про­ гнозирования ТЭП. С самого начала работы над проектом ПС важно вести постоянный учет данных о его действительной трудоемкости, стоимости и развитии затрат и сравнивать эти данные с реальными оценками харак­ теристик проекта по следующим причинам:

несовершенство исходных данных при оценивании ТЭП (оценки размера, рейтинги влияния факторов) определяет важность для руководи­ теля проекта пересматривать их оценки, учитывая новую информацию, чтобы обеспечить более реальную основу для дальнейшего управления проектом;

вследствие несовершенства методов оценивания ПС следует срав­ нивать оценки с действительными значениями и использовать эти резуль­ таты для улучшения методов оценивания ТЭП;

проекты ПС имеют тенденцию к изменению характеристик и эко­ номических факторов и руководителю проекта необходимо идентифици­ ровать эти изменения и выполнять реалистичное обновление оценок затрат.

При разработке ПС необходимо учитывать, что экономические, вре­ менные, вычислительные и другие ресурсы на разработку и весь ЖЦ про­ грамм всегда ограниченны и используемые затраты для улучшения каж-

131

Лекция 5. Технико-экономическое обоснование проектов программных средств

дой характеристики должны учитывать эти ограничения. Для рациональ­ ного распределения этих ресурсов необходимо знать, как отра:исается

изменение затрат на улучшении ка:н€дой характеристики качества

ПС. Эта взаимосвязь затрат ресурсов и значений каждой характеристики зависит от назначения, а также от ряда свойств и других особенностей комплекса программ, что усложняет учет влияния таких связей. Тем не менее выявлены основные тенденции такого взаимодействия, которые мо­ гут служить ориентирами при выборе и установлении требований к опре­ деленным характеристикам качества в конкретных проектах ПС.

Основными ресурсами у разработчиков при создании сложных ком­ плексов программ являются: допустимые трудозатраты (стоимость) на разработку ПС с требуемым качеством; время — длительность полного цикла создания программного продукта; необходимое и доступное число специалистов соответствующей квалификации. Потребность в этих ре­ сурсах в наибольшей степени зависит от размера — масштаба и сложнос­ ти разрабатываемого ПС. Уточнения размеров ПС и компонентов могут быть решены последовательно к концу детального проектирования, одна­ ко при этом сохраняется неопределенность оценки размера комплекса про­ грамм и его трудоемкости порядка 5—10%, связанная с тем, насколько хорошо программисты понимают спецификации, в соответствии с кото­ рыми они должны кодировать программу, при этом целесообразно учиты­ вать:

цели оценивания ТЭП должны быть согласованы с потребностями

винформации, способствующей принятию решений на соответствующем этапе проекта ПС;

достоверность оценок ТЭП должна быть сбалансирована для раз­ личных компонентов системы, и величина уровня неопределенности для каждого компонента должна быть примерно одинаковой, если в процессе принятия решения все компоненты имеют одинаковый вес;

следует возвращаться к предшествующим целям оценивания ТЭП и изменять их, когда это необходимо для ответственных бюджетных ре­ шений, принимаемых на ранних этапах и влияющих на следующие этапы.

Достаточно трудно оценить объем трудозатрат, необходимых для вы­ полнения задачи, без достоверной информации относительно QQ размера. Таким образом, измерение размера (сложности) предшествует оценке ТЭП,

132

5.1.Цели и процессы технико-экономического обоснования проектов...

аэта оценка, в свою очередь, предшествует составлению графика работ. Недостаточно достоверные оценки влекут проблемы взаимодействия раз­ работчика с заказчиком и увеличивают степень риска проекта.

Исходные данные реальных завершенных разработок для оценива­ ния ТЭП собираются, накапливаются и обрабатываются с начала 70-х годов в разных отечественных организациях и за рубежом. Они позволили получать и прогнозировать основные обобщенные ТЭП процессов разра­ ботки ПС. При этом обычно рассматривался полный технологический про­ цесс разработки ПС от начала подготовки технического задания до завер­ шения испытаний базовой версии программного продукта. Учитывались все категории специалистов, участвующих в создании программ и обеспе­ чивающих разработку, а также все виды работ, связанные с созданием программного продукта на выделенном интервале времени. Теоретичес­ кие работы и системный анализ до подготовки требований заказчика в значениях ТЭП не учитывались. В общем случае для оценки техникоэкономических характеристик новых проектов необходимы исходные дан­ ные:

обобщенные характеристики использованных ресурсов и техникоэкономические показатели завершенных разработок — прототипов ПС, а также оценки влияния на их характеристики различных факторов объекта и среды разработки;

реализованные и обобщенные перечни выполненных работ и ре­ альные графики проведенных ранее разработок различных классов ПС;

цели и содержание частных работ в процессе создания сложных комплексов программ и требования к их выполнению для обеспечения необходимого качества ПС в целом;

структура и содержание документов, являвшихся результатом вы­ полнения частных работ.

В качестве базового варианта целесообразно принять статистичес­ кие данные ТЭП, перечень работ и документов жизненного цикла созда­ ния наиболее сло:н€ного встроенного комплекса программ реального еремени. На основе этих исходных данных могут быть оценены ТЭП для полного цикла разработки ПС конкретного вида в более простых случаях путем исключения из базового варианта работ и документов, в которых отсутствует необходимость. По оставшимся работам могут быть оценены

133

Лекция 5. Технико-экономическое обоснование проектов программных средств

ТЭП для анализируемых вариантов, и выбран из них предпочтительный. Для технико-экономического анализа процесса создания программ важ­ нейшей составляющей являются совокупные трудовые затраты тру­ доемкость на непосредственную разработку ПС.

Трудоемкость разработки программных средств наиболее сильно зависит от размера масштаба комплекса программ, выраженного:

числом операторов, строк на языке программирования или функцио­ нальных точек (см. стандарт ISO 14143:1-5:1998-2004. — Измерение функ­ ционального размера). Реальное изменение создаваемых в настоящее вре­ мя сложных ПС от 10"^ до 10^ строк (LOC) определяет диапазон трудоемко­ сти разработки таких программ от человеко-года до десятков тысяч человеко-лет. Подтверждена по большому числу проектов высокая стати­ стическая корреляция между размером комплексов программ и трудоем­ костью их разработки.

Эффективность затрат при повторном использовании компонентов (ПИК) и сборке ПС в зависимости от их доли зачастую оценивалась путем анализа эквивалентной производительности труда разработчиков и дли­ тельности создания ПС. В ряде случаев особое значение имеет не столько использование готовых программных компонентов, сколько перенос баз данных. Информация о процессах, происходящих во внешней среде, мо­ жет иметь большой объем и трудоемкость первичного накопления и акту­ ализации, что определяет необходимость ее тщательного хранения. Прак­ тически всегда необходимо время и трудоемкость на:

первичный системный анализ целесообразности применения ПИК;

поиск, адаптацию и процессы использования готовых компонентов;

оценку затрат с учетом стоимости приобретения и адаптации пере­ носимых программ и баз данных;

интегрирование в новой операционной или внешней среде;

тестирование и испытания компонентов в комплексе с унаследо­ ванными программами.

Для планирования разработки сложных ПС важно знать и использо­ вать экспериментальные статистические распределения основных ТЭП — трудоемкости, длительности и числа специалистов по этапам работ и по

реальному времени реализации компонентов проектов. Относительные значения распределения этих величин на интервале реализации крупных

134

5.1. Цели и процессы технико-экономического обоснования проектов...

проектов несколько различаются в зависимости от размера и типа комп­ лекса программ, однако наибольший интерес представляют сложные встро­ енные ПС реального времени размером порядка 500 тысяч строк.

В совокупных затратах на создание полностью новых ПС доминиру­ ет трудоемкость непосредственной разработки программных компонен­ тов. Распределение необходимой трудоемкости на этапы разработки программ сложного ПС реального времени представлено в таблице 5.1. Этап технологической подготовки разработки включен в техническое про­ ектирование, а документирование объединено с комплексной отладкой. В распределении учтены подмножества работ, соответствующие разным ка­ тегориям специалистов. Все специалисты были разделены на три катего­ рии: руководители разработки и системные аналитики; непосредственные разработчики программных компонентов и специалисты по комплексированию; вспомогательный персонал, обеспечивающий разработку и доку­ ментирование программ. Первая и третья категории специалистов непос­ редственно не взаимодействуют с текстом программ при их отработке, однако их труд является неотъемлемой частью всего процесса разработки и в крупных проектах составляет около половины затрат на каждом этапе.

Таблица 5.1

Распределение затрат по этапам разработки программных средств реального времени

Этапы разработки

Трудоемкость, %

Длительность, Уо

Численность

специалистов, Уо

Предварительное проекти­

 

 

от средней

 

 

 

рование

8

20

40

Детальное проектирование

14

20

70

Программирование

22

16

140

Автономная отладка ком­

 

 

 

понентов

24

16

150

Интеграция и комплексная

 

 

 

отладка

24

20

120

Испытания и документи­

 

 

 

рование

8

8

100

Основное содержание, размер и требуемое качество создаваемых ПС практически всегда определяют затраты, связанные с их непосредствен-

135

Лекция 5. Технико-экономическое обоснование проектов программных средств

НОЙ разработкой. Влияние этой части затрат определяется наиболее слож­ ным творческим процессом создания программ, который зависит от мно­ гих факторов. Некоторые из них могут изменять затраты даже в несколько раз, но в большинстве своем изменяют их на десятки процентов. Накоп­ ленный опыт создания ПС и обобщение проведенных исследований по­ зволили выделить четыре основные группы факторов, влияющих на оценки затрат при непосредственной разработке программ:

факторы, отражающие особенности создаваемого комплекса про­ грамм, как объекта разработки, требования к его функциональным харак­ теристикам и к качеству;

факторы, определяющие организацию процесса разработки комп­ лексов программ и его обеспечение квалифицированными специалистами;

факторы, характеризующие технологическую среду и оснащен­ ность инструментальными средствами автоматизации процесса разработ­ ки программ;

факторы, отражающие оснащенность процесса создания ПС аппа­ ратурными вычислительными средствами, на которых реализуются ком­ плексы программ и базируются инструментальные системы автоматиза­ ции разработки.

Впредставленных четырех группах распределены факторы, которые наиболее важны при анализе основных затрат на проекты ПС. В эти груп­ пы включены факторы, которые могут изменять оценку производитель­ ности труда при создании ПС не менее чем на 10% в ту или иную сторону.

Вто же время имеющийся опыт показывает, что отсутствуют отдель­ ные факторы или методы, способные изменять на порядок или более основные ТЭП процесса разработки программ. Большинство факторов из­ меняет экономические характеристики разработки программ на десятки процентов и не более чем в 1,5 раза. Для оценивания ТЭП ниже в п. 5.2—

5.4последовательно рассмотрены и рекомендуются три методики:

Методика 1 — экспертного технико-экономического обоснова­ ния проектов программных средств при подготовке концепции и техни­ ческого задания на новый комплекс программ на основе экспертных дан­ ных разработки одной строки текста программ-прототипов;

Методика 2 — оценка технико-экономических показателей про­ ектов программных продуктов с учетом совокупности основных факторов

136

5.1. Цели и процессы технико-экономического обоснования проектов...

предварительной модели СОСОМО II (см. Boehm B.W. et al. Software cost estimation with СОСОМО II. Prentice Hall PTR. New Jersey. 2000);

Методика 3 — уточненная оценка технико-экономических пока­ зателей проектов программных продуктов с учетом полной совокупности факторов детальной модели СОСОМО 11.2000 (там же).

В качестве основных критериев выбора методик прогнозирования ТЭП разработки ПС целесообразно учитывать возможность их использо­ вания как на начальных, так и на более поздних этапах разработки. Для практического применения модели СОСОМО II опубликован пакет при­ кладных программ и руководство по его применению. Оно иллюстрирова­ но формами экранов и несколькими обширными практическими примера­ ми применения для технико-экономического анализа конкретных проек­ тов сложных комплексов программ.

Валснейшим фактором при технико-экономическом обосновании,

определяющим создание программных средств, являются люди — специ­ алисты, с их уровнем профессиональной квалификации, а также с много­ образием знаний, опыта, стимулов и потребностей. Быстрый рост сложно­ сти и повышение ответственности за качество комплексов программ при­ вели к появлению новых требований к специалистам, обеспечивающим все этапы жизненного цикла ПС. При проектировании ПС различных клас­ сов разделение труда специалистов по квалификации при разработке про­ грамм и данных, организация коллективов и экономика таких разработок стали важнейшей частью выбора, обучения и подготовки специалистов для обеспечения всего ЖЦ ПС (см. лекцию 9).

В детальной модели СОСОМО значительное внимание уделено вли­ янию организации и взаимодействия коллектива разработчиков на тру­ доемкость создания сложных программных средств. В составе организа­ ционных характеристик коллектива рекомендуется учитывать согласован­ ность целей специалистов, участвующих в проекте, их психологическую совместимость и способность к дружной коллективной работе, наличие опыта работы в данном коллективе и другие объективные и субъективные свойства участников проекта. При этом большое значение могут иметь личная мотивация и психологические особенности поведения разных спе­ циалистов при комплексной работе над сложным проектом. Эти характе­ ристики могут быть обобщены в качественный показатель влияния слож-

137

Лекция 5. Технико-экономическое обоснование проектов программных средств

ности взаимодействия специалистов в коллективе, которому сопоставле­ ны коэффициенты изменения трудоемкости разработки ПС. Наилучшим считается продолжительное корректное взаимодействие организованных специалистов с большим опытом работы в данном коллективе при полной согласованности их целей, планов и методов работы. При разработке про­ грамм большими коллективами значительно повышается роль квалифинации руководителей разработки, что непосредственно отражается на сред­ ней производительности труда всего коллектива. Однако формализовать и учесть влияние руководителя разработки и ведущих специалистов на зат­ раты и ТЭП комплекса программ пока трудно.

Уровень квалификации заказчика и определенность технического задания на разработку ПС может весьма сильно влиять на суммарные затраты и длительность создания программ. Изменения технического за­ дания и объем переделок непосредственно отражаются на средней произ­ водительности труда специалистов, рассчитанной по конечному размеру созданного комплекса программ. Особенно сильно на достоверность тех­ нического задания и возрастание затрат влияет попытка заказчика форси­ ровать сроки разработки. При этом первоначальное техническое задание оказывается недостаточно квалифицированным и подвергается в дальней­ шем многократным изменениям. Этому же может способствовать разли­ чие между заказчиком и разработчиком в квалификации, уровне понима­ ния целей разработки и необходимых затрат на реализацию дополнитель­ ных требований.

При проектировании и создании высококачественных комплексов про­ грамм, прежде всего, необходимы организация и тесное взаимодействие представителей заказчика и разработчиков проекта. Взгляды и требо­ вания заказчика в основном отражаются в функциональных и потреби­ тельских характеристиках ПС. Устремления разработчиков направлены на возможность и способы их реализации с требуемым качеством. Эти разли­ чия исходных точек зрения на проект приводят к тому, что некоторые неформализованные представления тех и других имеют зоны неоднознач­ ности и взаимного непонимания, что может приводить к конфликтам.

Затраты и труд специалистов при реализации крупномасштабного проекта ПС можно распределить по двум категориям специалистов: раз­ рабатывающим компоненты и ПС в целом и обеспечивающим технологию

138

5.1.Цели и процессы технико-экономического обоснования проектов...

Икачество программного продукта (см. лекцию 9). Организационное раз­ деление специалистов, осуществляющих разработку ПС (первая катего­ рия), и специалистов, контролирующих и управляющих его качеством в процессе разработки и всего ЖЦ (вторая категория), должно обеспечивать эффективное достижение заданных характеристик, а также независимый, достоверный контроль затрат и качества результатов разработки.

Затраты на технологию и инструментальные программные сред­ ства автоматизации разработки ПС обычно являются весьма весомы­ ми при использовании высокоэффективных автоматизированных техноло­ гий. При технико-экономическом обосновании проекта следует учи­ тывать, что размер и сложность создаваемого ПС значительно влияют на выбор инструментальных средств и уровня автоматизации технологии, а также на долю этих затрат в общих затратах на разработку. Встречаются ситуации, при которых затраты на технологию достигают 30—50% общих затрат на разработку. Такие затраты могут быть оправданы повышением производительности труда, сокращением сроков разработки и последую­ щим снижением затрат на множество базовых версий ПС. Однако чаще всего эта группа затрат при создании первой версии сложных ПС находит­ ся в пределах 30% от суммарных затрат. В первом приближении степень автоматизации разработки программ отражает размер программных средств, используемых в технологических системах. Этот показатель со­ ответствует сложности систем автоматизации разработки программ и про­ порционален затратам на их приобретение (или создание) и эксплуатацию.

Стремление уменьшить технологические затраты в период разработ­ ки без учета последующего использования ПС, его компонентов и всего жизненного цикла может оказаться мало полезным, а в некоторых случаях привести к значительному увеличению совокупных затрат в ЖЦ. При применении сложных ПС эти затраты исчисляются сотнями человеко-лет, что определяет особую актуальность их снижения. Поэтому необходим системный анализ распределения и использования технологических ре­ сурсов на разработку программ с учетом всего их лсизненного цикла,

включая сопровождение и возможный перенос на другие платформы.

Уровень автоматизации и качество технологии и инструменталь­ ных средству используемых для поддержки всего жизненного цикла ПС, обычно сильно коррелирован с достигаемым качеством комплексов про-

139