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

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

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

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

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

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

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

[56, 57]. Однако ниже предполагается, что этап разработки яв­ ляется фиксированным во времени.

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

изделия (в данном случае комплекса программ) в течение его жизненного цикла продолжительностью /„»• Этот доход в первом приближении можно представить [57, 20] как разность между полной идеальной эффективностью программ Э0 и суммарными по­

51

терями и затратами Cs , снижающими предельный доход за весь жизненный цикл (рис. 2.1):

Э = Э 0— С^.

(2.1)

В качестве идеальной эффективности Э0 ниже рассматривается

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

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

Рис. 2.1. Распределение эффекта и затрат в жизненном цик­ ле сложного КП

52

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

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

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

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

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

ные характеристики программ.

Снижение эффективности Э на величину С е происходит преж­

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

ит. д.

Всоответствии с этапами жизненного цикла КП основные за­ траты С£ , снижающие идеальную эффективность за цикл жизни /ж, можно представить следующими составляющими (см. рис. 2.1):

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

нологическое обеспечение и аппаратуру ЭВМ при разработке КП, в течение времени /Р;

€ э — затраты на эксплуатацию программ и аппаратные средст­

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

53

Сс — затраты на сопровождение КП за время tc, включающие

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

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

представить в виде

Э = Э0- С р - С - С

с.

(2.2)

В зависимости

от назначения и области

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

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

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

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

в

человеко-днях или

человеко-годах. При этом

учитываются (см.

§

1.3) все категории

специалистов, участвующих

непосредственно

или косвенно в создании данного КП.

 

 

Особенностью программ как продукции производственно-техни­

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

54

составлять малую величину.

 

Перспективы

широкого

ти­

 

ражирования

и производст­

 

ва КП

могут

увеличивать

 

затраты

при

разработке

 

опытного образца по сравне­

 

нию с затратами на уни­

 

кальный

КП.

Однако

это

 

влияние

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

неве­

 

лико. Ниже при анализе со­

Рис. 2.2. Доля (%) составляющих затрат

ставляющих предполагается,

что разрабатывается

един­

на разработку КП в зависимости от его

объема Я„

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

венно-технического назначения, допускающий серийное производ­

ство. Влияние производства и тиражирования будет учтено при оптимизации суммарных затрат в § 4.1 и 4.2.

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

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

на изготовление опытного образца КП как продукции произ­ водственно-технического назначения — С2Р;

на разработку, подготовку и применение технологии и про­ граммных средств автоматизации разработки программ — Сзр;

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

на подготовку и повышение квалификации специалистов-разра- ботчиков — С5р.

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

факторы с низкой степенью влияния, а остальные ранжированы

на

факторы с высокой

(В) (>30% ) и средней (С) (<30% )

сте­

пенью влияния на

совокупные затраты Ср при разработке про­

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

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

55

Т аб ли ц а 2.1

ОСНОВНЫЕ СОСТАВЛЯЮЩИЕ ЗАТРАТ В ПРОЦЕССЕ РАЗРАБОТКИ

Составляющие затрат

Группы затрат

Основные факторы,

влияющие на составля­

 

 

ющую затрат

Степень влияния фактора

На

непосредственную

Затраты по этапам раз-

Объем КП

 

 

 

разработку комплекса

работки

по

категориям

Надежность КП

 

 

программ — С\р

 

Затраты

Степень

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

 

 

 

 

 

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

 

ресурсов

реализующей

 

 

 

 

 

 

 

 

ЭВМ

 

разработ­

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

ки кп

 

 

 

 

 

 

 

 

 

 

 

 

Длительность цикла жиз­

 

 

 

 

 

 

 

 

ни КП

 

программ

 

 

 

 

 

 

 

 

Мобильность

 

 

 

 

 

 

 

 

Уровень технологии раз­

 

 

 

 

 

 

 

 

работки кп

 

проекти­

 

 

 

 

 

 

 

 

Уровень

языка

 

 

 

 

 

 

 

 

рования кп

 

 

 

На

изготовление

 

Затраты на изготовление

Объем КП

 

 

 

опытного

образца

 

магнитных носителей КП

Уровень

технологии раз­

