Визуальное моделирование в среде IBM Rational Rose 2003
Главное меню и стандартная панель инструментов
Главное меню программы IBM Rational Rose 2003 выполнено в общепринятом стандарте и имеет следующий вид (рис. 1.2).
Рис. 1.2. Внешний вид главного меню программы
Отдельные пункты меню объединяют сходные операции, относящиеся ко всему проекту в целом. Некоторые из пунктов меню содержат хорошо знакомые операции, такие как открытие проекта, вывод на печать диаграмм, копирование в буфер и вставка из буфера различных элементов диаграмм. Другие операции настолько специфичны, что могут потребоваться дополнительные усилия для их изучения (свойства операций генерации программного кода или проверки согласованности моделей). Назначение отдельных операций главного меню приводится далее в данной лекции.
Стандартная панель инструментов располагается ниже строки главного меню и имеет следующий вид (рис. 1.3). Некоторые из инструментов недоступны для нового проекта, который не имеет никаких элементов. Стандартная панель инструментов обеспечивает быстрый доступ к тем командам меню, которые выполняются разработчиками наиболее часто.

Рис. 1.3. Внешний вид стандартной панели инструментов
Пользователь может настроить внешний вид этой панели по своему усмотрению. Для этого необходимо выполнить операцию главного меню: Tools
Options (Инструменты
Параметры), открыть вкладку Toolbars (Панели инструментов) появившегося диалогового окна и нажать кнопку Standard (Стандартная) . В дополнительно открытом окне можно переносить требуемые кнопки из левого списка в правый список, а ненужные кнопки - из правого списка в левый. Данным способом можно показать или скрыть различные кнопки инструментов, а также изменить их размер. Назначение отдельных кнопок стандартной панели инструментов приводится далее при рассмотрении операций главного меню.Назначение операций главного меню File и Edit
Рабочий интерфейс средства IBM Rational Rose 2003 имеет главное меню, которое позволяет пользователю загружать и сохранять информацию во внешних файлах, изменять внешний вид элементов графического интерфейса, вызывать справочную информацию, вызывать другие диалоговые окна для работы с программой IBM Rational Rose 2003 и т.д. Рассмотрим назначение отдельных пунктов главного меню средства IBM Rational Rose 2003.Операции главного меню File (Файл) позволяют создавать новые модели в нотации языка UML, загружать и сохранять разрабатываемую модель во внешнем файле, распечатывать на принтере разработанные диаграммы. Назначение операций этого пункта главного меню представлено в таблице 1.1.
Операции главного меню Edit (Редактирование) позволяют выполнять действия по редактированию элементов модели и их свойств, а также выполнять поиск элементов в рамках разрабатываемого проекта. Назначение операций этого пункта главного меню представлено в таблице 1.2.
| New | ![]() | Создает новую модель IBM Rational Rose 2003. При этом новая модель по умолчанию имеет имя untitled | |
| Open | ![]() | Вызывает стандартное диалоговое окно открытия внешнего файла с диска. Открыть можно либо файл модели (файл с расширением «mdl»), либо файл подмодели (файл с расширением «ptl») | |
| Save | ![]() | Позволяет сохранить разрабатываемую модель во внешнем файле на диске | |
| Save As | Позволяет сохранить разрабатываемую модель под другим именем во внешнем файле на диске. При этом вызывается стандартное диалоговое окно сохранения файла на диске с предложением задать имя соответствующего файла модели или подмодели. | ||
| Save Log As | Позволяет сохранить содержание журнала во внешнем файле на диске с именем error.log. При этом вызывается стандартное диалоговое окно сохранения файла на диске с предложением изменить предлагаемое по умолчанию имя соответствующего файла. | ||
| AutoSave Log | Позволяет автоматически сохранять содержание журнала во внешнем файле на диске с именем error.log. При первом выполнении этого пункта меню также вызывается стандартное диалоговое окно сохранения файла на диске с предложением изменить предлагаемое по умолчанию имя соответствующего файла. | ||
| Clear Log | Очищает содержание журнала | ||
| Load Model Workspace | Позволяет загрузить рабочую область из внешнего файла на диске. Вызывает стандартное диалоговое окно открытия внешнего файла с диска, при этом открыть можно файл с расширением «wsp» | ||
| Save Model Workspace | Позволяет сохранить рабочую область модели во внешнем файле на диске. При выполнении этого пункта меню вызывается стандартное диалоговое окно сохранения файла с расширением «wsp» | ||
| Save Model Workspace As | Позволяет сохранить рабочую область модели во внешнем файле на диске. Вызывается стандартное диалоговое окно сохранения файла с предложением изменить предлагаемое по умолчанию имя соответствующего файла | ||
| Units | Позволяет загрузить категорию элементов модели из внешнего файла на диске. Вызывает стандартное диалоговое окно открытия внешнего файла с диска, при этом открыть можно файл с расширением «cat» | ||
| Import | Позволяет импортировать информацию из внешних файлов различных форматов, включая файлы моделей, подмоделей, категорий и подсистем | ||
| Export Model | Позволяет экспортировать информацию о модели во внешний файл. Вид этого пункта меню зависит от выделенного элемента модели | ||
| Update | Позволяет вставить информацию обратного проектирования из внешнего файла с расширением «red» в разрабатываемую модель | ||
![]() | Позволяет распечатать на принтере отдельные диаграммы и спецификации различных элементов разрабатываемой модели. В этом случае вызывается диалоговое окно выбора диаграмм и спецификаций для печати на подключенном к данному компьютеру принтеру | ||
| Print Setup | Вызывается стандартное диалоговое окно макета страницы для настройки свойств печати | ||
| Edit Path Map | Вызывает окно задания путей доступа к файлам системы IBM Rational Rose 2003. Как правило, значения путей, установленные по умолчанию, следует изменять только в случае крайней необходимости | ||
| <Имена файлов> | Секция с именами последних файлов, с которыми осуществлялась работа в IBM Rational Rose 2003 | ||
| Exit | Прекращает работу и закрывает IBM Rational Rose 2003 |
table class="xml_table" cellpadding="2" cellspacing="1">
Таблица 1.2. Операции пункта главного меню Edit (Редактирование)



Назначение операций главного меню View, Format и Browse
Операции главного меню View (Вид) позволяют отображать на экране различные элементы рабочего интерфейса и изменять графическое представление диаграмм. Назначение операций этого пункта главного меню представлено в следующей таблице (табл. 1.3).| Toolbars | Позволяет настроить внешний вид рабочего интерфейса системы IBM Rational Rose 2003 и содержит дополнительные подпункты: Standard - делает видимой/невидимой стандартную панель инструментов (рис. 1.3) Toolbox - делает видимой/невидимой стандартную панель инструментов текущей активной диаграммы Configure - вызывает диалоговое окно настройки параметров модели, открытое на вкладке настройки панелей инструментов | ||
| Status Bar | Делает видимой/невидимой строку состояния | ||
| Documentation | ![]() | Делает видимым/невидимым окно документации | |
| Browser | Делает видимым/невидимым браузер проекта | ||
| Log | Делает видимым/невидимым окно журнала | ||
| Editor | Делает видимым/невидимым встроенный текстовый редактор | ||
| Time Stamp | Включает/выключает режим отображения времени в записях журнала | ||
| Zoom to Selection | Изменяет масштаб изображения выделенных элементов модели , так чтобы они разместились в одном окне | ||
| Zoom In | ![]() | Увеличивает масштаб изображения | |
| Zoom Out | ![]() | Уменьшает масштаб изображения | |
| Fit in Window | ![]() | Изменяет (уменьшает) масштаб изображения всех элементов текущей диаграммы, так чтобы все они разместились в одном окне | |
| Undo Fit in Window | ![]() | Отменяет изменение масштаба изображения размещения элементов в одном окне | |
| Page Breaks | Разбивает текущую диаграмму на страницы для последующей печати | ||
| Refresh | Перерисовывает текущую диаграмму | ||
| As Booch | Изображает элементы модели в соответствии с нотацией Г. Буча | ||
| As OMT | Изображает элементы модели в соответствии с нотацией OMT | ||
| As Unified | Изображает элементы модели в соответствии с нотацией языка UML |
Операции главного меню Format (Формат) позволяют выполнять действия по изменению внешнего вида элементов модели на различных диаграммах.
Назначение операций этого пункта главного меню представлено в следующей таблице (табл. 1.4).
| Font Size | Изменяет масштаб используемого шрифта |
| Font | Вызывает диалоговое окно выбора шрифта |
| Line Color | Вызывает диалоговое окно выбора цвета линий |
| Fill Color | Вызывает диалоговое окно выбора цвета для изображения графических элементов диаграмм |
| Use Fill Color | Включает/выключает режим отображения цвета для изображения графических элементов диаграмм |
| Automatic Resize | Включает/выключает режим автоматического изменения размеров графических элементов диаграмм для отображения текстовой информации об их свойствах |
| Stereotype | Позволяет выбрать способ изображения стереотипов выделенных элементов диаграммы и содержит дополнительные подпункты: None - стереотип не показывается; Label - стереотип отображается в форме текста; Decoration - стереотип отображается в форме небольшой пиктограммы в правом верхнем углу графического элемента; Icon - элемент диаграммы отображается в форме специального графического стереотипа, если данный стереотип предусмотрен в программе. |
| Stereotype Label | Включает/выключает режим отображения текстовых стереотипов для взаимосвязей (ассоциаций, зависимостей и пр.) диаграммы |
| Show Visibility | Включает/выключает режим отображения кванторов видимости атрибутов и операций выделенных классов |
| Show Compartment Stereotypes | Включает/выключает режим отображения текстовых стереотипов атрибутов и операций выделенных классов |
| Show Operation Signature | Включает/выключает режим отображения сигнатуры операций выделенных классов |
| Show All Attributes | Делает видимыми/невидимыми атрибуты выделенных классов |
| Show All Operations | Делает видимыми/невидимыми операции выделенных классов |
| Suppress Attributes | Делает видимой/невидимой секцию атрибутов выделенных классов. Скрывает секцию атрибутов даже в том случае, когда выбрана опция Show All Attributes |
| Suppress Operations | Делает видимой/невидимой секцию операций выделенных классов. Скрывает секцию операций даже в том случае, когда выбрана опция Show All Operations |
| Line Style | Позволяет выбрать способ графического изображения линий взаимосвязей и содержит дополнительные подпункты: Rectilinear - линия изображается в форме вертикальных и горизонтальных отрезков; Oblique - линия изображается в форме наклонных отрезков; Toggle - промежуточный вариант изображения линии |
| Layout Diagram | Позволяет автоматически разместить графические элементы в окне диаграммы с минимальным количеством пересечений и наложений соединительных линий |
| Autosize All | Позволяет автоматически изменить размеры графических элементов текущей диаграммы таким образом, чтобы текстовая информация помещалась внутри изображений соответствующих элементов |
| Layout Selected Shapes | Позволяет автоматически разместить выделенные графические элементы в окне диаграммы с минимальным количеством пересечений и наложений соеденительных линий |
Назначение операций этого пункта главного меню представлено в следующей таблице (табл. 1.4).
| Font Size | Изменяет масштаб используемого шрифта |
| Font | Вызывает диалоговое окно выбора шрифта |
| Line Color | Вызывает диалоговое окно выбора цвета линий |
| Fill Color | Вызывает диалоговое окно выбора цвета для изображения графических элементов диаграмм |
| Use Fill Color | Включает/выключает режим отображения цвета для изображения графических элементов диаграмм |
| Automatic Resize | Включает/выключает режим автоматического изменения размеров графических элементов диаграмм для отображения текстовой информации об их свойствах |
| Stereotype | Позволяет выбрать способ изображения стереотипов выделенных элементов диаграммы и содержит дополнительные подпункты: None - стереотип не показывается; Label - стереотип отображается в форме текста; Decoration - стереотип отображается в форме небольшой пиктограммы в правом верхнем углу графического элемента; Icon - элемент диаграммы отображается в форме специального графического стереотипа, если данный стереотип предусмотрен в программе. |
| Stereotype Label | Включает/выключает режим отображения текстовых стереотипов для взаимосвязей (ассоциаций, зависимостей и пр.) диаграммы |
| Show Visibility | Включает/выключает режим отображения кванторов видимости атрибутов и операций выделенных классов |
| Show Compartment Stereotypes | Включает/выключает режим отображения текстовых стереотипов атрибутов и операций выделенных классов |
| Show Operation Signature | Включает/выключает режим отображения сигнатуры операций выделенных классов |
| Show All Attributes | Делает видимыми/невидимыми атрибуты выделенных классов |
| Show All Operations | Делает видимыми/невидимыми операции выделенных классов |
| Suppress Attributes | Делает видимой/невидимой секцию атрибутов выделенных классов. Скрывает секцию атрибутов даже в том случае, когда выбрана опция Show All Attributes |
| Suppress Operations | Делает видимой/невидимой секцию операций выделенных классов. Скрывает секцию операций даже в том случае, когда выбрана опция Show All Operations |
| Line Style | Позволяет выбрать способ графического изображения линий взаимосвязей и содержит дополнительные подпункты: Rectilinear - линия изображается в форме вертикальных и горизонтальных отрезков; Oblique - линия изображается в форме наклонных отрезков; Toggle - промежуточный вариант изображения линии |
| Layout Diagram | Позволяет автоматически разместить графические элементы в окне диаграммы с минимальным количеством пересечений и наложений соединительных линий |
| Autosize All | Позволяет автоматически изменить размеры графических элементов текущей диаграммы таким образом, чтобы текстовая информация помещалась внутри изображений соответствующих элементов |
| Layout Selected Shapes | Позволяет автоматически разместить выделенные графические элементы в окне диаграммы с минимальным количеством пересечений и наложений соеденительных линий |
Внешний вид других окон рабочего интерфейса программы IBM Rational Rose 2003 и назначение остальных операций главного меню рассматривается в следующей лекции.

средство IBM Rational Rose со
CASE- средство IBM Rational Rose со времени своего появления претерпело серьезную эволюцию, и в настоящее время представляет собой современный интегрированный инструментарий для проектирования архитектуры, анализа, моделирования и разработки программных систем. Именно в IBM Rational Rose язык UML стал базовой технологией визуализации и разработки программных систем, что определило популярность и стратегическую перспективность этого инструментария.В рамках общего продукта IBM Rational Rose существуют различные варианты этого средства, отличающиеся между собой диапазоном предоставляемых возможностей. Базовым средством в настоящее время является IBM Rational Rose Enterprise Edition, которое обладает наиболее полными возможностями. Последней версией этого CASE-средства на момент написания курса лекций является программа IBM Rational Rose 2003 (release 2003.06.00), возможности которой аккумулируют практически все современные достижения в области информационных технологий. Наиболее характерные функциональные особенности этой программы заключаются в следующем:
средстве IBM Rational Rose 2003
В CASE- средстве IBM Rational Rose 2003 реализованы общепринятые стандарты на рабочий интерфейс программы, аналогично известным средам визуального программирования. После установки IBM Rational Rose 2003 на компьютер пользователя, что практически не вызывает трудностей у разработчиков, запуск этого средства в среде MS Windows 2000/XP приводит к появлению на экране соответствующего рабочего интерфейса (рис. 1.1).Рабочий интерфейс программы IBM Rational Rose 2003 состоит из различных элементов, основными из которых являются:
Рассмотрим назначение и основные функции каждого из этих элементов.

