Жизненный цикл RUP
На этой странице описаны этапы и вехи типичного жизненного цикла проекта RUP.
Взаимосвязи
Основное описание

Этапы и вехи проекта

С точки зрения управления проектом жизненный цикл программного обеспечения в Rational Unified Process (RUP) состоит из четырех последовательных этапов, в конце каждого из которых находится большая веха. Таким образом, каждый этап представляет собой промежуток времени между двумя большими вехами. В конце каждого этапа выполняется проверка того, были ли достигнуты цели, которые были поставлены для данного этапа. Если будет получен положительный ответ, начинается выполнение следующего этапа проекта.

Планирование этапов

Этапы отличаются друг от друга по длительности и трудоемкости. Хотя эти характеристики индивидуальны для каждого проекта, для типичного начального цикла разработки проекта среднего размера они распределены следующим образом:

  начало уточнение построение внедрение
Трудоемкость ~5 % 20 % 65 % 10%
Продолжительность 10 % 30 % 50 % 10%

графически это выглядит следующим образом:

Внедрение Построение Уточнение Начало Для просмотра дополнительных сведений щелкните на интересующем вас этапе

На практике распределение может быть другим. Например, автоматизация создания кода и тестовых наборов может привести к сокращению этапа построения. В проектах, заключающихся в модернизации существующих систем, будет короче начальный этап и этап уточнения, поскольку общее видение и архитектура уже будут существовать.

Планирование стратегий

В этом разделе обсуждаются несколько шаблонов жизненных циклов, характерных для проектов разных типов.

Шаблон жизненного цикла: инкрементальный

"Инкрементальная стратегия заключается в выявлении потребностей пользователей, формулировке требований к системе и разработке программного продукта в несколько циклов компоновки. Первый цикл компоновки охватывает часть функций конечной системы, следующий - еще часть функций, и так далее вплоть до построения полной системы". [DOD94]

Характерны следующие итерации:

  • короткая итерация начального этапа, в ходе которой формулируются содержание и видение и создается экономическое обоснование проекта
  • одна итерация этапа уточнения, в ходе которой формулируются требования и создается проект архитектуры
  • несколько итераций построения, в ходе которых строится архитектура и реализуются варианты
  • несколько итераций этапа внедрения, в ходе которых продукт передается пользователям

Диаграмма, описанная в тексте.

Эта стратегия применяется в следующих случаях:

  • Предметная область знакома.
  • Риски хорошо известны.
  • Над проектом работает опытный коллектив.

Шаблон жизненного цикла: эволюционный

"Эволюционная стратегия отличается от стратегии дополнения предположением о том, что потребности пользователей понимаются не в полном объеме, поэтому невозможно заранее предусмотреть все требования, и поэтому требования уточняются в каждом цикле компоновки". [DOD94]

Характерны следующие итерации:

  • короткая итерация начального этапа, в ходе которой формулируются содержание и видение и создается экономическое обоснование проекта
  • несколько итераций этапа уточнения, в каждой из которых уточняются требования
  • одна итерация построения, в ходе которой реализуются варианты и расширяется архитектура
  • несколько итераций этапа внедрения, в ходе которых продукт передается пользователям

Диаграмма, описанная в тексте.

Эта стратегия применяется в следующих случаях:

  • Предметная область незнакома или нова.
  • Разработку ведет неопытный коллектив.

Шаблон жизненного цикла: Дополняющее внедрение 

Некоторые авторы также разделяют поставку программного обеспечения, разрабатываемого по стратегии дополнения, на несколько этапов [GIL88]. Это может потребоваться в ситуациях, когда требуется максимально быстрый вывод продукта на рынок и когда от того, насколько рано будет выпущен продукт, напрямую зависит его коммерческий успех.

С точки зрения структуры итераций и этапов, этап внедрения начинается сравнительно рано и содержит максимальное число итераций. Для реализации данной стратегии нужна очень стабильная архитектура, чего сложно добиться в первом цикле разработки при создании системы с нуля.

Характерны следующие итерации:

  • короткая итерация начального этапа, в ходе которой формулируются содержание и видение и создается экономическое обоснование проекта
  • одна итерация этапа уточнения, в ходе которой проектируется стабильная архитектура
  • одна итерация построения, в ходе которой реализуются варианты и строится архитектура
  • несколько итераций этапа внедрения, в ходе которых продукт передается пользователям

Диаграмма, описанная в тексте.

Эта стратегия применяется в следующих случаях:

  • Предметная область знакома:

    • есть возможность стабилизировать архитектуру и требования на раннем этапе цикла разработки
    • перед системой не ставятся необычные или уникальные задачи
  • Над проектом работает опытный коллектив.
  • Постепенная реализация функций с поставкой промежуточных версий предпочтительна для заказчика.

Шаблон жизненного цикла: "полномасштабная разработка"

Традиционный водопадный метод можно рассматривать в качестве упрощенной модели с одной итерацией на этапе построения. Этот метод называется "полномасштабной разработкой" ("grand design") в книге [DOD94]. На практике избежать дополнительных итераций на этапе внедрения довольно непросто.

Характерны следующие итерации:

  • короткая итерация начального этапа, в ходе которой формулируются содержание и видение и создается экономическое обоснование проекта
  • одна очень длительная итерация построения, в ходе которой реализуются варианты и строится архитектура
  • несколько итераций этапа внедрения, в ходе которых продукт передается пользователям

Диаграмма, описанная в тексте.

Эта стратегия применяется в следующих случаях:

  • вносятся незначительные изменения или добавляются хорошо известные функции в очень стабильный продукт
  • новые функции четко сформулированы и понятны
  • в проекте участвуют опытные разработчики, хорошо знакомые с предметной областью и существующим продуктом

Шаблон жизненного цикла: Гибридная стратегия

На практике проекты очень редко в точности следуют одной стратегии. Зачастую дело заканчивается гибридной стратегией с развитием архитектуры в начале разработки, дополняющей компоновкой и поставкой нескольких версий заказчику. Одно из преимуществ итерационной многоэтапной модели заключается в том, что она позволяет реализовать гибридный подход просто путем увеличения количества итерации и продления тех или иных этапов:

  • При работе в сложных и незнакомых предметных областях с большим объемом исследований следует продлить этап уточнения и увеличить количество итераций в нем.
  • При разработке сложных продуктов, когда возникают сложности с кодированием разработанного проекта следует продлить этап построения и увеличить количество итераций в нем.
  • Для организации поставки нескольких последовательных выпусков программного обеспечения следует продлить этап внедрения и увеличить количество итераций в нем.


Переход к следующему циклу

Однократное выполнение четырех этапов называется циклом разработки, в конце каждого цикла разработки создается поколение программного обеспечения. До тех пор пока продукт не "умрет", его новые поколения будут создаваться в результате выполнения одной и той же череды этапов: начала, уточнения, построения и внедрения. Однако характер этих этапов меняется с выпуском новых поколений продукта. Все циклы разработки, начиная со второго, называются циклами эволюции. После каждого цикла эволюции создается новое поколение продукта.

График начальной разработки

Очередной цикл эволюции может быть выполнен для реализации функций, о которых попросили пользователи, в результате изменения контекста работы пользователей или технологии, на основе которой построена система, для реакции на действия конкурентов и т.д. Для циклов эволюции характерны очень короткие начальные этапы и уточнения, поскольку архитектура и базовый набор функций продукта были реализованы в ходе первого цикла разработки.   Исключениями из этого правила являются циклы эволюции, в которых вносятся значительные изменения в продукт или его архитектуру.