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

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

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

либо с применением универсальных ЭВМ в качестве технологи­ ческих.

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

ТЭП.

1.2. ТЕХНОЛОГИЯ И СИСТЕМЫ АВТОМАТИЗАЦИИ РАЗРАБОТКИ ПРОГРАММ

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

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

управления

проектированием

и приближенность оценок качества

и состояния разработок [96, 106].

разработки

программ

Многие

работы в области

технологии

[64, 65, 80]

носят частный характер создания отдельных техноло­

гических средств, исследования различных

методов

автоматиза­

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

21

шенствовании языков программирования и трансляторов, на раз­ витии методов формализованной отладки (преимущественно не­ больших программ для универсальных ЭВМ), на создании про­ стейших систем автоматизации программирования для отдельных типов ЭВМ. Быстрое расширение круга специалистов, участвую­ щих в разработке программ, приводит к необходимости индустри­ ализации проектирования программных средств. Для получения ПС высокого качества при допустимых затратах необходима ком­ плексная разработка технологических процессов с развитыми сред­ ствами инструментальной, методической и организационной под­ держки их проектирования [2, 30, 79]. Требования, предъявляемые

к технологии разработки ПС, могут быть весьма различными, что определяет разнообразие методологических концепций, используе­ мых средств автоматизации проектирования, технико-экономиче­ ских показателей создания программ и т. д. [35, 48, 52, 64]. Внед­ рение современных технологий разработки программ разного на­ значения и содержания значительно влияет на степень и темпы автоматизации производства в промышленности, качество управ­

ления объектами и

эффективность народного хозяйства

в целом.

При проектировании конкретных ПС возникает задача

разра­

ботки

или выбора

технологии, наиболее подходящей

(адекват­

ной)

создаваемому

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

При этом должны быть определены:

 

и опе­

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

процесс — последовательность этапов

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

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

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

комплексная система автоматизации всего процесса разработ­

ки программ как продукции производственно-технического назна­ чения.

Совершенствование технологического процесса и повышение уровня автоматизации требует соответствующих затрат, что при­ водит к снижению затрат на непосредственную разработку про­ грамм. Поэтому каждому классу ПС может быть адекватна спе­ цифическая технология и система ее автоматизации. Адекватность характеризуется степенью приближения к минимуму совокупных затрат на технологическую оснастку (см. § 4.1) или степенью со­ кращения длительности разработки. Перечислим исходные прин­ ципы технологии для создания крупных комплексов программ, которая обеспечивает регламентированную разработку, сопровож­ дение ПС и контроль выполнения технологических этапов и ка­ чества разработки программ [30, 48]:

структурированное построение программного комплекса и его

компонент [17, 48, 85];

22

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

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

лей с использованием общих библиотек и базы данных проекта;

эффективное использование производительности и памяти ЭВМ,

на которой реализуется КП; развитая система автоматизации систематического тестирова­

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

чивающая высокое качество и надежность программ; использование интерактивного режима для взаимодействия со

средствами автоматизации и профессиональных персональных ЭВМ для локальных работ;

применение систем автоматизации разработки программ рези­ дентного и кроссового типов;

выпуск программной документации в соответствии с норматив­

но-техническими документами и машинных носителей с управляе­ мым расположением на них программной информации.

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

Резидент-системы обеспечивают создание ПС для тех же ЭВМ,

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

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

Кросс-системы автоматизации реализуются на различных тех­

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

23

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

ся при проектировании КП

разного

типа, реализуемых

на ЭВМ

с произвольными системами

команд.

В результате на

реализую­

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

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

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

Средства автоматизации технологии разработки ПС. Процесс разработки сложных ПС реального времени можно представить рядом типовых этапов [48], которые активно используются при технико-экономическом анализе в последующих главах. Функции каждого технологического этапа (табл. 1.1) в конкретных разра­ ботках ПС автоматизируются в разной степени. Для этого приме­ няется ряд средств, которые автоматизируют определенные виды работ в общем технологическом процессе. Средства значительно различаются влиянием на технико-экономические показатели про­ цесса разработки и по затратам на их создание [63, 64, 97]. В за­ висимости от характеристик создаваемого ПС целесообразна со­

ответствующая

степень автоматизации

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

этапов и

различная номенклатура применяемых

средств автоматизации.

В результате у

специалистов выработалась некоторая

иерархия

24

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

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

