Инкрементная модель
История модели
Инкрементная модель разработки программного обеспечения была впервые предложена в 1970-х годах. Концепцию модели в основном разработал Барри Боэм. Она приобрела популярность благодаря концепциям гибкости и улучшения адаптивности, представленным в работе Томаса Гилба. Согласно этой модели, разработка продукта ведется поэтапно. На каждом этапе добавляются новые функции к предыдущему. Инкрементная модель активно используется с конца 1980-х годов, в основном крупными американскими компаниями-разработчиками программного обеспечения.
Этапы
Основные этапы разработки инкрементной модели:
- Анализ требований: на этом этапе определяется основной набор требований для первого инкремента (версии) системы. Это начальный набор требований для первоначальной реализации системы. Это первый шаг в разработке первоначальной системы. Оцениваются требования, которые могут быть реализованы на первых этапах, и те, которые остаются на будущее.
- Проектирование (инжиниринг): базовая архитектура и компоненты системы проектируются таким образом, чтобы их можно было интегрировать на последующих этапах.
- Реализация и тестирование инкрементов: команда разрабатывает и тестирует первый инкремент системы. Этот процесс повторяется на каждом этапе для каждого нового инкремента, который добавляет новую функциональность в систему.
- Интеграция и тестирование: после завершения каждого инкремента новый компонент интегрируется с существующими компонентами системы, и проводится интеграционное тестирование, чтобы убедиться, что все компоненты работают вместе.
- Выпуск и обзор: после того как система достигла требуемой функциональности, проводится окончательное тестирование, после чего она передается заказчику. Процесс завершается сбором отзывов и возможных улучшений.
Схема

5 шт. плюсов
- Гибкость: модель позволяет легко адаптироваться к меняющимся требованиям заказчика, добавляя новые функции на каждом этапе.
- Параллельная разработка: Несколько команд могут работать над разными инкрементами, ускоряя процесс разработки.
- Ранний выпуск продукта.
- Снижение рисков: проблемы могут быть выявлены и решены на ранних этапах разработки, что снижает риск пропуска сроков.
- Более простое устранение неполадок: поскольку каждая функция тестируется на этапе инкрементальной разработки, выявленные ошибки проще и дешевле исправить.
5 шт. минусов
- Инкрементная зависимость: ошибки, допущенные на ранней стадии, могут привести к проблемам на более поздних этапах, что увеличивает стоимость улучшений.
- Сложность управления: модель требует тщательного управления процессами и четкого документирования со стороны команды.
- Увеличение затрат: многочисленные этапы тестирования и интеграции увеличивают время и затраты.
- Сложность изменения требований: несмотря на гибкость модели, значительные изменения могут потребовать переделки уже завершенных этапов.
- Сложности с прогнозированием графика: когда на каждом этапе добавляются новые требования, трудно точно предсказать окончательный график проекта.