Визуальное моделирование в среде 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.

Таблица 1.1. Операции пункта главного меню File (Файл)Название операции менюНаличие кнопки на стандартной панелиНазначение операции главного меню
New
Назначение операций главного меню File и Edit
Создает новую модель IBM Rational Rose 2003. При этом новая модель по умолчанию имеет имя untitled
Open
Назначение операций главного меню File и Edit
Вызывает стандартное диалоговое окно открытия внешнего файла с диска. Открыть можно либо файл модели (файл с расширением «mdl»), либо файл подмодели (файл с расширением «ptl»)
Save
Назначение операций главного меню File и Edit
Позволяет сохранить разрабатываемую модель во внешнем файле на диске
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
Назначение операций главного меню File и Edit
Позволяет распечатать на принтере отдельные диаграммы и спецификации различных элементов разрабатываемой модели. В этом случае вызывается диалоговое окно выбора диаграмм и спецификаций для печати на подключенном к данному компьютеру принтеру
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 (Редактирование)Название операции менюНаличие кнопки на стандартной панелиНазначение операции главного менюUndoОтменяет выполнение последнего действия по удалению или перемещению элементов моделиRedoВосстанавливает изображение диаграммы после отмены выполнения последней операции перемещенияCut

Назначение операций главного меню File и EditВырезает выделенный элемент разрабатываемой модели и помещат его в буфер обмена Copy

Назначение операций главного меню File и EditКопирует выделенный элемент разрабатываемой модели и помещает его в буфер обменаPaste

Назначение операций главного меню File и EditВставляет элемент разрабатываемой модели или его копию из буфера обмена в текущую активную диаграммуDeleteУдаляет выделенные элементы из текущей диаграммы, но не из разрабатываемой моделиSelect AllВыделяет все элементы на текущей диаграмме разрабатываемой моделиDelete from ModelУдаляет все выделенные элементы из разрабатываемой моделиRelocateПозволяет перемещать или отменять перемещение классов, ассоциаций или компонентов из одного пакета в другойFindВызывает диалоговое меню поиска элемента в разрабатываемой модели по его имениReassignПозволяет заменить выделенный элемент разрабатываемой модели другим элементом моделиCompartmentПозволяет отображать дополнительную информацию об объектах, классах, актерах или пакетахChange InfoПозволяет изменить тип выделенного элемента на текущей диаграмме на другой тип элемента

Назначение операций главного меню View, Format и Browse

Операции главного меню View (Вид) позволяют отображать на экране различные элементы рабочего интерфейса и изменять графическое представление диаграмм. Назначение операций этого пункта главного меню представлено в следующей таблице (табл. 1.3).

Таблица 1.3. Операции пункта главного меню View (Вид)Название операции менюНаличие кнопки на стандартной панелиНазначение операции главного меню
ToolbarsПозволяет настроить внешний вид рабочего интерфейса системы IBM Rational Rose 2003 и содержит дополнительные подпункты:
Standard - делает видимой/невидимой стандартную панель инструментов (рис. 1.3)
Toolbox - делает видимой/невидимой стандартную панель инструментов текущей активной диаграммы
Configure - вызывает диалоговое окно настройки параметров модели, открытое на вкладке настройки панелей инструментов
Status BarДелает видимой/невидимой строку состояния
Documentation
Назначение операций главного меню View, Format и Browse
Делает видимым/невидимым окно документации
BrowserДелает видимым/невидимым браузер проекта
LogДелает видимым/невидимым окно журнала
EditorДелает видимым/невидимым встроенный текстовый редактор
Time StampВключает/выключает режим отображения времени в записях журнала
Zoom to SelectionИзменяет масштаб изображения выделенных элементов модели , так чтобы они разместились в одном окне
Zoom In
Назначение операций главного меню View, Format и Browse
Увеличивает масштаб изображения
Zoom Out
Назначение операций главного меню View, Format и Browse
Уменьшает масштаб изображения
Fit in Window
Назначение операций главного меню View, Format и Browse
Изменяет (уменьшает) масштаб изображения всех элементов текущей диаграммы, так чтобы все они разместились в одном окне
Undo Fit in Window
Назначение операций главного меню View, Format и Browse
Отменяет изменение масштаба изображения размещения элементов в одном окне
Page BreaksРазбивает текущую диаграмму на страницы для последующей печати
RefreshПерерисовывает текущую диаграмму
As BoochИзображает элементы модели в соответствии с нотацией Г. Буча
As OMTИзображает элементы модели в соответствии с нотацией OMT
As UnifiedИзображает элементы модели в соответствии с нотацией языка UML

Операции главного меню Format (Формат) позволяют выполнять действия по изменению внешнего вида элементов модели на различных диаграммах.
Назначение операций этого пункта главного меню представлено в следующей таблице (табл. 1.4).

Таблица 1.4. Операции пункта главного меню Format (Формат)Название операции менюНазначение операции главного меню
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).

Таблица 1.4. Операции пункта главного меню Format (Формат)Название операции менюНазначение операции главного меню
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 и назначение остальных операций главного меню рассматривается в следующей лекции. Назначение операций главного меню View, Format и Browse <

