Rational Unified Process (RUP ) - это итеративный фреймворк процесса разработки программного обеспечения, созданный Rational Software Corporation, подразделением IBM с 2003 года. RUP - это не отдельный конкретный предписывающий процесс, а, скорее, адаптируемый процесс структура, предназначенная для адаптации организациями-разработчиками и командами разработчиков программного обеспечения, которые выберут элементы процесса, соответствующие их потребностям. RUP - это конкретная реализация унифицированного процесса.
Rational Software изначально разработала рациональный унифицированный процесс как программный продукт. Продукт включает гиперссылку базы знаний с примерами артефактов и подробными описаниями для многих различных типов действий. RUP включен в продукт (RMC), что позволяет настраивать процесс.
Филиппу Крухтену, опытному техническому представителю Rational, было поручено возглавить первоначальную команду RUP. Этот путь начался с создания Rational Objectory Process (ROP) в 1996 году, когда Rational приобрела Objectory Process, который был написан Иваром Якобсоном и компанией. В последующих выпусках он был переименован в Rational Unified Process (RUP), отчасти для того, чтобы согласовать название с названием Unified Modeling Language.
Эти начальные версии объединили обширный практический опыт организации Rational Software в создании объектно-ориентированных систем (именуемых полевыми сотрудниками Rational как Rational Approach) с руководством Objectory по таким практикам, как варианты использования, и включили обширный контент от Джима. Подход Рамбо Object Modeling Technology (OMT) к моделированию, метод Grady Booch Booch и недавно выпущенный UML 0.8.
Чтобы помочь сделать Эта растущая база знаний стала более доступной, Филиппу Крухтену было поручено создать явную структуру процесса для современной разработки программного обеспечения. При этом использовался механизм доставки процессов на основе HTML, разработанный Objectory. Получившийся в результате «Rational Unified Process» (RUP) стал стратегической треногой для Rational:
Это руководство было дополнено в последующих версиях знаниями, основанными на опыте компаний, приобретенных Rational.
В 1997 г. к подходу были добавлены требования и дисциплина тестирования, большая часть дополнительных материалов была получена из метода Requirements College, разработанного Дином Леффингвеллом и др. в Requisite, Inc., и метод SQA Process, разработанный в SQA Inc., обе компании были приобретены Rational Software.
В 1998 году Rational Software добавила две новые дисциплины:
Эти дополнения приводят к всеобъемлющему набору принципов, которые были определены Rational и сформулированы в RUP как шесть лучших практик для современной разработки программного обеспечения:
Эти передовые практики были тесно связаны с линейкой продуктов Rational, и оба стимулировали текущую разработку продуктов Rational, а также использовались полевыми группами Rational для помощи клиентам в повышении качества и предсказуемости их усилий по разработке программного обеспечения.
Были включены дополнительные методы, включая тестирование производительности, дизайн пользовательского интерфейса, инженерию данных, а также обновление, отражающее изменения в UML 1.1.
В 1999 г. была введена дисциплина управления проектами, а также методы поддержки разработки программного обеспечения в реальном времени и обновлений для отражения UML 1.3. Кроме того, в том же году была издана первая книга, описывающая этот процесс, «Унифицированный процесс разработки программного обеспечения» (ISBN 0-201-57169-2 ).
Между 2000 и 2003 годами был внесен ряд изменений, основанных на текущем полевом опыте Rational в области итеративной разработки, в дополнение к инструментальной поддержке для внедрения экземпляров RUP и настройки структуры RUP. Эти изменения включали:
IBM приобрела Rational Software в феврале 2003 года.
В 2006 году IBM создала подмножество RUP, предназначенное для реализации проектов Agile - выпущен как метод OpenSource под названием OpenUP на веб-сайте Eclipse.
RUP основан на наборе строительных блоков и элементов контента, описывающих, что должно быть произведено, необходимых навыков и пошагового объяснения того, как должны быть достигнуты конкретные цели разработки. Основными строительными блоками или элементами контента являются следующие:
В рамках каждой итерации задачи разделены на девять дисциплин:
RUP определила жизненный цикл проекта, состоящий из четырех фаз. Эти фазы позволяют представить процесс на высоком уровне аналогично тому, как может быть представлен проект в стиле «водопада», хотя, по сути, ключ к процессу лежит в итерациях разработки, которые лежат в пределах всех фаз.. Кроме того, каждая фаза имеет одну ключевую цель и веху в конце, которая обозначает цель, которую вы достигли. Визуализация фаз и дисциплин RUP с течением времени называется диаграммой горба RUP.
Основная цель - адекватно определить масштаб системы в качестве основы для проверки первоначальных затрат и бюджетов. На этом этапе составляется экономическое обоснование, которое включает бизнес-контекст, факторы успеха (ожидаемый доход, признание рынка и т. Д.) И финансовый прогноз. В дополнение к бизнес-модели генерируются базовая модель варианта использования, план проекта, первоначальная оценка рисков и описание проекта (основные требования проекта, ограничения и ключевые особенности). После их завершения проект проверяется на соответствие следующим критериям:
Если проект не проходит эту веху, называемую целевой вехой жизненного цикла, ее можно либо отменить, либо повторить после перепроектирования, чтобы лучше соответствовать критериям.
Основная цель - снизить ключевые элементы риска, выявленные в результате анализа до конца этого этапа. На этапе разработки проект начинает обретать форму. На этом этапе проводится анализ проблемной области, и архитектура проекта принимает свою базовую форму.
Результатом этапа разработки является:
Эта фаза должна соответствовать критериям вехи архитектуры жизненного цикла, отвечающим на следующие вопросы:
Если проект не может пройти этот рубеж, еще есть время для его отмены или изменения дизайна. Однако после выхода из этого этапа проект переходит в операцию с высоким риском, когда изменения намного сложнее и вреднее.
Ключевым предметом анализа для разработки является архитектура системы.
Основная цель - построить систему программного обеспечения. На этом этапе основное внимание уделяется разработке компонентов и других функций системы. Это этап, на котором происходит основная часть кодирования. В более крупных проектах может быть разработано несколько итераций конструкции, чтобы разделить варианты использования на управляемые сегменты, чтобы получить наглядные прототипы.
Основная цель - «перевести» систему из стадии разработки в производство, сделав ее доступной и понятной для конечного пользователя. Действия этого этапа включают обучение конечных пользователей и специалистов по обслуживанию, а также бета-тестирование системы для проверки ее соответствия ожиданиям конечных пользователей. Система также проходит этап оценки, любой разработчик, не выполняющий требуемую работу, заменяется или удаляется. Продукт также проверяется на соответствие уровню качества, установленному на начальном этапе.
Если все цели достигнуты, этап выпуска продукта достигнут и цикл разработки завершен.
Продукт IBM Rational Method Composer - это инструмент для создания, настройки, просмотра и публикации процессов. См. И проект с открытым исходным кодом Eclipse Process Framework (EPF) для получения более подробной информации.
В январе 2007 года был выпущен новый сертификационный экзамен RUP для IBM Certified Solution Designer - Rational Unified Process 7.0, который заменяет предыдущую версию курса под названием IBM Rational Certified Specialist - Rational Unified Process. Новый экзамен будет проверять не только знания, относящиеся к содержанию RUP, но и к элементам структуры процесса.
Чтобы сдать новый сертификационный экзамен RUP, человек должен пройти тест IBM Test 839: Rational Unified Process v7.0. На экзамен из 52 вопросов дается 75 минут. Проходной балл составляет 62%.
Шесть лучших практик разработки программного обеспечения определены для программных проектов, чтобы минимизировать ошибки и повысить производительность. Это: