Глава 3 ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ
Глава 3
ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ПОДХОДЫ К СОЗДАНИЮ ПРОГРАММ
3.1. ОСНОВНЫЕ СВЕДЕНИЯ
Традиционно инженеры стремились, а некоторые из них, не снижая качества проектов, добивались значительного сокращения сроков проектирования. В начале Великой Отечественной войны начальник Центрального артиллерийского конструкторского бюро В.Г. Грабин разработал и применил методы скоростного комплексного проектирования артиллерийских систем с одновременным проектированием технологического процесса. Внедрение этого метода позволило сократить сроки проектирования, производства и испытаний артиллерийских орудий с 30 мес (1939) до 2–2,5 мес (1943), увеличить их выпуск, уменьшить стоимость, упростить эксплуатацию.
Инженерный технологический подход [20] определяется спецификой комбинации стадий разработки, этапов и видов работ, ориентированной на разные классы программного обеспечения и особенности коллектива разработчиков.
Основные группы инженерных технологических подходов и подходы для каждой из них следующие:
Подходы со слабой формализацией не используют явных технологий и их можно применять только для очень маленьких проектов, как правило, завершающихся созданием демонстрационного прототипа. К таким подходом относят так называемые ранние технологические подходы, например подход "кодирование и исправление".
Строгие (классические, жесткие, предсказуемые) подходы рекомендуется применять для средних, крупномасштабных и гигантских проектов с фиксированным объемом работ. Одно из основных требований к таким проектам — предсказуемость.
Гибкие (адаптивные, легкие) подходы рекомендуется применять для небольших или средних проектов в случае неясных или изменяющихся требований к системе. При этом команда разработчиков должна быть ответственной и квалифицированной, а заказчики должны принимать участие в разработке.
Классификация технологических подходов к созданию программ:
Подходы со слабой формализацией
Подход "кодирование и исправление"
Строгие подходы
Каскадные технологические подходы:
— классический каскадный;
— каскадно-возвратный;
— каскадно-итерационный;
— каскадный подход с перекрывающимися видами работ;
— каскадный подход с подвидами работ;
— спиральная модель.
Каркасные технологические подходы:
— рациональный унифицированный подход к видам работ.
Генетические технологические подходы:
— синтезирующее программирование;
— сборочное (расширяемое) программирование;
— конкретизирующее программирование.
Подходы на основе формальных преобразований:
— технология стерильного цеха;
— формальные генетические подходы.
Гибкие подходы
Ранние подходы быстрой разработки:
— эволюционное прототипирование;
— итеративная разработка;
— постадийная разработка.
Адаптивные технологические подходы:
— экстремальное программирование;
— адаптивная разработка;
Подходы исследовательского программирования:
— компьютерный дарвинизм.