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

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

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

возникает необходи­

 

мость учета ряда ра­

 

нее не

формализо­

 

ванных факторов ре­

 

ального

функциони­

 

рования

копий

КП.

 

Каждая

из

копий в

 

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

 

должна

адаптиро­

 

ваться к конкретным

 

условиям

 

примене­

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

ния, для чего

в КП

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

необходимо

преду­

предполагаемого тиража N

сматривать средства автоматизации адаптации и выделять компоненты КП, подлежащие

изменениям. При увеличении тнражности возрастают требования к корректности, тестированию и испытаниям программ, а также к полноте документации и увеличивается отчуждаемость программ от их первичных разработчиков. В результате при переходе от уни­ кального КП даже к программам, подлежащим тиражированию в нескольких экземплярах, затраты на разработку заметно возра­ стают. В среднем перспективы широкого тиражирования по влия­ нию на суммарные затраты при разработке можно оценить на уровне 30—50% и КИТ аппроксимировать выражением (рис. 2.11)

си — 1 *5 (1 — ехр (— 1,Ш)].

(2.12)

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

разработку программ для каждой ЭВМ убывает особенно быстро (как 1 /N) при больших тиражах. Однако встречаются уникальные

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

М о б и л ь н о с т ь ( п е р е н о с и м о с т ь ) и с п о л ь з о в а н и я

к о м п о н е н т

КП д л я д р у г и х р а з р а б о т о к

приводит к не­

обходимости их проектирования как автономных

комплектующих

изделий [37,

103]. Это требует стандартизации их построения и

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

81

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

В ряде случаев целесообразна настройка (адаптация) готовых компонент на новые условия применения. Если условия функцио­ нирования КП изменяются не очень сильно, то адаптация может обеспечить настройку 10—20% компонент при полном сохранении остальной части КП. При больших изменениях условий примене­ ния более эффективной может оказаться сборка нового КП с ча­ стичным использованием апробированных компонент (до 80—90%) и с разработкой небольшой части новых программных модулей, обеспечивающих новые функции и условия применения КП.

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

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

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

Рис. 2.12. Коэффициенты изменения трудоемкости при разработке программ вследствие затрат на обеспечение их мобильности ci7 и за счет использования мобильности сХъ в зависимости от доли (%) переносимых программных компонент:

---------— суммарная эффективность применения переносимости при двух ПС;

------- — затраты на обеспечение адаптируемости ПС

82

пользуемых компонент. Для обеспечения сборочного программиро­ вания КИТ на строку в программе сп увеличивается в среднем на

10—20% (рис. 2.12). Дополнительные затраты на адаптируемость ПС могут достигать 30—40%, т. е. приблизительно такой же вели­

чины, как для обеспечения повторного применения

компонент на

80—90% (штрих-пунктир на рис. 2.12).

 

М о б и л ь н о с т ь

( п е р е н о с и м о с т ь ) и с по л ь з о в а н ия

к о м п о н е н т КП

из д р у г и х р а з р а б о т о к

позволяет сни­

жать затраты при сборочном программировании новых КП. При этом относительное повышение производительности труда (КИТ — С\в) пропорционально доле использования готовых комплектующих

изделий и степени их пригодности для использования в новом ПС. В пределе при построении нового КП на 80—90% из готовых ком­ понент затраты могут сократиться в 3—5 паз, что эквивалентно соответствующему повышению производительности труда. В этом случае при сборочном программировании, кроме 10—20% затрат на создание новых программных компонент, необходимы ресурсы на комплексирование нового КП, его комплексную отладку, испы­ тания и документирование. В результате суммарные затраты за­ метно возрастают и эквивалентное повышение производительности труда С|8 может составлять 2,5—3 раза.

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

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

труда специалистов

в десять

раз (см.

§ 4.1) [23, 103]. Однако

необходимо учитывать

затраты,

которые