КП — С2Р

 

 

 

Затраты на изготовление

работки кп

 

 

 

 

 

 

 

 

документации КП

Способ

материализации

 

 

 

 

 

 

 

 

■программ

 

 

 

На

технологию

н Затраты

на

создание

Объем КП

 

 

 

программные

средст­ САРПО

на

внедрение

Уровень

технологии раз­

ва

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

Затраты

работки кп

 

проекти­

разработки

КП — С31. САРПО

на

 

Уровень

языка

 

 

 

 

 

Затраты

эксплуата­ рования кп

 

 

 

 

 

 

 

 

цию САРПО

 

Тираж САРПО

цикла

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

жизни КП

 

 

 

На

ЭВ'М,

используе­

Затраты

на

реализую­ Объем КП

 

 

 

мые

для

разработки

щую ЭВМ

 

Уровень технологии раз­

КП. - С4Р

 

 

 

Затраты

на технологиче­

работки кп

 

 

 

 

 

 

 

 

скую ЭВМ

 

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

 

 

 

 

 

Затраты на

моделирую­ ки кп

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

 

 

 

 

 

щую ЭВМ

 

Степень

 

 

 

 

 

 

 

 

ЭВМ для разработки КП

 

 

 

 

 

 

 

 

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

ЭВМ

На

подготовку и

по­

 

 

 

Тематическая

 

квалифи­

вышение

квалифика­

 

 

 

кация

 

 

 

квали­

ции

специалистов-

 

 

 

Технологическая

разработчиков

— CsP

 

 

 

фикация

 

 

 

квали­

 

 

 

 

 

 

 

 

Программистская

фикация

В

В

в

в

в

в

в

с

в

в

с

в

в

с

в

с

в

в

в

в

с

в

с

с

56

Приведенное на рис. 2.2 распределение затрат для КП третьего класса является экспертной оценкой с.использованием эксперимен­

тальных материалов гл. 3.

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

Применительно к созданию сложных КП оснащенность вклю­ чает:

оснащенность специалистов методами и программными средст­ вами автоматизации технологических процессов разработки, изго­ товления и сопровождения программ (программная «энерговоору­ женность» — С3р) ;

аппаратные средства вычислительной техники, используемые в жизненном цикле КП для автоматизации технологии (аппаратур­ ная «энерговооруженность» — С*р) .

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

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

вается. Однако квалификация

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

является

одним из

важнейших факторов, заметно

влияющих на

затраты

С|Р (§ 2.2

и 3.4).

 

 

 

57

Анализ затрат на непосредственную разработку программ яв­ ляется одной из основных целей книги. Поэтому исследованию ха­ рактеристик Ctp и влиянию на них различных факторов посвящен специальный § 2.2. В данном разделе анализ ограничен наиболее общими зависимостями Сц, от факторов, а для составляющих за­ трат С2р, С3р, С4р на разработку ПС приводятся более подробные характеристики.

Затраты на непосредственную разработку комплекса про* грамм — Cip являются важнейшей составляющей в жизненном цик­ ле КП. Однако эти затраты не всегда являются доминирующими по величине. Для относительно небольших КП с малым жизненным циклом доля затрат может достигать 70—90%. Для сложных КП, предназначенных для длительного, массового использования и раз­ рабатываемых на базе высокоавтоматизированной технологии, доля этой группы затрат составляет только 20—30% всех затрат на этапе разработки (см. рис. 2.2). Тем не менее Cip является по смыслу наиболее существенной составляющей, определяющей не­ посредственное создание программных средств [30].

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

 

 

ра. Остальные факторы мож­

 

 

но отражать

 

поправочными

 

 

коэффициентами при уточне­

 

 

нии

интегральных

показа­

 

 

телей.

 

на

разработку

 

 

Затраты

 

 

Cjp и объем

 

программ Пк

 

 

связаны

через

показатель

 

 

интегральной средней произ­

 

 

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

труда

разра­

 

 

ботчиков Р. Этот показатель

Рис. 2.3. Доля (%) затрат на специалистом

в дальнейшем

является од­

ним

из основных

объектов

разных категорий' в зависимости от этапов

технико-экономического ана­

разработки КП:

