CaliberRDM - выявление требований к программному обеспечениюБольшаков Олег Некоторое время назад компания Microfocus предложила подход к выявлению требований к программному обеспечению, который соответствует принципам таких методологий как RUP и MSF, однако реализован довольно интересно. В данных методологиях (как и во многих других) большая часть пользовательских требований выявлялась на стадии моделирования. Сначала рекомендуется выявить всех заинтересованных лиц ( актеров или actors ), затем - определить их действия ( варианты использования или прецеденты или use cases ), а при необходимости - описать сценарии этих действий на соответствующих диаграммах. Эти варианты использования, по сути, и будут являться требованиями к системе. Как правило, для моделирования поведения пользователей системы используется язык моделирования UML, диаграммы вариантов использования, диаграммы активности, диаграммы последовательности и взаимодействия, и диаграммы состояний. Наиболее популярные инструменты для UML моделирования - И хотя у языка UML относительно невысокий "порог вхождения", многие аналитики не используют его при работе с требованиями. Причин этому множество: кто-то считает визуальное моделирование недостаточно эффективным, кто-то путается в диаграммах и назначениях элементов, кого-то не устраивает наглядность представления информации, или наоборот - чрезмерность графических образов, и т.д. и т.п. Как же нам совместить эффективность метода с относительной сложностью использования визуального моделирования? Ответом на этот вопрос и будет использование уже упомянутого нами "интересного" подхода компании Microfocus и программного инструмента CaliberRDM, с помощью которого он реализован. Справедливости ради нужно заметить, что CaliberRDM - это не концептуально новая разработка, а успешное развитие продукта Caliber DefineIT, ранее разработанного компанией Borland. После покупки Borland и всей линейки их продуктов по управлению жизненным циклом ПО, компания Microfocus оставила от Caliber DefineIT только первоначальную концепцию, при этом существенно расширив ее. Caliber DefineIT был реализован на технологии Eclipse, а проекты хранились в виде упорядоченной структуры файлов и каталогов. В отличие от DefineIT, CaliberRDM полностью реализован по web-технологии как RIA-приложение (Rich Internet Application) с использованием технологии Adobe Flash, а все проекты хранятся на сервере, в базе данных Microsoft SQL Server. Каким же образом CaliberRDM позволяет выявлять требования? Как и в UML, CaliberRDM оперирует такими понятиями как Актеры и Варианты использования, однако реализуется это не в виде диаграмм сценариев использования, а в виде перечней в определенных категориях. Причем описание вариантов использования все же моделируется визуально, однако более упрощенно, чем в UML. Упрощение достигается благодаря ограниченному набору используемых элементов, подобных UML (так как мы применяем здесь визуальное моделирование в контексте выявления требований, а не описания поведения и архитектуры всей системы в целом). Описывая поведение пользователей при работе с системой, мы можем выявить функциональные требования к системе, а также уточнить пользовательские требования. Также выявлению требований способствуют и дополнительные категории, введенные в CaliberRDM - это структуры данных, визуальные интерфейсы системы и шаблоны интерфейсов, а также симуляции, позволяющие продемонстрировать заказчику начальные прототипы системы. Давайте рассмотрим, как все это реализовано в CaliberRDM. После авторизации в системе пользователь попадает на стартовую страницу, где можно создать новый проект или выбрать существующий (рис.1). После выбора или создания проекта пользователь попадает на главную страницу CaliberRDM (рис.2), где в левой части представлено дерево проекта, а в правой - рабочая область, содержимое которой зависит от выбранного в дереве элемента проекта. В дереве представлено две корневых категории: Requirements (требования) и Visualizations (визуализации). Требования - это корневая категория, в которой можно сформировать структуру требований. Можно создавать папки (Folder), требования (Requirement), а также дочерние требования. Виды требований, например, бизнес-требования, пользовательские требования, функциональные требования и т.д., можно представлять в виде папок. В данной статье мы не будем останавливаться на работе с требованиями, эти вопросы мы рассмотрим в одной из следующих статей, посвященных CaliberRDM. Визуализации - это набор следующих фиксированных категорий, которые используются для моделирования поведения системы:
Рассмотрим эти категории более подробно. Actors (Актеры) Актеры - это роли, которые играют пользователи по отношению к системе (рис.3). Актерами обычно являются пользователи, но также ими могут быть внешние системы, подсистемы или время. Актеры в CaliberRDM аналогичны актерам в UML. Согласно методикам RUP, MSF, а также многим другим, выявление актеров - первый шаг при работе с требованиями. Scenarios (сценарии) Сценарии - это блок-схемы, которые используются для визуального представления, понимания и проверки последовательности бизнес-процессов. Сценарии CaliberRDM аналогичны сценариям вариантов использования в UML и представляются в виде диаграмм, похожих на диаграммы активности UML (рис.4). Сценарии отражают набор функций системы, а также то, как Актеры будут взаимодействовать с системой для реализации бизнес-задач. По сути, сценарии обеспечивают контекст требований. Также сценарии будут использоваться разработчиками при проектировании решения. Как правило, сценарий использования соответствует одному или нескольким требованиям. Simulations (симуляции) Симуляции - это интерактивные прототипы приложений, которые доступны для просмотра посредством веб-браузера (рис.5). Симуляции включают экраны приложений, веб-страницы, конфигурируемые данные, а также элементы пользовательского интерфейса, которые позволяют моделировать взаимодействие пользователя с приложением. Симуляции позволяют на первых стадиях разработки решения продемонстрировать заказчику и заинтересованным лицам прототипы системы. Демонстрация подобных прототипов позволяет:
Data (данные) Данные - это структуры бизнес-сущностей (рис.6). Можно указывать атрибуты и типы атрибутов (текст, целое число, дробное число, булево значение, дата и время). Также можно заполнять сущности конкретными данными (например, если в системе должен быть справочник с предопределенными значениями). Images (изображения) Изображения в CaliberRDM - это коллекция файлов с изображениями (jpg, gif, png), которые можно использовать в других категориях проекта (в симуляциях, сценариях и др.) (рис.7). Templates (шаблоны) Шаблоны - предопределенные фрагменты интерфейса, которые можно использовать в симуляциях (рис.8). Шаблоны очень удобно использовать для веб-приложений, в которых обычно "шапка" страничек практически неизменна, а также для приложений с множеством вспомогательных окон или панелей. Почему в CaliberRDM нет диаграмм состояний, диаграмм последовательности и взаимодействия, и диаграмм классов, которые используются в визуальном моделировании? Дело в том, что CaliberRDM ориентирован на выявление требований к системе посредством моделирования ее поведения в рамках действий пользователя с системой, а не на моделирование архитектуры системы в целом. Мы должны четко понимать, что для полноценного проектирования системы нам нужно использовать именно UML, а вот для выявления требований и начального прототипирования системы - очень удобно использовать CaliberRDM, инструмент интуитивно понятный, не перегруженный UML-нотацией, и в тоже время в достаточной мере соблюдающий общепринятые принципы моделирования. |