18c0693f

Унифицированный процесс Rational


RUP [1,2] является довольно сложной, детально проработанной итеративной моделью жизненного цикла ПО.

Исторически RUP является развитием модели процесса разработки, принятой в компании Ericsson в 70–80-х годах XX века. Эта модель была создана Джекобсоном (Ivar Jacobson), впоследствии, в 1987 году, основавшим собственную компанию Objectory AB именно для развития технологического процесса разработки ПО как отдельного продукта, который можно было бы переносить в другие организации. После вливания Objectory в Rational в 1995 году разработки Джекобсона были интегрированы с работами Ройса (Walker Royce, сын автора "классической" каскадной модели), Крухтена (Philippe Kruchten) и Буча (Grady Booch), а также с развивавшимся параллельно универсальным языком моделирования (Unified Modeling Language, UML).

RUP основан на трех ключевых идеях:



увеличить изображение
Рис. 3.1.  Пример хода работ на фазе начала проекта

RUP выделяет в жизненном цикле 4 основные фазы, в рамках каждой из которых возможно проведение нескольких итераций. Кроме того, разработка системы может пройти через несколько циклов, включающих все 4 фазы.

  1. Фаза начала проекта (Inception)

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

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

    На эту фазу может уходить около 10% времени и 5% трудоемкости одного цикла.

    Пример хода работ показан на рис. 3.1.


    увеличить изображение
    Рис. 3.2.  Пример хода работ на фазе проектирования

  2. Фаза проектирования (Elaboration)

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

    На эту фазу может уходить около 30% времени и 20% трудоемкости одного цикла.

    Пример хода работ представлен на рис. 3.2.


    увеличить изображение
    Рис. 3.3.  Пример хода работ на фазе построения

  3. Фаза построения (Construction)

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

    На эту фазу уходит около 50% времени и 65% трудоемкости одного цикла.

    Пример хода работ на этой фазе представлен на рис.3.3.

  4. Фаза внедрения (Transition)

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



    На эту фазу может уходить около 10% времени и 10% трудоемкости одного цикла.

    Пример хода работ представлен на рис. 3.4.


    увеличить изображение
    Рис. 3.4.  Пример хода работ на фазе внедрения



Артефакты, вырабатываемые в ходе проекта, могут быть представлены в виде баз данных и таблиц с информацией различного типа, разных видов документов, исходного кода и объектных модулей, а также моделей, состоящих из отдельных элементов. Основные артефакты и потоки данных между ними согласно RUP изображены на рис. 3.5.

Наиболее важные с точки зрения RUP артефакты проекта — это модели, описывающие различные аспекты будущей системы. Большинство моделей представляют собой наборы диаграмм UML. Основные используемые виды моделей следующие:



Первые пять дисциплин считаются рабочими, остальные — поддерживающими. Распределение объемов работ по дисциплинам в ходе проекта выглядит, согласно руководству по RUP, примерно так, как показано на рис. 3.8.




увеличить изображение
Рис. 3.8.  Распределение работ между различными дисциплинами в проекте по RUP

Напоследок перечислим техники, используемые в RUP согласно [3].