требуются на создание адаптируемых компонент и всего первично­ го КП. В результате программная мобильность с учетом затрат на ее подготовку в среднем дает снижение КИТ на 30—50% (пунктир на рис. 2.12).

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

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

83

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

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

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

модульно-иерархическое четко структурированное построение всего комплекса программ, его программных компонент и базы данных [17, 35];

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

распределение ресурсов памяти и производительности реали­ зующей ЭВМ с начала проектирования, контроль и управление ис­ пользованием ресурсов в течение всей разработки [21];

нисходящая разработка технических требований и специфика­ ций на программные компоненты КП с последовательной иерархи­ ческой детализацией функций и формализацией связей компонент [85];

 

пошаговая разработка компонент КП с контролируемыми эта­

пами технологии и поэтапным контролем результатов работ [11,

48,

52];

 

бригадная организация разработки крупных функциональных

компонент с централизованным комплексированием и тестировани­ ем комплекса программ в целом [20, 7, 33].

Приведенные методы акцентируют внимание на системной ор­ ганизации и методичности проведения всей разработки и прежде всего на ее начальных этапах. Это позволяет выявлять ошибки проектирования на ранних стадиях, что требует на 1—2 порядка меньше затрат при устранении каждой ошибки (см. рис. 1.4) [62, 99]. Наибольший эффект перечисленные методы дают при созда­ нии сложных и сверхсложных КП третьего класса. Для их приме­ нения необходимо инструктивно-методическое обеспечение разра­ ботки и обучение всех специалистов комплексной методике прове­ дения работ большими коллективами. Для создания руководящих документов, обучения коллектива и контроля выполнения инструк­ тивных предписаний требуются затраты, которые могут составить 3—5% от общих. Системы автоматизированного обучения и кон­ троля технологического процесса способствуют более полному ис­ пользованию современных методов.

84

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

ем

производительности труда приблизительно

на

50%

(сз\ ~

- 0 ,6 —0,7).

а в т о м а т и з а ц и и р а з р а б о т к и

КП

в дан­

Ур о в е н ь

ном

разделе

рассматривается прежде всего, как

фактор,

влияю­

щий на Сip и на производительность труда специалистов. Создание систем автоматизации разработки программ (САРПО) в ряде слу­ чаев требует собственных немалых затрат, которые здесь непо­ средственно не учитываются. Однако сложность и эффективность САРПО трудно представить непосредственно функциональными характеристиками. Поэтому для обобщенного представления уров­ ня автоматизации разработки используется [6, 48] объем программ (строк текста) П тв системах, обеспечивающих автоматизацию.

Тем самым появляется возможность сравнивать затраты на авто­ матизацию с эффективностью от автоматизации в сопоставимых единицах (см. § 4.1). Объемы программ автоматизации 77т могут быть переведены в трудоемкость их разработки (в человеко-годах) или в стоимость разработки в денежном выражении.

В ряде работ [6, 48, 52] приводится классификация средств авто­ матизации по условным уровням сложности (см. табл. 1.1). При этом наблюдается удивительная близость подходов к выделению уровней автоматизации (по составу средств в каждом уровне) и их функциональных задач, хотя классификация осуществлялась за­ ведомо независимо. Этот факт подтверждает рациональность такой классификации. Каждому уровню автоматизации в табл. 2.3 соот­ ветствуют объем программ, реализующих все функции автоматиза­ ции данного уровня, и приблизительная трудоемкость . создания соответствующих программных средств. По этим показателям уровни отличаются приблизительно на порядок, что дает более или менее одинаковый прирост производительности труда (обрат­ ная величина значения КИТ) при переходе на следующий, более высокий уровень автоматизации.

Наибольшие различия в характеристиках шкалы уровней авто­ матизации в [6] и в [20, 48] проявляются на нижних уровнях. Низ­ шие уровни в [6] характеризуются большим набором средств авто­ матизации и более высокой стоимостью систем, чем в [48]. Вследст­ вие этого системы автоматизации по всей шкале в [6] меньше раз­ личаются сложностью, и зависимость стоимости систем от уровня

