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

книги / Оценка затрат на разработку программных средств

..pdf
Скачиваний:
10
Добавлен:
12.11.2023
Размер:
11.13 Mб
Скачать

него уровня ПЛ-1 и ассемблер ЕС ЭВМ. Анализировались группы разнообразных, преимущественно логических программ, являю­ щихся компонентами инструментальной системы автоматизации разработки программ РУЗА. По листингу программ на языке ПЛ-1 и иллюстративному ассемблеру ЕС, полученному на выходе транслятора ПЛ-1-F с учетом раскрытия макрокоманд и проце­ дур, подсчитывалось число строк ПЛ-1 и операторов ассемблера. В результате получен коэффициент Кб21 = 7,1 для сравниваемых

языков.

Это значение коэффициента учитывает, кроме непосредственно­ го соотношения между операторами ЯВУ и ассемблера, расшире­ ние текста на ассемблере вследствие недостаточных оптимизаци­ онных характеристик транслятора ПЛ-1-F, которое не отражает особенности языков и которое целесообразно исключить при опре­ делении Кб21. В технологии [30, 31] для уменьшения расширения

программ при трансляции с языка ПЛ-1 инструкцией запрещено использовать ряд конструкций языка, приводящих к расширениям текста программ за счет трансляции больше 2. При этом ограни­ чении среднее расширение текста программы только за 'Счет не­ достаточной оптимизации в трансляторе ПЛ-1-F оценивается рав­ ным 1,4. Если исключить расширение текста на ассемблере ЕС за счет неоптимальности транслятора с языка ПЛ-1, то можно полу­ чить значение коэффициента KG2I=5,1, не зависящее от качества

транслятора и определяющееся только особенностями сравнивае­ мых языков ПЛ-1 и ассемблера ЕС.

Оценки коэффициента /СП21 проведены для нескольких макро­

языков при их сопоставлении с ассемблерами соответствующих ЭВМ. Естественно, их значения зависят от архитектуры ЭВМ. Для двух- и четырехбайтных ЭВМ коэффициент сжатия текста на мак­

роязыках

изменяется в

относительно

узких

пределах

Kn2i ~

~ 2 ,0 —2,7,

а для

однобайтных ЭВМ на

базе

микропроцессора

КР580ИК80 К п21~

4,7. При этом трансляторы с макроязыков прак­

тически не дают дополнительного расширения

текста программ

на ассемблере и его можно не учитывать.

 

 

 

на

Для оценки числа операторов произвольных ассемблеров

один

оператор базового

ассемблера — коэффициент Kmci

одни

и

те же

алгоритмы

были запрограммированы на

нескольких сопо­

ставляемых ассемблерах. Для двух- и четырехбайтных ЭВМ объ­ емы программ на ассемблерах различаются не более чем на 20%. Так, например, для PDP-11 и ЕС ЭВМ Кпнн~0,8, а для ассемб­ лера АСМ-86 KniGi~0,95. Для однобайтной ЭВМ на базе микро­ процессора КР580ИК80 значение Ктб1~1Д Таким образом, при технико-экономическом анализе разработок программ в первом приближении (с точностью до 20%) объемы программ на ассемб­ лерах можно не пересчитывать к объему на базовом ассемблере ЕС ЭВМ, за исключением однобайтных ЭВМ. Для более точного

41

анализа путем экспериментального программирования следует

оценить коэффициент Кшбь Объем программ в реализующей ЭВМ, измеряемый числом ис­

полняемых команд, практически совпадает с числом операторов на ассемблере. Для ЕС ЭВМ коэффициент Кбю=1»05, для осталь­ ных анализировавшихся ЭВМ Кто~ 1,0 с точностью до 5%. Поэто­ му пересчет числа строк на ЯВУ в число команд реализующей ЭВМ может проводиться с использованием коэффициентов Kn2o=Kn2iXKnio, учитывающих расширение при трансляции. Так,

например, при разработке программ на языке ПЛ-1 с ограничени­ ями ПРОМЕТЕИ-технологии и использовании транслятора ПЛ-1-F коэффициент Кб2о=Кг»21= 7,1-1,0 5 = 7,3.