Рис. 1.1. Общий вид рабочего интерфейса CASE-средства IBM Rational Rose 2003
Назначение операций главного меню Add-Ins, Window и Help
Пункт главного меню Add-Ins (Расширения) вызывает специальное диалоговое окно менеджера расширений для добавления их в операции пункта меню Tools (рис. 2.6). При этом доступными являются те расширения, которые были установлены при инсталляции программы IBM Rational Rose 2003. Поскольку перечень расширений и конкретный вид диалогового окна зависит от вида лицензии и конфигурации поставки IBM Rational Rose 2003, в данной лекции он не рассматривается.
Рис. 2.6. Внешний вид диалогового окна менеджера расширений
Операции главного меню Window (Окно) позволяют активизировать окно нужной диаграммы разрабатываемой модели из числа открытых и отображать все открытые окна диаграмм в различном графическом представлении. Назначение операций этого пункта главного меню представлено в таблице 2.4.
| Cascade | Размещает окна всех открытых диаграмм модели каскадно |
| Tile | Отображает в окне диаграмм все открытые диаграммы модели |
| Arrange Icons | Упорядочивает расположение всех открытых диаграмм |
| Секция, содержащая имена всех открытых диаграмм модели для переключения между ними. Если открывается новая диаграмма, то в этой секции появляется новая строка с именем этой диаграммы и ее типом, выбрав которую, можно сразу перейти в нужное окно |
Операции главного меню Help (Справка) позволяют получить справочную информацию о программе IBM Rational Rose 2003 и об особенностях разработки графических моделей в соответствующих нотациях. Назначение операций этого пункта главного меню представлено в таблице 2.5.
| Contents and Index | Вызывает программу просмотра справочной системы, открытой на вкладке Содержание |
| Search for Help on | Вызывает программу просмотра справочной системы, открытой на вкладке Указатель |
| Using Help | Вызывает программу отображения информации об использовании справочной системы |
| Extended Help | Вызывает специальную программу расширенной справочной системы |
| Contacting Technical Support | Вызывает установленный в операционной системе по умолчанию браузер Интернет и делает попытку соединиться с web-сайтом технической поддержки компании IBM Rational при наличии доступа в Интернет |
| Rational on the Web | Вызывает установленный в операционной системе по умолчанию браузер Интернет и делает попытку соединиться с web-сайтом компании IBM Rational при наличии доступа в Интернет. Выбор отдельной операции этого пункта меню определяет загрузку той или иной web-страницы компании, предназначенной для выполнения специальных действий по дополнительной поддержке средства IBM Rational Rose или загрузке имеющихся обновлений |
| Rational Developer Network | Вызывает установленный в операционной системе по умолчанию браузер Интернет и делает попытку соединиться с web-сайтом разработчиков компании IBM Rational при наличии доступа в Интернет |
| About Rational Rose | Отображает информацию о текущей рабочей версии IBM Rational Rose |

Назначение операций главного меню Report, Query и Tools
Операции главного меню Report (Отчет) позволяют отображать различную информацию об элементах разрабатываемой модели и вызывать диалоговое окно выбора шаблона для генерации отчета о модели. Назначение операций этого пункта главного меню представлено в таблице 2.1.| Show Usage | Отображает в диалоговом окне информацию об использовании выделенного элемента модели на различных диаграммах |
| Show Instances | Отображает в диалоговом окне информацию об использовании объектов выделенного класса модели на различных диаграммах |
| Show Access Violations | Отображает в диалоговом окне информацию о ссылках классов одного пакета на классы другого пакета при отсутствии соответствующей зависимости доступа или импорта между этими пакетами в модели |
| SoDA Report | Позволяет сгенерировать отчет о разрабатываемой модели в формате MS Word с использованием специального средства IBM Rational SoDA |
| Show Participants in UC | Отображает в диалоговом окне информацию о классах, компонентах и операциях, которые участвуют в реализации выделенного варианта использования модели на различных диаграммах |
Операции главного меню Query (Запрос) позволяют добавлять существующие элементы разрабатываемой модели на редактируемую диаграмму, а также настраивать специальный фильтр отображения отношений между отдельными элементами модели. Назначение операций этого пункта главного меню представлено в таблице 2.2.
| Add Classes | Вызывает диалоговое окно с предложением добавить на текущую диаграмму классы, которые имеются в модели на различных диаграммах |
| Add Use Cases | Вызывает диалоговое окно с предложением добавить на текущую диаграмму варианты использования, которые имеются в модели на различных уровнях |
| Expand Selected Elements | Вызывает диалоговое окно с предложением добавить на текущую диаграмму элементы модели, которые связаны с выделенным элементом на других диаграммах |
| Hide Selected Elements | Вызывает диалоговое окно с предложением удалить с текущей диаграммы элементы модели, которые связаны с выделенным элементом |
| Filter Relationships | Вызывает диалоговое окно, позволяющее включить/выключить режим отображения различных отношений на текущей диаграмме |
Состав операций пункта главного меню Tools (Инструменты) зависит от установленных в программе IBM Rational Rose 2003 конкретных расширений. Назначение операций этого пункта главного меню для типовой конфигурации программы представлено в таблице 2.3.
| Create | Создает новый элемент модели из предлагаемого списка, для последующего размещения его на текущей или другой диаграмме, дублируя нажатие соответствующей кнопки на специальной панели инструментов |
| Check Model | Проверяет разрабатываемую модель на наличие ошибок, информация о которых отображается в окне журнала |
| Model Properties | Позволяет выполнить настройку свойств языка реализации для выделенного элемента модели и содержит дополнительные подпункты: Edit - редактирование набора свойств; View - просмотр набора свойств; Replace - замена существующего набора свойств на новый набор свойств, загружаемый из внешнего файла с расширением "prp" или "pty"; Export - сохранение существующего набора свойств во внешнем файле с расширением "prp" или "pty"; Add - добавление к существующему набору свойств нового набора свойств, загружаемого из внешнего файла с расширением "prp" или "pty"; Update - обновление существующего набора свойств после его редактирования или дополнения |
| Options | Вызывает диалоговое окно настройки параметров модели, открытое на вкладке General |
| Open Script | Вызывает стандартное диалоговое окно для открытия внешнего файла, содержащего текст скрипта (файл с расширением "ebs") для его редактирования в окне встроенного редактора скриптов |
| New Script | Открывает дополнительное окно встроенного редактора скриптов для создания, отладки, выполнения и сохранения нового скрипта во внешнем файле с расширением "ebs" |
| ANSI C++ | Позволяет выполнить настройку свойств языка программирования ANSI C++, выбранного в качестве языка реализации отдельных элементов модели |
| CORBA | Позволяет выполнить настройку свойств и спецификацию модели для генерации объектов CORBA для реализации отдельных элементов модели |
| Java/J2EE | Позволяет выполнить настройку свойств языка программирования Java/J2EE, выбранного в качестве языка реализации отдельных элементов модели |
| Oracle8 | Позволяет выполнить настройку свойств и спецификацию модели для генерации схем СУБД Oracle8 для отдельных элементов модели |
| Quality Architect | Позволяет выполнить настройку свойств и тестирование модели с помощью специального средства IBM Rational Quality Architect |
| Rational Requisite Pro | Позволяет выполнить настройку свойств модели для установления связей со специальным средством спецификации и управления требованиями |
| Model Integrator | Открывает окно специального средства интеграции моделей |
| Web Publisher | Позволяет выполнить настройку свойств модели для ее публикации в гипертекстовом формате |
| TOPLink | Вызывает мастер преобразования таблиц модели данных в классы языка программирования Java, выбранного в качестве языка реализации отдельных элементов модели |
| COM | Позволяет выполнить настройку свойств и спецификацию модели для генерации объектов COM с целью реализации отдельных элементов модели |
| Visual C++ | Позволяет выполнить настройку свойств и спецификацию модели для генерации программного кода MS Visual C++, выбранного в качестве языка реализации отдельных элементов модели |
| Version Control | Позволяет выполнить настройку свойств модели для установления со специальным средством управления и контроля версий модели |
| Visual Basic | Позволяет выполнить настройку свойств и спецификацию модели для генерации программного кода MS Visual Basic, выбранного в качестве языка реализации отдельных элементов модели |
| XML_DTD | Позволяет выполнить настройку свойств и спецификацию модели для ее публикации в формате расширяемого языка разметки XML |
| Class Wizard | Вызывает мастер создания нового класса и его размещения на выбранной диаграмме модели |
Окно браузера проекта
Окно браузера проекта по умолчанию располагается в левой части рабочего интерфейса ниже стандартной панели инструментов и имеет вид, показанный на рисунке 2.1.Браузер проекта организует представления модели в виде иерархической структуры, которая упрощает навигацию и позволяет отыскать любой элемент модели в проекте. При этом самая верхняя строка браузера проекта содержит имя разрабатываемого проекта. Любой элемент, который разработчик добавляет в модель, сразу отображается в окне браузера. Соответственно, выбрав элемент в окне браузера, мы можем его визуализировать в окне диаграммы или изменить его спецификацию.
Браузер проекта позволяет также организовывать элементы модели в пакеты и перемещать элементы между различными представлениями модели. При желании окно браузера можно расположить в другом месте рабочего интерфейса либо скрыть вовсе, используя для этого операцию Browser главного меню View (Вид). Можно также изменить размеры браузера, переместив мышью границу его внешней рамки.
Иерархическое представление структуры каждого разрабатываемого проекта организовано в форме 4-х представлений:

Рис. 2.1. Внешний вид браузера проекта с иерархическим представление его структуры
При создании нового проекта указанная иерархическая структура формируется программой автоматически.
Окно документации и окно журнала
Окно документации по умолчанию должно присутствовать на экране после загрузки программы. Если по какой-то причине оно отсутствует, то его можно отобразить через пункт меню View
Documentation (Вид
Документация), после чего окно документации появится ниже окна браузера проекта (рис. 2.4). Окно документации, как следует из его названия, предназначено для документирования элементов разрабатываемой модели. В него можно записывать различную текстовую информацию, и что важно - на русском языке. Эта информация при генерации программного кода преобразуется в комментарии и никак не влияет на логику выполнения программного кода.
Рис. 2.4. Внешний вид окна документации с информацией о диаграмме деятельности модели
В окне документации активизируется та информация, которая относится к выделенному элементу диаграммы или к диаграмме в целом. При этом выделить элемент можно либо в окне браузера, либо непосредственно в окне диаграммы. При добавлении нового элемента на диаграмму, например, класса, документация к нему является пустой (No documentation). В последующем разработчик самостоятельно вносит необходимую пояснительную информацию, которая запоминается программой и может быть изменена в ходе работы над проектом. Так же, как и для других окон рабочего интерфейса программы IBM Rational Rose 2003, разработчик по своему усмотрению может изменять размеры и положение окна документации.
Окно журнала (Log) предназначено для автоматической записи различной служебной информации в ходе работы с программой. В журнале фиксируется время и характер выполняемых разработчиком действий, таких как обновление модели, настройка меню и панелей инструментов, а также сообщений об ошибках, возникающих при генерации программного кода. Окно журнала изображается поверх других окон в нижней области рабочего интерфейса программы (рис. 2.5).

Рис. 2.5. Внешний вид окна журнала с информацией о выполненных операциях с моделью
Если окно журнала отсутствует на экране, то отобразить его можно с помощью операции главного меню View
Log (Вид
Журнал), для чего следует выставить отметку в соответствующей строке вложенного меню для данной операции. С целью увеличения размеров графической области диаграммы окно журнала чаще всего убирают с экрана, что можно выполнить с помощью кнопки закрытия этого окна в верхнем левом его углу или убрав отметку в соответствующей строке вложенного меню View
Log.Специальная панель инструментов и окно диаграммы
Специальная панель инструментов располагается между окном браузера и окном диаграммы в средней части рабочего интерфейса. По умолчанию предлагается панель инструментов для построения диаграммы классов модели (рис. 2.2).
Рис. 2.2. Внешний вид специальной панели инструментов для диаграммы классов
Расположение специальной панели инструментов можно изменять, переместив рамку панели в нужное место. Программа IBM Rational Rose 2003 позволяет настраивать состав кнопок данной панели, добавляя или удаляя отдельные кнопки, соответствующие тем или иным инструментам. Назначение отдельных кнопок различных панелей инструментов будут рассмотрены далее при изложении особенностей построения различных канонических диаграмм в соответствующих лекциях курса. Названия кнопок данной панели всегда можно узнать из всплывающих подсказок, появляющихся после задержки указателя мыши над соответствующей кнопкой.
Внешний вид специальной панели инструментов зависит не только от выбора типа разрабатываемой диаграммы, но от выбора графической нотации для изображения самих элементов этих диаграмм. В IBM Rational Rose 2003 реализованы три таких нотации: UML, OMT и Booch. Хотя последние две нотации практически не используются на практике, разработчики неизменно включают их в очередные версии программы IBM Rational Rose 2003, видимо, отдавая этим дань памяти авторам первых версий языка UML. При использовании отдельной нотации одна и та же диаграмма может быть представлена различным образом, для этого достаточно выбрать желаемое представление через соответствующую операцию главного меню View (Вид). При этом никаких дополнительных действий выполнять не требуется - диаграмма преобразуется в выбранную нотацию автоматически. Однако, рассматривая использование программы IBM Rational Rose 2003 только в контексте языка UML, можно оставить без внимания особенности двух других нотаций, которые отражают эволюционный аспект этого программного инструмента.
Окно диаграммы является основной графической областью программы IBM Rational Rose 2003, в которой визуализируются различные представления модели проекта.
По умолчанию окно диаграммы располагается в правой части рабочего интерфейса, однако его расположение и размеры также можно изменить. При разработке нового проекта, если не был использован мастер проектов, окно диаграммы представляет собой чистую область, не содержащую никаких элементов модели (рис. 1.1). По мере разработки отдельных диаграмм в окне диаграммы будут располагаться соответствующие графические элементы модели (рис. 2.3).

Рис. 2.3. Внешний вид окна диаграммы с диаграммой классов модели
Название диаграммы, которая является активной и располагается в данном окне, которое развернуто на всю область диаграммы, указывается в строке заголовка программы IBM Rational Rose 2003. Если же окно диаграммы не развернуто на всю область диаграммы, то название диаграммы указывается в строке заголовка окна диаграммы. Одновременно в графической области диаграмм могут присутствовать несколько окон диаграмм; при этом активной может быть только одна из них. Переключение между диаграммами можно осуществить выбором нужного представления на стандартной панели инструментов, а также с помощью выделения требуемой диаграммы в браузере проекта или с помощью операций главного меню Window (Окно). При активизации отдельного вида диаграммы изменяется внешний вид специальной панели инструментов, которая настраивается под конкретный вид диаграммы.
Добавление актера на диаграмму вариантов использования и редактирование его свойств
Для добавления актера на диаграмму варианта использования нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы актера на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение актера с маркерами изменения его геометрических размеров и предложенным программой именем по умолчанию NewClass. Для разрабатываемой модели банкомата предложенное программой имя актера следует изменить на Клиент Банкомата (рис. 3.2).
Рис. 3.2. Диаграмма вариантов использования после добавления на нее актера
Чтобы изменить расположение изображения графического элемента модели, следует щелчком левой кнопки мыши выделить его в рабочей области диаграммы, и, не отпуская левой кнопки, переместить в нужное место диаграммы. При этом выделенный элемент визуально отличается от остальных наличием маркеров изменения его геометрических размеров в форме небольших черных квадратов. Более точное перемещение элемента можно осуществить с помощью стрелок: «
», «
», «
», «
» на клавиатуре.Чтобы изменить графические размеры изображения элемента модели, прежде всего, следует щелчком левой кнопки мыши выделить его в рабочей области диаграммы. Далее необходимо подвести указатель мыши к нужному маркеру геометрических размеров элемента и нажать левую кнопку мыши. В результате этих действий появится пунктирный прямоугольник, изображающий границы выбранного геометрического элемента. После чего, не отпуская левой кнопки мыши, следует диагонально изменить размеры этого прямоугольника нужным образом (рис. 3.3).