средство 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), возможности которой аккумулируют практически все современные достижения в области информационных технологий. Наиболее характерные функциональные особенности этой программы заключаются в следующем:

  • интеграция с MS Visual Studio 6, которая включает поддержку на уровне прямой и обратной генерации кодов и диаграмм Visual Basic и Visual С++ с использованием ATL (Microsoft Active Template Library), Web-Классов, DHTML и протоколов доступа к различным базам данных;
  • непосредственная работа (инжиниринг и реинжиниринг) с исполняемыми модулями и библиотеками форматов EXE, DLL, TLB, OCX.
  • поддержка технологий MTS (Microsoft Transaction Server) и ADO (ActiveX Data Objects) на уровне шаблонов и исходного кода, а также элементов технологии Microsoft - COM+ (DCOM);
  • полная поддержка компонентов CORBA и J2EE, включая реализацию технологии компонентной разработки приложений CBD (Component-Based Development), языка определения интерфейса IDL (Interface Definition Language) и языка определения данных DDL (Data Definition Language);
  • полная поддержка среды разработки Java-приложений, включая прямую и обратную генерацию классов Java формата JAR, а также работу с файлами формата CAB и ZIP.


  • средстве IBM Rational Rose 2003

    В CASE- средстве IBM Rational Rose 2003 реализованы общепринятые стандарты на рабочий интерфейс программы, аналогично известным средам визуального программирования. После установки IBM Rational Rose 2003 на компьютер пользователя, что практически не вызывает трудностей у разработчиков, запуск этого средства в среде MS Windows 2000/XP приводит к появлению на экране соответствующего рабочего интерфейса (рис. 1.1).

    Рабочий интерфейс программы IBM Rational Rose 2003 состоит из различных элементов, основными из которых являются:

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


  • Рассмотрим назначение и основные функции каждого из этих элементов.

    средстве 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, в данной лекции он не рассматривается.
    Назначение операций главного меню Add-Ins, Window и Help
    Рис. 2.6.  Внешний вид диалогового окна менеджера расширений
    Операции главного меню Window (Окно) позволяют активизировать окно нужной диаграммы разрабатываемой модели из числа открытых и отображать все открытые окна диаграмм в различном графическом представлении. Назначение операций этого пункта главного меню представлено в таблице 2.4.

    Таблица 2.4. Операции пункта главного меню Window (Окно)Название операции менюНазначение операции главного меню
    CascadeРазмещает окна всех открытых диаграмм модели каскадно
    TileОтображает в окне диаграмм все открытые диаграммы модели
    Arrange IconsУпорядочивает расположение всех открытых диаграмм
    Секция, содержащая имена всех открытых диаграмм модели для переключения между ними. Если открывается новая диаграмма, то в этой секции появляется новая строка с именем этой диаграммы и ее типом, выбрав которую, можно сразу перейти в нужное окно

    Операции главного меню Help (Справка) позволяют получить справочную информацию о программе IBM Rational Rose 2003 и об особенностях разработки графических моделей в соответствующих нотациях. Назначение операций этого пункта главного меню представлено в таблице 2.5.

    Таблица 2.5. Операции пункта главного меню Help (Справка)Название операции менюНазначение операции главного меню
    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


    Назначение операций главного меню Add-Ins, Window и Help <

    Назначение операций главного меню Report, Query и Tools

    Операции главного меню Report (Отчет) позволяют отображать различную информацию об элементах разрабатываемой модели и вызывать диалоговое окно выбора шаблона для генерации отчета о модели. Назначение операций этого пункта главного меню представлено в таблице 2.1.

    Таблица 2.1. Операции пункта главного меню Report (Отчет)Название операции менюНазначение операции главного меню
    Show UsageОтображает в диалоговом окне информацию об использовании выделенного элемента модели на различных диаграммах
    Show InstancesОтображает в диалоговом окне информацию об использовании объектов выделенного класса модели на различных диаграммах
    Show Access ViolationsОтображает в диалоговом окне информацию о ссылках классов одного пакета на классы другого пакета при отсутствии соответствующей зависимости доступа или импорта между этими пакетами в модели
    SoDA ReportПозволяет сгенерировать отчет о разрабатываемой модели в формате MS Word с использованием специального средства IBM Rational SoDA
    Show Participants in UCОтображает в диалоговом окне информацию о классах, компонентах и операциях, которые участвуют в реализации выделенного варианта использования модели на различных диаграммах

    Операции главного меню Query (Запрос) позволяют добавлять существующие элементы разрабатываемой модели на редактируемую диаграмму, а также настраивать специальный фильтр отображения отношений между отдельными элементами модели. Назначение операций этого пункта главного меню представлено в таблице 2.2.

    Таблица 2.2. Операции пункта главного меню Query (Запрос)Название операции менюНазначение операции главного меню
    Add ClassesВызывает диалоговое окно с предложением добавить на текущую диаграмму классы, которые имеются в модели на различных диаграммах
    Add Use CasesВызывает диалоговое окно с предложением добавить на текущую диаграмму варианты использования, которые имеются в модели на различных уровнях
    Expand Selected ElementsВызывает диалоговое окно с предложением добавить на текущую диаграмму элементы модели, которые связаны с выделенным элементом на других диаграммах
    Hide Selected ElementsВызывает диалоговое окно с предложением удалить с текущей диаграммы элементы модели, которые связаны с выделенным элементом
    Filter RelationshipsВызывает диалоговое окно, позволяющее включить/выключить режим отображения различных отношений на текущей диаграмме


    Состав операций пункта главного меню Tools (Инструменты) зависит от установленных в программе IBM Rational Rose 2003 конкретных расширений. Назначение операций этого пункта главного меню для типовой конфигурации программы представлено в таблице 2.3.

    Таблица 2.3. Операции пункта главного меню Tools (Инструменты)Название операции менюНазначение операции главного меню
    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-х представлений:
  • Use Case View - представление вариантов использования, в котором содержатся диаграммы вариантов использования и их реализации в виде вариантов взаимодействия;
  • Logical View - логическое представление, в котором содержатся диаграммы классов, диаграммы состояний и диаграммы деятельности;
  • Component View - представление компонентов, в котором содержатся диаграммы компонентов разрабатываемой модели;
  • Deployment View - представление развертывания, в котором содержится единственная диаграмма развертывания разрабатываемой модели.

  • Окно браузера проекта
    Рис. 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). С целью лучшей визуализации диаграммы текстовую область стереотипа можно переместить в нужное место диаграммы. Выполнить это можно с помощью общего способа перемещения графических элементов модели, который был рассмотрен ранее в этой лекции применительно к актеру Клиент Банкомата.
    Добавление отношения зависимости и редактирование его свойств
    Рис. 3.9.  Диаграмма вариантов использования после добавления на нее отношения зависимости
    Аналогичным образом могут быть добавлены на диаграмму вариантов использования отношения зависимости со стереотипом <>, которые применяются для моделирования исключений при выполнении отдельных вариантов использования.

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

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


  • Выполнить эти действия предлагается читателям самостоятельно. При этом отношение зависимости со стереотипом <> на данной диаграмме означает следующее. Вариант использования Блокирование кредитной карточки будет выполняться только в том случае, если в результате проверки ПИН-кода будет установлено, что соответствующая кредитная карточка утрачена ее владельцем или признана недействительной. Построенная таким образом диаграмма вариантов использования будет иметь следующий вид (рис. 3.10).

    Окончательное построение диаграммы вариантов использования
    Рис. 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в среде IBM Rational Rose New (Файлв среде IBM Rational Rose Новый) или при первоначальной загрузке программы IBM Rational Rose 2003. В случае разработки проекта, для которого не известна или не выбрана технология его реализации, следует отказаться от мастера, в результате чего появится рабочий интерфейс программы IBM Rational Rose 2003 с чистым окном активной диаграммы классов и именем проекта untitled по умолчанию.

    В качестве проекта далее будет рассматриваться модель системы управления банкоматом. Достоинством этого проекта является то, что он не требует специального описания предметной области, поскольку предполагает интуитивное знакомство читателей с особенностями функционирования банкомата. При этом разрабатываемая модель системы управления банкоматом используется в качестве сквозного примера, в рамках которого иллюстрируются особенности разработки различных диаграмм языка UML в среде IBM Rational Rose 2003. Для изменения имени проекта, предложенного программой по умолчанию, следует сохранить модель во внешнем файле на диске, например, под именем ATMmodel.mdl.

    В этом случае изменится имя в строке заголовка и имя проекта в иерархическом представлении модели в браузере проекта.

    Как и другие программы, IBM Rational Rose позволяет настраивать глобальные параметры среды, такие как выбор шрифтов и цвета для представления различных элементов модели. Настройка шрифтов, цвета линий и графических элементов производится через операцию главного меню: Toolsв среде IBM Rational Rose Options (Инструментыв среде IBM Rational Rose Параметры). Характерной особенностью среды является возможность работы с символами кириллицы. Однако следует заметить, что при спецификации элементов модели с последующей генерацией текста программного кода следует записывать имена и свойства классов, ассоциаций, атрибутов, операций и компонентов символами того языка, который поддерживается соответствующим языком программирования.


    Для разработки диаграммы вариантов использования модели в среде IBM Rational Rose 2003 необходимо активизировать соответствующую диаграмму в окне диаграммы. Это можно сделать следующими способами:

  • раскрыть представление вариантов использования Use Case View в браузере проекта и дважды щелкнуть на пиктограмме Main (Главная);
  • с помощью операции главного меню Browseв среде IBM Rational Rose Use Case Diagram (Браузерв среде IBM Rational Rose Диаграмма вариантов использования).


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

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


    в среде IBM Rational Rose
    Selection ToolПревращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме


    в среде IBM Rational Rose
    Text BoxДобавляет на диаграмму текстовую область


    в среде IBM Rational Rose
    NoteДобавляет на диаграмму примечание


    в среде IBM Rational Rose
    Anchor Note to ItemДобавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы


    в среде IBM Rational Rose
    PackageДобавляет на диаграмму пакет


    в среде IBM Rational Rose
    Use CaseДобавляет на диаграмму вариант использования


    в среде IBM Rational Rose
    ActorДобавляет на диаграмму актера


    в среде IBM Rational Rose
    Unidirectional AssociationДобавляет на диаграмму направленную ассоциацию


    в среде IBM Rational Rose
    Dependency or InstantiatesДобавляет на диаграмму отношение зависимости


    в среде IBM Rational Rose
    GeneralizationДобавляет на диаграмму отношение обобщения
    На специальной панели инструментов по умолчанию присутствует только часть кнопок с пиктограммами элементов, которые могут быть использованы для построения диаграммы. Добавить кнопки с пиктограммами других графических элементов, например, таких как бизнес-вариант использования (business use case), бизнес-актер (business actor), сотрудник (business worker), или удалить ненужные кнопки можно с помощью настройки специальной панели инструментов.


    Для разработки диаграммы вариантов использования модели в среде IBM Rational Rose 2003 необходимо активизировать соответствующую диаграмму в окне диаграммы. Это можно сделать следующими способами:

  • раскрыть представление вариантов использования Use Case View в браузере проекта и дважды щелкнуть на пиктограмме Main (Главная);
  • с помощью операции главного меню Browseв среде IBM Rational Rose Use Case Diagram (Браузерв среде IBM Rational Rose Диаграмма вариантов использования).


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

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


    в среде IBM Rational Rose
    Selection ToolПревращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме


    в среде IBM Rational Rose
    Text BoxДобавляет на диаграмму текстовую область


    в среде IBM Rational Rose
    NoteДобавляет на диаграмму примечание


    в среде IBM Rational Rose
    Anchor Note to ItemДобавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы


    в среде IBM Rational Rose
    PackageДобавляет на диаграмму пакет


    в среде IBM Rational Rose
    Use CaseДобавляет на диаграмму вариант использования


    в среде IBM Rational Rose
    ActorДобавляет на диаграмму актера


    в среде IBM Rational Rose
    Unidirectional AssociationДобавляет на диаграмму направленную ассоциацию


    в среде IBM Rational Rose
    Dependency or InstantiatesДобавляет на диаграмму отношение зависимости


    в среде IBM Rational Rose
    GeneralizationДобавляет на диаграмму отношение обобщения
    На специальной панели инструментов по умолчанию присутствует только часть кнопок с пиктограммами элементов, которые могут быть использованы для построения диаграммы. Добавить кнопки с пиктограммами других графических элементов, например, таких как бизнес-вариант использования (business use case), бизнес-актер (business actor), сотрудник (business worker), или удалить ненужные кнопки можно с помощью настройки специальной панели инструментов.

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

    Для добавления класса на диаграмму классов нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы класса на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение класса с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию 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 (Устойчивый) означает, что информация об объектах данного класса должна быть сохранена в системе.

    Диаграмма классов является основным логическим

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

  • окно диаграммы классов появляется по умолчанию в рабочем окне диаграммы после создания нового проекта;
  • щелкнуть на кнопке с изображением диаграммы классов на стандартной панели инструментов;
  • раскрыть логическое представление (Logical View) в браузере проекта и дважды щелкнуть на пиктограмме Main (Главная);
  • выполнить операцию главного меню: BrowseДиаграмма классов является основным логическим Class Diagram (ОбзорДиаграмма классов является основным логическим Диаграмма классов).


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

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


    Диаграмма классов является основным логическим
    Selection ToolПревращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме


    Диаграмма классов является основным логическим
    Text BoxДобавляет на диаграмму текстовую область


    Диаграмма классов является основным логическим
    NoteДобавляет на диаграмму примечание


    Диаграмма классов является основным логическим
    Anchor Note to ItemДобавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы


    Диаграмма классов является основным логическим
    ClassДобавляет на диаграмму класс


    Диаграмма классов является основным логическим
    InterfaceДобавляет на диаграмму интерфейс


    Диаграмма классов является основным логическим
    Unidirectional AssociationДобавляет на диаграмму направленную ассоциацию


    Диаграмма классов является основным логическим
    Association ClassДобавляет на диаграмму ассоциацию класс


    Диаграмма классов является основным логическим
    PackageДобавляет на диаграмму пакет


    Диаграмма классов является основным логическим
    Dependency or InstantiatesДобавляет на диаграмму отношение зависимости


    Диаграмма классов является основным логическим
    GeneralizationДобавляет на диаграмму отношение обобщения


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

    Стереотипы классов и их графическое представление

    На разрабатываемой диаграмме классов выбран текстовый способ изображения стереотипов классов, при котором стереотип записывается в угловых кавычках выше имени соответствующего класса. Программа IBM Rational Rose 2003 позволяет альтернативно представлять стереотипы в форме специальных графических изображений (как в браузере проекта) или в форме небольших декоративных значков в верхней секции прямоугольника класса на диаграмме, а также вообще отказаться от изображения стереотипов.
    Изменить изображение стереотипа для отдельного класса можно, например, с помощью одной из вложенных операций контекстного меню: OptionsСтереотипы классов и их графическое представлениеStereotype Display (ПараметрыСтереотипы классов и их графическое представлениеИзображение стереотипа). В качестве примера можно представить изображение класса Транзакция Банкомата в форме специальной графической пиктограммы стереотипа. С этой целью следует выполнить операцию контекстного меню: OptionsСтереотипы классов и их графическое представлениеStereotype DisplayСтереотипы классов и их графическое представлениеIcon (ПараметрыСтереотипы классов и их графическое представлениеИзображение стереотипаСтереотипы классов и их графическое представлениеПиктограмма). Соответствующее графическое изображение стереотипа <> для класса Транзакция Банкомата в форме пиктограммы будет иметь следующий вид (рис. 4.5, а).
    Для сравнения можно выбрать изображение класса Транзакция Банкомата в форме декоративного графического стереотипа. С этой целью выполним операцию контекстного меню: OptionsСтереотипы классов и их графическое представлениеStereotype DisplayСтереотипы классов и их графическое представлениеDecoration (ПараметрыСтереотипы классов и их графическое представлениеИзображение стереотипаСтереотипы классов и их графическое представлениеДекорация). Соответствующее графическое изображение стереотипа <> для класса Транзакция Банкомата в форме декорации будет иметь следующий вид (рис. 4.5, б).
    Стереотипы классов и их графическое представление
    Рис. 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 для генерации программного кода, в данной лекции будут подробно рассмотрены соответствующие свойства атрибутов и операций.
    Добавить атрибут к созданному ранее классу можно одним из следующих способов:
  • С помощью операции контекстного меню New Attribute (Новый атрибут) для класса, выделенного на диаграмме классов. В этом случае активизируется курсор ввода текста в области графического изображения класса на диаграмме.
  • С помощью операции контекстного меню: NewДобавление и редактирование атрибутов классовAttribute (НовыйДобавление и редактирование атрибутов классовАтрибут) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода текста в области иерархического представления класса в браузере проекта под именем соответствующего класса.
  • С помощью операции контекстного меню Insert (Вставить), вызванного при позиционировании курсора в области открытой вкладки атрибутов в диалоговом окне свойств Class Specification соответствующего класса.

  • После добавления атрибута к классу по умолчанию ему присваивается имя name и некоторый квантор видимости (рис. 5.1).
    Добавление и редактирование атрибутов классов
    Рис. 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 (Локализация) можно специфицировать условия хранения атрибута у объектов выбранного класса. Для выбора могут быть использованы следующие свойства:

  • By value (По значению) - свойство по умолчанию, которое означает, что значения атрибута хранятся в пределах адресного пространства, выделенного для объекта данного класса.

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

    Функционирование банкомата основано на выполнении отдельными его устройствами тех или иных действий. В модели структуры банкомата все действия представляются с помощью операций классов. Таким образом, следующий этап разработки диаграммы классов связан со спецификацией операций классов.
    Добавить операцию к созданному ранее классу можно одним из следующих способов:
  • С помощью операции контекстного меню New Operation (Новая операция) для класса, выделенного на диаграмме классов. В этом случае активизируется курсор ввода в области графического изображения класса на диаграмме.
  • С помощью операции контекстного меню: NewДобавление и редактирование операций классовOperation (НоваяДобавление и редактирование операций классовОперация) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода в области иерархического представления класса в браузере под именем соответствующего класса.
  • С помощью операции контекстного меню Insert (Вставить), вызванного при позиционировании курсора в области открытой вкладки операций в диалоговом окне свойств Class Specification соответствующего класса.

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

    Таблица 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 операции со следующими свойствами:
  • значение ПИН-кода карточки с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Integer (целочисленный), а в секцию документации атрибута ввести поясняющий текст: «Устройство чтения карточки считывает значение этого атрибута с кредитной карточки клиента».
  • введенный ПИН-код с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Integer (целочисленный), а в секцию документации атрибута ввести поясняющий текст: «Значение этого атрибута вводится клиентом с клавиатуры банкомата».
  • введенная сумма наличных с квантором видимости public. В качестве типа этого атрибута следует выбрать тип Currency (Денежный), а в секцию документации атрибута ввести поясняющий текст: «Значение этого атрибута вводится клиентом с клавиатуры банкомата».
  • проверить правильность ПИН-кода() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический), а в секцию ее документации ввести поясняющий текст: «Вызывается после того, как клиент ввел значение ПИН-кода с клавиатуры банкомата».
  • завершить транзакцию() с квантором видимости public. В секцию ее документации ввести поясняющий текст: «Вызывается после завершения всех действий банкомата по обслуживанию клиента».

  • Выполнить эти действия предлагается читателям самостоятельно. Соответствующий фрагмент диаграммы классов после добавления и спецификации атрибутов и операций для класса Транзакция Банкомата будет иметь следующий вид (рис. 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, чтобы сохранить результаты редактирования имени ассоциации.

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

    Для окончательного построения диаграммы классов рассматриваемой модели банкомата следует описанным выше способом добавить оставшиеся классы и ассоциации, а также специфицировать стереотипы, атрибуты и операции этих классов. С этой целью следует выполнить следующие действия:
  • Для класса IИнтерфейс Банка добавить операцию: проверить идентификатор карточки (идентификатор карточки: Integer) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический), а в качестве целочисленного аргумента задать идентификатор карточки. Для задания аргумента необходимо перейти на вкладку Detail (Подробно) окна спецификации свойств даной операции и после добавления аргумента с помощью операции контекстного меню Insert ввести имя аргумента и его тип Integer в соответствующие поля ввода.
  • Для класса IИнтерфейс Банка добавить операцию: открыть счет клиента (идентификатор карточки: Integer) с квантором видимости public. В качестве целочисленного аргумента этой операции следует задать идентификатор карточки.
  • Для класса IИнтерфейс Банка добавить операцию: проверить баланс клиента (идентификатор карточки: Integer, введенная сумма наличных: Currency) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический). В качестве первого целочисленного аргумента этой операции следует задать идентификатор карточки, а в качестве второго аргумента - введенная сумма наличных с типом Currency (Денежный).
  • Для класса IИнтерфейс Банка добавить операцию: уменьшить счет клиента (идентификатор карточки: Integer, введенная сумма наличных: Currency) с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Boolean (логический). В качестве первого целочисленного аргумента этой операции следует задать идентификатор карточки, а в качестве второго аргумента - введенная сумма наличных с типом Currency (Денежный).
  • Для класса Устройство чтения карточки добавить операцию: прочитать идентификатор карточки() с квантором видимости public.
    В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer (целочисленный), а в секцию документации данной операции следует ввести поясняющий текст: «Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки».
  • Для класса Устройство чтения карточки добавить операцию: прочитать ПИН-код() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer (целочисленный), а в секцию документации данной операции следует ввести поясняющий текст: «Вызывается после того, как кредитная карточка вставлена в Устройство чтения карточки».
  • Для класса Устройство чтения карточки добавить операцию: вернуть кредитную карточку() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: «Вызывается после завершения транзакции».
  • Для класса Устройство чтения карточки добавить операцию: блокировать кредитную карточку() с квантором видимости public. В секцию документации данной операции следует ввести поясняющий текст: «Вызывается после того, как установлен факт утраты кредитной карточки владельцем».
  • Добавить класс с именем Экран Банкомата, для которого выбрать стереотип boundary. Данный класс также находится на границе моделируемой системы, на что и указывает этот стереотип. В секцию документации данного класса следует ввести поясняющий текст: «Устанавливается на банкомате».
  • Для класса Экран Банкомата добавить операцию: показать меню опций() с квантором видимости public.
  • Для класса Экран Банкомата добавить операцию: показать меню снятия суммы() с квантором видимости public.
  • Добавить класс с именем Клавиатура Банкомата, для которого выбрать стереотип boundary. В секцию документации данного класса следует ввести поясняющий текст: «Устанавливается на банкомате».
  • Для класса Клавиатура Банкомата добавить операцию: ввести ПИН-код() с квантором видимости public. В качестве типа возвращаемого результата для этой операции следует выбрать тип Integer, а в секцию документации данной операции следует ввести поясняющий текст: «Вызывается после того, как клиент ввел значение ПИН-кода с клавиатуры».
  • Для класса Клавиатура Банкомата добавить операцию: ввести тип транзакции() с квантором видимости public.

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

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

    Таблица 7.2. Характеристика свойств синхронизации сообщенийНазвание свойстваГрафическое изображение стрелкиНазначение свойства
    Simple (Простое)

    Добавление сообщения и редактирование его свойств
    Данное сообщение выполняется в одном потоке управления. Это свойство задается добавляемому на диаграмму сообщению по умолчанию
    Synchronous (Синхронное)

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

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

    Добавление сообщения и редактирование его свойств
    После передачи данного сообщения объект-приемник может поместить данное сообщение в очередь с ограниченным временем ожидания, если он занят выполнением других операций
    Procedure Call (Вызов процедуры)

    Добавление сообщения и редактирование его свойств
    Клиент посылает данное сообщение объекту-приемнику и, чтобы продолжить свою работу ожидает, пока вся дальнейшая вложенная последовательность сообщений не будет обработана приемником
    Asynchronous (Асинхронное)

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

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

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

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

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

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

    Для завершения построения диаграммы кооперации рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты, связи и сообщения. С этой целью следует выполнить следующие действия:
  • Добавить объекты классов с именами: Контроллер Банкомата, Транзакция Банкомата, Клавиатура Банкомата, Экран Банкомата, Принтер Банкомата, Устройство выдачи наличных и IИнтерфейс Банка.
  • Добавить связи, соединяющие объекты классов с именами: Контроллер Банкомата с Устройством чтения карточки, Контроллер Банкомата с Транзакцией Банкомата, Контроллер Банкомата с Клавиатурой Банкомата, Контроллер Банкомата с Экраном Банкомата, Контроллер Банкомата с Принтером Банкомата, Контроллер Банкомата с Устройством выдачи наличных и Контроллер Банкомата с IИнтерфейсом Банка.
  • Добавить сообщение: проверить идентификатор карточки (Integer) , направленное от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
  • Добавить сообщение: ввести ПИН-код(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Добавить сообщение: прочитать ПИН-код(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
  • Добавить сообщение: создать новую транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
  • Добавить сообщение: проверить правильность ПИН-кода(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
  • Добавить сообщение: показать меню опций(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
  • Добавить сообщение: ввести тип транзакции(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Добавить сообщение: показать меню снятия суммы(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
  • Добавить сообщение: ввести сумму снятия наличных(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Последовательно добавить 3 сообщения: открыть счет клиента (Integer) , проверить баланс клиента (Integer, Currency) и уменьшить счет клиента(Integer, Currency), направленные от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
  • Добавить сообщение: распечатать чек(), направленное от объекта класса Контроллер Банкомата к объекту класса Принтер Банкомата.
  • Добавить сообщение: вернуть кредитную карточку(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
  • Добавить сообщение: выдать наличные(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство выдачи наличных.
  • Добавить сообщение: завершить транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.


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

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

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

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

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

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

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


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

    Таблица 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). При необходимости в контекстном меню можно задать новую операцию, в этом случае следует выбрать строку . При этом откроется диалоговое окно спецификации свойств новой операции класса-приемника (см. рис. 5.4), особенности редактирования которых были рассмотрены ранее в лекции 5.
    Добавление сообщения на диаграмму последовательности и редактирование его свойств
    Рис. 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), в данной лекции они не рассматриваются.

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

    Для завершения построения диаграммы последовательности рассматриваемого примера следует описанным выше способом добавить оставшиеся объекты и сообщения. С этой целью следует выполнить следующие действия:
  • Добавить объекты классов с именами: Контроллер Банкомата, Транзакция Банкомата, Клавиатура Банкомата, Экран Банкомата, Принтер Банкомата, Устройство выдачи наличных и IИнтерфейс Банка.
  • Добавить сообщение: проверить идентификатор карточки (Integer), направленное от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
  • Добавить сообщение: ввести ПИН-код(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Добавить сообщение: прочитать ПИН-код(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
  • Добавить сообщение: создать новую транзакцию(), направленное от объекта класса Контроллер Банкомата к изображению объекта класса Транзакция Банкомата. При этом изображение объекта класса Транзакция Банкомата следует переместить вниз на уровень этого сообщения, что будет визуально означать создание данного объекта в более поздний момент времени, чем начало функционирования моделируемой программной системы.
  • Добавить сообщение: проверить правильность ПИН-кода(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
  • Добавить сообщение: показать меню опций(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
  • Добавить сообщение: ввести тип транзакции(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Добавить сообщение: показать меню снятия суммы(), направленное от объекта класса Контроллер Банкомата к объекту класса Экран Банкомата.
  • Добавить сообщение: ввести сумму снятия наличных(), направленное от объекта класса-актера Клиент Банкомата к объекту класса Клавиатура Банкомата.
  • Последовательно добавить 3 сообщения: открыть счет клиента (Integer), проверить баланс клиента (Integer, Currency) и уменьшить счет клиента (Integer, Currency), направленные от объекта класса Контроллер Банкомата к объекту класса IИнтерфейс Банка.
  • Добавить сообщение: распечатать чек(), направленное от объекта класса Контроллер Банкомата к объекту класса Принтер Банкомата.
  • Добавить сообщение: вернуть кредитную карточку(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство чтения карточки.
  • Добавить сообщение: выдать наличные(), направленное от объекта класса Контроллер Банкомата к объекту класса Устройство выдачи наличных.
  • Добавить сообщение: завершить транзакцию(), направленное от объекта класса Контроллер Банкомата к объекту класса Транзакция Банкомата.
  • После добавления сообщения завершить транзакцию() поместить на линию жизни объекта класса Транзакция Банкомата символ уничтожения этого объекта.


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

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

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

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

    Диаграмма последовательности является другой формой визуализации взаимодействия в модели и, как и диаграмма кооперации, оперирует объектами и сообщениями. Общие рекомендации по построению диаграммы последовательности были рассмотрены в лекции 8 курса «Основы объектно-ориентированного моделирования в нотации UML». Особенность работы в среде IBM Rational Rose 2003 заключается в том, что этот вид канонической диаграммы может быть создан автоматически после построения диаграммы кооперации и нажатия клавиши . С помощью этой же клавиши осуществляется переключение между диаграммами последовательности и кооперации в модели.
    Однако в отдельных случаях бывает удобно начать построение диаграмм взаимодействия с диаграммы последовательности. В этом случае активизировать рабочее окно диаграммы последовательности можно несколькими способами:
  • Щелкнуть на кнопке с изображением диаграммы взаимодействия на стандартной панели инструментов и выбрать для построения диаграмму последовательности.
  • Выполнить операцию главного меню: BrowseОсобенности разработки диаграммы последовательности в среде IBM Rational RoseInteraction Diagram (БраузерОсобенности разработки диаграммы последовательности в среде IBM Rational RoseДиаграмма взаимодействия) и выбрать для построения новую диаграмму последовательности.
  • Выполнить операцию контекстного меню: NewОсобенности разработки диаграммы последовательности в среде IBM Rational RoseSequence Diagram (НоваяОсобенности разработки диаграммы последовательности в среде IBM Rational RoseДиаграмма последовательности) для логического представления или представления вариантов использования в браузере проекта.

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

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

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Selection ToolПревращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Text BoxДобавляет на диаграмму текстовую область

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    NoteДобавляет на диаграмму примечание

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Anchor Note to ItemДобавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    ObjectДобавляет на диаграмму объект

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Object MessageДобавляет на диаграмму простое сообщение

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Message To SelfДобавляет на диаграмму рефлексивное сообщение

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Return MessageДобавляет на диаграмму сообщение типа возврата из вызова процедуры

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Destruction MarkerДобавляет на диаграмму символ уничтожения объекта

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    Procedure CallДобавляет на диаграмму сообщение типа вызова процедуры (по умолчанию отсутствует)

    Особенности разработки диаграммы последовательности в среде IBM Rational Rose
    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, определяются для диаграммы деятельности.

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

    Для завершения построения диаграммы состояний рассматриваемого примера следует описанным выше способом добавить оставшиеся состояния и переходы. С этой целью следует выполнить следующие действия:
  • Добавить состояния с именами: Ожидание ввода ПИН-кода, Проверка ПИН-кода, Ожидание выбора клиента, Обработка запроса на снятие наличных, Обработка запроса на получение справки, Выдача наличных, Печать, Возврат карточки, Завершение транзакции и финальное состояние.
  • Добавить переход: карточка вставлена, направленный от состояния Ожидание карточки к состоянию Ожидание ввода ПИН-кода.
  • Добавить переход: ПИН-код введен, направленный от состояния Ожидание ввода ПИН-кода к состоянию Проверка ПИН-кода.
  • Добавить переход: отмена транзакции, направленный от состояния Ожидание ввода ПИН-кода к состоянию Возврат карточки.
  • Добавить переход со сторожевым условием: [ПИН-код верный], направленный от состояния Проверка ПИН-кода к состоянию Ожидание выбора клиента.
  • Добавить переход со сторожевым условием: [ПИН-код неверный], направленный от состояния Проверка ПИН-кода к состоянию Ожидание ввода ПИН-кода.
  • Добавить переход: три неудачи с действием на переходе конфискация карточки, направленный от состояния Проверка ПИН-кода к состоянию Завершение транзакции. Для задания действия на данном переходе следует ввести текст конфискация карточки в поле ввода Action (Действие) на вкладке Detail (Подробно) окна спецификации свойств данного перехода (рис. 9.7).
    Окончательное построение диаграммы состояний модели банкомата
    Рис. 9.7.  Диалоговое окно спецификации свойств перехода три неудачи при задании действия на переходе
    Для продолжения построения диаграммы состояний следует выполнить следующие действия:
  • Добавить переход: выбор суммы со сторожевым условием: [сумма введена], направленный от состояния Ожидание выбора клиента к состоянию Обработка запроса на снятие наличных.
  • Добавить переход: выбор справки, направленный от состояния Ожидание выбора клиента к состоянию Обработка запроса на получение справки.
  • Добавить переход: отмена транзакции, направленный от состояния Ожидание выбора клиента к состоянию Возврат карточки.
  • Добавить переход со сторожевым условием: [кредит не превышен], направленный от состояния Обработка запроса на снятие наличных к состоянию Выдача наличных.
  • Добавить переход со сторожевым условием: [кредит превышен] с действием на переходе сообщение, направленный от состояния Обработка запроса на снятие наличных к состоянию Возврат карточки.
  • Добавить переход: наличные выданы со сторожевым условием: [выбрана печать чека], направленный от состояния Выдача наличных к состоянию Печать.
  • Добавить переход: наличные выданы со сторожевым условием: [печать чека не выбрана], направленный от состояния Выдача наличных к состоянию Возврат карточки.
  • Добавить переход: справка сформирована, направленный от состояния Обработка запроса на получение справки к состоянию Печать.
  • Добавить переход: печать закончена, направленный от состояния Печать к состоянию Возврат карточки.
  • Добавить переход: карточка возвращена, направленный от состояния Возврат карточки к состоянию Завершение транзакции.
  • Добавить переход: транзакция завершена, направленный от состояния Завершение транзакции к состоянию Ожидание карточки.
  • Добавить переход, направленный от состояния Ожидание карточки к финальному состоянию.


  • Диаграмма состояний для рассматриваемой модели банкомата будет иметь следующий вид (рис. 9.8).

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

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

    к рассмотрению диаграммы состояний, следует

    Переходя к рассмотрению диаграммы состояний, следует отметить, что в среде IBM Rational Rose 2003 этот тип диаграмм может относиться к отдельному классу, операции класса, варианту использования, пакету или представлению. Общие рекомендации по построению диаграммы состояний были рассмотрены в лекциях 9 и 10 курса «Основы объектно-ориентированного моделирования в нотации UML». Для того чтобы построить диаграмму состояний, ее вначале необходимо создать и активизировать.

    Начать построение диаграммы состояний для выбранного элемента модели или моделируемой системы в целом можно одним из следующих способов:

  • Щелкнуть на кнопке с изображением диаграммы состояний на стандартной панели инструментов, после чего следует выбрать представление и тип разрабатываемой диаграммы - новая диаграмма состояний.
  • Выделить логическое представление (Logical View) или представление вариантов использования (Use Case View) в браузере проекта и выполнить операцию контекстного меню: Newк рассмотрению диаграммы состояний, следует Statechart Diagram (Новаяк рассмотрению диаграммы состояний, следует Диаграмма состояний).
  • Раскрыть логическое представление (Logical View) в браузере проекта и выделить рассматриваемый класс, операцию класса, пакет, или раскрыть представление вариантов использования (Use Case View) и выбрать вариант использования, после чего выполнить операцию контекстного меню: Newк рассмотрению диаграммы состояний, следует Statechart Diagram (Новаяк рассмотрению диаграммы состояний, следует Диаграмма состояний).
  • Выполнить операцию главного меню: Browseк рассмотрению диаграммы состояний, следует State Machine Diagram (Обзорк рассмотрению диаграммы состояний, следует Диаграмма состояний), после чего следует выбрать представление и тип разрабатываемой диаграммы.


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

    Таблица 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Добавляет на диаграмму символ принятия решения для альтернативных переходов (по умолчанию отсутствует)
    По умолчанию на специальной панели инструментов могут отсутствовать кнопки с тремя последними графическими элементами из таблицы 9.1. При необходимости их можно добавить на специальную панель диаграммы состояний аналогично способу, рассмотренному ранее в лекции 3 (рис. 3.1). Продолжая разработку проекта по моделированию системы управления банкоматом, можно приступить к разработке новой диаграммы состояний. С этой целью для диаграммы состояний модели банкомата зададим имя Диаграмма состояний ATM, а в секцию ее документации введем текст «Диаграмма состояний описывает конечный автомат банкомата».

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

    Для добавления деятельности на диаграмму деятельности нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы деятельности на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение деятельности с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию, которое разработчику следует изменить. Добавить деятельность на диаграмму можно также с помощью операции главного меню: 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 (Подробно) диалогового окна спецификации свойств перехода.

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

    Для завершения построения диаграммы деятельности рассматриваемого примера следует описанным выше способом добавить оставшиеся деятельности и переходы. С этой целью следует выполнить следующие действия:
  • Добавить деятельности с именами: Ввести ПИН-код, Выбрать тип транзакции, Ввести сумму, Получить справку о состоянии счета, Получить наличные, Получить чек, Получить карточку и финальное состояние.
  • Добавить символы ветвления (решения), расположив их между деятельностями с именами: Ввести ПИН-код и Выбрать тип транзакции, Выбрать тип транзакции и Ввести сумму, Ввести сумму и Получить справку о состоянии счета, Получить наличные и Получить чек, Получить чек и Получить карточку. При этом последний символ решения будет использоваться в качестве символа соединения.
  • Добавить переход, направленный от деятельности Ввести ПИН-код к символу решения.
  • Добавить переход со сторожевым условием: [ПИН-код верный], направленный от символа решения к деятельности Выбрать тип транзакции. Для задания сторожевого условия данного перехода следует ввести текст ПИН-код верный в поле ввода Guard Condition (Сторожевое условие) на вкладке Detail (Подробно) окна спецификации свойств данного перехода (рис. 10.4). При этом текст сторожевого условия следует вводить без скобок.
    Окончательное построение диаграммы деятельности модели банкомата
    Рис. 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». Для того чтобы построить диаграмму деятельности, ее вначале необходимо создать и активизировать.

    Начать построение диаграммы деятельности для выбранного элемента модели или моделируемой системы в целом можно одним из следующих способов:

  • Щелкнуть на кнопке с изображением диаграммы состояний на стандартной панели инструментов, после чего следует выбрать представление и тип разрабатываемой диаграммы - диаграмма деятельности.
  • Выделить логическое представление (Logical View) или представление вариантов использования (Use Case View) в браузере проекта и выполнить операцию контекстного меню: Newв среде IBM Rational Rose Activity Diagram (Новаяв среде IBM Rational Rose Диаграмма деятельности).
  • Раскрыть логическое представление (Logical View) в браузере проекта и выделить рассматриваемый класс, операцию класса, пакет, или раскрыть представление вариантов использования (Use Case View) и выбрать вариант использования, после чего выполнить операцию контекстного меню: Newв среде IBM Rational Rose Activity Diagram (Новаяв среде IBM Rational Rose Диаграмма деятельности).
  • Выполнить операцию главного меню: Browseв среде IBM Rational Rose State Machine Diagram (Обзорв среде IBM Rational Rose Диаграмма состояний), после следует чего выбрать представление и тип разрабатываемой диаграммы - диаграмма деятельности.


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

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


    в среде IBM Rational Rose
    Selection ToolПревращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме


    в среде IBM Rational Rose
    Text BoxДобавляет на диаграмму текстовую область


    в среде IBM Rational Rose
    NoteДобавляет на диаграмму примечание


    в среде IBM Rational Rose
    Anchor Note to ItemДобавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы


    в среде IBM Rational Rose
    StateДобавляет на диаграмму состояние


    в среде IBM Rational Rose
    ActivityДобавляет на диаграмму деятельность


    в среде IBM Rational Rose
    Start StateДобавляет на диаграмму начальное состояние


    в среде IBM Rational Rose
    End StateДобавляет на диаграмму конечное состояние


    в среде IBM Rational Rose
    State TransitionДобавляет на диаграмму переход


    в среде IBM Rational Rose
    Transition to SelfДобавляет на диаграмму рефлексивный переход


    в среде IBM Rational Rose
    Horizontal SynchronizationДобавляет на диаграмму горизонтально расположенный символ синхронизации


    в среде IBM Rational Rose
    Vertical SynchronizationДобавляет на диаграмму вертикально расположенный символ синхронизации


    в среде IBM Rational Rose
    DecisionДобавляет на диаграмму символ принятия решения для альтернативных переходов


    в среде IBM Rational Rose
    SwimlaneДобавляет на диаграмму дорожку


    в среде IBM Rational Rose
    ObjectДобавляет на диаграмму объект (по умолчанию отсутствует)


    в среде IBM Rational Rose
    Object FlowДобавляет на диаграмму стрелку потока объектов (по умолчанию отсутствует)


    в среде IBM Rational Rose
    Business ActivityДобавляет на диаграмму бизнес-деятельность (по умолчанию отсутствует)


    в среде IBM Rational Rose
    Business TransactionДобавляет на диаграмму бизнес-транзакцию (по умолчанию отсутствует)
    <
    Как видно из этой таблицы, по умолчанию на панели инструментов отсутствуют некоторые графические элементы, а именно - кнопки с пиктограммами объекта и потока объектов. При необходимости их можно добавить на специальную панель диаграммы деятельности стандартным способом, который был описан ранее.

    Для разрабатываемого проекта системы управления банкоматом диаграмма деятельности описывает последовательность действий клиента при использовании банкомата. Для удобства можно включить эту диаграмму в логическое представление, для чего необходимо в браузере проекта выделить логическое представление (Logical View) и выполнить операцию контекстного меню: Newв среде IBM Rational Rose Activity Diagram (Новаяв среде IBM Rational Rose Диаграмма деятельности). Продолжая разработку проекта по моделированию системы управления банкоматом, можно приступить к разработке новой диаграммы деятельности. С этой целью для диаграммы деятельности модели банкомата зададим имя Диаграмма деятельности 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 можно выбрать стереотип <> из предлагаемого вложенного списка, поскольку применительно к разрабатываемой модели предполагается реализация этого компонента в форме исполнимого файла. При этом на вкладке Realizes (Реализует) содержатся все классы, включая и актеров, которые на данный момент присутствуют в модели (рис. 12.3). Следует заметить, что классы будут показаны в этом окне только при выбранном свойстве Show all classes (Показать все классы).
    Добавление компонента на диаграмму компонентов и редактирование его свойств
    Рис. 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 не имеет собственного окна спецификации свойств. Именно по этой причине специфицировать свойства данного отношения, такие как имя и стереотип, можно только с помощью текстовой области, что нельзя признать удобным с практической точки зрения.

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

    Для завершения построения диаграммы компонентов рассматриваемого примера следует описанным выше способом добавить оставшиеся компоненты и зависимости. С этой целью следует выполнить следующие действия:
  • Добавить компонент с именем: Устройства Банкомата, для которого задать стереотип Task Specification.
  • Добавить компоненты с именами: Устройство чтения карточки, Клавиатура Банкомата, Принтер Банкомата, Экран Банкомата, Устройство выдачи наличных, для которых задать стереотип Task Body.
  • Добавить зависимость от компонента с именем MainATM.exe к компоненту с именем Устройства Банкомата.
  • Добавить зависимость от компонента с именем Устройство чтения карточки к компоненту с именем Устройства Банкомата.
  • Добавить зависимость от компонента с именем Клавиатура Банкомата к компоненту с именем Устройства Банкомата.
  • Добавить зависимость от компонента с именем Принтер Банкомата к компоненту с именем Устройства Банкомата.
  • Добавить зависимость от компонента с именем Экран Банкомата к компоненту с именем Устройства Банкомата.
  • Добавить зависимость от компонента с именем Устройство выдачи наличных к компоненту с именем Устройства Банкомата.

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

    Диаграмма компонентов служит частью физического

    Диаграмма компонентов служит частью физического представления модели, играет важную роль в процессе ООАП и является необходимой для генерации программного кода. Общие рекомендации по построению диаграммы компонентов были рассмотрены в лекции 12 курса «Основы объектно-ориентированного моделирования в нотации UML». Для разработки диаграмм компонентов в браузере проекта предназначено отдельное представление компонентов (Component View), в котором уже содержится диаграмма компонентов с пустым содержанием и именем по умолчанию Main (Главная).

    Активизация диаграммы компонентов может быть выполнена одним из следующих способов:

  • Щелкнуть на кнопке с изображением диаграммы компонентов на стандартной панели инструментов.
  • Раскрыть представление компонентов в браузере (Component View) и дважды щелкнуть на пиктограмме Main (Главная).
  • Через пункт меню BrowseДиаграмма компонентов служит частью физического Component Diagram (БраузерДиаграмма компонентов служит частью физического Диаграмма компонентов).


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

    Таблица 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). При этом каждому из компонентов, как правило, соответствует отдельный файл исходной сборки программного приложения.

    Таблица 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:

  • Preemptive (С приоритетом) - определяет процедуру планирования, при которой процесс с большим приоритетом будет иметь преимущество при использовании ресурсов процессора по сравнению с менее приоритетными процессами.
  • Non preemptive (Без приоритета) - определяет процедуру планирования, при которой все приоритеты процессов игнорируются. При этом текущий процесс выполняется до своего завершения, после чего может быть начато выполнение следующего процесса.
  • Cyclic (Циклический) - определяет процедуру планирования, при которой приоритеты процессов также игнорируются. Все процессы выполняются циклически по кругу, при этом каждому из них выделяется фиксированное время на выполнение, по прошествии которого управление передается следующему процессу.
  • Executive (Исполнительный) - определяет процедуру планирования, для которой существует некоторый алгоритм, предназначенный для управления отдельными процессами.
  • Manual (Вручную) - определяет процедуру планирования, при которой планирование выполнения процессов осуществляется пользователем.


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

    Для завершения построения диаграммы развертывания рассматриваемого примера следует описанным выше способом добавить оставшиеся узлы и соединения. С этой целью следует выполнить следующие действия:
  • Добавить процессор с именем: Банкомат №2, для которого задать помеченное значение в форме примечания: {адрес = ул. Парковая, д.7}, а на вкладке свойств Detail определить новый процесс и выбрать для него имя MainATM из вложенного списка.
  • Добавить процессор с именем: Банкомат №3, для которого задать помеченное значение в форме примечания: {адрес = ул. Лесная, д.9}, а на вкладке свойств Detail определить новый процесс и выбрать для него имя MainATM из вложенного списка.
  • Добавить процессор с именем: Сервер Банка, для которого на вкладке свойств Detail определить новый процесс с именем MainBank.
  • Добавить соединение для узлов с именами Банкомат №2 и Сеть.
  • Добавить соединение для узлов с именами Банкомат №3 и Сеть.
  • Добавить соединение для узлов с именами Сервер Банка и Сеть.

  • Построенная таким образом диаграмма развертывания будет иметь следующий вид (рис. 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 View) в браузере проекта.
  • Выполнить операцию главного меню: BrowseДиаграмма развертывания является второй составной Deployment Diagram (ОбзорДиаграмма развертывания является второй составной Диаграмма развертывания).


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

    Таблица 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 для документирования и реализации соответствующих моделей.

    

        Инновации: Менеджмент - Моделирование - Софт