Число байтов на одну команду ЭВМ зависит от ее архитектуры и находится в пределах от 2 до 4 байт. Наименьшее число — 2 байта на команду соответствует однобайтной ЭВМ. В остальных случаях на команду приходится 3—4 байта. В результате на одну строку языка ПЛ-1 приходится около 20 байт в командной памя­

ти ЕС ЭВМ,

а на

один оператор

ассемблера

ЕС — около

3,2 байта.

оценки

показали, что

для многих

современных

Проведенные

ЭВМ объем одних и тех же программ

на ассемблерах различает­

ся незначительно и практически совпадает с объемом программ в

командах объектного кода

соответствующих ЭВМ:

Km6i~KG« ~

~ Кшо~ 1,0. Сжатие текста

на ЯВУ по сравнению

с текстом на

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

но ожидать для других подобных ЯВУ. При технико-экономиче­ ском анализе разработок ПС на ассемблерах значения объема программ и ТЭП практически не требуют пересчета. Для обеспе­ чения сопоставимости ТЭП разработок программ на ЯВУ необхо­ димо строки исходного текста приводить к числу операторов на ассемблере.

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

42

функционирующего КП, так и на все обеспечивающие и вспомога­ тельные работы.

Совокупная трудоемкость при создании программ — Ср имеет ряд составляющих, при определении которых в практике исполь­ зуются различные единицы. Трудоемкость характеризуется време­ нем труда определенного числа специалистов, необходимого для создания некоторого ПС или выполнения определенного этапа работ. Такой подход привел к активному использованию единиц трудоемкости: человеко-день, человеко-месяц, человеко-год. При этом чаще всего используются человеко-день и человеко-год, ко­ торый предполагается состоящим в среднемиз 250 рабочих чело­ веко-дней (с учетом выходных и праздничных дней). Подобные единицы трудоемкости позволяют сопоставлять затраты в разных организациях и даже в разных странах на аналогичные програм­ мы и не зависят от особенностей изменения валюты. Несмотря на яркую критику «мифического человеко-месяца» [7], пока не пред­ ложено разумной альтернативы для экономического анализа, и эти единицы трудоемкости достаточно прочно вошли в практику планирования и оценки процесса разработки ПС, вследствие чего являются базовыми в данной книге.

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

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

43

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

работки программ без учета последующего использования КП (см. § 2.2) и комплексно с учетом влияния затрат на эксплуатацию и

сопровождение программ (см. § 2.3), что оговаривается в каждом случае. Основной единицей измерения трудоемкости и затрат принят человеко-год, который в отдельных случаях приводится к человеко-дням.

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

грамм. Поэтому

даже

t

 

 

при увеличении затрат

р

 

 

в несколько раз

дли­

 

 

 

тельность

разработки

 

 

 

имеет тенденцию умень­

 

 

 

шаться

на

проценты

 

 

 

(см. §3 .5).

 

 

 

 

 

В то же время мно­

 

 

 

жество факторов

и не­

 

 

 

определенность дости­

 

 

 

гаемого

качества

про­

к

к

 

грамм приводят к тому,

 

 

 

 

что

влияние

затрат на

 

 

 

длительность разработ­

Рис. 1.3. Длительность

разработки программных

ки имеет размытую ха­

рактеристику. Наличие

средств

/р различной

сложности Пк в зависи-

мости от затрат Ср; минимальная длительность

этой

неоднозначности

при соответствующих затратах (------------ )

45

отражает тот факт, что даже при значительном увеличении затрат иногда практически не сокращается длительность разработки [6, 7, 52]. При изменении размеров Пк сложных КП в широком диапа­

зоне длительность разработки изменяется мало по сравнению с

затратами:

в первом приближении

