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

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

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

Затраты на создание достаточно полного комплекта докумен­ тации С2р2 практически пропорциональны объему Пк программ.

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

на уровне продукции производственно-технического назначения, подлежащей длительному сопровождению, обычно определяются затратами на объем текста документов 5—10 страниц на тысячу команд программы на ассемблере.

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

ционный контроль и многолетнее сопровождение, необходимы тек­ сты программ и описания алгоритмов. Это приводит к увеличению объема документации на порядок, т. е. может составлять около 100 страниц документов на тысячу команд программы. Статистиче­ ский анализ объема документации для ПС различных классов дал [6, 27] широкий разброс числа страниц на единицу объема про­ грамм. Однако выявились некоторые средние характеристики, ко­ торые близки к указанным выше. Подтверждена наиболее высокая документированиость тиражируемых программ третьего класса, особенно в тех случаях, когда, необходима высокая надежность функционирования КП (до 200 страниц на тысячу команд).

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

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

емкости а? j a страницу. Кроме того, ряд документов (специфика­

ции, тесты,

тексты программ) разрабатывается в процессе соз­

дания КП

и их трудно выделить как самостоятельные работы.

Только рколо половины работ можно достаточно четко регламен­

тировать

(редактирование,

печать, нормоконтроль, утверждение

и т. д.).

Эти обстоятельства

привели к большому различию сум­

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

61

ки а2 по аналогичным предыдущим разработкам в данном коллек­

тиве.

В совокупности затраты на изготовление опытного образца КП можно представить в виде

С2р —С2р1 -г С2р2 — С2р1 (|) + а 2 рдПк.

(2.4)

Для большинства разработок второе слагаемое является доми­ нирующим.

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

Эти затраты обеспечивают программную оснащенность разра­

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

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

62

кон и конфигурационного контроля КП и большинство современ­ ных методов автоматизации создания сложных программ. Про­ граммные системы i[64, 66, 100], объединяющие все эти методы и средства, имеют объемы /7Т~ 1 млн. команд.

Средняя оснащенность разработчиков программ третьего клас­ са для встраиваемых ЭВМ реального времени в некоторых случаях составляет всего /7Т~ 20—50 тыс. команд. При этом используются в основном трансляторы с автокодов, средства автоматизированно­ го выпуска документации и машинных носителей, в то же время отладка автоматизируется слабо. Есть примеры [31] применения для этого класса программ достаточно сложных систем автомати­ зации разработки объемом /7Т~500 тыс. команд. Для подъема средней программной оснащенности до этого уровня требуются прежде всего организационные усилия и преодоление рутинных позиций многих руководителей и программистов с большим ста­ жем, привыкших к неавтоматизированной разработке КП. При разработке на универсальных ЭВМ крупных КП второго класса программная оснащенность составляет обычно 100—300 тыс. команд. В этой области возможности повышения оснащенности не: сколько меньше, но далеко не исчерпаны.

Данная составляющая затрат сильно зависит от степени ориги­ нальности и новизны средств автоматизации при разработке конк­ ретного КП. Если технология и вся система автоматизации разра­ ботки программ (САРПО) созданы первично только для проекти­ рования данного КП, то затраты на создание такой системы пол­ ностью входят в суммарные затраты на разработку КП. В зависи­ мости от уровня технологии САРПО является более или менее сложным комплексом программ, и затраты на его создание иден­ тичны затратам на сложные программы соответствующего объема Пг с учетом всех особенностей разработки. Оценку затрат на раз­

работку САРПО можно проводить с учетом их сложности и других факторов как для обычных комплексов программ второго класса (см. § 2.2).

В большинстве случаев технология и САРПО создаются для проектирования многих (М) КП. При этом затраты на их создание

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

жизни технологии или за некоторый нормативный срок.

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

63

долей суммарных затрат на создание технологии и примененной системы автоматизации разработки программ — СЗР1= а з 1#т/М;

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

ки данного КП — СЗР2= а з 22 (Дг);

затратами на эксплуатацию САРПО в течение всего календар­ ного времени tv разработки данного КП — Сзрз=азз^зз(/7т).

Составляющие затрат, по существу, являются аддитивными, и суммарные затраты на технологию можно представить в виде

■Сзр = С3р1 "Ь СзР2 -}-С3рз— a3i ЯТ/УИ -Ь СХ32 /з2 (Ят) т ®зз /зз (77т)*^р* (2*5)

Коэффициент аз1 отражает трудоемкость разработки одной

команды в САРПО. Затраты на освоение технологической системы характеризуются величиной азг и являются функцией объема системы f32(77T), которая оценивается экспериментально. Так же необходимо экспериментальное определение величины азз и функ­ ции /зз(77т). Однако пока такие оценки не опубликованы.

Стремление использовать апробированные технологии и САРПО приводит к тому, что в этом случае первое слагаемое мож­ но игнорировать. Некоторые средства автоматизации используются в готовой версии и не адаптируются к конкретным условиям при­ менения. Тогда доминирующей становится последняя составляю­ щая. Минимизации затрат Сзр способствует массовое применение типовых технологий с высоким уровнем автоматизации, когда уменьшаются значения C3pi и С3рг. Однако у некоторых разработ­ чиков имеется стремление создавать оригинальные технологии и САРПО, обосновывая это трудностью освоения и большими затра­ тами на внедрение типовых. В этих случаях возможно некоторое сокращение составляющей затрат СзР2, однако значительно увели­

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