Рис. 3.3. Диаграмма вариантов использования при изменении графических размеров актера
Имя размещенного на диаграмму элемента разработчик может изменить либо сразу после добавления элемента на диаграмму, либо в ходе последующей работы над проектом. Для любого графического элемента модели по щелчку правой кнопкой мыши на выбранном элементе вызывается контекстное меню данного элемента, среди операций которого имеется пункт Open Specification (Открыть спецификацию).
В этом случае появляется дополнительное диалоговое окно со специальными вкладками, в поля ввода которых можно занести всю информацию по данному элементу. Для добавленного актера Клиент Банкомата окно спецификации свойств выглядит следующим образом (рис. 3.4).

Рис. 3.4. Диалоговое окно спецификации свойств актера Клиент Банкомата
Следует отметить, что открыть диалоговое окно спецификации свойств любого элемента модели можно также двойным щелчком левой кнопкой мыши на графическом изображении этого элемента на диаграмме. Хотя в среде IBM Rational Rose актер является классом, для него некорректно специфицировать атрибуты и операции, поскольку актер является внешней по отношению к разрабатываемой системе сущностью.
Для актера Клиент Банкомата можно уточнить его назначение в модели. С этой целью следует изменить его стереотип и добавить текст документации. Для изменения стереотипа во вложенном списке Stereotype нужно выбрать строку Business Actor (бизнес-актер). Для добавления текста документации в секцию Documentation следует ввести текст: «Любое физическое лицо, пользующееся услугами банкомата» и нажать кнопку Apply (Применить) или OK. После изменения данных свойств актера Клиент Банкомата окно спецификации свойств будет выглядеть следующим образом (рис. 3.5).

Рис. 3.5. Диалоговое окно спецификации свойств после изменения стереотипа и добавления текста документации для актера Клиент Банкомата
Добавление ассоциации
Для добавления ассоциации между актером и вариантом использования на диаграмму нужно с помощью левой кнопки мыши нажать на специальной панели инструментов кнопку с изображением пиктограммы направленной ассоциации, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении актера на диаграмме и отпустить ее на изображении варианта использования. В результате этих действий на диаграмме появится изображение ассоциации, соединяющей актера с вариантом использования (рис. 3.8).
Рис. 3.8. Диаграмма вариантов использования после добавления на нее направленной ассоциации
При необходимости можно сделать направленную ассоциацию ненаправленной, для чего следует воспользоваться диалоговым окном свойств ассоциации. Открыть это окно можно, например, двойным щелчком на изображении линии ассоциации на диаграмме, после чего убрать отметку строки выбора Navigable (Навигация) на вкладке Role A Detail (Детальные свойства концевой точки ассоциации А). Более подробно спецификация других свойств ассоциации будет рассмотрена далее при разработке диаграммы классов в лекции 6.
Добавление и редактирование варианта использования
Для добавления варианта использования на диаграмму нужно с помощью левой кнопки мыши нажать кнопку с изображением варианта использования на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте диаграммы. На диаграмме появится изображение варианта использования с маркерами изменения его геометрических размеров и предложенным программой именем по умолчанию NewUseCase. Для разрабатываемой модели банкомата предложенное программой имя варианта использования следует изменить на Снятие наличных по кредитной карточке (рис. 3.6).
Рис. 3.6. Диаграмма вариантов использования после добавления на нее варианта использования
Для уточнения свойств данного варианта использования следует открыть диалоговое окно спецификации его свойств, например, с помощью двойного щелчка левой кнопкой мыши на изображении этого элемента на диаграмме. Для изменения стереотипа во вложенном списке Stereotype нужно выбрать строку Business Use Case. Для добавления текста документации в секцию Documentation следует ввести текст: «Основной вариант использования для разрабатываемой модели банкомата» и нажать кнопку Apply (Применить) или OK. После изменения данных свойств варианта использования окно спецификации его свойств будет выглядеть следующим образом (рис. 3.7).

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

Рис. 3.9. Диаграмма вариантов использования после добавления на нее отношения зависимости
Аналогичным образом могут быть добавлены на диаграмму вариантов использования отношения зависимости со стереотипом <
Окончательное построение диаграммы вариантов использования
К отдельному варианту использования можно добавить текстовый файл с описанием сценария его выполнения. Для этого необходимо выделить этот вариант использования в браузере проекта и выполнить операцию контекстное меню: New
File (Новый
Файл). В результате этого будет вызвано стандартное окно открытия файла, в котором необходимо задать имя предварительно созданного с помощью офисной программы MS Word добавляемого файла. После нажатия кнопки Открыть пиктограмма добавленного файла появится в браузере проекта ниже соответствующего варианта использования. В последующем можно вернуться к редактированию этого файла сценария, выполнив двойной щелчок на этой пиктограмме. При этом файл сценария будет открыт в соответствующем приложении - в текстовом процессоре MS Word.Для окончательного построения диаграммы варианта использования для рассматриваемой модели банкомата следует выполнить следующие действия:
Выполнить эти действия предлагается читателям самостоятельно. При этом отношение зависимости со стереотипом <

Рис. 3.10. Окончательный вид диаграммы вариантов использования для разрабатываемой модели банкоматов
Напомним, что диаграмма вариантов использования является высокоуровневым концептуальным представлением модели, поэтому она не должна содержать слишком много вариантов использования и актеров. В последующем построенная диаграмма может быть изменена посредством добавления новых элементов, таких как варианты использования и актеры, или их удаления.
Для удаления любого графического элемента с диаграммы его следует выделить на диаграмме и нажать клавишу Delete на клавиатуре. При этом выделенный элемент будет удален с активной диаграммы, но не из модели. Для удаления элемента не только из диаграммы, но и из модели проекта необходимо выделить удаляемый элемент на диаграмме и воспользоваться операцией главного меню Edit
Delete from Model (Редактирование
Удалить из модели). Для этой же цели служит комбинация клавиш быстрого доступа: Ctrl+D.При работе с отношениями на диаграмме вариантов использования следует помнить о назначении соответствующих отношений в нотации языка UML. Речь идет о том, что если для двух элементов выбранный вид отношения не является допустимым, то в большинстве случаев программа IBM Rational Rose 2003 сообщит об этом разработчику, и соответствующая линия связи не будет добавлена на диаграмму.
После окончания сеанса работы над проектом выполненную работу необходимо сохранить в файле проекта с расширением «.MDL».Это можно сделать через меню File
Save (Файл
Сохранить) или File
Save As (Файл
Сохранить как). При этом вся информация о проекте, включая диаграммы и спецификации элементов, будет сохранена в одном файле.в среде IBM Rational Rose
Работа над моделью в среде IBM Rational Rose начинается с общего анализа проблемы и построения диаграммы вариантов использования, которая отражает функциональное назначение проектируемой программной системы. Для вновь создаваемого проекта можно воспользоваться мастером типовых проектов, если он установлен в данной конфигурации. Мастер типовых проектов доступен из меню File
New (Файл
Новый) или при первоначальной загрузке программы IBM Rational Rose 2003. В случае разработки проекта, для которого не известна или не выбрана технология его реализации, следует отказаться от мастера, в результате чего появится рабочий интерфейс программы IBM Rational Rose 2003 с чистым окном активной диаграммы классов и именем проекта untitled по умолчанию.В качестве проекта далее будет рассматриваться модель системы управления банкоматом. Достоинством этого проекта является то, что он не требует специального описания предметной области, поскольку предполагает интуитивное знакомство читателей с особенностями функционирования банкомата. При этом разрабатываемая модель системы управления банкоматом используется в качестве сквозного примера, в рамках которого иллюстрируются особенности разработки различных диаграмм языка UML в среде IBM Rational Rose 2003. Для изменения имени проекта, предложенного программой по умолчанию, следует сохранить модель во внешнем файле на диске, например, под именем ATMmodel.mdl.
В этом случае изменится имя в строке заголовка и имя проекта в иерархическом представлении модели в браузере проекта.
Как и другие программы, IBM Rational Rose позволяет настраивать глобальные параметры среды, такие как выбор шрифтов и цвета для представления различных элементов модели. Настройка шрифтов, цвета линий и графических элементов производится через операцию главного меню: Tools
Options (Инструменты
Параметры). Характерной особенностью среды является возможность работы с символами кириллицы. Однако следует заметить, что при спецификации элементов модели с последующей генерацией текста программного кода следует записывать имена и свойства классов, ассоциаций, атрибутов, операций и компонентов символами того языка, который поддерживается соответствующим языком программирования.Для разработки диаграммы вариантов использования модели в среде IBM Rational Rose 2003 необходимо активизировать соответствующую диаграмму в окне диаграммы. Это можно сделать следующими способами:
Use Case Diagram (Браузер
Диаграмма вариантов использования).При этом появляется новое окно с чистым рабочим листом диаграммы вариантов использования и специальная панель инструментов, содержащая кнопки с изображением графических элементов, необходимых для разработки диаграммы вариантов использования. Назначение отдельных кнопок данной панели можно узнать также из всплывающих подсказок, которые появляются, если подвести и задержать на некоторое время указатель мыши над той или иной кнопкой (табл. 3.1).
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | Package | Добавляет на диаграмму пакет |
![]() | Use Case | Добавляет на диаграмму вариант использования |
![]() | Actor | Добавляет на диаграмму актера |
![]() | Unidirectional Association | Добавляет на диаграмму направленную ассоциацию |
![]() | Dependency or Instantiates | Добавляет на диаграмму отношение зависимости |
![]() | Generalization | Добавляет на диаграмму отношение обобщения |
Для разработки диаграммы вариантов использования модели в среде IBM Rational Rose 2003 необходимо активизировать соответствующую диаграмму в окне диаграммы. Это можно сделать следующими способами:
Use Case Diagram (Браузер
Диаграмма вариантов использования).При этом появляется новое окно с чистым рабочим листом диаграммы вариантов использования и специальная панель инструментов, содержащая кнопки с изображением графических элементов, необходимых для разработки диаграммы вариантов использования. Назначение отдельных кнопок данной панели можно узнать также из всплывающих подсказок, которые появляются, если подвести и задержать на некоторое время указатель мыши над той или иной кнопкой (табл. 3.1).
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | Package | Добавляет на диаграмму пакет |
![]() | Use Case | Добавляет на диаграмму вариант использования |
![]() | Actor | Добавляет на диаграмму актера |
![]() | Unidirectional Association | Добавляет на диаграмму направленную ассоциацию |
![]() | Dependency or Instantiates | Добавляет на диаграмму отношение зависимости |
![]() | Generalization | Добавляет на диаграмму отношение обобщения |
Добавление класса на диаграмму классов и редактирование его свойств
Для добавления класса на диаграмму классов нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы класса на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение класса с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию NewClass.Продолжая разработку модели банкомата в качестве сквозного примера проекта, построим для этой модели следующую каноническую диаграмму - диаграмму классов. С этой целью следует изменить предложенное по умолчанию имя диаграммы Main на Диаграмма классов ATM, а имя добавленного на диаграмму класса - на Транзакция Банкомата (рис. 4.1).

Рис. 4.1. Диаграмма классов модели банкомата после добавления на нее класса Транзакция Банкомата
Поскольку разрабатываемая модель банкомата на начальных этапах работы над проектом используется для анализа общей архитектуры проекта и согласования ее с различными участниками рабочей группы, имена классов, их атрибутов и операций для большей наглядности и понимания задаются на русском языке с пробелами и записываются символами кириллицы. В последующем по мере выполнения проекта и реализации модели на некотором языке программирования, имена соответствующих классов, атрибутов и операций должны быть преобразованы в символы латиницы. При этом имена этих элементов модели должны быть записаны без пробелов. В контексте управляемой моделью архитектуры первую модель еще называют независимой от платформы реализации, а вторую - зависимой от платформы реализации.
Для класса Транзакция Банкомата можно уточнить его назначение в модели с помощью указания стереотипа и пояснительного текста в форме документации. С этой целью двойным щелчком левой кнопкой мыши на изображении этого класса на диаграмме или в браузере проекта следует открыть диалоговое окно спецификации свойств этого класса (рис. 4.2) и на вкладке General (Общие) выбрать из вложенного списка Stereotype стереотип entity (сущность).

Рис. 4.2. Диалоговое окно спецификации свойств класса Транзакция Банкомата при выборе из вложенного списка стереотипа entity
Выбор данного стереотипа означает, что соответствующий класс предназначен для хранения информации, которая должна сохраняться в системе после уничтожения объектов данного класса. Далее в секцию документации данного класса можно ввести поясняющий текст: "Используется для сохранения информации о выполненных банкоматом транзакциях" и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования свойств выбранного класса. После назначения стереотипа классу Транзакция банкомата текст данного стереотипа в угловых скобках появится выше имени данного класса (рис. 4.3).

Рис. 4.3. Диаграмма классов модели банкомата после выбора стереотипа для класса Транзакция Банкомата
Для отдельного класса можно уточнить также и другие его свойства, доступные для редактирования на вкладке Detail (Подробно) окна спецификации свойств этого класса. Например, на этой вкладке с помощью вложенного списка Multiplicity (Кратность) можно задать количество объектов или экземпляров данного класса, для чего следует выбрать строку с буквой n. Данное значение означает, что у класса Транзакция банкомата может быть любое конечное число экземпляров (рис. 4.4). Поле ввода с именем Space (Пространство) служит для указания объема абсолютной или относительной памяти, которая требуется, по оценке разработчика, для реализации каждого объекта данного класса. Применительно к рассматриваемой модели это поле можно оставить пустым.

