Унифицированный процесс Rational
RUP является довольно сложной, детально проработанной итеративной моделью жизненного цикла. Он делит жизненный цикл ПО на 4 основные фазы, в рамках каждой из которых возможно проведение нескольких итераций.
1. Фаза начала проекта (Inception)
Основная цель этой фазы — достичь компромисса между всеми заинтересоваными лицами относительно задач проекта.
На этой фазе определяются основные цели проекта, руководитель проекта и бюджет проекта, основные средства его выполнения — технологии, инструменты, ключевой персонал, а также происходит, возможно, апробация выбранных технологий с целью подтверждения возможности достичь целей с их помощью, составляются предварительные планы проекта.
2. Фаза проработки (Elaboration)
Основная цель этой фазы — на базе основных, наиболее существенных требований разработать стабильную базовую архитектуру продукта, которая позволяет решать поставленные перед системой задачи и в дальнейшем используется как основа разработки системы.
3. Фаза построения (Construction)
Основная цель этой фазы — детальное прояснение требований и разработка системы, удовлетворяющей им, на основе спроектированной ранее архитектуры.
4. Фаза передачи (Transition)
Цель этой фазы — сделать систему полностью доступной конечным пользователям. Здесь происходит окончательное развертывание системы в ее рабочей среде, подгонка мелких деталей под нужды пользователей.
Кроме того, RUP определяет следующие виды деятельности, которые в разных комбинациях и с разной интенсивностью, выполняются на разных фазах. В документации по процессу каждый вид деятельности сопровождается довольно большой диаграммой, поясняющей основные действия, которые нужно выполнить в ходе работ по данному виду деятельности, и основные виды данных, с которыми надо иметь дело.
· Моделирование предметной области (бизнес-моделирование, Business Modeling)
Цели этой деятельности — понять бизнес-контекст, в котором должна будет работать система (и убедиться, что все заитересованные лица понимают его одинаково), понять возможные проблемы, оценить возможные их решения и их последствия для бизнеса организации, в которой будет работать система.
в результате моделирования предметной области должна появиться ее модель в виде набора диаграмм классов (объектов предметной области) и деятельностей (представляющий бизнес-операции и бизнес-процессы).
· Определение требований (Requirements)
Цели — понять, что должна делать система, и убедиться во взаимопонимании по этому поводу между заинтересованными лицами, определить границы системы и основу для планирования проекта и оценок ресурсозатрат в нем.
Требования принято фиксировать в виде модели вариантов использования (use cases).
· Анализ и проектирование (Analysis and Design)
Цели — выработать архитектуру системы на основе требований, убедиться, что данная архитектура может быть основой работающей системы в контексте ее будущего использования.
В результате проектирования должна появиться проектная модель, включающая диаграммы классов системы, диаграммы ее компонентов, диаграммы взаимодействий между объектами в ходе реализации вариантов использования, диаграммы состояний для отдельных объектов, и диаграммы развертывания.
· Реализация (Implementation)
Цели — определить структуру исходного кода системы, разработать код ее компонентов и протестировать их, интегрировать систему в работающее целое
· Тестирование (Test)
Цели — найти и описать дефекты системы (проявления ее недостаточного качества), оценить ее качество в целом, оценить выполнение гипотез, лежащих в основе проектирования, оценить степень соответствия истемв требованиям
· Развертывание (Deployment)
Цели — развернуть систему в ее рабочем окружении и оценить ее работоспособность
· Управление конфигурациями и изменениями (Configuration and Change Management)
Цели — определение элементов, подлежащих хранению и правил построения из них согласованных конфигураций, поддержание целостности текущего состояния системы, проверка согласованности вносимых изменений
· Управление проектом (Project Management)
Цели — планирование, управление персоналом, обеспечения связей с другими заинтересованными лицами, управление рисками, отслеживание текущего состояния проекта
· Управление средой проекта (Environment)
Цели — подстройка процесса под конкретный проект, выбор и смена технологий и инструментов, используемых в проекте
Первые пять деятельностей считаются рабочими, остальные — поддерживающими. Распределение объемов работ в ходе проекта выглядит примерно так.
Рисунок 3. Распределение работ в проекте по RUP.
Основные техники, используемые в RUP таковы
· Выработка концепции проекта (project vision) в самом его начале для четкой постановки задач
· Управление по плану
· Снижение рисков и отслеживание их последствий, работа по преодалению рисков должна начинаться как можно раньше
· Тщательное экономическое обоснование всех действий, делается только то, что нужно заказчику
· Выявление требований и их фиксация в виде вариантов использования (use cases).
· Формирование базовой архитектуры как можно раньше.
Вообще, архитектура системы является хребтом всего проекта в RUP. На основе архитектуры организуются большинство деятельностей. Архитектура фиксируется в виде нескольких моделей, используемых и обновляемых по ходу всего проекта.
И архитектурные модели, и модели вариантов использования оформляются на графическом унифицированном языке моделирования (unified modeling language, UML).
· Использование компонентной архитектуры
· Прототипирование, инкрементная разработка и тестирование
· Регулярные оценки текущего состояния
· Управление изменениями, постоянная отработка изменений извне проекта
· Создание продукта, работоспособного в реальном окружении
· Нацеленность на качество
· Адаптация процесса под нужды проекта