Модели ЖЦ.
Жизненный цикл программного продукта
Проблемы разработки сложных программных систем
1. Сложность формального определения требований к ПС.
2. Отсутствие удовлетворительных средств описания дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий.
3. Коллективная разработка.
4. Необходимость увеличения степени повторяемости кода.
Жизненный цикл (ЖЦ) – это период от момента появления идеи создания ПО до момента завершения его поддержки.
Этапы жизненного цикла (для первых 4 этапов в скобках указаны выходные документы).
1. Постановка задачи (Техническое задание).
2. Анализ требований и разработка спецификаций (Эскизный проект).
3. Проектирование (Технический проект).
4. Реализация (Рабочий проект).
5. Сопровождение (отсутствует в современном стандарте).
Стандарт ISO/IEC 12207: 1995 “Information Technology – Software Life Cycle Process”. Содержит этапы: подготовительная работа (выбор моделей ЖЦ, методов, средств разработки, составление плана работ); анализ требований к системе; проектирование архитектуры; анализ требований к программному обеспечению; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; квалификационное тестирование ПО; интеграция системы; квалификационное тестирование системы; установку ПО; приёмку ПО.
1. Каскадная (водопадная) модель.
Постановка задачи, анализ требований, проектирование, кодирование, тестирование, модификация.
2. КМ с промежуточным контролем.
3. Спиральная модель.
Постановка задачи, анализ, проектирование, реализация. Прототипирование.
4. RAD – технология.
RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.
· Инструментарий должен быть нацелен на минимизацию времени разработки.
· Создание прототипа для уточнения требований заказчика.
· Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.
· Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию.
· Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей.
· Управление проектом должно минимизировать длительность цикла разработки.
5. Экстремальное программирование.