Инкрементная модель

История модели

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

Этапы

Основные этапы разработки инкрементной модели:

  1. Анализ требований: на этом этапе определяется основной набор требований для первого инкремента (версии) системы. Это начальный набор требований для первоначальной реализации системы. Это первый шаг в разработке первоначальной системы. Оцениваются требования, которые могут быть реализованы на первых этапах, и те, которые остаются на будущее.
  2. Проектирование (инжиниринг): базовая архитектура и компоненты системы проектируются таким образом, чтобы их можно было интегрировать на последующих этапах.
  3. Реализация и тестирование инкрементов: команда разрабатывает и тестирует первый инкремент системы. Этот процесс повторяется на каждом этапе для каждого нового инкремента, который добавляет новую функциональность в систему.
  4. Интеграция и тестирование: после завершения каждого инкремента новый компонент интегрируется с существующими компонентами системы, и проводится интеграционное тестирование, чтобы убедиться, что все компоненты работают вместе.
  5. Выпуск и обзор: после того как система достигла требуемой функциональности, проводится окончательное тестирование, после чего она передается заказчику. Процесс завершается сбором отзывов и возможных улучшений.

Схема

5 шт. плюсов

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

5 шт. минусов

  1. Инкрементная зависимость: ошибки, допущенные на ранней стадии, могут привести к проблемам на более поздних этапах, что увеличивает стоимость улучшений.
  2. Сложность управления: модель требует тщательного управления процессами и четкого документирования со стороны команды.
  3. Увеличение затрат: многочисленные этапы тестирования и интеграции увеличивают время и затраты.
  4. Сложность изменения требований: несмотря на гибкость модели, значительные изменения могут потребовать переделки уже завершенных этапов.
  5. Сложности с прогнозированием графика: когда на каждом этапе добавляются новые требования, трудно точно предсказать окончательный график проекта.