Липаев В.В. Программная инженерия
.pdfЛекция 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