Модели ЖЦ.

Жизненный цикл программного продукта

Проблемы разработки сложных программных систем

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. Экстремальное программирование.