Глава 3 ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ

Глава 3

ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ

3.1. ОСНОВНЫЕ СВЕДЕНИЯ

Традиционно инженеры стремились, а некоторые из них, не снижая качества проектов, добивались значительного сокращения сроков проектирования. В начале Великой Отечественной войны начальник Центрального артиллерийского конструкторского бюро В.Г. Грабин разработал и применил методы скоростного комплексного проектирования артиллерийских систем с одновременным проектированием технологического процесса. Внедрение этого метода позволило сократить сроки проектирования, производства и испытаний артиллерийских орудий с 30 мес (1939) до 2–2,5 мес (1943), увеличить их выпуск, уменьшить стоимость, упростить эксплуатацию.

Инженерный технологический подход [20] определяется спецификой комбинации стадий разработки, этапов и видов работ, ориентированной на разные классы программного обеспечения и особенности коллектива разработчиков.

Основные группы инженерных технологических подходов и подходы для каждой из них следующие:

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

Строгие (классические, жесткие, предсказуемые) подходы рекомендуется применять для средних, крупномасштабных и гигантских проектов с фиксированным объемом работ. Одно из основных требований к таким проектам — предсказуемость.

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

Классификация технологических подходов к созданию программ:

Подходы со слабой формализацией

Подход "кодирование и исправление"

Строгие подходы

Каскадные технологические подходы:

— классический каскадный;

— каскадно-возвратный;

— каскадно-итерационный;

— каскадный подход с перекрывающимися видами работ;

— каскадный подход с подвидами работ;

— спиральная модель.

Каркасные технологические подходы:

— рациональный унифицированный подход к видам работ.

Генетические технологические подходы:

— синтезирующее программирование;

— сборочное (расширяемое) программирование;

— конкретизирующее программирование.

Подходы на основе формальных преобразований:

— технология стерильного цеха;

— формальные генетические подходы.

Гибкие подходы

Ранние подходы быстрой разработки:

— эволюционное прототипирование;

— итеративная разработка;

— постадийная разработка.

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

— экстремальное программирование;

— адаптивная разработка;

Подходы исследовательского программирования:

— компьютерный дарвинизм.