Лекции разработка ПО / Texprog2
.docСпециальный курс «Технологии программирования»
Лекция 2. Классификация технологий программирования
Подходы со слабой формализацией
Эти подходы не используют явных технологий и их можно применять только для очень маленьких проектов, как правило, завершающихся созданием демонстрационного прототипа. К подходам со слабой формализацией относятся так называемые ранние технологические подходы, например подход "кодирование и исправление".
Строгие (классические, жесткие, предсказуемые) подходы
Данную группу подходов рекомендуется применять для средних, крупно масштабных и гигантских проектов с фиксированным объемом работ. Одно из основных требований к таким проектам — предсказуемость. В эту груш входят подходы, перечисленные ниже.
1. Каскадные технологические подходы.
-
Классический каскадный подход;
-
Каскадно-возвратный подход;
-
Каскадно-итерационный подход;
-
Каскадный подход с перекрывающимися процессами;
-
Каскадный подход с подпроцессами;
-
Спиральная модель.
2. Каркасные подходы.
-
Рациональный унифицированный процесс
3. Генетические подходы.
-
Синтезирующее программирование.
-
Сборочное (расширяемое) программирование.
-
Конкретизирующее программирование.
4. Подходы на основе формальных преобразований.
-
Технология стерильного цеха;
-
Формальные генетические подходы;
Гибкие (адаптивные, легкие) подходы
Подходы этой группы рекомендуется применять для небольших или средних проектов в случае неясных или изменяющихся требований к системе. Команда разработчиков должна быть ответственной и квалифицированной, а заказчики должны быть согласны принимать участие в разработке. В данную группу входят подходы, перечисленные ниже.
1. Ранние технологические подходы быстрой разработки.
-
Эволюционное прототипирование;
-
Итеративная разработка;
-
Постадийная разработка.
2. Адаптивные подходы.
-
Экстремальное программирование;
-
Адаптивная разработка.
3. Подходы исследовательского программирования.
• Компьютерный дарвинизм.
Классификация технологических процессов
Рассмотрим два набора (множества) технологических процессов. Первый набор — классический, включающий основные процессы, сложившиеся исторически в результате практического опыта разработки программного обеспечения. Второй набор — стандартный, т. е. основанный на стандарте ISO 12207:1995. Процессы классического набора фактически являются подмножеством стандартного, выступая там как процессы или действия процессов.
В классическом наборе выделим девять технологических процессов.
-
Возникновение и исследование идеи;
-
Управление;
-
Анализ требований;
-
Проектирование;
-
Программирование;
-
Тестирование и отладка;
-
Ввод в действие;
-
Эксплуатация и сопровождение;
-
Завершение эксплуатации.
Процессы жизненного цикла, определяемые международным стандартом ISO 12207 [ISO/IEC 12207:1995], делятся на три группы.
1. Основные процессы.
-
Приобретение;
-
Поставка ;
-
Разработка;
-
Эксплуатация;
-
Сопровождение;
2. Вспомогательные процессы.
-
Документирование;
-
Управление конфигурацией;
-
Обеспечение качества;
-
Верификация;
-
Аттестация;
-
Совместная оценка;
-
Аудит;
-
Разрешение проблем.
3. Организационные процессы.
-
Управление
-
Создание инфраструктуры
-
Усовершенствование
-
Обучение.
Проблемы и перспективы развития
В настоящее время развитие и совершенствование технологических подходов ведется по двум направлениям, которые достаточно сильно отличаются друг от друга своими задачами.
1. Максимизация качества. Задачи, решаемые на этом направлении — надежность, четкость и формализация — ориентированы на военные разработки и системы реального времени. Данное направление поддерживается строгими технологическими подходами, обеспечивающими предсказуемость.
2. Максимизация скорости разработки. Это направление в большей степени обращено к искусству, импровизации и поиску. Гибкие и адаптивные технологические подходы поддерживают именно этот путь. Особенность разработки определяется появлением новых классов систем. За последние несколько десятков лет такими классами были, например, системы "клиент-сервер", распределенные системы, интерактивные системы, системы интернет-приложений. С точки зрения технологий, задача разработки интернет-приложений является очень специфичной. Базироваться на классических технологических подходах ей не позволяют следующие особенности:
-
задача, как правило, не будет четко определена и специфицирована;
-
заказчики не смогут точно сформулировать свои требования;
-
как только система будет завершена, она устареет;
-
система должна правильно взаимодействовать с независимо разработанными программами.
Еще одно важное перспективное направление, связанное с технологией программирования — исследование человеческих и социальных факторов в информатике и программировании.