Лекция

Практическая работа №13

Лабораторная работа №13

Обзор CASE-средств для построения диаграмм UML

UML - отличное средство моделирования, но, как уже говорилось выше, строить диаграммы на бумаге - не всегда удобно, хотя бы по причине сложностей с редактированием, распространением и т. д. Чтобы облегчить труд проектировщика, были созданы CASE-средства - программы специального вида. CASE-средства помогут вам построить профессионально выглядящие диаграммы, даже если вы не в состоянии провести прямую линию на бумаге!

CASE-средства (от Computer Aided Software/System Engineering) - позволяют проектировать любые системы на компьютере. Необходимый элемент системного и структурно-функционального анализа, CASE-средства позволяют моделировать бизнес-процессы, базы данных, компоненты программного обеспечения, деятельность и структуру организаций. Применимы практически во всех сферах деятельности. Результат использования CASE-средств - оптимизация систем, снижение расходов, повышение эффективности, снижение вероятности ошибок.

Существует немало подобных программ. Выбор CASE-средства "по себе" - личное дело каждого читателя, и мы ни в коей мере не собираемся влиять на него. Мы лишь попытаемся предоставить ему этот выбор, рассмотрев некоторые наиболее достойные внимания, с точки зрения авторов, CASE-средства для построения UML-диаграмм. Причем постараемся рассказать и о признанных лидерах рынка, и о его "аутсайдерах", и о коммерческих "монстрах", и о "легких" программах с открытым исходным кодом. И начнем, пожалуй, с пакета, являющегося фактическим стандартом в области UML-проектирования.

IBM Rational Rose

Rational Rose - современное и мощное средство анализа, моделирования и разработки программных систем. Rational Rose пригодится при решении практически любых задач проектирования информационных систем: от анализа бизнес-процессов до кодогенерации на определенном языке программирования. Такой арсенал позволит не только спроектировать новую систему, но и доработать старую, произведя процесс обратного проектирования.

Для того чтобы наиболее полно покрыть весь сегмент рынка средств проектирования и разработки, выпускается несколько версий продукта:

· Rational Rose Modeler

Эта версия позволит аналитикам и проектировщикам проводить анализ бизнес-процессов и проектировать систему. Данная редакция, увы, не поддерживает кодогенерацию.

· Rational Rose Professional

Как видно из названия, это профессиональная редакция продукта. В зависимости от выбранного языка программирования позволяет выполнять прямое и обратное проектирование. Rose Professional заказывается только в определенной конфигурации (например, Rose Professional С++ или Rose Professional С++ DataModeler). Rational Rose Professional, конечно, не создает 100 % исполняемого кода. На выходе разработчик получает каркасный код информационной системы на определенном (заказанном) языке программирования, который впоследствии нужно еще программировать и программировать. Продукт нацелен и на аналитиков, и на разработчиков.

· Rational Rose RealTime

Версия продукта, созданная специально для получения 100 % исполняемого кода в реальном масштабе времени. Конечно, RealTime позволяет проводить прямое и обратное проектирование на языках С или С++. По заверениям разработчиков, на выходе модель автоматически компилируется и собирается в исполняемый файл. Само собой, продукт предназначен именно для разработчиков.

· Rational Rose Enterprise

Абсолютно полная версия. Поддерживаются все функции других редакций, за исключением возможности 100 % кодогенерации. Таким образом, эта версия продукта покрывает весь спектр задач по проектированию, анализу и кодогенерации. Это программный пакет для всех участников проекта.

· Rational Rose DataModeler

Это не конкретный вариант продукта, а функциональность по проектированию баз данных. Функции DataModeler входят в состав Rose Enterprise или Professional.

К сожалению, нет бесплатной версии продукта, но для образовательных учреждений все программное обеспечение IBM доступно бесплатно (для использования в учебных целях) в рамках программы IBM Academic Initiative.

А как же выглядит это чудо? Не слишком изысканно, но вполне функционально - судите сами (рис. 7.1):

увеличить изображение
Рис. 7.1.

В зависимости от поставки, в Rational Rose может быть расширен или сужен набор визуальных компонент (возможных диаграмм). Впрочем, Rational Rose и так достаточно функционален. Вот основные возможности продукта:

· прямое и обратное проектирование на языках: ADA, Java, С, C++, Basic;

· поддержка технологий COM, DDL, XML;

· возможность генерации схем БД Oracle и SQL.

