Моделирование процессов разработки ПО и создание сайтов процессов с помощью Rational Method ComposerОбзор продуктаRMC является инструментом позволяющим инженерам-технологам (process engineers) создавать, изменять, развертывать и поддерживать Процессы Разработки организации и отдельных проектов. Назначение RMC:
Обзор основных концепций RMCПеречень основных отличий RMC от RUP2003 представлен во врезке Отличия в метамоделях RUP2003 и RMC Фундаментальным принципом RMC является разделение Содержания Методик (Method content), которое может быть повторно используемо от конкретных Процессов разработки, в которых оно используется. Содержание Методик описывает, что должно быть создано, необходимые навыки и приводит пошаговое объяснение, как достигаются конкретные цели разработки. Это описание методик не зависит от описания жизненного цикла разработки. На основе Содержания Методик создаются Процессы в виде последовательностей действий, которые адаптируются к типам конкретных проектов. На Рисунок 1 показано такое разделение для RUP. Содержание Методик сгруппировано по дисциплинам вдоль оси Y, и описывает выполнение задач по разработке (не показанных на рисунке). Работа, описанная как Процесс в течении времени представлена вдоль оси Х. Это жизненный цикл проекта разработки ПО. Он отображает, когда и какие задачи должны быть выполнены. Графики на рисунке представляют приблизительный объем работ для каждой из дисциплин. Таким образом, жизненный цикл (Процесс) отображает изменения работы выполняемой в рамках различных дисциплин (Методики). Рисунок 1 Разделение содержания Методик и Процесса Для создания Методик в RMC используется стандартизированный подход, упрощенное представление которого показано на Рисунок 2. В этой метамодели выделяется набор Ролей (Roles), представляющих совокупность связанных навыков, знаний и ответственностей команды разработчиков. Эти Роли ответственны за определенные типы Рабочих Продуктов (Work Product), например тестировщики за план тестирования, а менеджеры проектов за проектный план. Для создания или изменения Рабочих Продуктов Ролям присваиваются Задачи (Tasks), которые на входе и выходе имеют специфичные типы Рабочих Продуктов. Рисунок 2 Упрощенная модель основных элементов Методики На Рисунок 3 представлены ключевые элементы RMC с разбиением на Содержание Методик и Процесса. Из рисунка видно, что Содержание Методик в основном описывается через Рабочие Продукты, Задачи, Роли и Руководства. Руководства (Guidance), такие как Чек-Листы (check-list), Примеры (example) или Планы Действий (roadmap) могут также быть созданы для предоставления дополнительной информации о Процессе. В правой части рисунка отображены элементы RMC используемые для описания Процессов. Основным элементом являются Активности (activity), которые могут быть вложены друг в друга для представления декомпозиции Работ (Пример вложенностей Активностей: Инициализация проекта\Создание проектной среды\ Создание Outlook папок). Также могут быть определены связи Активностей между собой для определения потока работ (workflow). Активности в свою очередь содержат Дескрипторы(descriptor), которые ссылаются на Содержание Методик. Активности используются для создания Процессов, которых в RMC два типа: Процесс Разработки (delivery process) и Процесс Ключевой Области разработки(capability pattern). Процессы Разработки это полные, интегрированные процессные шаблоны для специфичных типов проектов. Они описывают жизненный цикл проекта от начало до конца и используются в качестве ссылки для текущих проектов с похожими характеристиками. Процессы Ключевых Областей разработки это Процессы определяющие процессные знания для определенных ключевых областей разработки таких как дисциплина или лучшая практика (best practice). Они также используются для сборки Процессов Разработки или более крупных Процессов Ключевых Областей разработки. Это гарантирует оптимальное повторное использование и применение лучших практик при разработке Процесса в RMC. Рисунок 3 Ключевые элементы RMC ДескрипторыКлючевой концепцией разделения Методик (базы знаний процессов) и Процесса разработки является Дескриптор (Descriptor). Дескриптор является Элементом Процесса, который представляет использование элемента Содержания Методик в Процессе. Дескриптор представляет вхождение одного конкретного элемента Методик, такого как Роль, Задача или Рабочий Продукт в Активности. Дескрипторы являются прокси-подобными представлениями этих элементов внутри декомпозиции работ. Кроме установления ссылки на элементы Методик они позволяют переопределять структуру связей с другими элементами Методик путем определения собственной структуры ссылок Дескриптора. Дескриптор может быть характеризован как объект-ссылка на один конкретный элемент Методик, у которого есть собственные взаимосвязи и свойства. Когда Дескриптор создается, он имеет те же взаимосвязи и свойства, что и элемент Методик, на который он ссылается. Однако эти взаимосвязи и свойства могут быть переопределены для конкретной Процессной ситуации, для которой был создан Дескриптор. Концепция Дескриптора позволяет определять новые взаимосвязи и специфичные процессные свойства. Дескрипторы не являются элементами Методик и поэтому не имеют полного описания и свойств присущих им. На Рисунок 4 представлена диаграмма в нотации UML2.0, на которой Дескрипторы были определены для Задач, выполняющих их Ролей а также Рабочих продуктов на входе и выходе. Рисунок 4 Пример использования Дескрипторов Ситуация выраженная этим примером состоит в том, что Задача "Определить приоритет сценариев использования" выполняется различным образом (различные шаги, используются различные входные данные и.т.д.) на фазах Начало(Inception) и Проектирование(Elaboration). В частности мы можем увидеть следующее:
Создание упрощенного Процесса Разработки в RMC*В этом разделе мы создадим с помощью RMC упрощенный Процесс Разработки и таким образом на практике познакомимся с основными концепциями описанными выше. Режимы работы с RMC Существует 2 режима работы с RMC: Режим разработки (Authoring perspective). Режим разработки предоставляет функции и представления для навигации по Содержанию Методик и Процессов Разработки, а также их изменению, Рисунок 5. *В статье описывается IBM Rational Method Composer версии 7.0.1. Для того, чтобы изменить или создать любой тип элемента нужно выбрать режим разработки. В режиме разработки RMC содержит 2 представления: Представление библиотеки (Library View) и Представление конфигурации (Configuration View). Режим просмотра (Browsing perspective). Режим просмотра позволяет просмотреть публикуемую Конфигурацию Методик без возможности внесения, каких либо изменений. В режиме просмотра RMC содержит только Представление конфигурации. Для изменения режима работы можно использовать пиктограмму Open Perspective. Пример создания Процесса Разработки и последующей его публикации с помощью RMCДля того, чтобы охватить возможности RMC по созданию Содержания Методик и Процесса Разработки, мы будем создавать с нуля Содержание Методик и основанный на нем Процесс Разработки. Таким образом, возможности RMC по адаптации и изменению существующих Методик и Процессов Разработки в основном останутся за рамками статьи. Для получения представления о работе с RMC при ограниченных размерах статьи мы рассмотрим максимально упрощенный Процесс Разработки. Итак, начинаем с запуска RMC. При запуске инструмента выбираем Библиотеку Методик, предлагаемую по умолчанию. Надо убедиться, что текущий режим работы с RMC это режим разработки (Authoring perspective). Создание Библиотеки МетодикБиблиотека Методик (Method library) является контейнером содержащим в себе Подключаемые Методики (Method plug-in) и определения Конфигураций Методик (Method configuration). Все элементы Методик сохраняются в Библиотеке Методик. Для создания с нуля Процесса Разработки первым шагом создадим Библиотеку Методик. Для этого выберем в меню File\New\Method Library и заполним название библиотеки и путь, по которому она будет храниться. Рисунок 6 Диалог открытия Библиотеки Методик Создание Подключаемой МетодикиПодключаемая Методика (Method Plug-In) является контейнером содержания методик и процессов. Подключаемые Методики, Содержания Методик и Пакеты Содержаний (Content Package) позволяют организовать ваши Методики с уровнем детализации подходящим для создания и повторного использования. В результате предыдущего действия у нас создалась пустая Библиотека Методик в которой теперь нужно создать Подключаемую Методику. В меню выбираем File\New\Method Plug-in . Выбираем имя и сохраняем Методику. Обратите внимание на поле Referenced Plug-ins . В этом поле выбираются Методики, содержимое которых мы хотим повторно использовать в создаваемой Подключаемой Методике. Так как мы создаем первую Подключаемую Методику в пустой Библиотеке Методик, то в нашем случае это поле пустое. Создание Пакета СодержанийПакет Содержаний (Content Package) состоит из элементов Методик, таких как Роли, Задачи, Рабочие Продукты и Руководства. В контекстном меню листа Content Packages в Представлении библиотеки, открывающемуся по щелчку правой кнопкой мыши выбираем New\Content Package . Именуем и сохраняем Пакет Содержаний. В результате выполненных шагов у нас сформировалась структура для создания и редактирования содержания Методик, Рисунок7. Рисунок 7 Структура подключаемой методики Создание элементов МетодикНачнем наполнять нашу Методику содержанием. Создание Ролей. Для создания Роли выбираем лист Roles и в контекстном меню, открывающемся по щелчку правой кнопкой мыши выбираем New\Role . В открывшемся редакторе (Content Editor) для каждой Роли заполняем поля значениями, указанными в Таблице 1 и сохраняем роль.
Обратите внимание на существование 2-х различных полей: Namе и Presentation Name . Имя Роли Name используется при разработке Методологии внутри RMC, а имя Роли Presentation Name отображается на опубликованном сайте или в RMC в режиме просмотра. Это удобно использовать при достаточно большом объеме Методики или при повторном использовании содержания Подключаемых Методик. Например, Задача по тестированию сборки из Методики 1 может иметь внутреннее имя meth1_tst_Test build . Создание Рабочих Продуктов. Для создания Рабочего Продукта выбираем лист Work Products и в контекстном меню, открывающемся по щелчку правой кнопкой мыши выбираем New и в зависимости от типа создаваемого продукта либо Artifact либо Deliverable либо Outcome . В открывшемся редакторе (Content Editor) заполняем для каждого Рабочего Продукта поля значениями, указанными в Таблице 2 и сохраняем Рабочий Продукт.
В нашем случае Тестовые сценарии будут поставляться на рассмотрение Заказчику в составе Плана тестирования . Чтобы отразить это в нашей модели надо открыть План тестирования , перейти на вкладку Deliverable Parts , нажать кнопку Add и выбрать Тестовые сценарии из дерева Рабочих Продуктов. Создание Задач. Для создания Задачи выбираем лист Tasks и в контекстном меню, открывающемся по щелчку правой кнопкой мыши выбираем New\Task . В открывшемся редакторе (Content Editor) заполняем для каждой Задачи поля значениями, указанными в Таблице 3 и сохраняем Задачу. Для того, чтобы указать, кто выполняет Задачу надо перейти на закладку Roles и выбрать Роль ответственную за выполнение Задачи (Primary performer), которая может быть только одна и Роли участвующие в выполнении Задачи (Additional performers). Для указания Рабочих Продуктов надо перейти на вкладку Work Products и выбрать Рабочие Продукты, которые являются основной входной информацией (Mandatory inputs), дополнительной входной информацией (Optional inputs) и информацией на выходе из Задачи (Outputs).
Создание Конфигурации Методик (Method configuration)Конфигурация Методик позволяет определить рабочий набор из Содержания Методик и Процессов для специфичного контекста. Все Содержание Методик и Процессы в RMC организованы в виде Подключаемых Методик и Пакетов Методик. Таким образом, Конфигурация Методик представляет собой выборку из Подключаемых Методик и Пакетов Методик. Выбираем лист Configurations в дереве Представления Библиотеки Методик. Выбираем New\Method Configuration в контекстном меню, появляющемся по щелчку правой кнопкой мыши. Вводим имя Конфигурации Упрощенная методология в поле Name и переходим в редакторе на вкладку Plug-in and Package Selection . Выбираем все элементы нашей Подключаемой Методики для использования в созданной Конфигурации, как на Рисунок 8. Мы вернемся к редактированию Конфигурации Методик позже, когда нам будет нужно опубликовать сайт процесса. Рисунок 8 Подключение элементов Методики и Процессов к Конфигурации Создание Процесса Разработки (Delivery process)Процесс Разработки представляет собой полный и интегрированный подход к выполнению определенного вида проектов. Он представляет модель полного жизненного цикла проекта, который детализируется путем выстраивания последовательности ссылок на Содержание Методик в структуре декомпозиции (breakdown structure). Выбираем лист Delivery Processes в дереве Представления Библиотеки Методик. Выбираем New\ Delivery Process в контекстном меню. Вводим имя Процесса Упрощенный процесс и выбираем Упрощенная методология как Default Configuration в появившемся диалоге New Process Component . В появившемся диалоговом окне Switch Configuration выбираем Yes . Если диалоговое окно не появилось, то выбираем нашу Конфигурацию в списке конфигураций, расположенном в панели инструментов. Сохраняем наш Процесс и переходим к его редактированию. Для начала в Представлении Конфигураций находим Упрощенный процесс и дважды кликаем по нему для начала редактирования. Переходим на закладку Work Breakdown Structure . Создадим фазы Процесса. Для этого в редакторе выберем Упрощенный процесс и в контекстном меню выберем New Child\Phase . Создадим фазы Начало, Проектирование, Построение и Внедрение. Теперь добавим к фазам Дескрипторы Задач, определенных в нашей Методике. Для примера добавим Задачу Создать концепцию системы в фазу Начало . Для этого в Представлении Конфигурации Методик откроем лист Disciplines\Uncategorized Tasks\Создать концепцию системы и перенесем его (drug and drop) на фазу Начало в редакторе, см. Рисунок9. Аналогичным образом добавим Дескрипторы, перечисленные в Таблице 4. Рисунок 9 Добавление к процессу Дескриптора
Можно заметить, что мы добавили к разным Фазам процесса Дескрипторы одних и тех же Задач. Это сделано для иллюстрации переопределения свойств и взаимосвязей элементов Методик в Процессе посредством Дескрипторов. Для переопределения свойств нужно выделить Дескриптор в окне редактора и изменить его свойства в окне Properties (Для активации окна выберите Window \ Show View \ Other \ Properties ). Для иллюстрации переопределим свойства нескольких Дескрипторов как показано в Таблице 5. (В приложенном к статье примере можно ознакомится с переопределением свойств остальных Дескрипторов) Таблица 5 Переопределение свойств Дескрипторов
В данный момент модель жизненного цикла нашего Процесса представляет водопад, но мы можем добавить в него элементы итеративности. Например, мы можем добавить Итерации на фазе Построение . Для этого создадим в фазе Построения Итерацию Итерации Разработки - с помощью контекстного меню Child \ Iteration . Далее вырежем Дескрипторы Закодировать требования и Протестировать разработанный код и скопируем их в Итерацию. Также можно ввести Итерации по уточнению требований в фазу Проектирование для Дескрипторов Создать прототип , Протестировать разработанный код и Определить требования к системе. Добавление диаграммДля упрощения восприятия Процесса можно создать диаграммы. Для этого, выделяем в редакторе Процесса Процесс, Фазу, Итерацию или Активность, выбераем в контекстном меню Diagrams \ Open Activity Diagram , Diagrams \ Open ActivityDetail Diagram , или Diagrams \ Open Work Product Dependency Diagrams и в появившемся редакторе создадаем диаграмму. На Рисунок 10 показаны диаграммы Activity и Activity Details для фазы Проектирование . Рисунок 10 Диаграммы для фазы Проектирование Публикация сайта процессаДля публикации сайта, необходимо добавить в определение Конфигурации представление, которое будет отображаться на сайте. Для начала создадим произвольную категорию (Custom category). В Представлении Библиотеки выделяем лист Custom Categories и в контекстном меню выбираем New\Custom Category . Называем новую категорию Представление методологии . Переходим на вкладку Assign и добавляем в поле Content Elements созданный нами Упрощенный процесс. Теперь в контекстном меню категории Представление методологии выбираем меню New\Custom Category , называем новую категорию Роли , переходим на вкладку Assign и добавляем в поле Content Elements Роли: Заказчик , Разработчик , Руководитель Команды , Тестировщик . Аналогичным образом создаем категории Задачи , Рабочие продукты , Шаблоны . У вас должна получиться структура, аналогичная показанной на Рисунок 11. Рисунок 11 Структура публикации сайта Отредактируем Конфигурацию Упрощенная методология . В редакторе переходим на вкладку Views и нажимаем кнопку Add View . В появившемся дереве выбираем созданную нами категорию Представление методологи. Для того чтобы созданное нами представление отображалось по умолчанию, нажимаем на кнопку Make default , сохраняем изменения. Выбираем в меню Configuration\Publish , в первом окне нажимаем Next , указываем название сайта и путь где будет размещен набор html-страниц на диске, нажимаем Finish. В результате должен получится сайт процесса аналогичный показанному на Рисунок 12. Рисунок 12 Опубликованный сайт процесса Обратите внимание, что для корректной работы опубликованного сайта на клиентской машине необходимо установить Java Runtime Environment (JRE) [2] Отличия в метамодели RUP 2003 и RMCОтличия в метамодели основном связаны с переходом в RMC на новую схему организации содержания методик - Unified Method Architecture (UMA), базирующуюся на стандарте SPEM 1.1 (Software Process Engineering Metamodel ) [3] Activities были переименованы в Tasks . Переименование связано с лучшим отражением терминов принятых в индустрии разработки ПО. Task"и теперь могут выполняться больше чем одной ролью . В RUP2003 активность моделировалась как операция, выполняемая ролью. Это оказалось достаточно ограниченным способом моделирования человеческой деятельности. Такой подход не позволял выразить некоторые виды работ, выполняемые взаимодействием различных ролей. UMA разрешила эту проблему выделив Task в независимый элемент модели, к которому как ресурсы могут присваиваться выполняющие ее роли. Теперь задаче могут быть присвоены основной исполнитель (для совместимости с предыдущей версией RUP) и несколько дополнительных исполнителей. Улучшение концепции артефакта . В RUP для продуктов используемых и производимых в процессе разработки ПО применялось только понятие артефакта. UMA расширяет таксономию RUP введением общей концепции рабочего продукта. Рабочие продукты могут быть 3-х типов: Artifact (материальные и не тривиальные рабочие продукты), Deliverable(рабочий продукт, поставляемый заказчику для ревью) и Outcome (рабочий продукт, не имеющий осязаемой формы. Например: Изменены настройки веб-сервиса, ПО установлено в тестовую среду заказчика). Различная категоризация рабочих продуктов и ролей. В RUP все роли и категории были категорированы по дисциплинам. Однако случается, что артефакты используются в рамках нескольких дисциплин и привязка только к одной дисциплине приводит к путанице. В UMA определены различные категоризации для определений работы (дисциплины(disciplines)), рабочих продуктов (домены (domains) и типы рабочих продуктов (work product kinds)) и ролей (наборы ролей(role sets)). Процессные компоненты переименованы в Пакеты Методик ( Method Package ). Концепция компонента широко используется во многих стандартах и методологиях. В большинстве случаев компонент используется как абстракция, инкапсулирующая компонент как черный ящик, который можно использовать посредством определенных интерфейсов. RUP определение компонента не удовлетворяет этому критерию черного ящика. Также SPEM стандарт определяет концепцию пакета (package). Для того чтобы быть совместимым с SPEM и следовать общему употреблению концепции компонента в RMC Process component был переименован в Method Content. Разделение элементов описания процесса и элементов описания методик . В RUP 2003 новый процесс создавался путем определения новой конфигурации и ручного документирования в артефактах отклонений от стандартного RUP. UMA добавляет новые концепции к концепции конфигурации используемой для адаптации процесса. UMA позволяет выбирать для моделируемого процесса какие именно рабочие продукты из пакета методик войдут в каждую фазу, так как можно легко добавлять, удалять и менять порядок элементов в структуре процесса, используя или не используя любые компоненты пакета методик. Такие возможности достигаются путем более четкого отделения элементов методик (например, задач определенных для дисциплин) и применения элементов методик в процессе (выраженного через диаграммы активностей и WBS) также как моделирование процесса (т.е. создание новых или адаптация диаграмм активностей или WBS"ов). Это вводит несколько новых концепций, таких как дескрипторы (work product descriptor, task descriptor), которые поддерживают разделение и достижение новых возможностей по поддержке и повторному использованию различных семей и подпроцессов внутри одной конфигурации. Workflow details переименованы в Activities . Из за того, что слово Activity наиболее часто используется для элементов диаграмм активности и для самих этих диаграмм.
ЗаключениеВ статье рассмотрено применение Rational Method Composer для создания упрощенного процесса разработки и его публикации. Автор не претендует на точность использования терминологии. Рассматриваемый пример является учебным и может содержать неточности, его целью является быстрое введение в моделирование процесса, а не создание полноценной модели процесса разработки. |