ТЕХНОЛОГИИ
Разработка программных продуктов, еще недавно бывшая уделом избранных одиночек, в настоящее время превратилась в высокодоходную сферу бизнеса. В ИТ-проектах заняты миллионы программистов и аналитиков, руководителей разного ранга и простых инженеров по всему миру. Процесс создания программных систем стал технологией, где у каждого члена проектной команды определено свое место и круг обязанностей, где строго регламентированы все этапы - от замысла до передачи пользователям рабочей версии программы. Это единственный путь к созданию больших и малых программных систем, который позволяет уложиться в установленные сроки и выделенный бюджет, создав при этом систему нужного качества.
Хотя индустрия разработки ПО достаточно молода, многие компании-разработчики уже осознали, что успех программных проектов зависит от однозначного определения и грамотного документирования процесса. Корпорация Rational Software (www.rational.com), ведущий производитель инструментария для создания сложных программных систем, формализовала технологический процесс разработки ПО и выпустила на рынок структурированную базу знаний под названием Rational Unified Process (RUP), в которую вошли методические рекомендации ведущих разработчиков по эффективному созданию приложений и систем. При этом RUP не есть нечто застывшее. База знаний регулярно обновляется и совершенствуется с учетом передового опыта.
Фазы и процессы RUP
RUP создана в виде страниц формата HTML, имеющих обширную систему гиперссылок, графическую навигацию, подробное оглавление и встроенный поисковый механизм. База распространяется на компакт-дисках и посредством сети Интернет. Последняя версия продукта всегда доступна на сайте производителя. Там же можно бесплатно ознакомиться с полнофункциональной тридцатидневной пробной версией для принятия решения об ее использовании и просмотреть деморолик. Вместе с самой базой предоставляется книга Ф. Крачтена (Ph. Kruchten) “Rational Unified Process - an Introduction”, облегчающая погружение в RUP (в прошлом году она вышла в русском переводе *1).
_____
*1. Крачтен Филипп. Введение в Rational Unified Process. - 2-e изд.: Пер. с англ. - M.: Издательский дом “Вильямс”, 2002. - 240 с.
RUP поддерживает технологию разработки программных продуктов для различных платформ, предоставляет детальные рекомендации команде программистов как по переходу к разработке на платформе Microsoft .NET, так и по самой этой разработке. Также поддерживается плагин WinDNA для тех, кто не собирается переходить на платформу .NET
Возможна и разработка ПО для платформы Java 2 Enterprise Edition (J2EE). Доступны плагины для использования платформ IBM WebSphere, BEA WebLogic и HP Bluestone Total e-Server. Последний был включен в версию RUP 2002 и в текущем виде не был доступен в предыдущих версиях продукта.
RUP ведет свою историю от продуктов Rational Approach и Objectory Process 3.8, объединение которых произошло после слияния в 1995 г. корпораций Rational Software и Objectory AB.
Сейчас больше тысячи компаний воспользовались преимуществами разработки на основе RUP. Унифицированный процесс разработки используется в различных прикладных областях, в больших и малых проектах, что доказывает его универсальность и широкую применимость. В телекомунникационной сфере его используют Ericsson, Alcatel, MCI, в авиационно-космической и оборонной промышленности - Lockheed-Martin, British Aerospace, на промышленных предприятиях - Xerox, Volvo, Intel, в финансовой сфере - Visa, Merrill Lynch, Schwab. Этот процесс также взят на вооружение такими интеграторами, как Ernst & Young, Oracle, Deloitte & Toucche.
Каждая из этих компаний использует RUP по-своему. Одни строго следуют всем рекомендациям Rational Software, другие же создают на его основе свои методики, прибегая к этой базе знаний как к источнику советов, шаблонов и руководств.
Основными понятиями RUP являются артефакт (artifact) и прецедент (precedent). Артефакты - это некоторые продукты проекта, порождаемые или используемые в нем при работе над окончательным продуктом. Прецеденты - это последовательности действий, выполняемых системой для получения наблюдаемого результата.
Процесс анализа проблемы
Весь процесс разработки программной системы рассматривается в RUP как процесс создания артефактов. Причем то, что попадает в руки конечного пользователя, будь то программный модуль или программная документация, - это один из подклассов всех артефактов проекта.
Каждый член проектной группы создает свои артефакты и несет за них ответственность. Программист разрабатывает программу, руководитель - проектный план, а аналитик - модели системы. RUP позволяет определить, когда, кому и какой артефакт необходимо создать.
Основной упор в RUP делается не на подготовку документов как таковых, а на моделирование разрабатываемой системы. Модели помогают очерчивать как проблему, так и пути ее решения, и создаются они при помощи унифицированного языка Unified Modeling Language (UML), предложенного компанией Rational и впоследствии утвержденного OMG как стандарт, но еще до это UML стал стандартом де-факто для описания сложных систем и позволяет разработчикам определять, визуализировать, конструировать и документировать артефакты программных систем.
Все задачи, описанные в RUP, поддерживаются средствами разработки от Rational Software. В RUP включен раздел Tool Mentors, в котором подробно описывается использование Rational Rose для создания UML-моделей, Rational RequisitePro, Rational Clear Quest, Rational Clear Case для анализа требований, запросов на измерения и исправления дефектов и для поддержки процесса унифицированного управления изменениями (UCM). В этом же разделе описываются методы применения Rational Purify, Rational PureCoverage, Rational Quantify, Rational Robot для автоматизации процесса тестирования и поиска дефектов программного обеспечения, а Rational SoDa - для автоматизации процесса документирования. Кроме того, Tool Mentors содержит подробные рекомендации по использованию этих и других средств компании Rational для создания конкретных артефактов разрабатываемой системы.
Весь процесс разработки с точки зрения RUP рассматривается в двух плоскостях. В динамике процесс выражается через циклы, фазы, итерации и вехи, а в статике - через виды деятельности, технологические процессы, артефакты и роли исполнителей.
Процесс определения требований
Каждый такой процесс представляется при помощи диаграмм, состоящих из пиктограмм, связанных гиперссылками с другими документами. При активизации гиперссылок происходит детализация процесса.
Это дает возможность пройти через всю последовательность необходимых работ - от общего взгляда на них “с высоты птичьего полета” до создания конкретных артефактов.
Система гиперссылок построена таким образом, что можно легко переходить от работ к артефактам, создаваемым в процессе конкретной деятельности, а через них к ролям исполнителей и обратно. К артефактам можно добраться различными путями - например, через список процессов, примеры итераций, роли исполнителей, а можно просто найти нужный артефакт в дереве ссылок, что позволяет рассматривать один и тот же процесс разработки с различных точек зрения - руководителя и исполнителя, пользователя и программиста.
Основные артефакты, создаваемые в процессе разработки, представлены в RUP в виде готовых шаблонов, облегчающих их создание в конкретном проекте. В базу включены шаблоны более тридцати документов, для большинства распространенных типов отчетов представленные в форматах MS Word и Adobe FrameMaker. Шаблоны Rational SoDa позволяют автоматизировать процесс сбора документов из множества источников, а шаблоны RequisitePro облегчают управление требованиями. В помощь специалистам, занимающимся планированием итеративных проектов на основе RUP, в него включены шаблоны Microsoft Project. Также доступны шаблоны формата HTML, позволяющие расширять базу знаний.
Ответственность за создание артефактов лежит на исполнителях. В последних версиях RUP чаще применяется понятие роль, поскольку один исполнитель может выполнять несколько ролей в проекте и отвечать за различные артефакты. В RUP определено более тридцати ролей, которые могут выполнять различные члены команды разработчиков. Обязанности каждой роли, последовательность работ и создаваемые артефакты представлены в виде понятных с первого взгляда диаграмм. Например, на рис. показана схема обязанностей системного аналитика, так как она определяется в RUP.
Работы системного аналитика
И конечно же каждая пиктограмма на этой схеме представляет собой гиперссылку, позволяющую производить дальнейшую детализацию.
RUP достаточно обширен. Это набор рекомендаций и примеров по всем стадиям и фазам разработки программ. Хотя в основу этих рекомендаций положен многолетний опыт разработки программных систем, не для каждого проекта RUP подходит на сто процентов. Любой программный проект по-своему уникален. Нельзя бездумно копировать чужой процесс, создавая артефакты, имеющие незначительную ценность. Во многих небольших организациях по разработке программного обеспечения, особенно в тех, что не имеют собственной мощной системы разработки, RUP можно использовать “как есть”, но он может быть и уточнен, расширен и специфически настроен для максимального приближения к нуждам организации-разработчика.
Но в любом случае применение унифицированного процесса разработки позволит уменьшить затраты проекта, уложиться в заданные сроки и повысить качество создаваемого программного продукта.