Также Rational Rose имеет открытый API, позволяющий самому создавать модули для других языков программирования. На рынке уже имеется достаточное число модулей для популярных языков программирования и RAD-систем, таких как Delphi, ErWin, Jbuilder, VisualCafe, Jdeveloper, VisualAge SmallTalk. Одна из ведущих компаний в области создания дополнительных модулей - Ensemble Systems (http://www.ensemble-systems.com/).

Rational Rose много раз признавалось различными изданиями лучшим средством проектирования. Вот только некоторые из них (рис. 7.2):

увеличить изображение
Рис. 7.2.

Если вы программировали в MS Visual Studio 6.0, то, возможно, вы уже познакомились с одним из продуктов семейства Rational Rose, поскольку в этот пакет встроен Visual Modeler - усеченный вариант Rational Rose 98. С помощью Visual Modeler можно рисовать диаграммы классов в трех различных нотациях - нотации Буча, ОМТ и на UML. По диаграммам классов можно провести генерацию каркасного кода (на C++, VB или Java). Такая генерация программного кода называется прямым проектированием (forward engineering). Взаимозависимости классов, изображенных на диаграмме классов, отображаются в программном коде.

Большой интерес представляет обратное проектирование (reverse engineering), когда по исходному коду восстанавливается диаграмма классов, позволяющая понять структуру программы. Это тоже можно делать с помощью Visual Modeler, причем на основе Microsoft Foundation Classes (MFC)! К ограничениям Visual Modeler относится тот факт, что он не поддерживает диаграммы развертывания, описывая лишь внутреннюю функциональность создаваемой системы.

Также Rational Rose интегрируется с Visual Component Manager, репозиторием Microsoft Repository, системой управления версиями Microsoft Visual SourceSafe и Rational ClearCase. Плюс многое-многое другое...

Конечно, можно еще долго петь дифирамбы этому продукту, являющемуся, по сути, стандартом де-факто в области UML-проектирования (с субъективной точки зрения авторов, этот продукт не слишком интуитивен и удобен, хотя, без сомнения, сверхфункционален). Честно говоря, как ни парадоксально это звучит, особого впечатления на авторов этот продукт не произвел, возможно, по причине недостаточного с ним знакомства. Думаем, что сами разработчики расскажут о своем продукте гораздо лучше. Предоставим же читателю возможность оценить этот продукт, основываясь на информации "из первых рук"! Вы можете это сделать, посетив такие сайты:

http://www-306.ibm.com/software/rational/ Это официальный сайт Rational, где вы сможете найти информацию о Rational Rose и других продуктах Rational (на англ. языке). Также можете попробовать сходить по "старому адресу" - www.rational.com.

http://interface.ru/ Сайт компании "Интерфейс". Как уверяют авторы ресурса, на сегодняшний день здесь собран самый большой (в Рунете) архив информации по продуктам Rational. Здесь можно найти множество статей, обзоров, руководств и описаний "по теме" и на русском языке.

http://sunset.usc.edu/cse/ А здесь можно найти неплохой архив презентаций и статей по темам программной инженерии, в том числе и о Rational Rose (на англ. языке).

Borland Together

Очень симпатичный (если не сказать больше!) продукт от Borland. Borland Together ControlCenter - это интегрированная платформа разработки, позволяющая упростить и ускорить анализ, дизайн, разработку и развертывание комплексных корпоративных приложений. Эти возможности сочетаются в одном интегрированном решении с поддержкой UML, помогающем командно разрабатывать высококачественные системы быстрее и эффективнее. Технология Borland LiveSource, интегрированная в ControlCenter, автоматически синхронизирует все артефакты, так что изменения в них не прерывают процесс разработки (что очень похоже на концепцию "живых документов" от Microsoft). Таким образом, ситуация, когда модель и код не соответствуют друг другу, теперь невозможна - любые изменения в модели сразу же отображаются в коде и наоборот. ControlCenter предоставляет единую среду разработки, общий язык, диаграммы и строительные блоки, избавляя команду от необходимости использовать несколько продуктов, переключаясь между ними.

Вот некоторые особенности Borland Together:

· Поддержка XP ("экстремальное программирование")

Не вдаваясь в лишние подробности и не желая забивать голову читателя ненужными пока подробностями, скажем, что Together поддерживает "гибкие" процессы моделирования, о которых мы, возможно, поговорим позже. Together предоставляет интерактивные возможности моделирования и поддерживает все виды диаграмм UML, включая диаграммы классов, прецедентов, последовательностей, кооперации, действий, состояний, компонентов и развертывания.

· Ускорение процессов разработки путем применения паттернов

Еще одна модная тенденция в программной инженерии: использование паттернов, или шаблонов проектирования, - некоторых стандартных решений, образцов в области проектирования. Используя эти образцы, эксперт или разработчик могут быстро создать модель и привести ее в соответствие с корпоративными стандартами и лучшими практиками кодирования. Еще одна возможность ускорения работы - планирование задач для разработчиков, использование напоминаний и органайзера, что позволяет работать эффективнее.

· Развертывание на несколько серверов приложений выполняется быстро, без перекодирования

Приложение можно развернуть на несколько серверов приложений, просто написав несколько строк. С Together ControlCenter приложение может быть построено для одного сервера приложений и легко переключено на другой, развернуто на сложной инфраструктуре.

· Функция контроля качества облегчает жизнь разработчиков

· Эффективнейший аудит и поддержка метрик качества разработки ПО позволяет команде контролировать качество продукта в ходе разработки.

Встроенное функциональное тестирование помогает обнаружить проблемы еще в процессе разработки, что действительно очень важно, поскольку стоимость исправления ошибок тем выше, чем позже они обнаружены.

Из вышесказанного становится ясно, что Borland Together - это нечто гораздо большее, чем просто пакет для рисования "картинок в стиле UML". Мы уже говорили о некоторых дополнительных возможностях программы, но какие же возможности предоставляет Together именно в плане визуального моделирования?

· Как уже говорилось ранее, поддержка всех основных видов диаграмм UML, включая диаграммы классов, прецедентов, последовательностей, кооперации, деятельности, состояния, компонентов…

· Поддержка ER-диаграмм (схем баз данных).

· Генерирование исходного кода из диаграмм последовательностей и обратное проектирование существующего кода в одну или более диаграмм последовательностей.

· Моделирование бизнес-процессов с помощью соответствующих диаграмм.

· Поддержка паттернов, о чем мы уже упоминали ранее, включая построитель шаблонов кода и множество видов встроенных паттернов.

· Эффективные метрики контроля качества для разных языков с возможностью их повторного использования.

· Простая генерация актуальной проектной документации в стиле "нескольких щелчков мыши" (а-ля Microsoft) или через командную строку в виде HTML, RTF или текстовом формате.

· Удобный настраиваемый редактор исходного кода.

· Визуальный построитель графического интерфейса пользователя.

· Плюс многое, многое другое...

А вот и скриншот (рис. 7.3):

увеличить изображение
Рис. 7.3.

Как видите, выглядит продукт вполне неплохо, в лучших традициях Borland, чьи продукты всегда были ближе отечественным разработчикам, уверенным, что слова "юзабилити" и "Borland" - синонимы. Как и в случае IBM Rational Rose, существуют несколько специализированных версий данного пакета:

· Together ControlCenter

Интегрированная платформа разработки, предназначенная для упрощения и ускорения анализа, проектирования и разработки корпоративных приложений.

· Together Solo

UML-проектирование и разработка, единое решение для индивидуальных разработчиков и малых команд, позволяющее моделировать небольшие масштабируемые проекты быстрее и эффективнее.

· Borland Together Editions

Специальные редакции для предпочитаемых вами сред разработки:

o Together Edition for JBuilder

Интегрированная и гибкая среда проектирования, Together Edition for JBuilder помогает команде ускорить разработку высококачественных приложений в Borland JBuilder, решении номер один для разработки на языке Java.

o Together Edition for Eclipse

Ускоряет разработку высококачественных приложений на открытой платформе Eclipse, поддерживаемой IBM.

o Together Edition for WebSphere Studio

IBM® WebSphere® Studio теперь тоже поддерживается Borland Together Edition for Eclipse.

o Together Edition for SAP NetWeaver Studio

Предоставляет тесную интеграцию со средой разработки SAP NetWeaver.

o Together Edition for Microsoft Visual Studio .NET

Интегрированная среда, использующая индустриальный стандарт - UML, Borland Together Edition for Microsoft Visual Studio .NET, поможет командам разработчиков на C# и Microsoft® Visual Basic .NET ускорить разработку высококачественных решений на платформе .NET.

o Together Edition for C++BuilderX

Интегрированная и гибкая среда проектирования, Borland Together Edition for Borland C++BuilderX поможет команде ускорить разработку высококачественных приложений в C++BuilderX - многоплатформенной среде разработки.

· Together Designer Community Edition

Borland Together Designer Community Edition - это бесплатная среда разработки для создания диаграмм UML 2.0.

Как видим, у Borland бесплатная версия продукта есть и она доступна всем желающим! Авторы долгое время пользовались и продолжают пользоваться Borland Together CE, и этот пакет ни разу их не подвел. Единственный недостаток - некоторая неторопливость в работе и "прожорливость" в ресурсах, но это общая проблема многих подобных программ, поскольку большинство из них написаны на Java.

В целом впечатление, произведенное Together на авторов, - очень положительное, но, опять-таки, предоставим разработчикам самим рассказать о своем продукте:

· http://www.borland.com/together/ Это официальный сайт продукта, где вы сможете найти подробную информацию о Borland Together (на англ. языке). В частности, здесь можно просмотреть обзор технических характеристик Together, FAQ по продукту и другие материалы.

· http://info.borland.com/media/shockwave/together/1009_tvs_2.0_intro.html А перейдя по этой ссылке, можно посмотреть весьма добротно и убедительно сделанную фирменную флеш-демонстрацию возможностей продукта.

Microsoft Visio

Visio - решение для построения диаграмм от Microsoft. По словам разработчиков, Visio помогает преобразовать технические и бизнес-концепции в визуальную форму. И действительно, этот пакет из семейства Microsoft Office предназначен исключительно для рисования диаграмм. Visio имеет некоторые дополнительные возможности, но все же, повторим, по большей мере - это только средство для иллюстрирования документов MS Office, "не дотягивающее" до уровня пакетов, которые мы описывали ранее.

· Изобразительные же возможности Visio действительно весьма широки:

· Используя предопределенные фигуры Visio Professional , drag-and-drop и мастера, вы можете быстро и просто создавать понятные и информативные диаграммы.

· Возможности Visio можно легко расширять, используя новые шаблоны бизнес-диаграмм. Вы можете включать внешние источники данных, хранилища или коллекции хранимых шаблонов.

· В Visio можно прототипировать интерфейс приложений с помощью встроенных шаблонов пользовательского интерфейса Microsoft Windows XP, что позволяет создавать модель пользовательского интерфейса в стандартном Windows XP-стиле.

· Можно легко рисовать диаграммы сетевых ресурсов, иллюстрирующие развертывание нового ПО на существующие сетевые ресурсы.

· Visio Professional также тесно интегрируется с Microsoft Office Project, что позволяет, например, импортировать оттуда задачи для членов команды.

· С помощью шаблонов UML вы можете создавать UML-диаграммы статической структуры ПО или проводить обратное проектирование с помощью Visio 2003 Reverse Engineer Wizard.

· Visio 2003 может документировать для вас структуру существующих веб-сайтов, помогая таким образом в разработке, реализации или интеграции веб-приложений.

· Можно также создавать отчеты, сохранять диаграммы как вебстраницы и еще многое-многое другое...

Отметим (пока не забыли), что Visio - это не полноценное средство моделирования, а программа для создания иллюстраций (как и SmartDraw и Dia, рассказ о которых еще впереди), умеющая, кроме прочего, рисовать UML-диаграммы.

Внешне Visio похожа на другие программы семейства Microsoft Office, хотя и выглядит немного более архаично. Особенно это заметно в версии 2007 - интерфейс Visio 2007 разительно отличается (в худшую сторону) от остальных приложений MS Office и выглядит так, будто это программа из предыдущей версии "офиса". Впрочем, судите сами (рис. 7.4):

увеличить изображение
Рис. 7.4.

Если верить разработчикам программы, есть по крайней мере 10 причин, чтобы использовать Visio:

· Документирование и анализ бизнес-процессов

Проектирование, документирование и анализ бизнес-процессов, используя шаблоны и символы, поддерживающие управление бизнес-процессами (BPM), включая Six Sigma quality improvement и ISO 9000-документацию.

· Отслеживание комментариев членов команды

Как и в других программах семейства MS Office, в Visio имеется средство рецензирования, которое можно использовать для отслеживания фигур и примечаний, оставленных другими членами команды.

· Сотрудничество по-новому

За этим рекламным лозунгом скрывается интеграция с Microsoft SharePoint и возможность экспорта диаграмм в SVG-формат или сохранения их как веб-страниц.

· Поддержка Tablet PC

Встроенная поддержка Tablet PC поможет просматривать, изменять и аннотировать ваши диаграммы в пути или в других случаях, когда вы далеко от своего десктопа. Используйте цифровые чернила для аннотирования ваших диаграмм, форматируйте, масштабируйте, вращайте их или ассоциируйте их с записями. В Visio вы можете конвертировать цифровые чернила в базовые фигуры или текст. И все бы хорошо, но Tablet PC - это, увы, удовольствие, доступное не для всех (по крайней мере, в наших странах).

· Инструменты для мозгового штурма

Сказано, конечно, слишком громко, но Visio действительно можно использовать для генерации и структурирования идей во время сессий мозгового штурма (это не так удобно, как например, MindManager (http://www.mindjet.com), но все же). Потом диаграммы, полученные в результате мозгового штурма, можно экспортировать в Microsoft Word, Microsoft Excel или XML, положив таким образом хорошее начало созданию других бизнес-файлов.

· Создание календарей

Календари Microsoft Outlook можно легко конвертировать в календари Visio, которые могут быть богато оформлены и форматированы и просто распространены между другими членами команды.

· Простое создание и использование технических диаграмм

Как уже говорилось выше, в Visio можно создавать диаграммы баз данных, инженерные диаграммы, сетевые, диаграммы разработки ПО и веб-приложений.

· Более быстрое создание и редактирование диаграмм

По заверениям разработчиков, Visio включает многочисленные улучшения, помогающие повысить производительность. Вращение фигур без переключения в специальный режим вращения, выбор и вращение группы фигур, печать выбранной части диаграммы, функция поиска фигуры и многое другое...

· Visio поддерживает множество локальных языков

Visio доступна на 17 языках, включая улучшенную поддержку азиатских языков и двунаправленного текста. Впрочем, вряд ли этот факт может считаться серьезным преимуществом людьми, которые "по жизни" пользуются исключительно англоязычным ПО.

· Отличная интеграция с другими приложениями MS Office

Об этом уже достаточно много нами было сказано ранее, так что не будем снова повторяться!

В отличие от ранее рассмотренных программ, MS Visio существует в двух редакциях (правда, есть еще особый вариант программы - Visio Enterprise Architect, но с ним нам работать не довелось):

· Visio Standard,

· Visio Professional.

Честно говоря, нам довольно сложно сказать о различиях этих двух редакций. Все желающие могут посетить веб-узел Microsoft, чтобы получить о Visio более подробную информацию. Со своей стороны мы позволим себе обратить внимание читателя на такие два места на этом, без сомнения, весьма достойном ресурсе:

· http://office.microsoft.com/en-us/FX010857981033.aspx Это официальный сайт продукта, где вы сможете найти о Visio подробную информацию (на англ. языке), в том числе статьи о различиях двух редакций продукта, о возможностях его использования при разработке ПО, о преимуществах Visio и многие другие материалы. Здесь также можно загрузить или заказать на диске пробную версию Visio.

· http://www.microsoft.com/office/visio/prodinfo/demo.mspx А перейдя по этой ссылке, можно посмотреть весьма добротную и убедительную (как и все рекламные материалы Microsoft) "родную" демонстрацию возможностей продукта.

Sparx Systems Enterprise Architect

Как уверяют разработчики (Sparx Systems), Enterprise Architect - это программа для UML-моделирования и проектирования нового поколения. Вот фраза из их рекламных материалов:

WELCOME to the next generation in UML modeling and design software! At Sparx Systems, we realize that because you want to remain competitive, you need to be productive. You need to have your whole team perfectly equipped with the very latest trouble-free UML modeling software. In other words, you need the most reliable, capable and progressive business modeling software, that won't break the budget.

Enterprise Architect существует в вариантах для Windows и Linux и является неплохим средством для UML-моделирования, с возможностью многопользовательской работы и дружественным интерфейсом. Вы также найдете в EA множество функций, которые обычно распределены между несколькими приложениями (ничем не напоминает наши слова о Borland Together?), включая отличные возможности по генерации документации, поддержку плагинов, генерацию XSD-схем, HTML и поддержку для таких языков программирования, как C++, Java, PHP, Visual Basic, VB.Net, Delphi или C#.

Возможности Enterprise Architect весьма многочисленны. Вот некоторые из них:

· нотация UML 2.0 с поддержкой всех видов диаграмм;

· как уже было сказано выше, поддержка C++, Java, C#, VB, VB.Net, Delphi, PHP, .NET;

· моделирование БД, прямое проектирование в DDL и обратное проектирование из ODBC;

· загружаемые UML-профили (например, SPEM), позволяющие создавать узкоспециализированные модели;

· поддержка паттернов проектирования;

· генерация документации в форматах HTML и RTF;

· многопользовательская работа, утилиты для менеджера проекта, тестирование, глоссарий, другие ресурсы;

· автоматизация интерфейса, поддержка макросов;

· и многое, многое другое...

Enterprise Architect существует в трех редакциях:

· EA Desktop Edition

Интуитивно понятная утилита для UML-моделирования, предназначенная для индивидуальных аналитиков и/или разработчиков. Простейший инструмент проектирования, имеющий некоторые ограничения. Отсутствуют многие, привычные для профессионалов, функции, которые, впрочем, абсолютно не нужны, если вы просто ищете инструмент для рисования UML-диаграмм. Не поддерживается, например, импорт/экспорт кода и DDL, Active X-интерфейс и совместный доступ к диаграммам.

· EA Professional Edition

Полнофункциональная среда UML-моделирования, нацеленная на групповую разработку, поддерживает совместный доступ к созданным моделям, Active X, XMI, импорт/экспорт кода и DDL, извлечение схем БД Oracle, SQL Server и MS Access.

· EA Corporate Edition

Наиболее полная редакция, включающая все возможности настольной и профессиональной версий плюс возможность соединения с MySQL, SQL Server, PostgreSQL, Sybase Adaptive Server Anywhere и Oracle9i. Также эта редакция поддерживает авторизацию пользователей, группы пользователей, блокировку элементов. Эта версия предназначена для больших команд.

А вот так этот продукт выглядит (рис. 7.5):

увеличить изображение
Рис. 7.5.

Лицензия на Enterprise Architect стоит сравнительно дешево, так что вы сможете вооружить этим средством всех членов вашей команды. Кроме этого существует версия EA Lite FREE read-only. Она позиционируется как решение, позволяющее зарегистрированным пользователям демонстрировать UML-диаграммы персоналу и заказчикам. EA Lite имеет все базовые функции Enterprise Architect, за исключением создания документации и сохранения. По сути, это вьюер файлов Enterprise Architect.

С EA отлично интегрируется другой продукт Sparx Systems - Zicom Mentor. И пусть это пакет не для UML-проектирования, но мы просто не могли не упомянуть об этом замечательном продукте! Zicom Mentor - это ПО для обучения UML, который поможет вам мгновенно получить ответы на свои вопросы, получить и проверить знание UML, начать новый UML-проект.

Zicom Mentor включает интерактивные курсы и тесты, документацию и справочные материалы по UML, а также потрясающий визуальный словарь UML, справочник по диаграммам и символам и др. И при этом стоит всего $ 29.95! А выглядит все это вот так (рис. 7.6):

увеличить изображение
Рис. 7.6.

Пробную версию Zicom Mentor можно взять по адресу: http://www.sparxsystems.com.au/. Для целей обучения UML и использования в качестве справочника пробной версии вполне достаточно - проверено (рис. 7.7). И при этом вы получаете ее абсолютно бесплатно!

Рис. 7.7.

А теперь, уже по традиции, слово разработчикам пакета:

· http://www.sparxsystems.com.au/ Это официальный сайт продукта, где вы сможете найти подробную информацию об Enterprise Architect (на англ. языке).

· http://www.sparxsystems.com.au/zm/ А это сайт Zicom Mentor. Тут вы можете ближе познакомиться с этим замечательным продуктом.

· http://www.sparxsystems.com.au/EAUserGuide/ А здесь можно более подробно прочесть о приемах работы с программой. И пусть это не интерактивная демонстрация, как в случае ранее описанных пакетов, но вполне детальное и впечатляющее руководство пользователя.

Gentleware Poseidon

Poseidon for UML - это популярное CASE-средство для UML-моделирования. Poseidon берет свое начало из открытого проекта ArgoUML (который также был весьма неплох и удобен в работе) и в наши дни уже является признанным профессионалами пакетом. На данный момент сформировалось быстро развивающееся сообщество пользователей, которые работают с Poseidon при проектировании серьезных приложений. Poseidon известен своим потрясающим удобством (usability).

Как и другие подобные пакеты, для того чтобы покрыть нужды разных групп пользователей, Poseidon for UML существует в нескольких редакциях. Особой похвалы заслуживает сайт приложения (http://www.gentleware.com/), который содержит много полезной информации по Poseidon, UML, ООАП вообще, тесты для самопроверки и курсы по UML, плагины, ООАП-глоссарий и многое другое.

А вот так это выглядит (рис. 7.8).

Рис. 7.8.

Не правда ли, весьма симпатично? Да, действительно, продукт не только очень функционален, но и имеет весьма приятный с виду и удобный, интуитивно понятный интерфейс. Авторы довольно много работали с бесплатной версией этого продукта, и можете поверить нам на слово - это идеальный выбор для "домашнего пользователя"! Чего стоит только девиз компании: "Просто моделируй!" ("Just model!").

Кстати о версиях. Как уже говорилось выше, Poseidon for UML существует в нескольких редакциях:

· Community Edition

Это базовая версия, бесплатный продукт, который обеспечит беспрепятственный доступ в мир UML для индивидуальных разработчиков и больших организаций. Она делает освоение и использование UML по-настоящему легким.

· Standard Edition

Расширяемая базовая версия для профессионалов по невысокой цене. Она имеет все возможности Community Edition плюс дополнительные возможности вроде обратного проектирования, отмены и повтора операций с моделью, drag-and-drop, плюс дополнительная документация.

· Professional Edition

Это high-end-версия Poseidon for UML. Для того чтобы удовлетворить потребности профессиональных разработчиков ПО, она включает более гибкий механизм генерации кода, JAR-Import, генерацию HTML-документации и многое другое.

· Embedded Edition

Как видно из названия, была создана для разработки приложений для встраиваемых устройств. Она имеет все возможности стандартной версии (включая UMLdoc и возможности MDL-импорта) и оптимизирована для кодогенерации в ANSI C и C++. Генератор кода был специально разработан с учетом ограничений встраиваемых систем, касающихся памяти и производительности, поддерживает UML-диаграммы классов и состояний.

· Embedded Enterprise

Интегрирует мощные возможности командного моделирования Enterprise Edition с поддержкой встраиваемых систем Embedded Edition в одном приложении. Также доступно множество плагинов, расширяющих возможности Poseidon for UML.

· Enterprise Edition

Наиболее полная версия продукта, обеспечивающая такие возможности:

o эффективное взаимодействие в реальном времени;

o поддержка многопользовательской разработки;

o контроль версий;

o клиент-серверная архитектура;

o настраиваемая генерация кода для Java, C#, C++, VB.net, IDL, SQL DDL, Perl и Delphi;

o независимость от платформы;

o и многое другое, в чем вы можете нуждаться в процессе модель-ориентированной разработки в большой команде. Эта версия поддерживает многомодельное редактирование и масштабирование модели.

И опять-таки, лучше всех о своем детище расскажут разработчики пакета:

· http://www.gentleware.com/ Тот самый хваленый сайт продукта, где вы сможете найти множество полезной информации о Poseidon и не только (на англ. языке). Тут же можно просмотреть или загрузить на свой компьютер отличную флеш-демонстрацию возможностей продукта.

· http://www.gentleware.com/19.html А это лучший из известных авторам онлайновый глоссарий терминов, связанных с UML, ООАП и программной инженерией вообще.

· http://www.gentleware.com/knowledge/quiz.php4 Здесь вы сможете проверить свои знания UML, ответив на вопросы тестов, сгруппированные по трем уровням сложности.

SmartDraw

SmartDraw - это простая и дружественная, да еще и нетребовательная к ресурсам альтернатива MS Visio. Как и Visio, это программа, предназначенная исключительно для рисования, не имеющая функций поддержки командной разработки ПО. В подражание Microsoft, на сайте SmartDraw изложены 10 причин, почему надо использовать этот продукт (чувствуете иронию?):

· SmartDraw более прост в использовании для непрофессионалов;

· он так же хорошо, как и Visio, интегрируется с MS Office;

· SmartDraw более универсален, чем Visio;

· более расширяем;

· поддерживается огромное число форматов растровой графики;

· SmartDraw более доступен (в финансовом плане), чем Visio;

· имеется свободно доступный вьюер файлов SmartDraw;

· SmartDraw обеспечивает беспрецедентную поддержку пользователей, даже пользователей пробных версий, проверено!

· благодаря отличной поддержке формата Visio так просто конвертировать файлы Visio в SmartDraw!

SmartDraw - простой в использовании пакет для создания бизнес-схем и диаграмм (рис. 7.9). Что же можно создавать с его помощью?

Рис. 7.9.

· Блок-схемы.

· Временные диаграммы (timeline).

· Организационные диаграммы.

· UML-диаграммы.

· Сетевые диаграммы.

· Формы - и даже больше (заметьте, теперь не нужным (почти) становится и MS InfoPath)!

· Поэтажные планы.

· И многое другое (рис. 7.10)...

увеличить изображение
Рис. 7.10.

Кому необходим SmartDraw? Каждому! Независимо от вашей работы или роли в проекте SmartDraw поможет:

· проиллюстрировать отчет;

· создать презентацию;

· убедить других членов команды;

· документировать процедуры;

· общаться яснее;

· дать понять другим членам команды, "что вы имеете в виду".

· проанализировать процесс;

В комплект поставки входит более 50000 символов, картинок и других материалов. SmartDraw поможет вам создавать графические материалы, выглядящие профессионально, даже если вы не в состоянии провести прямую линию! К тому же программа отлично интегрируется с приложениями MS Office, позволяя экспортировать диаграммы в Word, PowerPoint, Excel. Забавно, что за счет применения элементов управления, похожих на майкрософтовские "риббоны", эта альтернатива к Visio выглядит более похожей на приложения MS Office 2007, чем сама Visio (рис. 7.11).

увеличить изображение
Рис. 7.11.

И вновь слово разработчикам:

· http://www.smartdraw.com/Официальный сайт продукта, где можно найти множество полезной информации о SmartDraw и UML (на англ. языке). Отсюда же можно загрузить отличную PowerPoint-презентацию с описанием возможностей продукта.

· http://www.smartdraw.com/resources/centers/uml/resources.htm А это неплохая подборка ссылок на ресурсы, связанные с UML и ООАП.

Dia

Dia - программа для создания диаграмм, базирующаяся на gtk+ и распространяющаяся по лицензии GPL. Dia создавалась по подобию коммерческой Windows-программы Visio. Она может быть использована для рисования многих видов диаграмм. На данном этапе развития Dia имеет средства для рисования:

· ER-диаграмм (проектирование баз данных);

· диаграмм UML;

· блок-схем;

· сетевых диаграмм;

· простых схем электрических цепей;

· и многого другого…

Возможности программы легко расширить путем введения новых символов, определяемых в XML-файлах с помощью подмножества тегов SVG для изображения фигур. Dia может загружать и сохранять диаграммы в своем XML-формате (по умолчанию - сжимаемом gzip для экономии места), может экспортировать диаграммы в EPS- или SVG-формат и печатать их (включая разбивку на несколько страниц).

Dia - самая простая программа в этом обзоре. Она работает под управлением Linux в среде Gnome, требует библиотек gtk+ и glib. Существует порт Dia для Windows, который производит в целом приятное впечатление. Несмотря на то что программа еще не дошла до стадии финального релиза, Dia уже существует в состоянии, пригодном для использования, и продукт все время динамично развивается. Да, кстати, Dia поддерживает множество языков и региональных стандартов, в том числе и русский с украинским.

Интерфейс Dia похож на интерфейс других "гномьих" приложений, в частности Gimp. Этот стиль интерфейса, когда панель инструментов, рабочая область и другие элементы организованы в виде отдельных окон, немного непривычен для глаз пользователей Windows. Но главное - Dia абсолютно бесплатна! Вы можете загрузить с домашней страницы и исполняемый файл, и исходные коды, можете вносить изменения в код, распространять его и т. д. (рис. 7.12).

Рис. 7.12.

В общем, если ваш девиз "чем проще, тем лучше", то Dia - это ваш лучший выбор. Для получения же дополнительной информации мы можем посоветовать посетить такие сайты:

· http://www.gnome.org/projects/dia/home.html Официальный сайт продукта, где не так много информации, но все же кое-что полезное найти можно, в частности мануал и FAQ по Dia (на англ. языке).

· http://www.gnome.org/projects/dia/faq.html А это тот самый FAQ по продукту.

Telelogic TAU G2

И наконец, TAU G2 от Telelogic. Это легендарное средство моделирования, которое сочетает в себе мощь и простоту использования, а также предоставляет уникальную возможность начальной верификации и симуляции создаваемых моделей. Почему мы говорим "легендарное"? Да потому, что все профессионалы слышали о TAU, но почти никто его не видел и не пробовал в работе! Не видели его и мы, пока компания Telelogic любезно не предоставила нам свой продукт для использования в учебных целях.

Интерфейс программы, правда, не блещет особой красотой в стиле Windows XP и выглядит даже слегка архаично, но, как оказалось, действительно очень удобен и интуитивно понятен (рис. 7.13):

увеличить изображение
Рис. 7.13.

TAU позволяет создавать все виды диаграмм UML 2.0, проверять их корректность и синтаксическую правильность, симулировать выполнение диаграмм, экспортировать и печатать диаграммы и многое другое… Работает это чудо на таких платформах, как:

· Windows 2000 Professional,

· Windows XP,

· Sun Solaris,

· Redhat Enterprise Linux,

· Citrix XPe.

Поддерживаются такие компиляторы:

· Microsoft Visual Studio .NET,

· Wind River Systems C/C++,

· gnu gcc,

· Sun Studio 8 C/C++,

· Java SDK**,

· Green Hills MULTI C, C++. TAU интегрируется в такие среды, как Microsoft Visual Studio .NET и Eclipse.

Что же касается редакций пакета, то по большому счету (не считая специализированных версий) их три:

· TAU/Model Author

Это продвинутая среда моделирования UML 2.0, включающая проверку синтаксиса и семантики, что позволяет планировщикам и архитекторам создавать точные, простые для понимания и логичные спецификации.

· TAU/Architect

Добавлена поддержка SysML, динамической симуляции выполнения моделей и их верификации, что позволяет системным инженерам, архитекторам, разработчикам, тестерам, QA-инженерам контролировать правильность дизайна, обнаруживать и решать проблемы еще до написания кода.

· TAU/Developer

Добавлена кодогенерация для C, C++ или Java, что позволит разработчикам работать более эффективно.

К сожалению, у Telelogic нет никаких демо- или пробных версий с ограниченной функциональностью. Вы можете только купить их продукты или получить полнофункциональную версию на совсем не обременительных условиях для использования в учебном процессе. А продукт действительно весьма неплохой.

Подробности можно узнать на корпоративном сайте Telelogic:

· http://www.telelogic.com Официальный сайт продукта, содержащий море информации по продуктам Telelogic, UML, OOAП и программной инженерии вообще (на англ. языке).

· http://www.telelogic.com/corp/products/tau/index.cfm А это раздел сайта, посвященный TAU. Здесь можно найти описание продукта, обзор функциональности, спецификации и много других дополнительных материалов.

StarUML

В последний момент мы решили написать здесь о StarUML. Внимательный читатель, конечно, заметил, что, начиная с лекции о диаграммах классов, вид диаграмм в этом курсе изменился. Почему? Да просто потому, что автору этих строк попалось на глаза замечательное (и к тому же абсолютно бесплатное) средство UML-моделирования - StarUML. Этот пакет сразу же стал нашим фаворитом.

StarUML - это пакет с открытым программным кодом, написанный на Delphi и работающий под управлением ОС семейства Windows. StarUML поддерживает UML 2.0 (плюс его профайлы) и MDA (Model Driven Architecture - см. "Википедию"!). Функционал пакета можно расширить за счет использования плагинов, так что каждый желающий может создать свой собственный модуль для StarUML на любом COM-совместимом языке (C++, Delphi, C#, ...). На сайте проекта доступны для загрузки несколько модулей, добавляющих поддержку ER-диаграмм (Entity-Relation Diagram), некоторых профайлов UML, например SPEM (Software Process Engineering Metamodel), WAE (Web Application Extension), интеграцию с MS Word и др.

Конек StarUML - это его юзабилити. Интерфейс пакета не может похвастаться красивыми разноцветными "пластмассовыми" элементами управления, как java-программы, рассмотренные выше, но очень удобен и интуитивно понятен. Больше всего StarUML напоминает... Microsoft Visual Studio (Enterprise Architect тоже чем-то напоминал MSVS, но здесь мы видим просто шедевр имитации). Да уж, воистину, почему бы и не позаимствовать удачные интерфейсные решения? В целом же, считаем, StarUML с успехом может заменить такие коммерческие программы, как рассмотренные выше Rational Rose, Together или TAU G2. Вы спросите: "А как же кодогенерация?". Отвечаем - кодогенерация тоже есть. "Прямо из коробки" пакет способен выполнять кодогенерацию на языках C++, C#, Java. А если использовать шаблоны, имеющиеся на сайте StarUML, то можно добавить поддержку PHP и некоторых других языков (рис. 7.14).

увеличить изображение
Рис. 7.14.

Кстати, чуть выше мы упоминали про интеграцию с MS Word. Кроме "ворда", StarUML способен создавать документацию в виде текстовых файлов, файлов MS Excel и MS PowerPoint. Впечатляет? А еще есть импорт из Rational Rose! Другими словами, автор этих строк просто очарован StarUML.

И снова мы отправляем читателя на сайт программы:

· http://staruml.sourceforge.net/en/about.php Страница описания программы, ее возможностей, истории создания и особенностей лицензии (на англ. языке).

· http://staruml.sourceforge.net/en/modules.php А это раздел сайта, который посвящен модулям, расширяющим функциональность StarUML. Обязательно загляните сюда!

· http://staruml.sourceforge.net/en/templates.php Описание и ссылки для скачивания дополнительных шаблонов к StarUML, позволяющих расширить возможности кодогенерации и создания документации.

· http://staruml.sourceforge.net/en/documentations.php Страница, содержащая ссылки на документацию к StarUML, в том числе и на русском языке!

Другие программы

Рассмотренные здесь пакеты - очень малая часть всего доступного в Интернете ПО для визуального моделирования с помощью UML. Список другого ПО для создания UML-диаграмм можно найти, например, на http://www.objectsbydesign.com/tools/umltools_byCompany.html.

На http://www.uml.org/#Links-UML2Tools расположен список ссылок на другие каталоги подобных программ. А на http://www.gskinner.com/gmodeler/app/run.html вы найдете уникальное в своем роде онлайновое средство UML-проектирования (к тому же написанное на Flash). На него стоит посмотреть!

Выводы

· На данный момент на рынке присутствует огромное количество и полноценных средств UML-моделирования, и программ для рисования диаграмм, в том числе и UML.

· Такие продукты, как Borland Together, Poseidon, StarUML и Dia, могут быть загружены с сайта производителя абсолютно бесплатно.

· StarUML выглядит наиболее функциональным из бесплатных продуктов и может служить полноценной заменой коммерческим программам для UML-моделирования.

· Для использования в качестве справочника идеально подходит Zicom Mentor от Sparx Systems, который также может быть получен абсолютно бесплатно.

· Выбор средства UML-проектирования - вопрос сложный и неоднозначный, и решить его каждый должен для себя сам, исходя из своих потребностей, уровня знаний и т. д.

Практическая работа 13.

Разработка диаграммы деятельности для моделирования бизнес-процессов

Особенности проектов по моделированию бизнес-процессов в среде IBM Rational Rose

Продолжая рассмотрение особенностей разработки диаграмм деятельности, следует отметить, что программа IBM Rational Rose может быть успешно использована для выполнения проектов по моделированию бизнес-процессов. Наиболее подходящим типом диаграмм для визуального представления схем выполнения бизнес-процессов являются диаграммы деятельности, на которых дополнительно размещаются так называемые дорожки ( Swimlane ). Назначение дорожек состоит в том, чтобы указать зоны ответственности за выполнения отдельных деятельностей в рамках моделируемого бизнес-процесса. В качестве имен дорожек используются либо названия подразделений (департаментов) рассматриваемой компании, либо названия отдельных должностей сотрудников тех или иных подразделений.

Проекты по моделированию бизнес-процессов могут выполняться либо с целью реорганизации или реинжиниринга компании, либо с целью собственно документирования бизнес-процессов. Особенности данных проектов заключаются в том, что в обоих случаях необходимо построить модели бизнес-процессов некоторой существующей компании. Чтобы акцентировать внимание на подобных проектах, их часто называют проектами типа "As is" ("Как есть"). Соответственно проекты по разработке новых продуктов или моделей новых систем называют проектами типа "To be" ("Как должно быть").

В данном контексте рассматриваемый ранее проект по разработке системы управления банкоматом следует отнести к проектам типа "Как есть", поскольку при построении диаграмм предполагалась известной существующая технология использования банкоматов для обслуживания клиентов. С другой стороны, если бы стояла цель разработки новой модели банкомата с некоторой дополнительной функциональностью или, например, разработки нового Интернет-магазина, то подобные проекты можно было бы отнести к проектам типа "Как должно быть". Именно этот тип проектов служит базовым для принятой нами последовательности разработки канонических диаграмм в нотации UML, начиная от представления диаграмм вариантов использования и заканчивая диаграммами физического представления.

Выполнение проектов типа "Как есть" по моделированию бизнес-процессов в большинстве случаев начинают с построения диаграмм деятельности, которые служат для графического представления схем выполнения бизнес-процессов и документооборота рассматриваемой компании. После этого, исходя из требований проекта, разрабатывается модель диаграммы вариантов использования и выполняется реорганизация бизнес-процессов. Наконец, в случае необходимости разработки или внедрения корпоративной информационной системы, строятся диаграмма классов, диаграммы взаимодействия и компонентов, которые служат основой для программной реализации соответствующего проекта.

Таким образом, первый этап выполнения проектов типа "Как есть" связан с построением моделей существующих бизнес-процессов компании в форме диаграмм деятельности. В качестве примера проекта этого типа в данной лабораторной работе рассматривается модель бизнес-процесса по оптовой продаже товаров со склада торговой компании. Хотя данный пример имеет упрощенный характер, он позволяет наглядно представить основные особенности моделирования бизнес-процессов в нотации языка UML с использованием средства IBM Rational Rose .

Для вновь разрабатываемого проекта по моделированию бизнес-процессов торговой компании в среде IBM Rational Rose создадим новый проект с именем: МодельБП. В качестве первой диаграммы проекта будет служить диаграмма деятельности, которая описывает отдельный бизнес-процесс в виде последовательности выполнения действий подразделениями компании при оптовой продаже товаров клиентам. Для удобства можно включить эту диаграмму в логическое представление, для чего необходимо в браузере проекта выделить логическое представление ( Logical View ) и выполнить операцию контекстного меню: New Activity Diagram (Новая Диаграмма деятельности).

Добавление дорожек на диаграмму деятельности

Для представления модели бизнес-процесса в форме диаграммы деятельности первоначально необходимо добавить на нее дорожки. Для добавления дорожки на диаграмму деятельности нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы дорожки на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить дорожку на диаграмму можно также с помощью операции главного меню: Tools Create Swimlane или с помощью операции контекстного меню: New Swimlane, предварительно выделив диаграмму деятельности в браузере проекта.

В результате этих действий на диаграмме в области диаграммы появится изображение дорожки с вертикальной линией и именем дорожки NewSwimlane в верхней части, предложенное программой по умолчанию. Для задания имени дорожки следует открыть диалоговое окно спецификации ее свойств и ввести ее имя в поле ввода Name (рис. 1).

Рис. 1. Диалоговое окно спецификации свойств дорожки

Начиная практическую разработку модели бизнес-процесса оптовой продажи товаров со склада компании, последовательно добавим на диаграмму деятельности дорожки с именами отдельных подразделений компании: Отдел приема заказов, Бухгалтерия, Склад и Отдел доставки (рис. 2).

Рис. 2. Диаграмма деятельности после добавления на нее дорожек

После добавления дорожек на диаграмму состояний можно перейти к добавлению деятельностей и переходов. В качестве первой деятельности добавим деятельность с именем Принять заказ по факсу, которую разместим в первой дорожке с именем Отдел приема заказов. Этот факт будет означать, что деятельность Принять заказ по факсу выполняется в Отделе приема заказов или, другими словами, сотрудники этого отдела несут ответственность за выполнение данной деятельности.

Деятельности Принять заказ по факсу должно предшествовать начальное состояние, которое также следует добавить в эту же дорожку и соединить переходом с этой деятельностью. После добавления начального состояния и перехода диаграмма деятельности будет иметь следующий вид (рис. 3).

Рис. 3. Диаграмма деятельности после добавления на нее перехода из изначального состояния в деятельность Принять заказ по факсу

Построение диаграммы деятельности с дорожками для модели бизнес-процесса

Для построения диаграммы деятельности с дорожками для рассматриваемой модели бизнес-процесса следует добавить оставшиеся деятельности и переходы. С этой целью следует выполнить следующие действия:

1. Добавить деятельность с именем: Заказать товар на складе в дорожку Отдел приема заказов.

2. Добавить деятельности с именами: Выставить счет к оплате и Получить оплату за товар в дорожку Бухгалтерия.

3. Добавить деятельности с именами: Подобрать товар и Подготовить товар к отправке в дорожку Склад.

4. Добавить деятельность с именем: Отправить товар клиенту в дорожку Отдел доставки.

5. Добавить символ горизонтальной синхронизации в дорожки Отдел приема заказов и Склад. Следует заметить, что первый символ будет использован для разделения параллельных потоков деятельностей, а второй - для слияния этих потоков.

6. Добавить переход, направленный от деятельности Принять заказ по факсу к деятельности Заказать товар на складе.

7. Добавить переход, направленный от деятельности Заказать товар на складе к символу горизонтальной синхронизации.

8. Добавить переход, направленный от символа горизонтальной синхронизации к деятельности Выставить счет к оплате.

9. Добавить переход, направленный от символа горизонтальной синхронизации к деятельности Подобрать товар.

10. Добавить переход, направленный от деятельности Выставить счет к оплате к деятельности Получить оплату за товар.

11. Добавить переход, направленный от деятельности Подобрать товар к деятельности Подготовить товар к отправке.

12. Добавить переход, направленный от деятельности Получить оплату за товар к символу горизонтальной синхронизации.

13. Добавить переход, направленный от деятельности Подготовить товар к отправке к символу горизонтальной синхронизации.

14. Добавить переход, направленный от символа горизонтальной синхронизации к деятельности Отправить товар клиенту.

15. Добавить переход, направленный от деятельности Отправить товар клиенту к финальному состоянию.

Построенная таким образом диаграмма деятельности с дорожками будет иметь следующий вид (рис. 4).

Рис. 4. Диаграмма деятельности с дорожками для модели бизнес-процесса

Следует заметить, что в разрабатываемой модели диаграмма деятельности не описывает ситуацию, когда заказанного клиентом товара не окажется на складе. Дополнить данную диаграмму, которая учитывает данное условие в форме проверки отдельного условия, предлагается читателям самостоятельно в качестве упражнения.

Построение диаграммы деятельности с дорожками и потоком объектов

Для построения диаграммы деятельности с дорожками и потоком объектов для рассматриваемой модели бизнес-процесса следует добавить на диаграмму объекты и стрелки потоков объектов. Объекты на диаграмме деятельности могут обозначать отдельные документы, которые необходимы для выполнения моделируемого бизнес-процесса. Соответственно поток объектов служит моделью документооборота рассматриваемой компании. Для добавления на диаграмму объекта следует воспользоваться соответствующей кнопкой на специальной панели инструментов. При этом данную кнопку предварительно следует на нее добавить, поскольку по умолчанию на панели она отсутствует.

В качестве первого объекта добавим на диаграмму деятельности объект с именем заказ, для которого зададим состояние: получен. Для задания состояния добавленного объекта следует открыть диалоговое окно свойств данного объекта, во вложенном списке State (Состояние) выбрать нужное состояние или задать новое (рис. 5). При этом будет открыто дополнительное окно свойств состояния, в которое можно занести всю информацию по данному состоянию.

Рис. 5. Диалоговое окно спецификации свойств объекта

Для завершения построения диаграммы деятельности рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты и стрелки потоков объектов. С этой целью следует выполнить следующие действия:

1. Добавить стрелку потока объектов, направленную от деятельности Принять заказ по факсу к объекту заказ в состоянии получен.

2. Добавить стрелку потока объектов, направленную от объекта заказ в состоянии получен к деятельности Заказать товар на складе.

3. Добавим объект с именем заказ, для которого зададим состояние: оформлен. Следует заметить, что для добавления на диаграмму деятельности уже существующего в модели объекта его следует просто перетащить из браузера проекта на диаграмму и задать ему новое состояние.

4. Добавить стрелку потока объектов, направленную от деятельности Заказать товар на складе к объекту заказ в состоянии оформлен.

5. Добавить стрелку потока объектов, направленную от объекта заказ в состоянии оформлен к деятельности Выставить счет к оплате.

6. Добавим объект с именем счет, для которого зададим состояние: выставлен.

7. Добавить стрелку потока объектов, направленную от деятельности Выставить счет к оплате к объекту счет в состоянии выставлен.

8. Добавить стрелку потока объектов, направленную от объекта счет в состоянии выставлен к деятельности Получить оплату за товар.

9. Добавим объект с именем счет, для которого зададим состояние: оплачен.

10. Добавить стрелку потока объектов, направленную от деятельности Получить оплату за товар к объекту счет в состоянии оплачен.

11. Добавить стрелку потока объектов, направленную от объекта счет в состоянии оплачен к деятельности Отправить товар клиенту.

12. Добавим объект с именем накладная, для которого зададим состояние: выписана.

13. Добавить стрелку потока объектов, направленную от деятельности Заказать товар на складе к объекту накладная в состоянии выписана.

14. Добавить стрелку потока объектов, направленную от объекта накладная в состоянии выписана к деятельности Подобрать товар.

15. Добавим объект с именем накладная, для которого зададим состояние: оформлена.

16. Добавить стрелку потока объектов, направленную от деятельности Подготовить товар к отправке к объекту накладная в состоянии оформлена.

17. Добавить стрелку потока объектов, направленную от объекта накладная в состоянии оформлена к деятельности Отправить товар клиенту.

Построенная таким образом диаграмма деятельности с дорожками и потоком объектов будет иметь следующий вид (рис. 6).

Рис. 6. Окончательный вид диаграммы деятельности для модели бизнес-процесса

Для большей наглядности представления данной модели можно задать для всех деятельностей стереотип Business Activity (Бизнес-деятельность), который будет означать в данном контексте деятельность, выполняемую в рамках некоторого бизнес-процесса. Напомним, что изменить стереотип деятельности можно с помощью выбора нужного варианта стереотипа в окне спецификации свойств деятельности. Соответствующий вариант изображения диаграммы деятельности представлен на рис. 7.

Рис. 7. Окончательный вид диаграммы деятельности для модели бизнес-процесса со стереотипами деятельностей

Следует заметить, что в разрабатываемой модели диаграмма деятельности не описывает ситуацию, когда клиент отказался от оплаты товара после выставления ему счета. Дополнить данную диаграмму деятельности, которая учитывает данное условие, предлагается читателям самостоятельно в качестве упражнения.

Хотя в среде IBM Rational Rose диаграмма деятельности не является необходимой для генерации программного кода, диаграммы данного типа имеют большое значение для документирования бизнес-процессов и их последующей сертификации по международному стандарту ISO 9000. Поэтому разработка диаграмм этого типа занимает центральное место при выполнении проектов по реинжинирингу и оптимизации бизнес-процессов с использованием нотации UML.

Лабораторная работа 13.

Разработка диаграммы кооперации и редактирование свойств ее элементов

Особенности разработки диаграмм кооперации в среде IBM Rational Rose

Диаграмма кооперации является разновидностью диаграммы взаимодействия, и в контексте языка UML описывает динамический аспект взаимодействия объектов при реализации отдельных вариантов использования. Активизировать рабочее окно диаграммы кооперации в программе IBM Rational Rose можно несколькими способами:

· Щелкнуть на кнопке с изображением диаграммы взаимодействия на стандартной панели инструментов и выбрать для построения новую диаграмму кооперации.

· Выполнить операцию главного меню: Browse Interaction Diagram (Браузер Диаграмма взаимодействия) и выбрать для построения новую диаграмму кооперации.

· Выполнить операцию контекстного меню: New Collaboration Diagram (Новая Диаграмма кооперации) для логического представления или представления вариантов использования в браузере проекта.

При этом появляется новое окно с чистым рабочим листом диаграммы кооперации и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы кооперации (табл. 1). Назначение отдельных кнопок панели можно узнать из всплывающих подсказок.

Таблица 1. Назначение кнопок специальной панели инструментов диаграммы кооперации
Графическое изображение | Всплывающая подсказка | Назначение кнопки
| Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме
| Text Box | Добавляет на диаграмму текстовую область
| Note | Добавляет на диаграмму примечание
| Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы
| Object | Добавляет на диаграмму объект
| Class Instance | Добавляет на диаграмму экземпляр класса
| Object Link | Добавляет на диаграмму связь
| Link To Self | Добавляет на диаграмму рефлексивную связь
| Link Message | Добавляет на связь диаграммы прямое сообщение
| Reverse Link Message | Добавляет на связь диаграммы обратное сообщение
| Data Token | Добавляет на связь диаграммы элемент прямого потока данных
| Reverse Data Token | Добавляет на связь диаграммы элемент обратного потока данных

На специальной панели инструментов по умолчанию присутствуют практически все кнопки с пиктограммами элементов, которые могут быть использованы для построения диаграммы. В данной лабораторной работе в качестве примера рассматривается процесс построения диаграммы кооперации, которая представляет собой реализацию варианта использования Снятие наличных по кредитной карточке применительно к разрабатываемому проекту системы управления банкоматом. В модели данная диаграмма кооперации соответствует этому варианту использования и может быть размещена в представлении вариантов использования ( Use Case View ). После активизации новой диаграммы кооперации одним из описанных выше способов следует в качестве имени данной диаграммы задать: Снятие наличных по кредитной карточке.

В общем случае работа с диаграммой кооперации состоит в добавлении объектов, связей и сообщений, а также редактировании их свойств. При этом изменения, вносимые в диаграмму кооперации, автоматически вносятся в диаграмму последовательности, что можно увидеть в любой момент, активизировав последнюю нажатием клавиши <F5>.

Добавление объекта на диаграмму кооперации и редактирование его свойств

Добавить объект на диаграмму кооперации можно стандартным образом с помощью соответствующей кнопки на специальной панели инструментов. Однако, в случае наличия построенной ранее диаграммы классов, более удобным представляется следующий способ. В браузере проекта выделить необходимый класс и, удерживая нажатой левую кнопку мыши, перетащить изображение пиктограммы класса из браузера на свободное место рабочего листа диаграммы кооперации. В результате этих действий на диаграмме кооперации появится изображение объекта с именем класса и маркерами изменения его геометрических размеров (рис. 1).

Рис. 1. Диаграмма кооперации после добавления на нее анонимного объекта класса Устройство чтения карточки

По умолчанию каждый добавляемый объект считается анонимным. При необходимости можно задать собственное имя объекта, для чего двойным щелчком на изображении объекта на диаграмме кооперации следует вызвать диалоговое окно свойств этого объекта (рис. 2).

Рис. 2. Диалоговое окно спецификации свойств объекта класса Устройство чтения карточки

Как видно из рассмотрения этого окна свойств, для объекта выбранного класса можно задавать: собственное имя объекта, особенности его реализации и множественность экземпляров.

Группа свойств Persistence (Устойчивость) предназначена для спецификации устойчивости объектов соответствующего класса. При этом свойство Persistent (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе некоторым подходящим способом. Свойство Static (Статический) означает, что соответствующий объект сохраняется в памяти компьютера в течение всего времени работы программного приложения. Свойство Transient (Временный) соответствующий объект хранится в памяти компьютера в течение короткого времени, необходимого только для выполнения его операций. Применительно к рассматриваемой для объекта класса Устройство чтения карточки модели следует выбрать свойство Persistent.

При необходимости можно представить объект в форме мультиобъекта. Для этого следует выбрать отметку у свойства Multiple instances (Несколько экземпляров). Однако для объекта класса Устройство чтения карточки это свойство следует оставить пустым, поскольку данный объект присутствует в модели в единственном экземпляре.

Добавление связи и редактирование ее свойств

Для добавления связи между предварительно размещенными на диаграмме объектами нужно с помощью левой кнопки мыши нажать кнопку с изображением связи на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении одного объекта на диаграмме и отпустить ее на изображении другого объекта. В результате этих действий на диаграмме появится изображение связи, например, соединяющей объект класса Клиент Банкомата (актера) с объектом класса Устройство чтения карточки (рис. 3). Поскольку кнопка с изображением актера отсутствует на специальной панели инструментов диаграммы кооперации, соответствующий объект следует предварительно поместить на диаграмму способом перетаскивания пиктограммы актера из браузера проекта.

Рис. 3. Диаграмма кооперации после добавления связи между объектом класса Клиент Банкомата (актером) и объектом класса Устройство чтения карточки

По умолчанию каждая добавляемая связь считается анонимной. При необходимости можно задать имя связи с помощью диалогового окна спецификации свойств данной связи (рис. 4).

Рис. 4. Диалоговое окно редактирования свойств связи

Кроме имени связи можно также задать: имя ассоциации, видимость соответствующей пары объектов и наличие общих ролей. Однако более важной представляется следующая вкладка Messages ( сообщения ), служащая для спецификации сообщений, передаваемых между соответствующей парой объектов.

Добавление сообщения и редактирование его свойств

Добавить сообщения на диаграмму кооперации можно несколькими способами. Стандартный способ заключается в использовании кнопки с пиктограммой сообщения на специальной панели инструментов. В этом случае необходимо левой кнопкой мыши нажать кнопку с изображением прямого или обратного сообщения на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении линии связи на диаграмме и отпустить ее. В результате этих действий на диаграмме рядом с линией связи появится изображение стрелки сообщения.

Однако более удобным представляется способ добавления сообщений с помощью диалогового окна свойств связей. Для этого двойным щелчком на линии связи вызывается окно ее свойств и раскрывается вкладка Messages ( сообщения ). После этого следует выполнить операцию контекстного меню Insert To (Вставить в направлении), в результате чего появляется вложенный список с предложением выбрать одну из операций целевого класса для спецификации имени сообщения (рис. 5).

Рис. 5. Диалоговое окно добавления сообщения для выбранной связи

Для рассматриваемой модели банкомата для первого сообщения следует выбрать операцию прочитать идентификатор карточки(). После выбора операции для данного сообщения оно добавляется в список сообщений данной связи, а рядом с линией связи на диаграмме кооперации появится стрелка с номером и именем этого сообщения (рис. 6).

Рис. 6. Диаграмма кооперации после добавления связи между объектом класса Клиент Банкомата (актером) и объектом класса Устройство чтения карточки

Кроме имени сообщения можно также задать стереотип синхронизации и частоту передачи. Для этой цели следует воспользоваться диалоговым окном спецификации свойств сообщений (рис. 7), которое можно открыть двойным щелчком на имени сообщения в списке рассматриваемой вкладки Messages окна спецификации свойств связи.

Рис. Диалоговое окно спецификации свойств сообщения

Группа свойств Synchronization (Синхронизация) предназначена для определения способа синхронизации передаваемого сообщения. При изменении этого свойства изменяется графическое изображение стрелки соответствующего сообщения. Характеристика отдельных свойств синхронизации сообщений и графическое изображение соответствующих стрелок сообщений приводится в следующей таблице (табл. 2).

Таблица 2. Характеристика свойств синхронизации сообщений
Название свойства | Графическое изображение стрелки | Назначение свойства
Simple (Простое) |  | Данное сообщение выполняется в одном потоке управления. Это свойство задается добавляемому на диаграмму сообщению по умолчанию
Synchronous (Синхронное) |  | После передачи данного сообщения клиент ожидает ответа от объекта-приемника о результате выполнения соответствующей операции
Balking (С отказом) |  | После передачи данного сообщения объект-приемник отказывает клиенту в выполнении соответствующей операции, если он занят выполнением других операций
Timeout (С ожиданием) |  | После передачи данного сообщения объект-приемник может поместить данное сообщение в очередь с ограниченным временем ожидания, если он занят выполнением других операций
Procedure Call (Вызов процедуры) |  | Клиент посылает данное сообщение объекту-приемнику и, чтобы продолжить свою работу ожидает, пока вся дальнейшая вложенная последовательность сообщений не будет обработана приемником
Asynchronous (Асинхронное) |  | Клиент посылает данное сообщение и продолжает свою работу, не ожидая подтверждения от объекта-приемника о получении этого сообщения. При этом соответствующая операция может быть как выполнена, так и не выполнена
Return (Возврат) |  | Данное сообщение посылается клиенту после окончания выполнения вызова процедуры

Группа свойств Frequency (Частота) предназначена для указания периодического характера передачи сообщения. При изменении этого свойства графическое изображение стрелки соответствующего сообщения не изменяется. Свойство Aperiodic (Апериодическое) означает, что сообщение посылается клиентом нерегулярно. При этом сообщение может быть отправлено один или несколько раз через различные промежутки времени. Это свойство задается для сообщения по умолчанию. Свойство Periodic (Периодическое) означает, что сообщение регулярно посылается клиентом через определенные промежутки времени.

Применительно для модели банкомата можно оставить рассмотренные свойства сообщений без изменения, в том виде, в каком они определены по умолчанию программой IBM Rational Rose..

Окончательное построение диаграммы кооперации для модели банкомата

Для завершения построения диаграммы кооперации рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты, связи и сообщения. С этой целью следует выполнить следующие действия:

1. Добавить объекты классов с именами: Контроллер Банкомата, Транзакция Банкомата, Клавиатура Банкомата, Экран Банкомата, Принтер Банкомата, Устройство выдачи наличных и IИнтерфейс Банка.

2. Добавить связи, соединяющие объекты классов с именами: Контроллер Банкомата с Устройством чтения карточки, Контроллер Банкомата с Транзакцией Банкомата, Контроллер Банкомата с Клавиатурой Банкомата, Контроллер Банкомата с Экраном Банкомата, Контроллер Банкомата с Принтером Банкомата, Контроллер Банкомата с Устройством выдачи наличных и Контроллер Банкомата с IИнтерфейсом Банка.

3. Добавить сообщение: проверить идентификатор карточки (Integer) , направленное от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.

4. Добавить сообщение: ввести ПИН-код(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.

5. Добавить сообщение: прочитать ПИН-код(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.

6. Добавить сообщение: создать новую транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.

7. Добавить сообщение: проверить правильность ПИН-кода(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.

8. Добавить сообщение: показать меню опций(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.

9. Добавить сообщение: ввести тип транзакции(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.

10. Добавить сообщение: показать меню снятия суммы(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.

11. Добавить сообщение: ввести сумму снятия наличных(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.

12. Последовательно добавить 3 сообщения: открыть счет клиента (Integer) , проверить баланс клиента (Integer, Currency) и уменьшить счет клиента(Integer, Currency), направленные от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.

13. Добавить сообщение: распечатать чек(), направленное от объекта класса Контроллер Банкомата к объекту класса Принтер Банкомата.

14. Добавить сообщение: вернуть кредитную карточку(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.

15. Добавить сообщение: выдать наличные(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство выдачи наличных.

16. Добавить сообщение: завершить транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.

Диаграмма кооперации, описывающая реализацию типичного хода событий варианта использования Снятие наличных по кредитной карточке для проекта системы управления банкоматом, показана на рис. 8.

Рис. 8. Окончательный вариант диаграммы кооперации, описывающий типичный ход событий варианта использования Снятие наличных по кредитной карточке

При необходимости можно изменить порядок следования сообщений и их спецификацию, а также установить дополнительную синхронизацию сообщений и связать с сообщениями примечания. Указанные действия, а также построение диаграмм кооперации, описывающих реализации исключений для варианта использования Снятие наличных по кредитной карточке и других вариантов использования, предлагается выполнить читателям самостоятельно в качестве упражнения.

В заключение этой следует заметить, что среди свойств сообщений в среде IBM Rational Rose отсутствует сторожевое условие. Этот факт может несколько озадачить разработчиков, поскольку в общем случае приводит к увеличению количества диаграмм кооперации в модели проекта. В качестве выхода из данной ситуации можно рекомендовать указывать при необходимости сторожевое условие в качестве предусловия для соответствующей операции класса.