85

Т а б л и ц а 2.3

сложность и Э Ф Ф Е К Т И В Н О С Т Ь

С И С Т Е М

 

 

 

 

 

 

 

А В Т О М А Т И З А Ц И И Р А З Р А Б О Т К И П Р О Г Р А М М

 

 

 

 

 

 

 

 

 

 

 

У р о в н и а в т о м а т и з а ц и и

 

Х а р а к т е р и с т и к и с и с т е м а в т о м а т и з а ц и и

 

 

 

 

 

 

 

р а з р а б о т к и п р о г р а м м

 

 

1

2

 

3

4

5

 

 

 

 

Общин объем программ Пт системы автоматиза­

 

 

 

 

 

 

ции разработки программ данного уровня

[20],

1

10

 

100

1000

10 000

тыс. строк ассемблера

 

 

1

 

 

 

 

 

 

 

 

Трудоемкость разработки систем

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

1

10

 

10*

103

10*

данного уровня [20], чел.-годы

 

 

 

Коэффициент изменения производительности

тру­

1

1,3—1,8

 

2,2-3,0

2,5—5

3—7

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

средств— I/C32

 

Стоимость разработки системы автоматизации со­

0,1—0,3

1—3

 

5—10

10—20

20—50

ответствующего уровня по данным [6], млн. дол.

 

Общий объем программ /7Т систем автоматизации

 

 

 

 

 

 

соответствующего уровня [6], тыс. строк ассемб­

100—300

(1—3)-103

 

(5—10) • 103

(1—2) -10^

(2—5) • Юч

лера

 

 

 

Коэффициент изменения производительности

тру­

1

1,1-1,2

 

1.3-1,4

1,5—2,0

2,0-3,0

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

средств — 1/с32

 

автоматизации несколько отличается от логарифмической, которая принята за основу в табл. 1.1 и в [20, 48]. Наличие более высокой степени автоматизации на нижних уровнях в [6] приводит к вырав­ ниванию шкалы изменения производительности, что отражается в виде меньших приростов производительности труда между сосед­ ними уровнями по сравнению с [20, 48]. Если учесть это обстоятель­

ство, то шкалы уровней автоматизации в [6] и в [48]

значительно

сближаются по величинам относительных изменений

производи­

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

высокой сложности в разумные сроки (см. § 3.5).

На разработку САРПО с наиболее высоким (5) уровнем авто­ матизации всех функций по оценкам [6, 61] требуется 20—50 млн. дол. (рис. 2.13). При этом оценки весьма сильно различаются и отсутствуют характеристики объема программ в таких САРПО. Если принять достаточно широко используемую оценку стоимости разработки одной строки текста в сложных КП второго класса 10 дол., то наиболее сложные зарубежные САРПО содержат око­ ло 2—5 млн. строк текста программ. Оценка коэффициента изме­ нения трудоемкости разработки с32 в зависимости от затрат на

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

мическом масштабе и первому уровню

тизации разработки;

соответствует П г = 103 команд. Экстра­

---- с учетом затрат

на

поляция в область /7Т< 1 0 3 иллюстри­

операционные

систе­

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

мы технологических

