Rational Unified Process – одна из спиральных методологий разработки программного обеспечения. В качестве языка моделирования в общей базе знаний используется язык Unified Modelling Language (UML).
Отличительной чертой данной методологии является итерационная разработка программного обеспечения, предполагающая разделение проекта на несколько мелких проектов, которые выполняются последовательно, и каждая итерация разработки четко определена набором целей, которые должны быть достигнуты в конце итерации. Конечная итерация предполагает, что набор целей итерации должен в точности совпадать с набором целей, указанных заказчиком продукта, то есть все требования должны быть выполнены.
Наибольшее внимание уделяется начальным стадиям разработки проекта – анализу и моделированию. Таким образом, эта методология направлена на снижение коммерческих рисков (risk mitigating) посредством обнаружения ошибок на ранних стадиях разработки. Технические риски (assesses) оцениваются и «расставляются» согласно приоритетам на ранних стадиях цикла разработки, а затем пересматриваются с течением времени и с развитием проекта в течение последующих итераций. Новые цели появляются в зависимости от приоритетов данных рисков. Релизы версий распределяются таким образом, что наиболее приоритетные риски устраняются первыми.
RUP предоставляет структурированный подход к итерационной разработке программного обеспечения, подразделяя процесс на четыре основные фазы:
- Inception – понимание, что мы создаем. Фаза сбора информации и анализа требований, определение образа проекта в целом;
- Elaboration – понимание, как мы это создаем. Фаза анализа требований и проектирования системы, планирование необходимых действий и ресурсов, спецификация функций и особенностей дизайна;
- Construction – создание бета-версии продукта. Основная фаза разработки и кодирования, построение продукта как восходящей последовательности итераций (версий кода);
- Transition – создание конечной версии продукта. Фаза внедрения продукта, поставка продукта конкретному пользователю.

Это фазы управления эволюцией продукта – итерациями жизненного цикла.
Методология RUP основана на девяти основных потоках (workflow), являющихся элементами итерации жизненного цикла ПО:
· Business modeling (бизнес-анализ) – предполагает анализ требований на данной итерации жизненного цикла, определение желаемых параметров системы и нужд пользователей;
· Requirements (требования) - формализация образа системы. Предполагает сбор требований и управление требованиями, перевод требований в функциональные спецификации. Здесь начинается анализ прецедентов и построение use cases (пользовательских историй) – формальное отображение требований пользователя в UML. Результатом являются документы уровня менеджмента;
· Analysis and design (анализ и моделирование) – предполагает перевод собранных требований в формализованную программную модель. Результатом является описание системы на фазе реализации (технический проект) - это документы уровня разработчиков системы. Язык формализации – Unified Modelling Language (UML)
· Implementation (реализация, кодирование) – предполагает собственно написание кода.
· Test (тестирование) – предполагает тестирование продукта на данной итерации. Стоит специально отметить, что regression testing (возвратное тестирование, тестирование «неухудшения» продукта) в данном случае должно содержать все актуальные тесты от предыдущей итерации и приемосдаточные тесты от предыдущей transition-фазы;
· Deployment (внедрение) – предполагает установку продукта у заказчика, подготовку персонала, запуск системы плюс приемо-сдаточные испытания, передача материалов отделу продаж (действия опциональны в зависимости от специфики продукта).
· Configuration management (управление конфигурацией и изменениями) – инструментарий, направленный на управление версиями продукта, что предполагает контроль исходного кода (модели, исполняемых модулей, тестов, документации), контроль версий продукта, корпоративные стандарты разработки кода и документации, отслеживание изменений и ошибок (bug tracking); тесно связан с тестированием и поддержкой пользователей (customers support);
· Management (управление проектом) – предполагает набор административных действий управления проектом согласно идеологии RUP
· Environment (окружение) – предполагает создание и поддержку средств анализа, проектирования, разработки, тестирования (как программное, так и аппаратное обеспечение).