книги / Оценка затрат на разработку программных средств
..pdfлибо с применением универсальных ЭВМ в качестве технологи ческих.
Перечисленные выше классы программ и ЭВМ, для которых они создаются, приводят к разнообразию значений ТЭП разработ ки программ. Разброс ТЭП дополнительно увеличивается такими трудно контролируемыми факторами, как квалификация и число специалистов, участвующих в разработке программ, доступность и уровень средств автоматизации проектирования программ, орга низационные и профессиональные способности руководителей и т. д. Поэтому далее при анализе конкретных характеристик по возможности подробно представляются условия разработки прог рамм и их особенности, при которых получены соответствующие
ТЭП.
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