лиза. Для учета влияния на

 

—руководители и системные аналитики;

С

различных

факторов

|

] - программисты;

удобно пользоваться

коэф­

фициентами

изменения тру­

 

- вспомогательный персонал

доемкости

(К И Т )— сц, учи­

 

тывающими

 

зависимость

58

t-й составляющей совокупных затрат от /-го фактора. Далее учи­ тываются не только факторы процесса непосредственной разработ­ ки (коэффициенты Cjj), но и факторы программной (c3j) и аппара­ турной (c4j) оснащенности, а также квалификация специалистов (c5j). Непосредственные затраты на разработку можно представить

как частное от объема КП и производительности труда, корректи­ руемое произведением коэффициентов изменения трудоемкости:

Г

D

н

П с-

(2.3)

vip

 

Ч сч-

 

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

Данную группу затрат можно разделить на составляющие по этапам разработки и по категориям участвующих специалистов.

Для этапов разработки сложного КП реального времени на рис. 2.3 представлена экспертная оценка относительных затрат. За 100% приняты затраты на этапах программирования и статической от­ ладки модулей и групп программ, когда к разработке привлекает­ ся наибольшее число специалистов. Все специалисты на рис. 2.3 разделены на три категории: руководители разработки и систем­ ные аналитики; непосредственные разработчики программ и специ­

алисты по комплексированию;

вспомогательный

персонал, обеспе­

чивающий

разработку и документирование

КП. Первая и третья

категории

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

непосредственно

не взаимодействуют с

текстом

программ,

однако их

 

 

 

 

 

труд

является

неотъемлемой

 

 

 

 

 

частью

всего

процесса разра­

 

 

 

 

 

ботки

и составляет

около по­

 

 

 

 

 

ловины данной

группы затрат.

 

 

 

 

 

В

ряде

публикаций приво­

 

 

 

 

 

дятся

обобщенные

результаты

 

 

 

 

 

исследований [6, 52] распреде­

 

 

 

 

 

ления участия

всех специали­

 

 

 

 

 

стов

по

этапам

разработки.

 

 

 

 

 

Примером

могут служить

рас­

 

 

 

 

 

пределения

доли

от среднего

 

 

 

 

 

числа

исполнителей для

про­

 

 

 

 

 

грамм второго и третьего клас­

Рис. 2.4. Доля

(%)

среднего

числа

сов и их аппроксимация рас­

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

участвующих в

разра­

пределением Рэлея (рис. 2.4).

ботке программы в зависимости от

При этом в качестве примера

времени разработки (%) /р:

 

использовалась доля от полной

--------- третий класс КП,

 

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

---------второй класс КП,

для

------- распределение

Рэлея

личие от

рис. 2.3, где длитель-

объема 32 тыс. команд [6]

 

59

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

Программы третьего класса требуют значительно больших за­ трат на этапах комплексирования и испытаний, чем КП второго класса [20, 52]. На этапе программирования и автономной отлад­ ки для КП третьего класса затраты также возрастают вследствие более жестких требований к качеству компонент. Вследствие этого при увеличении объема КП третьего класса возрастает относитель­ ное число специалистов, осуществляющих разработку программных компонент. Это приводит к сокращению относительного числа спе­ циалистов на начальных и конечных этапах разработки, хотя их абсолютное число возрастает. Однако в целом характер распреде­ ления и положение экстремума затрат изменяются мало. Основные особенности приведенных распределений подтверждают экспери­ ментальные гистограммы распределения затрат для КП второго класса в § 3.3.

Затраты на изготовление опытного образца КП как продукции производственно-технического назначения — С21> определяются необходимостью обеспечить отчуждение всего комплекса программ от его первичных непосредственных разработчиков. Удельный вес этих затрат редко превышает 20% и обычно находится в пределах 10— 15% общих затрат на разработку. Возрастание этой группы затрат происходит, если КП предстоит длительный жизненный цикл и массовое тиражирование. Для изготовления КП как продукции производственно-технического назначения необходимо:

изготовить и оформить опытный образец КП на носителях дан­ ных (магнитных лентах, дисках, перфолентах и т. д.) как промыш­ ленное изделие;

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

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

60

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