ЭВМ [6J;

 

работку при практическом отсутствии

U — уровни автоматизации

87

средств САРПО. В области /7Т> 1 0 3 снижение КИТ может быть аппроксимировано выражением

c,, = l/lg(tfT.10-2).

(2.13)

Для современных уровней технологий разработки КП третьего класса (U ~ 3) средства автоматизации повышают производитель­

ность труда приблизительно в два-три раза.

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

применение ЯВУ может дать увеличение производительности тру­ да ~ 1,5—2 раза. При разработке сложных КП третьего класса эффективность ЯВУ снижается, так как значительный объем ра­ бот, связанных с динамической комплексной отладкой, документи­ рованием, испытаниями и др., слабо зависит от уровня языка. В ре­ зультате производительность труда по сравнению с разработкой на ассемблере повышается только на 10—20% (с33 — 0,8—0 , 9 ) При создании КП второго класса [26] применение ЯВУ дает несколько

 

большее увеличение произ­

 

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

труда — око­

 

ло 30%

(см. § 3.4). При этом

 

возможно значительное уве­

 

личение других затрат вслед­

 

ствие

увеличения

объема

 

программ из-за их расшире­

 

ния при трансляции. Поэто­

 

му эффективность использо­

 

вания ЯВУ при создании КП

 

различных классов

и слож­

 

ности

необходимо

рассмат­

 

ривать в комплексе с учетом

 

всех видов затрат и измене­

Рис. 2.14. Коэффициент изменения трудо­

ния совокупной

производи­

тельности труда

(см. § 4.2).

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

Т и р а ж с и с т е м ы

ав­

зависимости от объема систем автоматиза­

т о м а т и з а ц и и

 

р а з р а ­

ции разработки 77т с учетом всех средств

 

обеспечения технологии; U — уровни ав­

б о т к и

КП влияет на непо­

томатизации

средственные

затраты

при

88

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

иулучшается эффективность их применения. Это может приводить к повышению производительности труда на 10—20%. На качестве

иэффективности САРПО наиболее сильно отражается тиражиро­ вание и внедрение первых 5— 10 экземпляров, на которых апроби­ руется система. В среднем тиражируемые САРПО в отличие от уникальных способствуют дополнительному повышению произво­ дительности труда на 5— 10% (с34~ 0 ,9 —0,95).;

Факторы оснащенности процесса разработки КП аппаратурны­

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

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

реализующая ЭВМ — для функционирования резидент-систем

автоматизации разработки программ и для средств автоматизации окончательной комплексной отладки и испытаний КП в реальном масштабе времени;

технологическая ЭВМ — для обеспечения функционирования

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

моделирующая ЭВМ — для имитации объектов внешней среды,

89

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

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

О т н о с и т е л ь н о е б ы с т р о д е й с т в и е Э В М на о д н о ­ го с п е ц и а л и с т а , у ч а с т в у ю щ е г о в р а з р а б о т к е КП, определяет возможность непрерывного эффективного применения САРПО и доступный уровень автоматизации разработки про­ грамм. Дефицит машинного времени снижает производительность труда разработчиков и увеличивает совокупные затраты на разра­ ботку программ вследствие неполного использования средств ав­ томатизации. Избыток машинного времени связан с нерентабель­ ными затратами на аппаратуру и эксплуатацию применяемых ЭВМ. Можно предположить, что существует оптимальная степень обеспе­ чения разработчиков машинным временем, при которой минимизи­ руются совокупные затраты — Ср для некоторых условий разработ­ ки КП. Эту обеспеченность машинным временем обобщенно можно характеризовать числом операций в секунду всех ЭВМ, используе­ мых для разработки конкретного КП, приходящихся на каждого специалиста в коллективе разработчиков. Достаточно часто эта ве­ личина находится в диапазоне 104— 10г\ Экспертные оценки пока­ зывают, что при этом обеспеченность машинным временем обычно составляет 50—70%. Плохое обеспечение машинным временем мо­ жет увеличивать затраты на непосредственную разработку КП в полтора-два раза. Однако в среднем влияние недостаточного обес­

печения машинным временем на полные затраты при

создании

сложных КП можно оценить на уровне 20—30% (c4i~

0 ,7 —0,8).

О т н о с и т е л ь н ы й о б ъ е м о п е р а т и в н о й *

 

п а м я т и

Э В М на о д н о г о с п е ц и а л и с т а , у ч а с т в у ю щ е г о в

р а з р а б о т к е КП,

может также проявляться

как заметный

фактор, изменяющий

производительность труда

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

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

90

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