Проверяемый текст
Ковалев, Игорь Владимирович. Система мультиверсионного формирования программного обеспечения управления космическими аппаратами (Диссертация 1997)
[стр. 37]

37 Достижение последовательных подцелей тесно связано с такими подцелями, как верификация и подтверждение, а также управление конфигурацией, которые должны быть достигнуты на каждой фазе ЖЦПО.
Требование простого последовательного достижения целей является удобным упрощением.
Существуют же ситуации, в которых экономически целесообразно изменить последовательность достижения целей, например при изготовлении прототипа, в пошаговой разработке и т.д.
Обоснование каскадной модели, ориентированной на последовательное достижение целей, базируется на двух главных предпосылках: 1.
Для получения качественного программного изделия необходимо в любом случае осуществить все подцели на каждом этапе.
2.
Любое другое упорядочивание подцелей приводит к созданию менее качественного программного изделия.
Относительно первого условия отметим, что несомненно, осуществление подцели кодируемости и всех последующих подцелей (кроме снимаемости) необходимо для получения любого функционирующего изделия.
Основной вопрос состоит в том, необходимы ли предыдущие подцели (осуществимость, полнота и непротиворечивость требований, проектируемость изделия и детальная проектируемость).
В случае многих небольших и простых программных изделий можно получить приемлемый результат, уделяя относительно мало внимания ранним подцелям, поскольку разработчик
и так четко понимает запросы пользователя и все последствия решения легко предсказуемы.
Однако подобный неформальный подход часто ведет к весьма неприемлемым результатам, которые обычно можно предвидеть и избежать при тщательном выполнении более ранних подцелей.
В крупных и сложных программных проектах, связанных с управлением КА, недостаточное внимание к более ранним подцелям почти всегда приводило к серьезным недостаткам программного изделия и процесса его разработки Это иллюстрируется многочисленными примерами в области аэрокосмической и ракетной техники, например, в открытой печати США приводится информация о том, что в двух больших
оперативных системах управления из-за их несоответствия требованиям пользователя объем доработок составил 67% и 95% соответственно и т.д.
Анализ этих и других аналогичных случаев
приводит к выводу, что рассмотрение ранних подцелей существенно для успешной разработки программного изделия.
Кроме этого, более поздние исправления связаны с гораздо более формальным процессом утверждения и контроля изменений, требуют значительного объема работ по подтверждению правильности сделанных изменений В результате совместного действия этих факторов исправление ошибки на фазе сопровождения большого программного проекта обходится
[стр. 27]

зей, характеристик, основных алгоритмов и определение условий работы каждого программного компонента (подпрограммы, состоящей менее чем из 100 исходных команд).
кодируемость — получение полного верифицированного набора компонентов программы.
Достижение последовательных подцелей тесно связано с такими подцелями, как верификация и подтверждение, а также управление конфигурацией, которые должны быть достигнуты на каждой фазе ЖЦПО.
Требование простого последовательного достижения целей является удобным упрощением.
Существуют же ситуации, в которых экономически целесообразно изменить последовательность достижения целей, например при изготовлении прототипа, в пошаговой разработке и т.д.
Обоснование каскадной модели, ориентированной на последовательное достижение целей, базируется на двух главных предпосылках: 1.
Для получения качественного программного изделия необходимо в любом случае осуществить все подцели на каждом этапе.
2.
Любое другое упорядочивание подцелей приводит к созданию менее качественного программного изделия.
Относительно первого условия отметим, что несомненно, осуществление подцели кодируемости и всех последующих подцелей (кроме снимаемости) необходимо для получения любого функционирующего изделия.
Основной вопрос состоит в том, необходимы ли предыдущие подцели (осуществимость, полнота и непротиворечивость требований, проектируемость изделия и детальная проектируемость), В случае многих небольших и простых программных изделий можно получить приемлемый результат, уделяя относительно мало внимания ранним подцелям, поскольку разработчик
pi так четко понимает запросы пользователя и все последствия решения легко предсказуемы.
Однако подобный неформальный подход часто ведет к весьма неприемлемым результатам, которые обычно можно предвидеть и избежать при тщательном выполнении более ранних подцелей.
В крупных и сложных программных проектах, связанных с управлением КА, недостаточное внимание к более ранним подцелям почти всегда приводило к серьезным недостаткам программного изделия и процесса его разработки.
Это иллюстрируется многочисленными примерами в области аэрокосмической и ракетной техники, например,в открытой печати США приводится информация о том, что в двух больших
опера27

[стр.,28]

тивных системах управления из-за их несоответствия требованиям пользователя объем доработок составил 67% и 95% соответственно [34] и т.д.
Анализ этих и других аналогичных случаев
[35-37] приводит к выводу, что рассмотрение ранних подцелей существенно для успешной разработки программного изделия.
Обоснование второй предпосылки о последовательном достижении под целей процесса разработки следует в основном из данных, приведенных в [44], подытоживающих современный опыт разработки больших проектов, и результаты исследований (для нескольких проектов [45]) зависимости относительной стоимости исправления ошибки (или внесения какоголибо изменения) в ПО от фазы, в которой производятся эти исправления или изменения.
Согласно накопленному опыту, если ошибка в требованиях обнаруживается и исправляется на фазе планирования и анализа требований, то ее исправление сводится к сравнительно простым изменениям спецификаций требований.
Если же эта ошибка не исправлена до фазы сопровождения, то ее исправление затрагивает больший объем спецификаций, кодов, руководств для пользователя и по сопровождению, а также учебных материалов.
Кроме этого, более поздние исправления связаны с гораздо более формальным процессом утверждения и контроля изменений, требуют значительного объема работ по подтверждению правильности сделанных изменений.
В результате совместного действия этих факторов исправление ошибки на фазе сопровождения большого программного проекта обходится
обычно в 100 раз дороже, чем исправление той же ошибки на фазе анализа требований.
Для небольших неформальных проектов обосновать предпосылку 2 сложнее, чем для крупных более формализованных проектов.
Главные причины меньшего роста стоимости исправления заключались в следующем: 1) уменьшение размера программы приводит к уменьшению объема исправлений на более поздних стадиях; 2) уменьшение формализованности проекта допускало более простые изменения и исправления, чем для более формализованных проектов.
Хотя эффект для небольших проектов менее резко выражен, четырехкратный рост стоимости исправления от фазы анализа требований до фаз комплексирования и отладки говорит в пользу предпосылки 2.
Такой рост существенно повышает важность заблаговременной спецификации 28

[Back]