СР~ Л |(, в то же время для

сложныхПС

длительность разработки

/7,< или /р« / Я к (см.

§ 3.5). Для каждого размера КП при заданном качестве существу­ ет «область невозможного сокращения длительности разработки» [6], которую не удается преодолеть при любом увеличении затрат (пунктирная граница на рис. 1.3). В общем случае при совместном анализе длительности разработки и затрат должна применяться векторная оптимизация.

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

*/ Т е х н и к о - э к о н о м и ч е с к и е п о к а з а т е л и на е д и н и ­ цу п р о д у к ц и и . Для программ в качестве унифицированной единицы измерения выше предложено использовать оператор (команду) на ассемблере. Усредненные затраты труда всех кате­

горий специалистов, участвующих в создании

 

КП определенного

объема,

позволяют оценить с р е д н ю ю

п р о и з в о д и т е л ь ­

н о с т ь

т р у д а при разработке программ.

В

качестве единицы

измерения этого показателя ниже используются

ч и с л о к о м а н д

в д е н ь

на ч е л о в е к а или иногда число

 

строк текста про­

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

(оператора) в КП соответствуют обратной величине производи­ тельности труда при разработке, измеренной в командах или опе­ раторах на один человеко-день.

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

46

том всех видов затрат иногда применяется стоимость одной коман-1 ды в завершенном разработкой и испытанном КП, представленная

в денежном выражении (руб. или дол. на команду). Технико-экономический анализ разработки ПС в денежном вы­

ражении имеет ряд существенных трудностей, которые ограничили его применение по следующим причинам:

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

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

лительной техники и затраты на ее эксплуатацию; из общих затрат на аппаратуру и эксплуатацию технологиче­

ских ЭВМ и отладочных стендов сложно выделить долю, которую необходимо включить в стоимость разработки конкретного КП;

для зарубежных исследований дополнительно влияют инфля­ ция и колебания курсов валюты.

Тем не менее для заключения контрактов на разработку ПС

идля оценки интегральных затрат на разработанные КП прихо­ дится применять величины затрат в денежном выражении [67,93]. Для этого вырабатываются соглашения между заказчиком и раз­ работчиком по преодолению перечисленных выше трудностей. Ниже приведены некоторые характеристики разработки программ

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

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

47

Рис. 1.4. Затраты на выявление каждой ошибки I сложном КП в зависимости от
этапов разработки
48

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

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

Х а р а к т е р и с т и к и

о ш и б о к

при р а з р а б о т к е

п р о ­

г р а м м .

Затраты при создании программ в значительной степени

связаны

с затратами на

выявление

и устранение ошибок

в КП.

Поэтому проводятся оценки относительных и абсолютных трудо­ затрат на устранение каждой ошибки [5, 62]. Общие тенденции состоят в быстром росте затрат на выявление ошибки по последо­ вательным этапам разработки программ [93, 99] (рис. 1.4). По­ этому экономически целесообразно в максимальной степени выяв­ лять ошибки ПС на начальных этапах проектирования. Это, есте­ ственно, приводит к увеличению затрат и длительности этих эта­ пов, однако способствует минимизации суммарных затрат и длительности разработки в целом.

Характеристики ошибок непосредственно связаны с достигае­ мыми корректностью и надежностью функционирования программ. Изучение характеристик ошибок при разработке реальных про­ грамм позволило создать* ряд математических моделей, обеспечи­ вающих возможность прогнозирования длительности разработки и затрат, необходимых для достижения определенной надежности программ [35, 89]. Анализ выявленных и устраненных ошибок в

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

8 ботки 3Уется предположение о фик­

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

Г л а в а 2

СОСТАВЛЯЮЩИЕ ЗАТРАТ И ФАКТОРЫ, ВЛИЯЮЩИЕ НА ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ РАЗРАБОТКИ ПРОГРАММ

2.1.СОСТАВЛЯЮЩИЕ ЗАТРАТ

НА РАЗРАБОТКУ ПРОГРАММНЫХ СРЕДСТВ

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

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

максимум экономической эффективности функционирования Г1С на реализующей ЭВМ за весь жизненный цикл при ограниченных затратах на разработку программ;

минимум затрат на разработку программ при заданной эконо­ мической эффективности применения и качества Г1С;

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

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

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

49

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

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

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

Необходимость учета в процессе разработки КП затрат на всем жизненном цикле можно наглядно показать на следующих при­ мерах. Так, при решении комбинаторных задач (например, мате­ матического программирования) очень быстрый рост затрат ма­ шинного времени на решение задач в зависимости от их размер­ ности привел к невозможности точного их решения при большом числе переменных путем прямого перебора вариантов [23]. В этом случае высокие затраты при эксплуатации программ вызвали не­ обходимость создания принципиально иных методов их решения и значительное повышение затрат при разработке КП.

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

ние зависят от структуры и методов разработки данного КП. Тща­

50

Соседние файлы в папке книги