Модели ЖЦ.
Жизненный цикл программного продукта.
Жизненный цикл (ЖЦ) – это период от момента появления идеи создания ПО до момента завершения его поддержки.
- Постановка задачи (Техническое задание).
- Анализ требований и разработка спецификаций (Эскизный проект).
- Проектирование (Технический проект).
- Реализация (Рабочий проект).
- Сопровождение (отсутствует в современном стандарте).
Стандарт ISO/IEC 12207: 1995 “Information Technology – Software Life Cycle Process”. Содержит этапы: подготовительная работа (выбор моделей ЖЦ, методов, средств разработки, составление плана работ); анализ требований к системе; проектирование архитектуры; анализ требований к программному обеспечению; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; квалификационное тестирование ПО; интеграция системы; квалификационное тестирование системы; установку ПО; приёмку ПО.
- Каскадная (водопадная) модель.
Постановка задачи, анализ требований, проектирование, кодирование, тестирование, модификация.
- КМ с промежуточным контролем.
- Спиральная модель.
Постановка задачи, анализ, проектирование, реализация. Прототипирование.
- RAD – технология.
RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.
- Инструментарий должен быть нацелен на минимизацию времени разработки.
- Создание прототипа для уточнения требований заказчика.
- Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.
- Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию.
- Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей.
- Управление проектом должно минимизировать длительность цикла разработки.
5. Экстремальное программирование.
1. Короткий цикл обратной связи (Fine scale feedback)
– Разработка через тестирование (Test driven development) – техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования;
– Игра в планирование (Planning game)
– Заказчик всегда рядом (Whole team, Onsite customer)
– Парное программирование (Pair programming)
2. Непрерывный, а не пакетный процесс
– Непрерывная интеграция (Continuous Integration) – это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем;
– Рефакторинг (Design Improvement, Refactor) – процесс полного или частичного преобразования внутренней структуры программы при сохранении её внешнего поведения.
– Частые небольшие релизы (Small Releases)
3. Понимание, разделяемое всеми
– Простота (Simple design)
– Метафора системы (System metaphor)
– Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership) – каждый член команды несёт ответственность за весь исходный код, каждый вправе вносить изменения в любой участок программы
– Стандарт кодирования (Coding standard or Coding conventions) – набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования
4. Социальная защищенность программиста (Programmer welfare):
– 40-часовая рабочая неделя (Sustainable pace, Forty hour week)