Rational Unified Process объединяет в себе методологию и программный инструментарий
Не будет преувеличением сказать, что в мире разработки ПО компания Rational Software входит в число законодателей мод. Будучи создателем стандартных спецификаций унифицированного языка моделирования UML (Unified Modeling Language) и поставщиком одного из лучших инструментальных средств разработки, Rational, безусловно, занимает ведущие позиции в отрасли. Именно поэтому Rational Unified Process (RUP) заслуживает самого пристального внимания. Особенно это касается организаций, занимающихся проектированием ПО и намеревающихся формализовать процедуру программирования. RUP представляет собой очень удачную, прошедшую испытание временем процедуру, обладающую высокой степенью настраиваемости.
Итак, что же такое RUP? По сути, RUP объединяет в себе две совершенно различные вещи: методологию и программный инструментарий. Традиционная методология представляет собой совокупность знаний, которые требуется изучить и применять на практике, а программное обеспечение — это инструментарий, устанавливаемый на компьютер и используемый в работе. С позиций формального процесса проектирования программного обеспечения RUP — прежде всего кладезь знаний, но в рамках продукта Rational это еще и программное обеспечение.
Если рассматривать сам процесс, то RUP базируется на наборе решений, которые считаются в настоящее время общепринятой основой применения методологии на практике. Найти сегодня популярную формальную методологию, которая не включала бы в себя те же аспекты, что и RUP, практически невозможно, поскольку все ее предшественники находились под влиянием друг друга.
Процесс разработки RUP построен на основе Web-приложений. Такое приложение является составной частью общей базы знаний и включает в себя документацию процесса, примеры, руководства и полезные советы. Web-приложение предоставляет членам команды разработки шаблоны и инструкции по использованию инструментальных средств, а также продукты, предназначенные для конкретного процесса.
При помощи данного приложения члены команды изучают процедуру проектирования программного обеспечения, получают доступ к шаблонам, ориентированным на реализацию той или иной части процесса, а также просматривают его существующие компоненты. Панель инструментов, находящаяся в окне браузера, обеспечивает быстрый доступ к большинству элементов процесса.
Представляя процесс в виде приложения, RUP устраняет тем самым основные препятствия на пути адекватной реализации процесса, сокращает связанный с ним цикл обучения, упрощает выполнение основных процедур и генерацию компонентов. Задача заключается в правильном применении накопленного опыта. Вот здесь-то и вступает в действие программная часть RUP.
С продуктовой точки зрения RUP состоит из набора развернутых руководств членам команды по всем аспектам жизненного цикла разработки программного обеспечения. Руководства включают в себя инструкции по использованию инструментальных средств, связанных с процессом, шаблоны Rational Rose, Rational SoDA, Microsoft Word и Microsoft Project, а также набор средств, описывающий порядок настройки и расширения RUP в соответствии со спецификой конкретной организации. Управление всей этой информацией осуществляется при помощи Web-приложения.
Технология RUP включает в себя также набор инструментальных средств разработчика и инструкции по настройке процесса и компонентов Web-приложений. Сторонники данного подхода могут использовать также отдельный программный продукт Rational Process Workbench, позволяющий вносить в процессы глобальные изменения (например, учитывать тот положительный опыт, который был накоплен компанией).
Компания Rational решила перенести часть информации в программный компонент RUP. Это особенно важно, потому что один из наиболее существенных моментов при использовании или реализации нового процесса заключается в том, чтобы максимально ускорить работу команды. Но нельзя забывать и о необходимости обучения персонала.
Многие сегодня считают методологию «экстремального программирования» достаточно совершенной, но в отличие от нее RUP учитывает возможность значительного усложнения разрабатываемых программ. Вероятно, некоторые найдут такую формализацию чересчур жесткой, но многим приложениям действительно нужны жесткие рамки RUP.