Наиболее сложной является разработка крупных ПС для спе­ циализированных ЭВМ, функционирующих в реальном масштабе времени, архитектура которых отличается от архитектуры техно­ логической ЭВМ [48, 100]. Для эффективной поддержки процесса разработки ПС в подобных случаях необходима комплексно-авто­ матизированная система, включающая все современные средства поддержки разработки программ (наивысший 5-й уровень). В дру­ гом предельном случае (низший 1-й уровень) автоматизируются частично трансляция с ассемблера, отладка в объектном коде и выпуск минимального числа документов. При классификации средств для остальных промежуточных уровней в табл. 1.1 учиты­ вался приблизительно постоянный логарифмический прирост слож­ ности и стоимости совокупности средств автоматизации. Расшире­ нию функциональных возможностей средств при повышении уров­

ня на единицу соответствует более или менее пропорциональный

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

ПС (см.

§ 4.1).

хотя и

Представленные в табл. 1.1 средства автоматизации,

имеют некоторое самостоятельное значение, однако наиболее эф­

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

Средства в системах варьируются как по составу, так и по их группированию в крупные компоненты-подсистемы [48, 64, 106]. Систему автоматизации разработки программ (САРПО) иаивысшего пятого уровня можно разделить на следующие крупные ком­ поненты [48]:

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

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

систему автоматизированного выпуска документации; систему имитации внешней среды и статистической обработки

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

25

Т а б л и ц а 1.1

СРЕДСТВА ДЛЯ РАЗЛИЧНЫХ УРОВНЕЙ АВТОМАТИЗАЦИИ РАЗРАБОТКИ КП

 

 

Технологические этапы и средства

 

 

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

 

 

 

 

 

 

 

 

 

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

 

1

2

3

4

5

 

комплексов программ

 

Этап 1. Системный анализ н проектнрова-

 

 

 

 

нне алгоритмов

 

 

 

 

 

 

 

 

 

 

 

 

Средства:

 

 

 

 

 

 

 

моделирования

алгоритмов

разных

клас-

 

 

+

Ф

сов

 

 

 

 

 

 

 

 

 

моделирования внешней среды

 

 

 

 

+

Ф

определения

эффективности

разрабатыва-

 

 

+

Ф

емых систем

 

 

 

 

 

 

 

 

 

 

Этап 2. Структурное проектирование

 

 

 

 

 

 

 

 

 

Средства:

 

 

 

 

 

 

 

обработки спецификаций на КП и труп-

 

+

Ф

Ф

пы программ

 

 

 

 

 

 

описания структуры КП

ЭВМ

 

для

 

+

-1-

Ф

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

 

 

Ф

Ф

реализации КП

функционирования

 

КП

 

 

 

 

моделирования

 

 

 

 

 

на

параллельных вычислительных

систе­

 

 

+

©

мах

 

 

 

 

 

 

 

 

 

Этап

3. Подготовка технологических средств

 

 

 

 

 

 

 

Средства:

 

 

 

 

 

 

 

подготовки базы данных проекта КП

к

 

+

©

Ф

адаптации

системы

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

 

 

+

Ф

конкретным

условиям

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

 

 

 

контроля и управления процессом разра­

 

 

+

Ф

ботки

 

 

 

 

 

 

 

 

Этап 4. Разработка программ

 

 

 

 

 

 

 

 

 

Средства:

 

 

 

 

 

 

Ф

управления базой данных проекта

 

 

 

+

Ф

интерактивного

управления

средствами

 

+

Ф

Ф

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

 

 

 

 

 

 

обработки программных спецификаций

+

0

+

Ф

Ф

транслятор с ассемблера

 

 

©

Ф

Ф

макрогенератор

 

 

 

 

 

+

©

Ф

Ф

транслятор с языка высокого уровня

 

+

+

Ф

Ф

редактор связей и загрузчик

 

 

 

Ф

Ф

Ф

26

 

 

 

 

 

 

Продолжение

Технологические этапы и средства

 

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

 

 

 

 

 

 

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

1

2

 

 

 

комплексов программ

3

4

5

Этап 5. Отладка программ в статике

 

 

 

 

 

статического

Средства:

 

тек­

 

 

 

 

контроля корректности

 

+

4-

 

ста и структуры программ

 

 

 

ф

планирования тестирования

 

 

+

Ф

ф

символической отладки

 

 

 

 

ф

отладки с исполнением программ в объ­

+

+

Ф

 

ектном коде

 

 

-1-

ф

комплексирования и контроля связей мо­

 

4-

Ф

©

дулей

 

 

про­

 

расчета длительностей исполнения

 

 

-L-

ф

грамм

 

 

 

 

 

 

 

 

 

 

+

генератор стохастических тестов

 

 

 

ф

конфигурационного контроля

 

 

 

4-

ф

Этап 6. Комплексная динамическая отладка

 

 

 

 

 

Средства:

 

 

 

 

 

 

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

 

 

 

ф

ном масштабе времени

 

 

 

 

+

моделирования внешней среды

 

 

 

ф

обработки результатов отладки в реаль­

 

+

4-

ф

ном времени

 

 

 

 

подготовки отчетов об ошибках

 

 

4-

Ф

ф

 

 

 

 

 

Этап 7. Выпуск машинных носителей и до­

 

 

 

 

кументирование

 

 

 

 

 

 

 

Средства:

и эксплуатаци­

 

 

 

 

выпуска конструкторской

 

Ф

Ф

ф

онной документации

 

 

 

 

 

 

 

выпуска технологических документов

 

 

 

Ф

ф

изготовления и контроля машинных носи­

-*•

Ф

Ф

ф

телей

 

 

 

учета и внесения изменений в документы

 

J -

Ф

ф

и машинные носители

 

 

 

 

 

 

анализа характеристик программ и

про­

 

 

4-

ф

цесса разработки

 

 

 

 

 

 

Этап 8. Испытания комплекса программ

 

 

 

 

 

Средства:

 

 

 

 

 

 

измерения характеристик функционирова­

 

 

+

®

ния КП в реальном времени

 

 

-1-

Ф

ф

учета и анализа версий КП

 

 

 

имитации

расширенных

характеристик

 

 

+

ф

внешней среды

 

 

 

 

 

 

 

 

 

 

производства и контроля качества тира­

 

 

Ф

ф

жируемых к п

 

 

 

 

 

 

27

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

Приведенные выше концепции технологического процесса и ос­ новные средства автоматизации разработки программ реализова­ ны в системах [29], [30], [31]. При технико-экономическом анали­ зе в дальнейшем они используются с двух позиций: как типовая технология при разработке ПС различного назначения, являющих­ ся объектом анализа технико-экономических характеристик, и как комплекс сложных программых средств, процесс создания кото­ рого исследуется по своим технико-экономическим показателям.

1.3. ОСНОВНЫЕ ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ ПРОЦЕССА РАЗРАБОТКИ ПРОГРАММ

Цели технико-экономического анализа разработки программ. Выбор наиболее адекватных экономических и функциональных критериев для обобщенного описания целей, эффективности соз­ дания и использования программ зависит от их назначения, обла­ сти применения и многих других факторов. Основной эффект от применения разработанных ПС может выражаться в ускорении получения результатов вычислений или в повышении их точности, в повышении качества создаваемых промышленных изделий или снижении их себестоимости за счет применения роботов или ГАП, в повышении точности управления объектами или надежности их функционирования, а также в изменении многих других функцио­ нальных и конструктивных показателей систем, где они использу­ ются [23]. Эти важнейшие показатели отражают назначение про­ грамм, связаны с достигаемым экономическим эффектом, который можно выразить доходом, повышением прибыли или производи­ тельности труда, снижением материало- и энергопотребления или другими экономическими характеристиками.

Предположим, что основной целью создания ПС является повы­ шение эффективности производства промышленных изделий или управления объектами. Такие программы относятся (см. § 1.1) ко второму и третьему классам, и их применение во многих случаях можно характеризовать некоторым экономическим эффектом [18v

28

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

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

Основное внимание сосредоточено на технико-экономическом анализе процесса разработки ПС, путях минимизации затрат и на

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

П е р в а я ц е л ь состоит в определении реальных затрат на

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

В т о р а я ц е л ь исследования — создание методов и методик прогнозирования сроков и затрат на создание программ. Методики

должны учитывать полученные данные ТЭП, основные характери­

29

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

Т р е т ь е й ц е л ь ю анализа является

обоснование и создание

методов и средств снижения совокупных

затрат и сроков разра­

ботки сложных КП. При этом возникают задачи:

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

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

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

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

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

Наиболее сильно на ТЭП разработки влияют объем комплекса программ — /7К и требования к его качеству. Качество ПС харак­

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

Трудности достижения и измерения качества ПС быстро воз­ растают по мере увеличения Я к. При фиксированном объеме по­ вышение требований к качеству ПС приводит к довольно быстро­

30

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