Рис. 4.4. Диалоговое окно спецификации свойств класса Транзакция Банкомата, открытое на вкладке Detail (Подробно)
Далее можно задать устойчивость классов в группе выбора Persistence. При этом выбор свойства Persistent (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе.

Рис. 4.2. Диалоговое окно спецификации свойств класса Транзакция Банкомата при выборе из вложенного списка стереотипа entity
Выбор данного стереотипа означает, что соответствующий класс предназначен для хранения информации, которая должна сохраняться в системе после уничтожения объектов данного класса. Далее в секцию документации данного класса можно ввести поясняющий текст: "Используется для сохранения информации о выполненных банкоматом транзакциях" и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования свойств выбранного класса. После назначения стереотипа классу Транзакция банкомата текст данного стереотипа в угловых скобках появится выше имени данного класса (рис. 4.3).

Рис. 4.3. Диаграмма классов модели банкомата после выбора стереотипа для класса Транзакция Банкомата
Для отдельного класса можно уточнить также и другие его свойства, доступные для редактирования на вкладке Detail (Подробно) окна спецификации свойств этого класса. Например, на этой вкладке с помощью вложенного списка Multiplicity (Кратность) можно задать количество объектов или экземпляров данного класса, для чего следует выбрать строку с буквой n. Данное значение означает, что у класса Транзакция банкомата может быть любое конечное число экземпляров (рис. 4.4). Поле ввода с именем Space (Пространство) служит для указания объема абсолютной или относительной памяти, которая требуется, по оценке разработчика, для реализации каждого объекта данного класса. Применительно к рассматриваемой модели это поле можно оставить пустым.

Рис. 4.4. Диалоговое окно спецификации свойств класса Транзакция Банкомата, открытое на вкладке Detail (Подробно)
Далее можно задать устойчивость классов в группе выбора Persistence. При этом выбор свойства Persistent (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе.
Диаграмма классов является основным логическим
Диаграмма классов является основным логическим представлением модели и содержит детальную информацию о внутреннем устройстве объектно-ориентированной программной системы или, используя современную терминологию, об архитектуре программной системы. Активизировать рабочее окно диаграммы классов можно несколькими способами:
Class Diagram (Обзор
Диаграмма классов).При этом появляется новое окно с чистым рабочим листом диаграммы классов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы классов (табл. 4.1). Назначение отдельных кнопок панели можно узнать также из всплывающих подсказок.
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | Class | Добавляет на диаграмму класс |
![]() | Interface | Добавляет на диаграмму интерфейс |
![]() | Unidirectional Association | Добавляет на диаграмму направленную ассоциацию |
![]() | Association Class | Добавляет на диаграмму ассоциацию класс |
![]() | Package | Добавляет на диаграмму пакет |
![]() | Dependency or Instantiates | Добавляет на диаграмму отношение зависимости |
![]() | Generalization | Добавляет на диаграмму отношение обобщения |
![]() | Realize | Добавляет на диаграмму отношение реализации |
Стереотипы классов и их графическое представление
На разрабатываемой диаграмме классов выбран текстовый способ изображения стереотипов классов, при котором стереотип записывается в угловых кавычках выше имени соответствующего класса. Программа IBM Rational Rose 2003 позволяет альтернативно представлять стереотипы в форме специальных графических изображений (как в браузере проекта) или в форме небольших декоративных значков в верхней секции прямоугольника класса на диаграмме, а также вообще отказаться от изображения стереотипов.Изменить изображение стереотипа для отдельного класса можно, например, с помощью одной из вложенных операций контекстного меню: Options
Stereotype Display (Параметры
Изображение стереотипа). В качестве примера можно представить изображение класса Транзакция Банкомата в форме специальной графической пиктограммы стереотипа. С этой целью следует выполнить операцию контекстного меню: Options
Stereotype Display
Icon (Параметры
Изображение стереотипа
Пиктограмма). Соответствующее графическое изображение стереотипа <Для сравнения можно выбрать изображение класса Транзакция Банкомата в форме декоративного графического стереотипа. С этой целью выполним операцию контекстного меню: Options
Stereotype Display
Decoration (Параметры
Изображение стереотипа
Декорация). Соответствующее графическое изображение стереотипа <
Рис. 4.5. Графические способы изображения стереотипа <
Изменить изображение стереотипов одновременно для нескольких классов диаграммы можно с помощью одной из вложенных операций главного меню: Format
Stereotype Display (Формат
Изображение стереотипов). В этом случае необходимо выделить все классы модели в окне диаграммы классов или в браузере проекта. Для выделения группы классов на диаграмме или в браузере проекта следует, удерживая нажатой клавишу Ctrl или Shift на клавиатуре, последовательно щелкать на их изображении левой кнопкой мыши.Выделить все графические элементы на диаграмме классов, также как и на любой другой диаграмме модели, можно с помощью выполнения операции главного меню: Edit
Select All (Редактирование
Выделить все) или с помощью комбинации клавиш Ctrl+А. Следует отметить, что выбор того или иного способа изображения стереотипов классов на диаграмме классов определяется разработчиком исходя из его личных предпочтений, и не оказывает влияния на содержательный аспект логического представления модели.Продолжая разработку модели банкомата, добавим на диаграмму второй класс с именем Контроллер Банкомата, для которого в окне спецификации свойств выберем стереотип control (управляющий класс), а в качестве документации введем текст: "Реализует логику функционирования банкомата". При этом атрибуты и операции у данного класса будут отсутствовать. Соответствующий фрагмент диаграммы классов после добавления управляющего класса Контроллер Банкомата будет иметь следующий вид (рис. 4.6).

Рис. 4.6. Фрагмент диаграммы классов модели банкомата после добавления на нее класса Контролер Банкомата
Продолжая разработку модели банкомата, добавим на диаграмму третий класс с именем Устройство чтения карточки, для которого в окне спецификации свойств выберем стереотип boundary (граничный класс). Применение этого стереотипа означает, что данный класс находится на границе моделируемой системы, в качестве которой рассматривается модель банкомата. После этого в секцию документации данного класса можно ввести поясняющий текст: "Устанавливается на банкомате".
Далее следует добавить класс с именем IКонтроллер Банка, для которого выбрать стереотип Interface (Интерфейс), означающий, что банкомат пользуется услугами Банка при обработке своих транзакций. Заметим, что первой буквой в имени этого класса является английское "I", которое служит в языке UML для указания интерфейса. Соответствующий фрагмент диаграммы классов после добавления на нее классов Устройство чтения карточки и IКонтроллер Банка будет иметь следующий вид (рис. 4.7).

Рис. 4.7. Фрагмент диаграммы классов модели банкомата после добавления на нее классов Устройство чтения карточки и Контролер Банкомата
Практические действия по добавлению атрибутов и операций классов, редактированию их свойств, по добавлению отношений в процессе продолжения разработки диаграммы классов для модели банкомата, а также окончательный вид диаграммы классов для разрабатываемой модели банкомата будут рассмотрены в следующих лекциях.
Добавление и редактирование атрибутов классов
Из всех графических элементов среды IBM Rational Rose 2003 класс обладает максимальным набором свойств, главными из которых являются его атрибуты и операции. Поскольку именно диаграмма классов используется в среде IBM Rational Rose 2003 для генерации программного кода, в данной лекции будут подробно рассмотрены соответствующие свойства атрибутов и операций.Добавить атрибут к созданному ранее классу можно одним из следующих способов:
Attribute (Новый
Атрибут) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода текста в области иерархического представления класса в браузере проекта под именем соответствующего класса. После добавления атрибута к классу по умолчанию ему присваивается имя name и некоторый квантор видимости (рис. 5.1).

Рис. 5.1. Диалоговое окно спецификации свойств класса после добавления нового атрибута
Для рассматриваемой модели банкомата имя добавленного атрибута следует изменить на идентификатор карточки. Напомним, что имена атрибутов и операций классов должны начинаться со строчной буквы. Видимость атрибутов на диаграмме классов изображается в форме специальных пиктограмм или украшений. Используемые пиктограммы видимости изображаются перед именем соответствующего атрибута и имеют следующий смысл (табл. 5.1).
![]() | Public | Общедоступный или открытый. В нотации языка UML такому атрибуту соответствует знак «+» | |
![]() | Protected | Защищенный. В нотации языка UML такому атрибуту соответствует знак «#» | |
![]() | Private | Закрытый. В нотации языка UML такому атрибуту соответствует знак «-» | |
![]() | Implementation | Реализация. В нотации языка UML такому атрибуту соответствует знак «?» |
Для редактирования свойств атрибутов предназначено специальное диалоговое окно спецификации атрибута Class Attribute Specification, которое открывается двойным щелчком мыши на строке выбранного атрибута в окне спецификации свойств класса. В окне свойств отдельного атрибута класса можно задать тип данных атрибута и его начальное значение, а также назначить атрибуту стереотип из раскрывающегося списка или изменить его квантор видимости.
Для атрибута идентификатор карточки в качестве типа его допустимых значений из вложенного списка Type следует выбрать тип Integer (целочисленный), а для задания квантора видимости следует выбрать в группе Export Control (Управление экспортом) квантор Public. Поскольку начальное значение для данного атрибута не определено, соответствующее поле ввода следует оставить пустым. В секцию документации данного атрибута класса можно ввести поясняющий текст: «Устройство чтения карточки считывает значение этого атрибута с кредитной карточки клиента» и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования этих свойств атрибута. Соответствующее окно спецификации свойств атрибута идентификатор карточки после редактирования его общих свойств будет иметь следующий вид (рис. 5.2).

Рис. 5.2. Диалоговое окно спецификации свойств атрибута идентификатор карточки после его редактирования
Для отдельного атрибута можно также определить дополнительные свойства, доступные для редактирования на вкладке Detail (Подробно) диалогового окна спецификации свойств выбранного атрибута (рис. 5.3).

Рис. 5.3. Диалоговое окно спецификации свойств атрибута идентификатор карточки, открытое на вкладке Detail (Подробно)
На вкладке Detail в группе выбора Containment (Локализация) можно специфицировать условия хранения атрибута у объектов выбранного класса. Для выбора могут быть использованы следующие свойства:
Добавление и редактирование операций классов
Функционирование банкомата основано на выполнении отдельными его устройствами тех или иных действий. В модели структуры банкомата все действия представляются с помощью операций классов. Таким образом, следующий этап разработки диаграммы классов связан со спецификацией операций классов.Добавить операцию к созданному ранее классу можно одним из следующих способов:
Operation (Новая
Операция) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода в области иерархического представления класса в браузере под именем соответствующего класса.После добавления операции к классу по умолчанию ей присваивается имя opname и некоторый квантор видимости. Видимость операций на диаграмме классов также изображается в форме специальных пиктограмм или украшений. Используемые пиктограммы видимости изображаются перед именем соответствующей операции и имеют следующий смысл (табл. 5.2).
![]() | Public | Общедоступный или открытый. В нотации языка UML такому атрибуту соответствует знак «+» | |
![]() | Protected | Защищенный. В нотации языка UML такому атрибуту соответствует знак «#» | |
![]() | Private | Закрытый. В нотации языка UML такому атрибуту соответствует знак «-» | |
![]() | Implementation | Реализация. В нотации языка UML такому атрибуту соответствует знак «?» |
В контексте рассматриваемой модели банкомата в качестве имени первой операции для класса Транзакция Банкомата следует задать: создать новую транзакцию. При этом скобки при задании имени операции не записываются, поскольку программа IBM Rational Rose 2003 добавляет их автоматически.
Однако, следуя правилам именования операций в языке UML, в тексте лекции имена операций будут указываться со скобками.
Каждая из операций классов имеет собственное диалоговое окно спецификации свойств Operation Specification, которое может быть открыто по двойному щелчку на имени операции на соответствующей вкладке спецификации класса или на имени этой операции в браузере проекта. Для операции создать новую транзакцию() в качестве квантора видимости следует выбрать из вложенного списка квантор public. В секцию документации данной операции класса можно ввести поясняющий текст: «Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки» и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования свойств этой операции. Соответствующее окно спецификации свойств операции создать новую транзакцию() после редактирования ее свойств будет иметь следующий вид (рис. 5.4).

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

Рис. 5.5. Диалоговое окно спецификации свойств операции создать новую транзакцию(), открытое на вкладке Detail (Подробно)
На вкладке Detail в многостраничном поле Arguments (Аргументы) можно определить аргументы редактируемой операции. Для этого следует выполнить операцию контекстного меню Insert (Вставить). После этого в этом поле появится аргумент данной операции с именем по умолчанию argname. Для редактирования свойств аргумента предназначено специальное окно свойств аргумента.
Спецификация атрибутов и операций для класса Транзакция Банкомата
Чтобы закончить спецификацию класса Транзакция Банкомата аналогичным способом следует добавить еще 3 атрибута и 2 операции со следующими свойствами:Выполнить эти действия предлагается читателям самостоятельно. Соответствующий фрагмент диаграммы классов после добавления и спецификации атрибутов и операций для класса Транзакция Банкомата будет иметь следующий вид (рис. 5.6).

Рис. 5.6. Фрагмент диаграммы классов модели банкомата после добавления атрибутов и операций для класса Транзакция банкомата
Практические действия по добавлению атрибутов и операций для других классов, а также построение окончательной диаграммы классов для разрабатываемой модели банкомата будут рассмотрены в следующей лекции.
Добавление ассоциации на диаграмму классов и редактирование ее свойств
Добавление на диаграмму ассоциации между двумя классами выполняется следующим образом. На специальной панели инструментов необходимо нажать кнопку с изображением пиктограммы направленной ассоциации и отпустить левую кнопку мыши. Если ассоциация - направленная, то на диаграмме классов надо выделить первый элемент ассоциации или источник, от которого исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко второму элементу отношения или приемнику, к которому направлена стрелка. После перемещения ко второму элементу кнопку мыши следует отпустить, в результате чего на диаграмму классов будет добавлена направленная ассоциация с именем Untitled между двумя выбранными классами.Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и классом Транзакция Банкомата (рис. 6.1).

Рис. 6.1. Фрагмент диаграммы классов модели банкомата после добавления на неё направленной ассоциации
Изменим имя для данной ассоциации, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств ассоциации. Доступ к диалоговому окну спецификации свойств ассоциации Association Specification можно получить после выделения линии ассоциации на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 6.2).

Рис. 6.2. Диалоговое окно спецификации свойств ассоциации
Для задания имени ассоциации следует на вкладке General (Общие) в поле ввода Name (Имя) ввести текст ее имени: Создает и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования имени ассоциации. Для ассоциации можно задать также кратность каждого из концов ассоциации, стереотип, использовать ограничения и роли, а также некоторые другие свойства.
Для добавленной на диаграмму классов ассоциации зададим кратность конца ассоциации у класса Контроллер Банкомата, равную 1. Для этого следует в окне спецификации свойств ассоциации перейти на вкладку Role B Detail и выбрать значение 1 из вложенного списка Multiplicity. Аналогичным образом следует задать кратность конца ассоциации у класса Транзакция Банкомата равную 1..n, для чего на вкладке Role A Detail и следует выбрать значение 1..n из вложенного списка Multiplicity. Содержательно это будет означать, что каждый объект класса Контроллер Банкомата может быть связан с одним или несколькими объектами класса Транзакция Банкомата.
Если ассоциация является ненаправленной, то порядок выбора классов может быть произвольный, а после добавления ассоциации на диаграмму классов следует изменить значение соответствующего свойства данной ассоциации. С этой целью необходимо перейти на вкладку Role A Detail в окне спецификации свойств ассоциации и убрать отметку у свойства Navigable (Навигация).
Добавление отношений агрегации и композиции на диаграмму классов и редактирование их свойств
Добавить на диаграмму отношение агрегации между двумя классами можно следующими способами:В первом случае может оказаться, что по умолчанию на специальной панели инструментов диаграммы классов отсутствует кнопка с пиктограммой агрегации. В этом случае необходимо предварительно добавить ее на панель инструментов одним из описанных ранее способов. Во втором случае следует открыть окно спецификации свойств ассоциации Association Specification и на вкладке деталей соответствующего конца ассоциации выставить отметку в строке выбора Aggregate (Агрегация).
В качестве примера изменим тип созданной ранее ассоциации и сделаем ее агрегацией. Содержательно это будет означать, что класс Контроллер Банкомата будет включать в себя в качестве составной части класс Транзакция Банкомата; при этом уничтожение любого объекта класса Контроллер Банкомата не должно привести к уничтожению ассоциированных с ним объектов класса Транзакция Банкомата. С этой целью на вкладке Role B Detail деталей конца ассоциации класса Контроллер Банкомата следует выставить отметку в строке выбора Aggregate(рис. 6.3).

Рис. 6.3. Диалоговое окно спецификации свойств ассоциации
Соответствующий фрагмент диаграммы классов после изменения ассоциации между классами Контроллер Банкомата и Транзакция Банкомата на отношение агрегации будет иметь следующий вид (рис. 6.4).

Рис. 6.4. Фрагмент диаграммы классов модели банкомата после добавления на нее отношения агрегации
Для изображения отношения композиции можно также вначале изобразить обычную ассоциацию, после чего, открыв окно ее свойств на вкладке деталей соответствующего конца ассоциации, (рис. 6.3) выставить отметку в строке выбора Aggregate (Агрегация) и в секции Containment (Локализация) выбрать опцию By Value (По значению). По умолчанию эта опция не специфицирована, т.е. выставлена отметка опции Unspecified.
Добавление отношения обобщения на диаграмму классов и редактирование ее свойств
Добавление на диаграмму отношения обобщения между двумя классами выполняется следующим образом. На специальной панели инструментов необходимо нажать кнопку с изображением пиктограммы обобщения и отпустить левую кнопку мыши. Далее на диаграмме классов надо выделить первый элемент обобщения или потомок, от которого исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко второму элементу отношения или предку, к которому направлена стрелка. После перемещения ко второму элементу кнопку мыши следует отпустить, в результате чего на диаграмму классов будет добавлена линия обобщения с именем Untitled между двумя выбранными классами.Продолжая разработку диаграммы классов модели банкомата, добавим на нее описанным способом направленную ассоциацию между классом Контроллер Банкомата и дополнительно созданным абстрактным классом Контроллер (рис. 6.5). Последний класс может быть предназначен для спецификации системных атрибутов и операций, необходимых при исполнении соответствующей программы. Напомним, что на абстрактный характер класса указывает написание курсивом его имени, а для спецификации данного свойства класса необходимо на вкладке Detail (Подробно) окна спецификации свойств класса Контроллер выставить отметку в строке выбора Abstract.

Рис. 6.5. Диаграмма классов модели банкомата после добавления на неё отношения обобщения
Изменим имя отношения обобщения, предложенное средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств обобщения. Доступ к диалоговому окну спецификации свойств отношения обобщения Generalize Specification можно получить после выделения линии обобщения на диаграмме классов или в браузере проекта и двойного щелчка на ней левой кнопки мыши (рис. 6.6).

Рис. 6.6. Диалоговое окно спецификации свойств отношения обобщения
Для задания имени обобщения следует на единственной вкладке General (Общие) в поле ввода Name (Имя) ввести текст ее имени: Наследует и нажать кнопку Apply или OK, чтобы сохранить результаты редактирования имени ассоциации.
Окончательное построение диаграммы классов модели банкомата
Для окончательного построения диаграммы классов рассматриваемой модели банкомата следует описанным выше способом добавить оставшиеся классы и ассоциации, а также специфицировать стереотипы, атрибуты и операции этих классов. С этой целью следует выполнить следующие действия:В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer (целочисленный), а в секцию документации данной операции следует ввести поясняющий текст: «Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки».
Добавление объекта на диаграмму кооперации и редактирование его свойств
Добавить объект на диаграмму кооперации можно стандартным образом с помощью соответствующей кнопки на специальной панели инструментов. Однако, в случае наличия построенной ранее диаграммы классов, более удобным представляется следующий способ. В браузере проекта выделить необходимый класс и, удерживая нажатой левую кнопку мыши, перетащить изображение пиктограммы класса из браузера на свободное место рабочего листа диаграммы кооперации. В результате этих действий на диаграмме кооперации появится изображение объекта с именем класса и маркерами изменения его геометрических размеров (рис. 7.1).
Рис. 7.1. Диаграмма кооперации после добавления на нее анонимного объекта класса Устройство чтения карточки
По умолчанию каждый добавляемый объект считается анонимным. При необходимости можно задать собственное имя объекта, для чего двойным щелчком на изображении объекта на диаграмме кооперации следует вызвать диалоговое окно свойств этого объекта (рис. 7.2).

Рис. 7.2. Диалоговое окно спецификации свойств объекта класса Устройство чтения карточки
Как видно из рассмотрения этого окна свойств, для объекта выбранного класса можно задавать: собственное имя объекта, особенности его реализации и множественность экземпляров.
Группа свойств Persistence (Устойчивость) предназначена для спецификации устойчивости объектов соответствующего класса. При этом свойство Persistent (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе некоторым подходящим способом. Свойство Static (Статический) означает, что соответствующий объект сохраняется в памяти компьютера в течение всего времени работы программного приложения. Свойство Transient (Временный) соответствующий объект хранится в памяти компьютера в течение короткого времени, необходимого только для выполнения его операций. Применительно к рассматриваемой для объекта класса Устройство чтения карточки модели следует выбрать свойство Persistent.
При необходимости можно представить объект в форме мультиобъекта. Для этого следует выбрать отметку у свойства Multiple instances (Несколько экземпляров). Однако для объекта класса Устройство чтения карточки это свойство следует оставить пустым, поскольку данный объект присутствует в модели в единственном экземпляре.
Добавление сообщения и редактирование его свойств
Добавить сообщения на диаграмму кооперации можно несколькими способами. Стандартный способ заключается в использовании кнопки с пиктограммой сообщения на специальной панели инструментов. В этом случае необходимо левой кнопкой мыши нажать кнопку с изображением прямого или обратного сообщения на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении линии связи на диаграмме и отпустить ее. В результате этих действий на диаграмме рядом с линией связи появится изображение стрелки сообщения.Однако более удобным представляется способ добавления сообщений с помощью диалогового окна свойств связей. Для этого двойным щелчком на линии связи вызывается окно ее свойств и раскрывается вкладка Messages (сообщения). После этого следует выполнить операцию контекстного меню Insert To (Вставить в направлении), в результате чего появляется вложенный список с предложением выбрать одну из операций целевого класса для спецификации имени сообщения (рис. 7.5).

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

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

Рис. 7.7. Диалоговое окно спецификации свойств сообщения
Группа свойств Synchronization (Синхронизация) предназначена для определения способа синхронизации передаваемого сообщения. При изменении этого свойства изменяется графическое изображение стрелки соответствующего сообщения. Характеристика отдельных свойств синхронизации сообщений и графическое изображение соответствующих стрелок сообщений приводится в следующей таблице (табл. 7.2).
| Simple (Простое) | ![]() | Данное сообщение выполняется в одном потоке управления. Это свойство задается добавляемому на диаграмму сообщению по умолчанию |
| Synchronous (Синхронное) | ![]() | После передачи данного сообщения клиент ожидает ответа от объекта-приемника о результате выполнения соответствующей операции |
| Balking (С отказом) | ![]() | После передачи данного сообщения объект-приемник отказывает клиенту в выполнении соответствующей операции, если он занят выполнением других операций |
| Timeout (С ожиданием) | ![]() | После передачи данного сообщения объект-приемник может поместить данное сообщение в очередь с ограниченным временем ожидания, если он занят выполнением других операций |
| Procedure Call (Вызов процедуры) | ![]() | Клиент посылает данное сообщение объекту-приемнику и, чтобы продолжить свою работу ожидает, пока вся дальнейшая вложенная последовательность сообщений не будет обработана приемником |
| Asynchronous (Асинхронное) | ![]() | Клиент посылает данное сообщение и продолжает свою работу, не ожидая подтверждения от объекта-приемника о получении этого сообщения. При этом соответствующая операция может быть как выполнена, так и не выполнена |
| Return (Возврат) | ![]() | Данное сообщение посылается клиенту после окончания выполнения вызова процедуры |
Применительно для модели банкомата можно оставить рассмотренные свойства сообщений без изменения, в том виде, в каком они определены по умолчанию программой IBM Rational Rose 2003.
Добавление связи и редактирование ее свойств
Для добавления связи между предварительно размещенными на диаграмме объектами нужно с помощью левой кнопки мыши нажать кнопку с изображением связи на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении одного объекта на диаграмме и отпустить ее на изображении другого объекта. В результате этих действий на диаграмме появится изображение связи, например, соединяющей объект класса Клиент Банкомата (актера) с объектом класса Устройство чтения карточки (рис. 7.3). Поскольку кнопка с изображением актера отсутствует на специальной панели инструментов диаграммы кооперации, соответствующий объект следует предварительно поместить на диаграмму способом перетаскивания пиктограммы актера из браузера проекта.
Рис. 7.3. Диаграмма кооперации после добавления связи между объектом класса Клиент Банкомата (актером) и объектом класса Устройство чтения карточки
По умолчанию каждая добавляемая связь считается анонимной. При необходимости можно задать имя связи с помощью диалогового окна спецификации свойств данной связи (рис. 7.4).

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

Рис. 7.8. Окончательный вариант диаграммы кооперации, описывающий типичный ход событий варианта использования Снятие наличных по кредитной карточке
При необходимости можно изменить порядок следования сообщений и их спецификацию, а также установить дополнительную синхронизацию сообщений и связать с сообщениями примечания. Указанные действия, а также построение диаграмм кооперации, описывающих реализации исключений для варианта использования Снятие наличных по кредитной карточке и других вариантов использования, предлагается выполнить читателям самостоятельно в качестве упражнения.
В заключение этой лекции следует заметить, что среди свойств сообщений в среде IBM Rational Rose 2003 отсутствует сторожевое условие. Этот факт может несколько озадачить разработчиков, поскольку в общем случае приводит к увеличению количества диаграмм кооперации в модели проекта. В качестве выхода из данной ситуации можно рекомендовать указывать при необходимости сторожевое условие в качестве предусловия для соответствующей операции класса.
Диаграмма кооперации является разновидностью диаграммы
Диаграмма кооперации является разновидностью диаграммы взаимодействия, и в контексте языка UML описывает динамический аспект взаимодействия объектов при реализации отдельных вариантов использования. Общие рекомендации по построению диаграммы кооперации были рассмотрены в лекции 7 курса «Основы объектно-ориентированного моделирования в нотации UML». Активизировать рабочее окно диаграммы кооперации в программе IBM Rational Rose 2003 можно несколькими способами:
Interaction Diagram (Браузер
Диаграмма взаимодействия) и выбрать для построения новую диаграмму кооперации.
Collaboration Diagram (Новая
Диаграмма кооперации) для логического представления или представления вариантов использования в браузере проекта.При этом появляется новое окно с чистым рабочим листом диаграммы кооперации и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы кооперации (табл. 7.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). После активизации новой диаграммы кооперации одним из описанных выше способов следует в качестве имени данной диаграммы задать: Снятие наличных по кредитной карточке.
В общем случае работа с диаграммой кооперации состоит в добавлении объектов, связей и сообщений, а также редактировании их свойств. При этом изменения, вносимые в диаграмму кооперации, автоматически вносятся в диаграмму последовательности, что можно увидеть в любой момент, активизировав последнюю нажатием клавиши
Добавление объекта на диаграмму последовательности и редактирование его свойств
Добавить объект на диаграмму последовательности можно как стандартным образом с помощью соответствующей кнопки на специальной панели инструментов, так и более удобным способом - с помощью перетаскивания изображения пиктограммы класса из браузера на свободное место рабочего листа диаграммы последовательности.В результате этих действий на диаграмме последовательности появится изображение объекта с именем класса, маркерами изменения его геометрических размеров и вертикальной пунктирной линией, означающей линию жизни этого объекта (рис. 8.1).

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

Рис. 8.2. Диаграмма последовательности после добавления сообщения от экземпляра актера Клиент Банкомата к объекту класса Устройства чтения карточки
Для спецификации свойств добавленного сообщения предназначено специальное окно, которое можно открыть двойным щелчком на изображении сообщения на диаграмме последовательности. Имя сообщения можно выбрать на вкладке General (Общие) из выпадающего списка операций соответствующего класса-приемника (рис. 8.3).

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

Рис. 8.4. Контекстное меню сообщения на диаграмме последовательности
Для рассматриваемой модели банкомата в качестве имени первого сообщения следует выбрать операцию прочитать идентификатор карточки(). После выбора операции для данного сообщения следует нажать кнопку Apply или OK, в результате чего имя сообщения будет изображено на диаграмме последовательности рядом с линией сообщения (рис. 8.5).

Рис. 8.5. Диаграмма последовательности после добавления сообщения от экземпляра актера Клиент Банкомата к объекту класса Устройство чтения карточки
Построение диаграммы последовательности сводится к добавлению и редактированию свойств отдельных объектов и сообщений. Доступ к окну спецификации свойств соответствующих элементов возможен также либо через контекстное меню, либо с помощью операции главного меню Browse
Specification (Обзор
Спецификация). При добавлении сообщений на диаграмму последовательности они получают по умолчанию свой номер в общей последовательности сообщений.Следует заметить, что по умолчанию нумерация сообщений на диаграмме последовательности может быть отключена. При необходимости показать номера сообщений следует выполнить операцию главного меню: Tools
Options (Инструменты
Параметры), открыть вкладку Diagram (Диаграмма) и выставить отметку выбора строки Sequence numbering (Нумерация сообщений на диаграмме последовательности) в группе свойств Display (рис. 8.6).
Рис. 8.6. Диалоговое окно спецификации свойств модели
Это же окно спецификации свойств модели можно открыть с помощью операции главного меню: View
Toolbars
Configure (Вид
Панели инструментов
Настроить),Для детальной спецификации свойств сообщений на диаграмме последовательности можно использовать также группу свойств Synchronization (Синхронизация) и Frequency (Частота), доступные для выбора на вкладке Detail (Подробно) окна спецификации сообщения. При изменении способа синхронизации передаваемого сообщения изменяется графическое изображение стрелки соответствующего сообщения. Поскольку характеристика данных свойств сообщений и их графическое изображение соответствующих стрелок приводится в предыдущей лекции 7 (см.табл. 7.2), в данной лекции они не рассматриваются.
Окончательное построение диаграммы последовательности модели банкомата
Для завершения построения диаграммы последовательности рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты и сообщения. С этой целью следует выполнить следующие действия:Фрагмент диаграммы последовательности, описывающая реализацию типичного хода событий варианта использования Снятие наличных по кредитной карточке для проекта системы управления банкоматом, показан на рис. 8.7.

Рис. 8.7. Фрагмент окончательного вида диаграммы последовательности, описывающей типичный ход событий варианта использования Снятие наличных по кредитной карточке
Если необходимо изменить порядок следования сообщений, то из двух диаграмм взаимодействия данное действие удобнее выполнить на диаграмме последовательности, чем на диаграмме кооперации. В этом случае достаточно нажать левую кнопку мыши на стрелке соответствующего сообщения и, не отпуская ее, перетащить вертикально вверх или вниз данное сообщение. Дополнительно можно добавить потоки данных и определить устойчивость объектов на основе активизации соответствующих спецификаций. Указанные действия, а также построение диаграмм последовательности, описывающих реализации других вариантов использования, предлагается выполнить читателям самостоятельно в качестве упражнения.
Особенности разработки диаграммы последовательности в среде IBM Rational Rose
Диаграмма последовательности является другой формой визуализации взаимодействия в модели и, как и диаграмма кооперации, оперирует объектами и сообщениями. Общие рекомендации по построению диаграммы последовательности были рассмотрены в лекции 8 курса «Основы объектно-ориентированного моделирования в нотации UML». Особенность работы в среде IBM Rational Rose 2003 заключается в том, что этот вид канонической диаграммы может быть создан автоматически после построения диаграммы кооперации и нажатия клавишиОднако в отдельных случаях бывает удобно начать построение диаграмм взаимодействия с диаграммы последовательности. В этом случае активизировать рабочее окно диаграммы последовательности можно несколькими способами:
Interaction Diagram (Браузер
Диаграмма взаимодействия) и выбрать для построения новую диаграмму последовательности.
Sequence Diagram (Новая
Диаграмма последовательности) для логического представления или представления вариантов использования в браузере проекта.При этом появляется новое окно с чистым рабочим листом диаграммы классов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы последовательности (табл. 8.1). Назначение отдельных кнопок панели можно узнать из всплывающих подсказок.
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме | |
![]() | Text Box | Добавляет на диаграмму текстовую область | |
![]() | Note | Добавляет на диаграмму примечание | |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы | |
![]() | Object | Добавляет на диаграмму объект | |
![]() | Object Message | Добавляет на диаграмму простое сообщение | |
![]() | Message To Self | Добавляет на диаграмму рефлексивное сообщение | |
![]() | Return Message | Добавляет на диаграмму сообщение типа возврата из вызова процедуры | |
![]() | Destruction Marker | Добавляет на диаграмму символ уничтожения объекта | |
![]() | Procedure Call | Добавляет на диаграмму сообщение типа вызова процедуры (по умолчанию отсутствует) | |
![]() | Asynchronous Message | Добавляет на диаграмму асинхронное сообщение (по умолчанию отсутствует) |
На специальной панели инструментов по умолчанию присутствует практически все пиктограммы элементов, которые могут быть использованы для построения диаграммы последовательности. Из дополнительных пиктограмм графических элементов на специальную панель инструментов можно добавить лишь сообщение типа вызова процедуры и асинхронное сообщение (последняя строка табл. 8.1). Относительно изображения асинхронного сообщения в форме полустрелки следует заметить, что хотя в версии языка UML 1.5 этот элемент отсутствует, в среде IBM Rational Rose 2003 возможно изобразить этот тип сообщений в форме специального графического стереотипа.
Добавление перехода и редактирование его свойств
Для добавления перехода между двумя состояниями нужно с помощью левой кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении исходного состояния на диаграмме и отпустить ее на изображении целевого состояния. В результате этих действий на диаграмме появится изображение перехода, соединяющего два выбранных состояния. Продолжая разработку модели системы управления банкоматом, добавим на диаграмму состояний начальное состояние (Start State) и соединим его переходом с состоянием Ожидание карточки (рис. 9.5).
Рис. 9.5. Диаграмма состояний после добавления на нее перехода из начального состояния в состояние Ожидание карточки
После добавления перехода на диаграмму состояний можно открыть диалоговое окно его свойств и специфицировать дополнительные свойства, доступные на соответствующих вкладках (рис. 9.6). Следует обратить внимание на две первые строки вкладки Detail (Подробно), которые представляются наиболее важными из свойств перехода. Первое поле ввода Guard Condition служит для задания сторожевого условия, которое определяет правило срабатывания соответствующего перехода. Во втором поле ввода Action можно специфицировать действие, которое происходит при срабатывании перехода до того, как моделируемая система попадет в целевое состояние.

Рис. 9.6. Диалоговое окно спецификации свойств перехода, открытое на вкладке Detail (Подробно)
При необходимости можно определить сообщение о событии, происходящем при срабатывании перехода, а также визуализировать вложенность состояний и подключить историю отдельных состояний.
Добавление состояния на диаграмму состояний и редактирование его свойств
Для добавления состояния на диаграмму состояний необходимо с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы состояния на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение состояния с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить.Для диаграммы состояний модели банкомата в качестве имени первого добавленного состояния изменим предложенное программой по умолчанию имя NewState на Ожидание карточки (рис. 9.1). Задать имя состояния можно либо непосредственно при добавлении нового состояния на диаграмму состояний, либо открыв окно спецификации свойств нового состояния.

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

Рис. 9.2. Диалоговое окно спецификации свойств состояния
При необходимости в диалоговом окне спецификации свойств выбранного состояния можно задать вложенное историческое состояние. Для этого следует выставить отметку у свойства State/activity history (Историческое состояние/деятельность) и нажать кнопку Apply. В результате внутри исходного состояния появится вложенное историческое состояние (рис. 9.3, а).

Рис. 9.3. Добавление вложенного исторического состояния (а) и состояния глубокой истории (б) для состояния Ожидание карточки
Чтобы обычное историческое состояние превратить в состояние глубокой истории, следует дополнительно выставить отметку у свойства Sub state/activity history (Историческое под-состояние/деятельность), которое становится доступным для редактирования после выбора первого свойства, и нажать кнопку Apply.
В результате внутри исходного состояния появится вложенное состояние глубокой истории (рис. 9.3, б).
Чтобы обычное состояние превратить в композит, следует при добавлении нового состояния поместить его внутри границы того состояния, которое необходимо сделать композитным. В результате внутри исходного состояния появится новое вложенное состояние с именем NewState, которое при перемещении композита в области диаграммы состояний всегда будет находиться внутри своего композита (рис. 9.4).

Рис. 9.4. Превращение состояния Ожидание карточки в композитное состояние
Рассмотренные выше действия приведены только с целью иллюстрации особенностей спецификации исторических и вложенных подсостояний и не относятся к разрабатываемой модели банкомата.
Дополнительно можно определить следующие свойства состояний: задать текстовый стереотип состояния, определить внутренние действия на входе и выходе, а также внутреннюю деятельность. Эти свойства доступны для редактирования на вкладке General (Общие) и Actions (Действия). На вкладке Transitions (Переходы) можно определять и редактировать переходы, которые входят и выходят из рассматриваемого состояния. Последняя вкладка Swimlanes (Дорожки) служит для спецификации дорожек, которые, в контексте языка UML, определяются для диаграммы деятельности.
Окончательное построение диаграммы состояний модели банкомата
Для завершения построения диаграммы состояний рассматриваемого примера следует описанным выше способом добавить оставшиеся состояния и переходы. С этой целью следует выполнить следующие действия:
Рис. 9.7. Диалоговое окно спецификации свойств перехода три неудачи при задании действия на переходе
Для продолжения построения диаграммы состояний следует выполнить следующие действия:
Диаграмма состояний для рассматриваемой модели банкомата будет иметь следующий вид (рис. 9.8).

Рис. 9.8. Окончательный вид диаграммы состояний для моделирования поведения банкомата
Следует заметить, что в разрабатываемой модели диаграмма состояний является единственной и описывает поведение системы управления банкоматом в целом. Главное достоинство данной диаграммы состояний - возможность моделировать условный характер реализации всех вариантов использования в форме изменения отдельных состояний разрабатываемой системы. В то же время в среде IBM Rational Rose 2003 данная диаграмма не является необходимой для генерации программного кода. Поэтому в случае дублирования информации, представленной на диаграммах кооперации и последовательности, разработку диаграммы состояний, особенно в условиях дефицита времени, отпущенного на выполнение проекта, иногда опускают.
к рассмотрению диаграммы состояний, следует
Переходя к рассмотрению диаграммы состояний, следует отметить, что в среде IBM Rational Rose 2003 этот тип диаграмм может относиться к отдельному классу, операции класса, варианту использования, пакету или представлению. Общие рекомендации по построению диаграммы состояний были рассмотрены в лекциях 9 и 10 курса «Основы объектно-ориентированного моделирования в нотации UML». Для того чтобы построить диаграмму состояний, ее вначале необходимо создать и активизировать.Начать построение диаграммы состояний для выбранного элемента модели или моделируемой системы в целом можно одним из следующих способов:
Statechart Diagram (Новая
Диаграмма состояний).
Statechart Diagram (Новая
Диаграмма состояний).
State Machine Diagram (Обзор
Диаграмма состояний), после чего следует выбрать представление и тип разрабатываемой диаграммы.В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы состояний и специальная панель инструментов, содержащая кнопки с изображением графических элементов модели, необходимых для разработки диаграммы состояний (табл. 9.1). Назначение отдельных кнопок панели можно узнать из всплывающих подсказок.
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | State | Добавляет на диаграмму состояние |
![]() | Start State | Добавляет на диаграмму начальное состояние |
![]() | End State | Добавляет на диаграмму конечное состояние |
![]() | State Transition | Добавляет на диаграмму переход |
![]() | Transition to Self | Добавляет на диаграмму рефлексивный переход |
![]() | Horizontal Synchronization | Добавляет на диаграмму горизонтально расположенный символ синхронизации (по умолчанию отсутствует) |
![]() | Vertical Synchronization | Добавляет на диаграмму вертикально расположенный символ синхронизации (по умолчанию отсутствует) |
![]() | Decision | Добавляет на диаграмму символ принятия решения для альтернативных переходов (по умолчанию отсутствует) |
Добавление деятельности на диаграмму деятельности и редактирование ее свойств
Для добавления деятельности на диаграмму деятельности нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы деятельности на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение деятельности с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить. Добавить деятельность на диаграмму можно также с помощью операции главного меню: Tools
Create
Activity или с помощью операции контекстного меню: New
Activity, предварительно выделив диаграмму деятельности в браузере проекта.В результате этих действий на диаграмме появится изображение деятельности с именем NewActivity, предложенное программой по умолчанию. Начиная построение диаграммы деятельности модели банкомата, для первой добавленной деятельности зададим имя Вставить карточку (рис. 10.1).

Рис. 10.1. Диаграмма деятельности после добавления на нее деятельности Вставить карточку
После добавления деятельности на диаграмму деятельности можно открыть диалоговое окно спецификации ее свойств и определить дополнительные свойства деятельности, доступные на соответствующих вкладках (рис. 10.2).

Рис. 10.2. Диалоговое окно спецификации свойств деятельности
При этом для деятельности становятся доступными для выбора два стереотипа: Business Activity (Бизнес-деятельность) и Business Transaction (Бизнес-транзакция), которые имеют собственное графическое изображение (см. табл. 10.1). На вкладке Transitions (Переходы) окна спецификации свойств деятельности можно определять и редактировать переходы, которые входят и выходят из рассматриваемой деятельности. Последняя вкладка Swimlanes (Дорожки) служит для спецификации дорожки, на которую помещается рассматриваемая деятельность.
Хотя программа IBM Rational Rose 2003 позволяет определить свойства деятельности, доступные на вкладке Actions (Действия), следует помнить, что внутренние действия являются свойствами общего понятия состояния, а внутренняя деятельность служит именем собственно деятельности, помещаемой на диаграмму деятельности. Поэтому для деятельности во избежание недоразумений лучше оставить эту вкладку пустой.
Добавление перехода на диаграмму деятельности полностью аналогично диаграмме состояний. А именно, для добавления перехода между двумя деятельностями нужно с помощью левой кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении исходной деятельности на диаграмме и отпустить ее на изображении целевой деятельности. В результате этих действий на диаграмме появится изображение перехода, соединяющего две выбранных деятельности. Если в качестве одной из деятельностей является символ вет вления или соединения, то порядок добавления перехода сохраняется прежним.
Следует заметить, что при наличии в проекте законченной диаграммы состояний попытка добавить начальное состояние на диаграмму деятельности с помощью кнопки специальной панели инструментов окажется безуспешной. В этом случае программа IBM Rational Rose 2003 фиксирует наличие в модели начального состояния и не позволит добавить его с помощью соответствующей кнопки на разрабатываемые диаграммы состояний или деятельности. Решить данную проблему можно посредством перетаскивания с помощью мыши начального состояния из браузера проекта на любую из вновь разрабатываемых диаграмм.
После добавления перехода на диаграмму деятельности становятся доступными для редактирования его свойства в специальном диалоговом окне (рис. 10.3), которое можно открыть по двойному щелчку левой кнопкой мыши на изображении перехода.

Рис. 10.3. Диалоговое окно спецификации свойств перехода
При спецификации свойств переходов следует помнить, что все переходы на диаграмме деятельности является нетриггерными, т.е. не имеют имен событий. По этой причине поле ввода с именем Event (Событие) для всех переходов должно оставаться пустым. Но все переходы, выходящие из символов ветвления (решения), должны иметь сторожевые условия, которые специфицируются на вкладке Detail (Подробно) диалогового окна спецификации свойств перехода.
Окончательное построение диаграммы деятельности модели банкомата
Для завершения построения диаграммы деятельности рассматриваемого примера следует описанным выше способом добавить оставшиеся деятельности и переходы. С этой целью следует выполнить следующие действия:
Рис. 10.4. Диалоговое окно спецификации свойств перехода при задании сторожевого условия
Для продолжения построения диаграммы деятельности следует выполнить следующие действия:
Построенная таким образом диаграмма деятельности будет иметь следующий вид (рис. 10.5).

Рис. 10.5. Окончательный вид диаграммы деятельности для модели банкомата
Следует заметить, что в разрабатываемой модели диаграмма деятельности не описывает ситуацию блокирования карточки при трижды неверно введенном ПИН-коде. Дополнить данную диаграмму деятельности, которая учитывает данное условие в форме проверки отдельного условия, предлагается читателям самостоятельно в качестве упражнения.
Следует помнить, что в среде IBM Rational Rose 2003 диаграмма деятельности не является необходимой для генерации программного кода. Поэтому разработку диаграмм этого типа, особенно в условиях дефицита времени, отпущенного на выполнение проекта, иногда опускают. В то же время следует отметить, что в проектах реинжиниринга и документирования бизнес-процессов диаграмма деятельности является основным средством визуализации бизнес-процессов в контексте языка UML. Особенности разработки проектов по моделированию бизнес-процессов в среде IBM Rational Rose 2003 рассматриваются далее в лекции 11.
в среде IBM Rational Rose
Диаграмма деятельности в среде IBM Rational Rose 2003, так же как и диаграмма состояний, может относиться к отдельному классу, операции класса, варианту использования, пакету или представлению. Общие рекомендации по построению диаграммы деятельности были рассмотрены в лекции 11 курса «Основы объектно-ориентированного моделирования в нотации UML». Для того чтобы построить диаграмму деятельности, ее вначале необходимо создать и активизировать.Начать построение диаграммы деятельности для выбранного элемента модели или моделируемой системы в целом можно одним из следующих способов:
Activity Diagram (Новая
Диаграмма деятельности).
Activity Diagram (Новая
Диаграмма деятельности).
State Machine Diagram (Обзор
Диаграмма состояний), после следует чего выбрать представление и тип разрабатываемой диаграммы - диаграмма деятельности.В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы деятельности и специальная панель инструментов, содержащая кнопки с изображением графических элементов, необходимых для разработки диаграммы деятельности (табл. 10.1). Назначение отдельных кнопок панели можно узнать из всплывающих подсказок.
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | State | Добавляет на диаграмму состояние |
![]() | Activity | Добавляет на диаграмму деятельность |
![]() | Start State | Добавляет на диаграмму начальное состояние |
![]() | End State | Добавляет на диаграмму конечное состояние |
![]() | State Transition | Добавляет на диаграмму переход |
![]() | Transition to Self | Добавляет на диаграмму рефлексивный переход |
![]() | Horizontal Synchronization | Добавляет на диаграмму горизонтально расположенный символ синхронизации |
![]() | Vertical Synchronization | Добавляет на диаграмму вертикально расположенный символ синхронизации |
![]() | Decision | Добавляет на диаграмму символ принятия решения для альтернативных переходов |
![]() | Swimlane | Добавляет на диаграмму дорожку |
![]() | Object | Добавляет на диаграмму объект (по умолчанию отсутствует) |
![]() | Object Flow | Добавляет на диаграмму стрелку потока объектов (по умолчанию отсутствует) |
![]() | Business Activity | Добавляет на диаграмму бизнес-деятельность (по умолчанию отсутствует) |
![]() | Business Transaction | Добавляет на диаграмму бизнес-транзакцию (по умолчанию отсутствует) |
Как видно из этой таблицы, по умолчанию на панели инструментов отсутствуют некоторые графические элементы, а именно - кнопки с пиктограммами объекта и потока объектов. При необходимости их можно добавить на специальную панель диаграммы деятельности стандартным способом, который был описан ранее.
Для разрабатываемого проекта системы управления банкоматом диаграмма деятельности описывает последовательность действий клиента при использовании банкомата. Для удобства можно включить эту диаграмму в логическое представление, для чего необходимо в браузере проекта выделить логическое представление (Logical View) и выполнить операцию контекстного меню: New
Activity Diagram (Новая
Диаграмма деятельности). Продолжая разработку проекта по моделированию системы управления банкоматом, можно приступить к разработке новой диаграммы деятельности. С этой целью для диаграммы деятельности модели банкомата зададим имя Диаграмма деятельности ATM, а в секцию ее документации введем текст «Диаграмма деятельности описывает последовательность действий клиента при использовании банкомата».Добавление дорожек на диаграмму деятельности
Для представления модели бизнес-процесса в форме диаграммы деятельности первоначально необходимо добавить на нее дорожки. Для добавления дорожки на диаграмму деятельности нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы дорожки на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить дорожку на диаграмму можно также с помощью операции главного меню: Tools
Create
Swimlane или с помощью операции контекстного меню: New
Swimlane, предварительно выделив диаграмму деятельности в браузере проекта.В результате этих действий на диаграмме в области диаграммы появится изображение дорожки с вертикальной линией и именем дорожки NewSwimlane в верхней части, предложенное программой по умолчанию. Для задания имени дорожки следует открыть диалоговое окно спецификации ее свойств и ввести ее имя в поле ввода Name (рис. 11.1).

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

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

Рис. 11.3. Диаграмма деятельности после добавления на нее перехода из изначального состояния в деятельность Принять заказ по факсу
Продолжая рассмотрение особенностей разработки диаграмм
Продолжая рассмотрение особенностей разработки диаграмм деятельности, следует отметить, что программа IBM Rational Rose 2003 может быть успешно использована для выполнения проектов по моделированию бизнес-процессов. Наиболее подходящим типом диаграмм для визуального представления схем выполнения бизнес-процессов являются диаграммы деятельности, на которых дополнительно размещаются так называемые дорожки (Swimlane). Назначение дорожек состоит в том, чтобы указать зоны ответственности за выполнения отдельных деятельностей в рамках моделируемого бизнес-процесса. В качестве имен дорожек используются либо названия подразделений (департаментов) рассматриваемой компании, либо названия отдельных должностей сотрудников тех или иных подразделений.Проекты по моделированию бизнес-процессов могут выполняться либо с целью реорганизации или реинжиниринга компании, либо с целью собственно документирования бизнес-процессов. Особенности данных проектов заключаются в том, что в обоих случаях необходимо построить модели бизнес-процессов некоторой существующей компании. Чтобы акцентировать внимание на подобных проектах, их часто называют проектами типа «As is» («Как есть»). Соответственно проекты по разработке новых продуктов или моделей новых систем называют проектами типа «To be» («Как должно быть»).
В данном контексте рассматриваемый ранее проект по разработке системы управления банкоматом следует отнести к проектам типа «Как есть», поскольку при построении диаграмм предполагалась известной существующая технология использования банкоматов для обслуживания клиентов. С другой стороны, если бы стояла цель разработки новой модели банкомата с некоторой дополнительной функциональностью или, например, разработки нового Интернет-магазина, то подобные проекты можно было бы отнести к проектам типа «Как должно быть». Именно этот тип проектов служит базовым для принятой в курсе лекций последовательности разработки канонических диаграмм в нотации UML, начиная от представления диаграмм вариантов использования и заканчивая диаграммами физического представления.
Выполнение проектов типа «Как есть» по моделированию бизнес-процессов в большинстве случаев начинают с построения диаграмм деятельности, которые служат для графического представления схем выполнения бизнес-процессов и документооборота рассматриваемой компании. После этого, исходя из требований проекта, разрабатывается модель диаграммы вариантов использования и выполняется реорганизация бизнес-процессов. Наконец, в случае необходимости разработки или внедрения корпоративной информационной системы, строятся диаграмма классов, диаграммы взаимодействия и компонентов, которые служат основой для программной реализации соответствующего проекта.
Таким образом, первый этап выполнения проектов типа «Как есть» связан с построением моделей существующих бизнес-процессов компании в форме диаграмм деятельности. В качестве примера проекта этого типа в данной лекции рассматривается модель бизнес-процесса по оптовой продаже товаров со склада торговой компании. Хотя данный пример имеет упрощенный характер, он позволяет наглядно представить основные особенности моделирования бизнес-процессов в нотации языка UML с использованием средства IBM Rational Rose 2003.
Для вновь разрабатываемого проекта по моделированию бизнес-процессов торговой компании в среде IBM Rational Rose 2003 создадим новый проект с именем: МодельБП. В качестве первой диаграммы проекта будет служить диаграмма деятельности, которая описывает отдельный бизнес-процесс в виде последовательности выполнения действий подразделениями компании при оптовой продаже товаров клиентам. Для удобства можно включить эту диаграмму в логическое представление, для чего необходимо в браузере проекта выделить логическое представление (Logical View) и выполнить операцию контекстного меню: New
Activity Diagram (Новая
Диаграмма деятельности).Построение диаграммы деятельности с дорожками и потоком объектов
Для построения диаграммы деятельности с дорожками и потоком объектов для рассматриваемой модели бизнес-процесса следует добавить на диаграмму объекты и стрелки потоков объектов. Объекты на диаграмме деятельности могут обозначать отдельные документы, которые необходимы для выполнения моделируемого бизнес-процесса. Соответственно поток объектов служит моделью документооборота рассматриваемой компании. Для добавления на диаграмму объекта следует воспользоваться соответствующей кнопкой на специальной панели инструментов. При этом данную кнопку предварительно следует на нее добавить, поскольку по умолчанию на панели она отсутствует.В качестве первого объекта добавим на диаграмму деятельности объект с именем заказ, для которого зададим состояние: получен. Для задания состояния добавленного объекта следует открыть диалоговое окно свойств данного объекта, во вложенном списке State (Состояние) выбрать нужное состояние или задать новое (рис. 11.5). При этом будет открыто дополнительное окно свойств состояния, в которое можно занести всю информацию по данному состоянию.

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

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

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

Рис. 11.4. Диаграмма деятельности с дорожками для модели бизнес-процесса
Следует заметить, что в разрабатываемой модели диаграмма деятельности не описывает ситуацию, когда заказанного клиентом товара не окажется на складе. Дополнить данную диаграмму, которая учитывает данное условие в форме проверки отдельного условия, предлагается читателям самостоятельно в качестве упражнения.
Добавление компонента на диаграмму компонентов и редактирование его свойств
Для добавления компонента на диаграмму компонентов нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы компонента на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить компонент на диаграмму можно также с помощью операции главного меню: Tools
Create
Component или с помощью операции контекстного меню: New
Component, предварительно выделив представление компонентов в браузере проекта.В результате этих действий на диаграмме появится изображение компонента с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить. Продолжая разработку модели системы управления банкоматом, построим для нее диаграмму компонентов. С этой целью изменим имя диаграммы, предложенное по умолчанию Main, на Диаграмма компонентов АТМ, а для первого добавленного компонента зададим имя MainATM.exe (рис. 12.1).

Рис. 12.1. Диаграмма компонентов после добавления компонента MainATM.exe
Для каждого компонента можно определить различные свойства, такие как стереотип, язык программирования, декларации, реализуемые классы. Редактирование этих свойств для произвольного компонента осуществляется с помощью диалогового окна спецификации свойств (рис. 12.2).

Рис. 12.2. Диалоговое окно спецификации свойств компонента MainATM.exe
В частности, для компонента MainATM.exe можно выбрать стереотип <

Рис. 12.3. Диалоговое окно спецификации свойств компонента MainATM.exe, открытое на вкладке Realizes (Реализует)
По умолчанию в среде IBM Rational Rose 2003 для всех добавляемых на диаграмму компонентов в качестве языка реализации используется язык анализа, который в последствии следует изменить на тот язык программирования, который предполагается использовать для написания программного кода. В дальнейшем при генерации программного кода необходимо будет дополнительно выбрать те классы, которые реализует тот или иной компонент модели. Программа IBM Rational Rose 2003 поддерживает возможность использования различных языков программирования для реализации различных компонентов модели. Особенности языковой реализации модели рассматриваются далее в лекции 14.
Добавление отношения зависимости и редактирование его свойств
Добавление отношения зависимости на диаграмму компонентов аналогично добавлению соответствующего отношения на диаграмму вариантов использования. Продолжая разработку модели банкомата, на диаграмму компонентов предварительно следует добавить второй компонент с именем MainBank, для которого выбрать стереотип Main Program. Для добавления зависимости между двумя компонентами нужно с помощью левой кнопки мыши нажать кнопку с изображением зависимости на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении исходного компонента на диаграмме и отпустить ее на изображении целевого компонента. В результате этих действий на диаграмме появится изображение отношения зависимости в форме пунктирной линии со стрелкой, соединяющей два выбранных компонента.Применительно к диаграмме компонентов модели банкомата рассмотренным способом следует добавить отношение зависимости от компонента с именем MainATM.exe к компоненту с именем MainBank. В дополнение к этому для наглядности можно указать в форме примечаний те классы модели, которые предполагается реализовать в данных компонентах (рис. 12.4).

Рис. 12.4. Диаграмма компонентов после добавления отношения зависимости между компонентами MainATM.exe и MainBank
Следует заметить, что отношение зависимости в среде IBM Rational Rose 2003 не имеет собственного окна спецификации свойств. Именно по этой причине специфицировать свойства данного отношения, такие как имя и стереотип, можно только с помощью текстовой области, что нельзя признать удобным с практической точки зрения.
Окончательное построение диаграммы компонентов модели банкомата
Для завершения построения диаграммы компонентов рассматриваемого примера следует описанным выше способом добавить оставшиеся компоненты и зависимости. С этой целью следует выполнить следующие действия:Построенная таким образом диаграмма компонентов будет иметь следующий вид (рис. 12.5).

Рис. 12.5. Окончательный вид диаграммы компонентов разрабатываемой модели управления
Следует заметить, что различные графические стереотипы компонентов не оказывают влияния на особенности генерации программного кода. Поэтому при разработке диаграммы компонентов присутствует некоторая неоднозначность выбора соответствующих стереотипов, связанная с особенностями предполагаемой реализации программного приложения. При работе с диаграммой компонентов можно также создавать пакеты и размещать в них компоненты, изменять их спецификацию и отношения зависимости между различными элементами диаграммы. Выполнить эти действия предлагается читателям самостоятельно в качестве упражнения.
Диаграмма компонентов служит частью физического
Диаграмма компонентов служит частью физического представления модели, играет важную роль в процессе ООАП и является необходимой для генерации программного кода. Общие рекомендации по построению диаграммы компонентов были рассмотрены в лекции 12 курса «Основы объектно-ориентированного моделирования в нотации UML». Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов (Component View), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчанию Main (Главная).Активизация диаграммы компонентов может быть выполнена одним из следующих способов:
Component Diagram (Браузер
Диаграмма компонентов). В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы компонентов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы компонентов (табл. 12.1).
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | Component | Добавляет на диаграмму компонент |
![]() | Package | Добавляет на диаграмму пакет |
![]() | Dependency | Добавляет на диаграмму отношение зависимости |
![]() | Subprogram Specification | Добавляет на диаграмму спецификацию подпрограммы |
![]() | Subprogram Body | Добавляет на диаграмму тело подпрограммы |
![]() | Main Program | Добавляет на диаграмму главную программу |
![]() | Package Specification | Добавляет на диаграмму спецификацию пакета |
![]() | Package Body | Добавляет на диаграмму тело пакета |
![]() | Task Specification | Добавляет на диаграмму спецификацию задачи |
![]() | Task Body | Добавляет на диаграмму тело задачи |
![]() | Generic Subprogram | Добавляет на диаграмму типовую подпрограммы(по умолчанию отсутствует) |
![]() | Generic Package | Добавляет на диаграмму типовой пакет (по умолчанию отсутствует) |
![]() | Database | Добавляет на диаграмму базу данных (по умолчанию отсутствует) |
Как видно из этой таблицы, по умолчанию на панели инструментов отсутствуют только три графических элемента из рассмотренных ранее элементов диаграммы компонентов, а именно - кнопки с пиктограммами типовой подпрограммы, типового пакета и базы данных. При необходимости их можно добавить на специальную панель диаграммы компонента стандартным способом.
Программа IBM Rational Rose 2003 не поддерживает графические стереотипы, рассмотренные в лекции 12 курса «Основы объектно-ориентированного моделирования в нотации UML», и предлагает целый ряд собственных стереотипов. Графическое изображение этих стереотипов и их краткая характеристика приводятся в следующей таблице (табл. 12.2). При этом каждому из компонентов, как правило, соответствует отдельный файл исходной сборки программного приложения.
![]() | Subprogram Specification | Спецификация подпрограммы. Содержит описание переменных, процедур и функций и не содержит определений классов |
![]() | Subprogram Body | Тело подпрограммы. Содержит реализацию процедур и функций, не относящихся к каким-то классам, при этом не содержит определений классов или реализаций операций других классов |
![]() | Main Program | Главная программа. Реализует базовую логику работы программного приложения и содержит ссылки на другие компоненты модели |
![]() | Package Specification | Спецификация пакета. Содержит определение класса, его атрибутов и операций. В языке программирования С++ спецификации пакета соответствует отдельный файл с расширением «h» |
![]() | Package Body | Тело пакета. Содержит код реализации операций класса. В языке программирования С++ спецификации пакета соответствует отдельный файл с расширением «cpp» |
![]() | Task Specification | Спецификация задачи. Может содержать определение класса, его атрибутов и операций, которые предполагается использовать в независимом потоке управления |
![]() | Task Body | Тело задачи. Может содержать реализацию операций класса, которые имеют независимый поток управления. |
![]() | Generic Subprogram | Типовая подпрограмма. Содержит описание переменных, процедур и функций, которые могут быть использованы в нескольких программных приложениях. При этом типовая подпрограмма не содержит определений классов |
![]() | Generic Package | Типовой пакет. Содержит определение класса, его атрибутов и операций, которое может быть использовано в нескольких программных приложениях |
![]() | Database | База данных. Содержит определение одного или нескольких классов, их атрибутов и, возможно, операций. При этом соответствующие классы могут быть реализованы в форме одной или нескольких таблиц базы данных |
Добавление соединения и редактирование его свойств
Для добавления соединения между двумя узлами нужно с помощью левой кнопки мыши нажать кнопку с изображением соединения на специальной панели инструментов, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении одного из узлов на диаграмме и отпустить ее на изображении другого узла. Добавить соединения на диаграмму развертывания можно также с помощью операции главного меню: Tools
Create
Connection.В результате этих действий на диаграмме появится изображение соединения в форме линии без стрелок, соединяющей два выбранных узла. Применительно к диаграмме развертывания модели банкомата одним из рассмотренных способов следует добавить соединение для узлов с именами Банкомат №1 и Сеть (рис. 13.5).

Рис. 13.5. Диаграмма развертывания после добавления соединения между узлами Банкомат № 1 и Сеть
Для соединения набор редактируемых свойств аналогичен набору свойств устройства, поэтому для него с помощью соответствующего окна спецификации свойств можно определить только имя, стереотип, документацию и характеристику (рис. 13.4).
Добавление узла на диаграмму развертывания и редактирование его свойств
Для добавления узла на диаграмму развертывания нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы требуемого узла (процессора или устройства) на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. Добавить процессор на диаграмму развертывания можно также с помощью операции главного меню: Tools
Create
Processor или с помощью операции контекстного меню: New
Processor, предварительно выделив представление развертывания в браузере проекта. Аналогично добавить устройство на диаграмму можно также с помощью операции главного меню: Tools
Create
Device или с помощью операции контекстного меню: New
Device, предварительно выделив представление развертывания в браузере проекта.В результате этих действий на диаграмме развертывания появится изображение узла требуемого типа с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить. При этом следует иметь в виду, что в среде IBM Rational Rose 2003 под процессором понимается ресурсоемкий узел, а под устройством - нересурсоемкий узел.
Продолжая разработку модели системы управления банкоматом, построим для нее диаграмму развертывания. С этой целью в качестве первого узла выберем тип процессор и зададим ему имя Банкомат №1, для которого в форме примечания укажем помеченное значение: {адрес = ул. Садовая, д.5}. Это значение служит для спецификации конкретного адреса одного из банкоматов системы (рис. 13.1).

Рис. 13.1. Диаграмма развертывания после добавления узла Банкомат № 1
Для каждого процессора можно специфицировать различные свойства, такие как стереотип, характеристику, процессы и их приоритет. Спецификация этих свойств осуществляется с помощью диалогового окна спецификации свойств процессора (рис. 13.2).

Рис. 13.2. Диалоговое окно спецификации свойств узла Банкомат № 1
При этом на вкладке General (Общие) можно только изменить имя процессора, ввести текст стереотипа, предложенный самим разработчиком, и текст документации, поясняющий особенности физического размещения данного компонента.
На вкладке Detail (Подробно) окна спецификации свойств процессора можно определить его характеристики, выбрать процессы и вариант планирования его работы (рис. 13.3).

Рис. 13.3. Диалоговое окно спецификации свойств узла Банкомат № 1, открытое на вкладке Detail (Подробно)
Характеристики процессора, такие как его быстродействие и объем оперативной памяти, могут быть записаны в форме текста в многостраничное поле с именем Characteristics. В поле Processes (Процессы) можно задать некоторый процесс, который предполагается реализовать на данном процессоре. С этой целью необходимо выполнить операцию контекстного меню Insert (Вставить) и ввести текст имени процесса. Далее можно задать приоритет процесса, введя некоторое число в соответствующее поле ввода.
При наличии у процессора нескольких процессов может быть дополнительно определена процедура планирования их выполнения. Для спецификации процедуры планирования процессора могут быть использованы следующие варианты выбора в группе Scheduling:
Окончательное построение диаграммы развертывания модели банкомата
Для завершения построения диаграммы развертывания рассматриваемого примера следует описанным выше способом добавить оставшиеся узлы и соединения. С этой целью следует выполнить следующие действия:Построенная таким образом диаграмма развертывания будет иметь следующий вид (рис. 13.6), причем для данной диаграммы показаны выполняемые на процессорах процессы и не показаны процедуры их планирования. Это сделано по той причине, что при наличии единственного процесса планирование ресурсов процессора теряет свое значение.

Рис. 13.6. Окончательный вид диаграммы развертывания разрабатываемой модели управления банкоматом
Следует отметить, что программа IBM Rational Rose 2003 не поддерживает возможности графического размещения внутри узлов развертываемых на них компонентов. Указать размещение компонентов модели в узлах диаграммы развертывания можно с помощью документации соответствующих узлов. Выполнить эти действия предлагается читателям самостоятельно в качестве упражнения. После построения диаграммы развертывания разработка визуальной модели системы управления банкоматом в нотации UML может считаться завершенной.
Дальнейшая работа с моделью зависит от целей выполнения проекта.
Если проект не предполагает программную реализацию, то можно ограничиться формированием проектной документации. С этой целью следует выполнить операцию главного меню: Report
SoDA Report_ (Отчет
Отчет с помощью SoDA), в результате чего будет открыто диалоговое окно свойств для выбора шаблонов генерации отчета. После выбора шаблонов будет автоматически сгенерирован отчет о разрабатываемой модели в формате MS Word с использованием специального средства IBM Rational SoDA, если оно доступно в системе после инсталляции IBM Rational Rose 2003.Если проект предполагает программную реализацию, то целесообразно воспользоваться возможностями генерации программного кода в среде IBM Rational Rose 2003, которые рассматриваются в следующей лекции данного курса.
Диаграмма развертывания является второй составной
Диаграмма развертывания является второй составной частью физического представления модели и разрабатывается, как правило, для территориально распределенных систем. Общие рекомендации по построению диаграммы развертывания были рассмотрены в лекции 13 курса «Основы объектно-ориентированного моделирования в нотации UML». Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление развертывания (Deployment View), в котором уже содержится диаграмма развертывания с пустым содержанием и без собственного имени.Активизация диаграммы развертывания может быть выполнена одним из следующих способов:
Deployment Diagram (Обзор
Диаграмма развертывания).В результате выполнения этих действий появляется новое окно с чистым рабочим листом диаграммы развертывания и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы развертывания (табл. 13.1).
![]() | Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме |
![]() | Text Box | Добавляет на диаграмму текстовую область |
![]() | Note | Добавляет на диаграмму примечание |
![]() | Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы |
![]() | Processor | Добавляет на диаграмму процессор |
![]() | Connection | Добавляет на диаграмму отношение соединения |
![]() | Device | Добавляет на диаграмму устройство |
Подготовка модели для генерации программного кода
Одним из наиболее важных свойств программы IBM Rational Rose 2003 является возможность генерации программного кода на нескольких языках программирования, которая может быть использована разработчиком после построения модели. Для этой цели в среде IBM Rational Rose 2003 присутствует достаточно большой выбор языков программирования и схем баз данных. Однако возможность генерации текста программы на том или ином языке программирования зависит от установленной версии IBM Rational Rose 2003.Общая последовательность действий, которые необходимо выполнить для генерации программного кода в среде IBM Rational Rose 2003, состоит из следующих этапов:
Особенности выполнения каждого из этапов могут изменяться в зависимости от выбора языка программирования или схемы базы данных.
В среде IBM Rational Rose 2003 предусмотрено задание достаточно большого числа свойств, характеризующих как отдельные классы, так и проект в целом. Для определенности в качестве языка реализации проекта целесообразно выбрать язык программирования ANSI C++, который не требует инсталляции дополнительных программ и поставляется практически во всех конфигурациях IBM Rational Rose 2003. Рассмотрим особенности выполнения каждого из указанных выше этапов для языка реализации модели ANSI C++.
Поскольку язык ANSI С++ не допускает использование символов кириллицы в качестве имен классов, атрибутов и операций, необходимо соответствующим образом модифицировать диаграмму классов. После изменения имен классов, атрибутов и операций диаграмма классов модели банкомата будет иметь следующий вид (рис. 14.1).

Рис. 14.1. Диаграмма классов модели банкомата после преобразования имен классов, их атрибутов и операций
Проверка модели независимо от выбора языка генерации кода
В общем случае проверка модели может выполняться на любом этапе работы над проектом. Однако после завершения разработки графических диаграмм она является обязательной, поскольку позволяет выявить целый ряд ошибок разработчика. К числу таких ошибок и предупреждений относятся, например, не используемые ассоциации и классы, оставшиеся после удаления отдельных графических элементов с диаграмм, а также операции, не являющиеся именами сообщений на диаграммах взаимодействия.Для проверки модели следует выполнить операцию главного меню: Tools
Check Model (Инструменты
Проверить модель). Результаты проверки разработанной модели на наличие ошибок отображаются в окне журнала. Прежде чем приступить к генерации текста программного кода разработчику следует добиться устранения всех ошибок и предупреждений, о чем должно свидетельствовать чистое окно журнала (рис. 14.2).
Рис. 14.2. Вид журнала при отсутствии ошибок по результатам проверки модели
Создание компонентов для реализации классов и отображение классов на компоненты
По существу данные этапы выполняются в ходе разработки диаграммы компонентов. Хотя программа IBM Rational Rose 2003 позволяет генерировать программный код на языке ANSI C++ для каждого класса модели без предварительного построения диаграммы компонентов, имеет смысл воспользоваться разработанной ранее диаграммой компонентов. Применительно к разрабатываемому проекту желательно переименовать компоненты, задав им англоязычные имена. В этом случае соответствующая диаграмма компонентов модели банкомата будет иметь вид, представленный на рис. 14.3.
Рис. 14.3. Диаграмма компонентов модели банкомата после преобразования имен компонентов
Для отображения классов на компоненты можно воспользоваться окном спецификации свойств компонента, открытого на вкладке Realizes (Реализует). Для включения реализации класса в данный компонент следует выделить требуемый класс на этой вкладке и выполнить для него операцию контекстного меню Assign (Назначить). В результате перед именем класса на этой вкладке появится специальная отметка.
Применительно к модели банкомата для компонента MainATM.exe выберем для генерации программного кода классы ATMTransaction и ATMController (рис. 14.4).

Рис. 14.4. Диалоговое окно настройки свойств реализации классов в компоненте MainATM.exe
Подобная операция должна быть выполнена для всех классов модели, которые предполагается реализовывать на выбранном языке программирования. Имеется и другой способ установления реализации классов на компоненте. А именно, можно просто выделить класс в браузере проекта и перетащить его на нужный компонент диаграммы компонентов.
Выбор языка программирования и редактирование свойств генерации программного кода
Для выбора языка ANSI C++ в качестве языка реализации модели следует выполнить операцию главного меню: Tools
Options (Инструменты
Параметры), в результате чего будет вызвано диалоговое окно настройки параметров модели. Далее на вкладке Notation (Нотация) в строке Default Language (Язык по умолчанию) из вложенного списка следует выбрать язык - ANSI C++.Если по какой-то причине языка ANSI C++ не оказалось во вложенном списке, то следует убедиться в том, что этот язык программирования установлен в качестве расширения IBM Rational Rose 2003. Для этого следует открыть окно установленных расширений, выполнив операцию главного меню: Add-Ins
Add-In Manager (Расширения
Менеджер расширений), и убедиться в том, что выставлена отметка в строке с именем языка ANSI C++. Если ее нет, то ее следует добавить, после чего появится группа доступных операций ANSI C++ в главном меню Tools.После выбора языка программирования по умолчанию следует изменить язык реализации каждого из компонентов модели. С этой целью следует изменить язык в строке Language (Язык) на вкладке General (Общие) окна спецификации свойств компонента, для чего из вложенного списка следует выбрать язык - ANSI C++ (рис. 14.5).

Рис. 14.5. Окно спецификации свойств компонента MainATM.exe при выборе языка его реализации
Следует заметить, что после выбора языка программирования следует привести в соответствие типы атрибутов, типы аргументов и возвращаемых значений операций. С этой целью нужно просмотреть все классы диаграммы классов и изменить те типы данных, которые не являются синтаксически допустимыми в выбранном языке программирования. Применительно к языку ANSI C++ следует заменить тип Integer на int, Boolean на bool, Currency на float. В противном случае соответствующие исправления придется выполнять вручную после генерации программного кода.
Редактирование общих свойств генерации программного кода возможно в специальном диалоговом окне, которое может быть открыто в результате выполнения операции главного меню: Tools
ANSI C++
Open ANSI C++ Specification (Инструменты
Язык ANSI C++
Открыть спецификацию языка ANSI C++). Дополнительные свойства генерации программного кода отдельного класса можно специфицировать в диалоговом окне, которое может быть открыто в результате выполнения операции контекстного меню: ANSI C++
Class Customization (Язык ANSI C++
Настройка свойств класса). При этом соответствующий класс должен быть выделен в браузере проекта.При генерации программного кода на языке ANSI C++ для модели банкомата значения свойств, предлагаемых средой IBM Rational Rose 2003 по умолчанию, первоначально можно оставить без изменения.
Выбор класса или компонента и генерация для него программного кода
Выбор класса или компонента для генерации программного кода означает выделение соответствующего элемента модели в браузере проекта. Применительно к рассматриваемой модели системы управления банкоматом для генерации программного кода на языке ANSI C++ выберем компонент с именем MainATM.exe.Генерация программного кода в среде IBM Rational Rose 2003 возможна для отдельного класса или компонента. Для этого нужный элемент модели предварительно следует выделить в браузере проекта и выполнить операцию контекстного меню: ANSI C++
Generate Code_ (Язык ANSI C++
Генерировать код). В результате этого будет открыто диалоговое окно с предложением выбора классов для генерации программного кода на выбранном языке программирования (рис. 14.6). После выбора соответствующих классов и нажатия кнопки OK программа IBM Rational Rose 2003 выполняет кодогенерацию.
Рис. 14.6. Окно выбора классов для генерации программного кода
Для просмотра и редактирования созданных файлов с текстом программного кода на языке ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с помощью операции контекстного меню: ANSI C++
Browse Header_ (Язык ANSI C++
Просмотреть заголовочный файл) или ANSI C++
Browse Body_ (Язык ANSI C++
Просмотреть файл реализации) для выбранного класса в браузере проекта.После генерации программного кода для компонента MainATM.exe каждому классу, реализованному в данном компоненте, будет соответствовать 2 файла с текстом кода на языке ANSI C++. Так, например, для класса ATMTransaction будет сгенерирован заголовочный файл с расширением «h» (рис. 14.7) и файл реализации с расширением «cpp» (рис. 14.8).

Рис. 14.7. Вид встроенного текстового редактора с загруженным в него заголовочным файлом ATMTransaction.h

Рис. 14.8. Вид встроенного текстового редактора с загруженным в него заголовочным файлом ATMTransaction.cpp
Как видно из рассмотрения полученного заголовочного файла, в нем содержится объявление в соответствии с правилами синтаксиса языка ANSI C++ всех операций и атрибутов класса ATMTransaction.
При этом информация о документировании операций и атрибутов помещается в комментарии перед соответствующими элементами программы.
В файле реализации содержится заготовка для реализации всех операций класса ATMTransaction в соответствии с правилами синтаксиса языка ANSI C++. При этом каждая из операций имеет пустое тело реализации, которое следует написать дополнительно, исходя из функциональных требований модели и синтаксиса языка программирования ANSI C++. Данную работу удобнее выполнять в выбранной интегрированной среде программирования, например, MS Visual C++ или Borland C++. При использовании интегрированной среды кроме компиляции, отладки и тестирования исходных модулей программы разработчик получает возможность дополнить приложение графическим интерфейсом, необходимым для взаимодействия с пользователем.
Следует заметить, что при установленной на компьютер разработчика интегрированной среды сгенерированные файлы с текстом программного кода автоматически открываются в этой среде после двойного щелчка на пиктограмме этих файлов. Тем не менее, лучше копировать содержимое этих файлов в предварительно созданные программные проекты для полного контроля в этих средах процесса программирования и отладки приложений.
Сгенерированные программой IBM Rational Rose 2003 файлы с текстом программного кода содержат минимум информации. Для включения дополнительных элементов в программный код следует изменить свойства генерации программного кода, установленные по умолчанию. Сгенерировать файлы с текстом программного кода при различных значениях свойств выбранного языка программирования предлагается читателям самостоятельно в качестве упражнения.
В заключение следует отметить, что эффект от использования средства IBM Rational Rose 2003 проявляется при разработке масштабных проектов в составе команды или проектной группы. Действительно, при рассмотрении модели системы управления банкоматом может сложиться впечатление того, что написать и отладить соответствующую программу гораздо проще непосредственно в той или иной интегрированной среде программирования.
Однако ситуация покажется не столь тривиальной, когда станет необходимо выполнить проект с несколькими десятками вариантов использования и сотней классов. Именно для подобных проектов явно выявляется преимущество использования средства IBM Rational Rose 2003 и нотации языка UML для документирования и реализации соответствующих моделей.
Инновации: Менеджмент - Моделирование - Софт
- Инновационный менеджмент
- Разработка программного обеспечения
- Россия и инновации
- Управление инновационным менеджментом
- Моделирование
- Финансовое моделирование
- Системы моделирования
- Виды моделирования
- Практическое моделирование
- Пакет Mechanical Desktop
- Моделирование программ
- Софт для моделирования
- Пакет Simulink
- Моделирование в IBM
- MSC Nastran Моделирование -
- AutoCAD
- Unigraphics
- P-CAD




































































































