Затраты на ЭВМ, используемые для автоматизации разработки данного КП — С4р включают капитальные затраты на закупку и установку соответствующих ЭВМ, а также текущие затраты на их эксплуатацию в течение разработки КП. При разработке КП третьего класса и высоком уровне автоматизации технологии эти затраты достигают 70% [28]. Однако и при низкой автоматизации они могут быть весьма велики. Последнее обусловлено тем, что при отсутствии средств автоматизации технологии и при разработ­ ке программ реального времени в машинных кодах их отладка производится на реализующей ЭВМ в пультовом режиме. При этом требуется очень большое календарное машинное время, которое используется неэффективно. Процессорное время ЭВМ в этих слу-

64

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

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

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

сервисные средства, доступные и используемые каждым специали­ стом. Этот показатель можно отразить несколькими численными характеристиками 1[15]:

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

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

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

средним числом возможных подходов к ЭВМ для реализации технологических операций каждым разработчиком программ за рабочий день (см. § 2.2).

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

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

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

3 Зак. 256

65

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

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

Капитальные затраты на реализующую ЭВМ для опытного об­ разца КП при разработке программ обычно не учитываются. Эти

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

порциональна календарному времени

разработки данного

КП,

если реализующая

ЭВМ

используется

в течение всего времени

разработки. Однако

при

возрастании уровня технологии для

КП

третьего класса увеличивается использование технологической

ЭВМ

и

несколько

сокращается

работа

на реализующей

(см.

рис.

2.2).

При этом

реализующая

ЭВМ

особенно интенсивно

ис­

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

C4Pi = а4, /р,

где а4, — стоимость машинного времени реализующей ЭВМ в единицу времени.

Применение при создании КП специальной технологической ЭВМ позволяет снизить интенсивность использования реализую­

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

66

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

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

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

в результате

^4р2 = а42 /42(/7Т).

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

обычно продолжает использоваться для сопровождения того

же

и других КП, а также в других целях.

ис­

Моделирующие ЭВМ, так же как технологические, редко

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

3*

Н7

мени. Поэтому данная составляющая затрат пропорциональна дли­ тельности использования моделирующей ЭВМ *рм на этих этапах

^4рЗ = а43 ^рм*

Таким образом, общие затраты на ЭВМ при разработке про­ грамм будут равны:

С4р = сс41 /р + а42 /р /42 ( П т) -f- а43 £рм.

(2.6)

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

I При низкой автоматизации проектирования в системах реаль­

ного времени на все* этапах доминирует первая составляющая за-

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

Рис. 2.5. Доля (%) затрат на машинное время:

реализующей ЭВМ;

-технологической ЭВМ;

моделирующей ЭВМ в за­ висимости от этапов разра­ ботки КП третьего класса

ся результаты имитации. Повы­

шение уровня

автоматизации

разработки и

использования

технологической

ЭВМ может

в некоторой степени сократить потребность в машинном вре­ мени моделирующей ЭВМ за счет более тщательной отлад­ ки вне реального времени. Од­ нако эти зависимости трудно выразить количественно и они в значительной степени нивели­

руются

вследствие

стремления

быстрее достигнуть

необходи­

мого качества

программ. Для

этого

стремятся

использовать

в максимальной

степени

(ино­

гда с низким

эффектом)

все

доступные ЭВМ. Такое

интен­

сивное

использование

различ-

68

ных ЭВМ в процессе разработки программ, способствуя сокраще­ нию затрат непосредственных разработчиков КП, не всегда приво­ дит к снижению суммарных затрат при создании программ (см. §4.2).

2.2. ФАКТОРЫ, ВЛИЯЮЩИЕ НА ЗАТРАТЫ ПРИ РАЗРАБОТКЕ СЛОЖНЫХ ПРОГРАММ

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

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

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

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

затраты Cip при непосредственной разработке программ:

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

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

программ; факторы, отражающие оснащенность процесса создания КП ап­

паратурными средствами, на которых базируются системы авто­

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

грамм и его обеспечение квалифицированными специалистами.

В группы включены факторы, которые могут изменять произ­ водительность труда или КИТ при создании КП не менее чем на 10% в ту или иную сторону (рис. 2.6). Ниже в представленных

69

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

Сложность комплекса программ

Размер базы данных Надежность функционирования КП Ограничения реализующей ЭВМ Длительность эксплуатации КП Предполагаемый тираж КП Мобильность для других КП Мобильность из других КП

Современные методы разработки Уровень автоматизации разработки Уровень языка проектирования Тираж системы автоматизации Относительное быстродействие ЭВМ Относительный объем памяти ЭВМ Относительное число дисплеев Тематическая квалификация Технологическая квалификация Программистская квалификация Квалификация заказчика

Коэф фициенты изменения трудоем кости

1.5______2_______2,5

т

ш

ш

г Р 1 ^■

5

1

Ж

У правляемые' П оложительная

ф акторы

корреляция

 

ф акторов

1 , 1

г

Рис. 2.6. Диаграмма коэффициентов изменения трудоемкости (заштрихованы средние значения для различных факторов), влияющих на разработку программ: управляемые факторы при разработке (+ ); связь между факторами, имеющими положительную корреляцию (последний столбец)

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