книги / Оценка затрат на разработку программных средств
..pdfнего уровня ПЛ-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
Во многих случаях важны не столько затраты на создание КП, сколько длительность разработки. Длительность разработки про грамм является весьма консервативной, что определяет необходи мость тщательного анализа длительностей этапов. Локальное
ускорение отдельных этапов разработки (особенно начальных) может приводить к значительному увеличению длительности дру гих этапов и к общему возрастанию длительности проектирования. Поэтому совершенствование технологии и средств автоматизации проектирования сопряжено с перераспределением затрат и дли тельностей этапов работ с целью сокращения общей длительности, в некоторых случаях даже за счет увеличения суммарных затрат.
Х а р а к т е р и с т и к и |
о ш и б о к |
при р а з р а б о т к е |
п р о |
|
г р а м м . |
Затраты при создании программ в значительной степени |
|||
связаны |
с затратами на |
выявление |
и устранение ошибок |
в КП. |
Поэтому проводятся оценки относительных и абсолютных трудо затрат на устранение каждой ошибки [5, 62]. Общие тенденции состоят в быстром росте затрат на выявление ошибки по последо вательным этапам разработки программ [93, 99] (рис. 1.4). По этому экономически целесообразно в максимальной степени выяв лять ошибки ПС на начальных этапах проектирования. Это, есте ственно, приводит к увеличению затрат и длительности этих эта пов, однако способствует минимизации суммарных затрат и длительности разработки в целом.
Характеристики ошибок непосредственно связаны с достигае мыми корректностью и надежностью функционирования программ. Изучение характеристик ошибок при разработке реальных про грамм позволило создать* ряд математических моделей, обеспечи вающих возможность прогнозирования длительности разработки и затрат, необходимых для достижения определенной надежности программ [35, 89]. Анализ выявленных и устраненных ошибок в
процессе разработки и со провождения конкретных программ позволяет поэтап но контролировать и прогно зировать надежность про грамм при аналогичных раз работках. При ограничен ных затратах или зафикси рованной длительности раз работки ограничивается ка-
8 ботки 3Уется предположение о фик
сированном качестве про грамм, при котором миними зируются затраты или дли тельность разработки.
Г л а в а 2
СОСТАВЛЯЮЩИЕ ЗАТРАТ И ФАКТОРЫ, ВЛИЯЮЩИЕ НА ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ РАЗРАБОТКИ ПРОГРАММ
2.1.СОСТАВЛЯЮЩИЕ ЗАТРАТ
НА РАЗРАБОТКУ ПРОГРАММНЫХ СРЕДСТВ
Критерии оценки экономической эффективности процесса разра ботки программ. Цель создания любых программ состоит в полу чении определенных результатов в процессе их эксплуатации и оценивается эффективностью ПС. Следует уточнить различие при меняемого далее широкого понятия эффективности всего жизнен ного цикла программного средства и более узкого понятия эффек тивности процесса разработки ПС. Выбор адекватных показателей
эффективности жизненного цикла ПС зависит от их назначения, области применения, а также от ряда функциональных характери стик программ, проявляющихся при их применении. Кроме того, на выбор критериев эффективности ПС могут влиять цели анали за. В процессе разработки ПС в качестве таких критериев для выбора технических решений могут использоваться [1, 57]:
максимум экономической эффективности функционирования Г1С на реализующей ЭВМ за весь жизненный цикл при ограниченных затратах на разработку программ;
минимум затрат на разработку программ при заданной эконо мической эффективности применения и качества Г1С;
максимум отношения экономической эффективности примене ния ПС в течение времени эксплуатации к затратам на его соз дание;
максимум разности эффекта от функционирования КП за весь жизненный цикл и затрат на его разработку, эксплуатацию и соп ровождение.
Кроме того, могут применяться смешанные критерии когда, например, в некоторых пределах изменения параметров учитыва ется отношение, а в других разность эффекта и затрат. Однако оценка эффекта от применения ПС тесно связана с их функцио нальным назначением, что определяет широкое разнообразие воз можных показателей эффективности и единиц ее измерения. По этому ниже обосновывается отказ от учета полной экономической
49
эффективности созданных КП в процессе их эксплуатации и кон центрируется внимание на затратах на их разработку. Минимиза ция затрат на обеспечение жизненного цикла КП в некоторой сте пени эквивалентна максимизации разности эффекта и затрат, если предположить, что экономический эффект от применения программ зафиксирован и стабилен.
Затраты в жизненном цикле КП определяются не только эта пом разработки, но и этапами эксплуатации и сопровождения. За траты на этих этапах могут значительно превышать затраты при разработке и характеризуются своими особыми закономерностями, которые не анализируются в данной книге. Однако эффективность процесса разработки ПС невозможно определить без учета эффек тивности последующей эксплуатации, а для долго живущих про грамм— без оценки эффективности их сопровождения. Ряд факто ров влияет на затраты при разработке сложных КП не только не посредственно, но и через возможное изменение затрат в дальней шем при эксплуатации или при сопровождении.
Каждый из этапов— разработка, сопровождение и эксплуата ция— может быть достаточно длительным. В пределах этапов раз личные группы затрат могут быть неодновременными и разделять ся интервалами, исчисляемыми годами. Однако разновременность затрат трудно учитывать в общем виде, и при существующих ме тодиках имеется некоторая условность при оценке влияния раз личия времени на эквивалентные затраты. Поэтому в данном разделе неодновременность групп затрат не учитывается и пред полагается, что абсолютная величина и влияние затрат со време нем не изменяются.
Необходимость учета в процессе разработки КП затрат на всем жизненном цикле можно наглядно показать на следующих при мерах. Так, при решении комбинаторных задач (например, мате матического программирования) очень быстрый рост затрат ма шинного времени на решение задач в зависимости от их размер ности привел к невозможности точного их решения при большом числе переменных путем прямого перебора вариантов [23]. В этом случае высокие затраты при эксплуатации программ вызвали не обходимость создания принципиально иных методов их решения и значительное повышение затрат при разработке КП.
Системы управления объектами или технологическими процес сами развиваются путем последовательного расширения и обнов ления технических средств, являющихся источниками информации и объектами управления. Соответственно модернизируются про граммы управления и обработки информации. Подобные модер низации программ являются основой их сопровождения в жизнен ном цикле. Эффективность и минимизация затрат на сопровожде
ние зависят от структуры и методов разработки данного КП. Тща
50