Uploaded by evtihov60

Lab

advertisement
Методические указания к выполнению
лабораторных работ по построению
UML диаграмм с помощью программы
Rational Rose
Общие сведения
Целью лабораторных работ является обучение студентов построению UML диаграмм.
В результате выполнения лабораторных работ студенты приобретают практические
навыки построения UML диаграмм с помощью графической компьютерной программы
Rational Rose, поддерживающей язык UML.
Когда вы рассматриваете рисунок, изображающий сложную систему, то зачастую,
понимаете его смысл без каких либо словесных пояснений. Так происходит потому, что
наш мозг в высшей степени эффективно выполняет функции восприятия, обработки и
понимания смысла зрительной (образной) информации. Не случайно русская пословица
гласит “Лучше один раз увидеть, чем сто раз услышать”. По этой причине в последние
годы одним из наиболее продуктивных направлений в проектировании компьютерных
систем стало использование их наглядных схем, рисуемых на бумаге и экранах
компьютеров. Визуальный подход к проектированию особенно отчетливо проявился в
Унифицированном Языке Моделирования (Unified Modeling Language, UML),
предназначенном для анализа и проектирования автоматизированных информационных
систем (АИС), баз данных, компьютерных программ и иных сложных систем.
Сдавая лабораторную работу преподавателю, студенты должны знать, что система
является сложной, если ее разработчики (или исследователи) для составления некоторого
цельного представления о ней рассматривают систему не с одной, а с многих различных
точек зрения. Например, при проектировании конкретной АИС разработчики
рассматривают ее с точек зрения объектов и отношений между ними, бизнес и иных
процессов, а также с других точек зрения. Еще один пример сложных систем –
компьютерные программы. Они рассматриваются программистами с позиций глобальных и
локальных переменных, однозначно идентифицированных имен переменных, инкапсуляции
частей программных кодов и с многих других точек зрения.
Язык UML является ярким примером продуктивного использования в компьютерной
практике наглядных схем, отображающих различные взгляды разработчиков на сложные
системы. Его наглядные диаграммы широко применяются системными аналитиками и
программистами, проектирующими АИС, базы данных и компьютерные программы. UML
диаграммы и, дополняющие их спецификации, обычно помещаются в проектную
документацию АИС и компьютерных программ. Для изображения UML диаграмм на
экранах компьютеров используются графические программы, поддерживающие язык UML.
Одной из таких программ является Rational Rose.
В лабораторных работах в качестве примера практического применения UML диаграмм
используется Автоматизированная информационная система (АИС) регистрации учебных
курсов.
С точки зрения понятий языка UML, преподаватели, студенты, сотрудники учебной
части ВУЗа и работники бухгалтерии, выполняющие финансовые расчеты со студентами
и преподавателями, являются “актерами” АИС регистрации учебных курсов. Все актеры
АИС находятся на ее внешней границе.
При проектировании АИС, подобных регистрации учебных курсов, обычно, сначала
используется схема, отображающая пять “взглядов” на АИС (Рис 1).
2
РИС. 1
Первый взгляд на АИС показан на рисунке в виде Схемы прецедентов. Ее, иногда,
называют, на английский манер, Схемой Use case. Она описывает внешнюю границу АИС и
актеров, которые через эту границу взаимодействуют с АИС. К схеме прецедентов, как
правило, прилагаются спецификации, в которых подробнейшим образом, скрупулезно, до
малейших деталей описываются взаимодействия актеров с экранами компьютеров,
которые расположены на внешней границе АИС. Эти подробные спецификации
интерфейсов актеров позволяют разработчикам АИС грамотно составлять техническое
задание на проектирование программного обеспечения АИС и избежать ошибок при его
проектировании.
Второй взгляд на АИС обозначен на Рис.1 вверху слева. Его отображением на бумаге или
экране компьютера являются построенные с помощью UML диаграмм логические
(концептуальные) схемы баз данных АИС и UML диаграммы, изображающие структуры и
содержание компьютерных программ АИС.
Третий взгляд отображается на бумаге в виде UML диаграмм процессов, происходящих в
АИС. Четвертый – изображает в виде UML диаграмм физическую реализацию АИС
(компьютеры, принтеры и другие, связанные между собой технические средства).
Пятый взгляд представляется в виде описания схемы поставки технических средств
АИС и используемых в ней покупных компьютерных программ. В схеме поставки приводится
обоснование выбора поставщиков технических средств и компьютерных программ АИС и
дается оценка финансовых затрат на их приобретение.
Схема пяти взглядов может быть с успехом использована студентами при выполнении
ими курсовых работ и дипломных проектов.
3
Краткое описание лабораторных работ
Вводное лабораторное занятие поможет студентам сориентироваться в среде Rational
Rose, познакомиться с интерфейсом данного программного продукта.
На первом лабораторном занятии студенты с помощью программы Rational Rose
строят UML диаграмму прецедентов, описывающую внешнюю границу АИС регистрации
учебных курсов ВУЗа.
Второе и третье занятия посвящены построению фрагментов логической схемы базы
данных АИС регистрации учебных курсов. На втором занятии студенты построят
простой фрагмент базы данных АИС, а на третьем – более сложный.
На четвертом лабораторном занятии студенты должны построить диаграмму одного
из процессов АИС регистрации учебных курсов ВУЗа.
На пятом лабораторном занятии они построят UML диаграмму, описывающую
структуру и содержание компьютерной программы, которая предназначена для рисования
на экранах компьютеров простых фигур и отношений между ними.
На шестом лабораторном занятии студенты познакомятся с простейшим примером
генерации программного кода, используя диаграмму, построенную на пятом лабораторном
занятии.
4
UML диаграммы в Rational Rose
Rational Rose - мощное CASE-средство для проектирования программных систем
любой сложности. Одним из достоинств этого программного продукта будет возможность
использования диаграмм на языке UML. Можно сказать, что Rational Rose является
графическим редактором UML диаграмм.
В распоряжение проектировщика системы Rational Rose предоставляет следующие
типы диаграмм, последовательное создание которых позволяет получить полное
представление о всей проектируемой системе и об отдельных ее компонентах :









Use case diagram (диаграммы прецедентов);
Deployment diagram (диаграммы топологии);
Statechart diagram (диаграммы состояний);
Activity diagram (диаграммы активности);
Interaction diagram (диаграммы взаимодействия);
Sequence diagram (диаграммы последовательностей действий);
Collaboration diagram (диаграммы сотрудничества);
Class diagram (диаграммы классов);
Component diagram (диаграммы компонент).
Use case diagram (диаграммы прецедентов)
Этот вид диаграмм позволяет создать
список операций, которые выполняет система.
Часто этот вид диаграмм называют диаграммой
функций, потому что на основе набора таких
диаграмм создается список требований к
системе
и
определяется
множество
выполняемых системой функций.
Каждая такая диаграмма или, как ее
обычно называют, каждый Use case – это описание сценария поведения, которому следуют
действующие лица (Actors).
Данный тип диаграмм используется при описании бизнес процессов
автоматизируемой предметной области, определении требований к будущей программной
системе. Отражает объекты как системы, так и предметной области и задачи, ими
выполняемые.
5
Deployment diagram (диаграммы топологии)
Этот вид диаграмм предназначен для анализа
аппаратной части системы, то есть «железа», а не
программ. В прямом переводе с английского
Deployment означает «развертывание», но термин
«топология» точнее отражает сущность этого типа
диаграмм.
Для каждой модели создается только одна
такая диаграмма, отображающая процессоры
(Processor), устройства (Device) и их соединения.
Обычно этот тип диаграмм используется в самом начале проектирования системы
для анализа аппаратных средств, на которых она будет эксплуатироваться.
State Maсhine diagram (диаграммы состояний)
Каждый объект системы,
обладающий
определенным
поведением, может находится в
определенных
состояниях,
переходить
из
состояния
в
состояние, совершая определенные
действия в процессе реализации
сценария поведения объекта. Поведение большинства объектов реальных систем можно
представить с точки зрения теории конечных автоматов, то есть поведение объекта
отражается в его состояниях, и данный тип диаграмм позволяет отразить это графически.
Для этого используется два вида диаграмм: Statechart diagram (дмаграмма состояний) и
Activity diagram (диаграмма активности)
Statechart diagram (диаграмма состояний)
Диаграмма состояний (Statechart) предназначена для отображения состояний объектов
системы, имеющих сложную модель поведения. Это одна из двух диаграмм State Machine,
доступ к которой осуществляется из одного пункта меню.
6
Activity diagram (диаграммы активности)
Это дальнейшее развитие
диаграммы состояний. Фактически
данный тип диаграмм может
использоваться и для отражения
состояний моделируемого объекта,
однако,
основное
назначение
Activity diagram в том, чтобы
отражать бизнес-процессы объекта.
Этот тип диаграмм позволяет
показать
не
только
последовательность процессов, но и ветвление и даже синхронизацию процессов.
Этот тип диаграмм позволяет проектировать алгоритмы поведения объектов любой
сложности, в том числе может использоваться для составления блок-схем.
Interaction diagram (диаграммы взаимодействия)
Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы
последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти
диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в
создаваемой системе.
Sequence diagram (диаграммы последовательностей действий)
Взаимодействие объектов в системе
происходит посредством приема и передачи
сообщений объектами-клиентами и обработки
этих сообщений объектами-серверами. При
этом в разных ситуациях одни и те же объекты
могут выступать и в качестве клиентов, и в
качестве серверов.
Данный тип диаграмм позволяет отразить
последовательность передачи сообщений между
объектами.
Этот тип диаграммы не акцентирует внимание
на конкретном взаимодействии, главный акцент уделяется последовательности
приема/передачи сообщений. Для того чтобы окинуть взглядом все взаимосвязи объектов,
служит Collaboration diagram.
7
Collaboration diagram (диаграммы сотрудничества)
Этот тип диаграмм позволяет
описать
взаимодействия
объектов,
абстрагируясь
от
последовательности
передачи сообщений. На этом типе
диаграмм в компактном виде отражаются
все
принимаемые
и
передаваемые
сообщения конкретного объекта и типы этих сообщений.
По причине того, что диаграммы Sequence и Collaboration являются разными
взглядами на одни и те же процессы, Rational Rose позволяет создавать из Sequence
диаграммы диаграмму Collaboration и наоборот, а также производит автоматическую
синхронизацию этих диаграмм.
Class diagram (диаграммы классов)
Этот тип диаграмм позволяет создавать
логическое представление системы, на основе
которого создается исходный код описанных
классов.
Значки диаграммы позволяют отображать
сложную иерархию систем, взаимосвязи классов
(Classes) и интерфейсов (Interfaces). Данный тип
диаграмм противоположен по содержанию
диаграмме
Collaboration,
на
которомотображаются объекты системы. Rational
Rose позволяет создавать классы при помощи
данного типа диаграмм в различных нотациях. В нотации, предложенной Г. Бучем, которая
так и называется Booch, классы изображаются в виде чего-то нечеткого, похожего на облако.
Таким образом Г.Буч пытается показать, что класс – это лишь шаблон, по которому в
дальнейшем
будет создан конкретный объект.
Нотация OMT, более строга.
И конечно же, Rational Rose позволяет создавать диаграмму классов в унифицированной
нотации.
8
Component diagram (диаграммы компонентов)
Этот
тип
диаграмм
предназначен для распределения
классов
и
объектов
по
компонентам
при
физическом
проектировании системы. Часто
данный тип диаграмм называют
диаграммами модулей.
При проектировании больших систем может оказаться, что система должна быть
разложена на несколько сотен или даже тысяч компонентов, и этот тип диаграмм позволяет
не потеряться в обилии модулей и их связей.
9
Интерфейс Rational Rose
В IBM Rational Rose реализованы общепринятые стандарты на рабочий интерфейс
программы, аналогично известным средам визуального программирования. После установки
IBM Rational Rose на компьютер пользователя, запуск этого средства в среде MS Windows
2000/XP (без выбора готовых шаблонов проектов) приводит к появлению на экране
соответствующего рабочего интерфейса - автоматически создается новый проект и в рабочем
окне диаграммы появляется по умолчанию окно диаграммы классов. (Рис. 1.1).
Рис. 1.1 Общий вид рабочего интерфейса IBM Rational Rose
Рассмотрим назначение и основные функции каждого из этих
элементов.
Главное
меню
Главное меню и стандартная панель инструментов
Главное меню программы IBM Rational Rose вы полнено в общепринятом стандарте и имеет
Стандартная панель инструментов
следующий вид (рис. 1.2).
Рабочая область изображения диаграммы
Окно
Рис. 1.2 Внешний вид главного меню программы
документации,ко
Окно браузера проекта
Отдельныемментариев
пункты меню объединяют сходные операции, относящиеся ко всему проекту в
целом. Некоторые из пунктов меню содержат хорошо знакомые операции, такие как открытие
Специальная панель инструментов
проекта, вывод на печать диаграмм, копирование в буфер и вставка из буфера различных
элементов диаграмм. Другие операции настолько специфичны, что могут потребоваться
дополнительные усилия для их изучения (свойства операций генерации программного кода или
проверки согласованности моделей).
Окно журнала
Стандартная панель инструментов располагается ниже строки главного меню и имеет
следующий вид (рис. 1.3). Некоторые из инструментов недоступны для нового проекта,
который не имеет никаких элементов. Стандартная панель инструментов обеспечивает
быстрый доступ к тем командам меню, которые выполняются разработчиками наиболее часто.
Рис. 1.3 Внешний вид стандартной панели инструментов
Пользователь может настроить внешний вид этой панели по своему усмотрению. Для этого
необходимо выполнить операцию главного меню: Tools Options (Инструменты Параметры),
открыть вкладку Toolbars (Панели инструментов) появившегося диалогового окна и нажать
кнопку Standard (Стандартная) . В дополнительно открытом окне можно переносить
требуемые кнопки из левого списка в правый список, а ненужные кнопки - из правого списка в
левый. Данным способом можно показать или скрыть различные кнопки инструментов, а также
изменить их размер. Назначение отдельных кнопок стандартной панели инструментов
приводится далее при рассмотрении операций главного меню.
Назначение операций главного меню File и Edit
10
Операции главного меню File (Файл) позволяют создавать новые модели в нотации языка UML,
загружать и сохранять разрабатываемую модель во внешнем файле, распечатывать на принтере
разработанные диаграммы.
Операции главного меню Edit (Редактирование) позволяют выполнять действия по
редактированию элементов модели и их свойств, а также выполнять поиск элементов в рамках
разрабатываемого проекта.
Назначение операций главного меню View, Format и Browse
Операции главного меню View (Вид) позволяют отображать на экране различные элементы
рабочего интерфейса и изменять графическое представление диаграмм. Назначение операций
этого пункта главного меню представлено в следующей таблице (табл. 1.1).
Название
операции меню
Toolbars
Таблица 1.1. Операции пункта главного меню View (Вид)
Наличие кнопки на
Назначение операции главного меню
стандартной панели
Позволяет настроить внешний вид рабочего интерфейса
системы IBM Rational Rose и содержит дополнительные
подпункты:
Standard - делает видимой/невидимой стандартную панель
инструментов (рис. 1.3)
Toolbox - делает видимой/невидимой стандартную панель
инструментов текущей активной диаграммы
Status Bar
Documentation
Configure - вызывает диалоговое окно настройки параметров
модели, открытое на вкладке настройки панелей инструментов
Делает видимой/невидимой строку состояния
Делает видимым/невидимым окно документации
Zoom In
Делает видимым/невидимым браузер проекта
Делает видимым/невидимым окно журнала
Делает видимым/невидимым встроенный текстовый редактор
Включает/выключает режим отображения времени в записях
журнала
Изменяет масштаб изображения выделенных элементов
модели , так чтобы они разместились в одном окне
Увеличивает масштаб изображения
Zoom Out
Уменьшает масштаб изображения
Fit in Window
Изменяет (уменьшает) масштаб изображения всех элементов
текущей диаграммы, так чтобы все они разместились в одном
окне
Отменяет изменение масштаба изображения размещения
элементов в одном окне
Browser
Log
Editor
Time Stamp
Zoom to Selection
Undo Fit in Window
Page Breaks
Refresh
Разбивает текущую диаграмму на страницы для последующей
печати
Перерисовывает текущую диаграмму
11
Название
операции меню
As Booch
As OMT
As Unified
Наличие кнопки на
стандартной панели
Назначение операции главного меню
Изображает элементы модели в соответствии с нотацией Г.
Буча
Изображает элементы модели в соответствии с нотацией OMT
Изображает элементы модели в соответствии с нотацией языка
UML
Операции главного меню Format (Формат) позволяют выполнять действия по изменению
внешнего вида элементов модели на различных диаграммах. Назначение операций этого пункта
главного меню представлено в следующей таблице (табл. 1.2).
Таблица 1.2. Операции пункта главного меню 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
12
Таблица 1.2. Операции пункта главного меню Format (Формат)
Название
операции меню
Line Style
Назначение операции главного меню
Позволяет выбрать способ графического изображения линий взаимосвязей и содержит
дополнительные подпункты:
Rectilinear - линия изображается в форме вертикальных и горизонтальных отрезков;
Oblique - линия изображается в форме наклонных отрезков;
Layout Diagram
Autosize All
Layout Selected
Shapes
Toggle - промежуточный вариант изображения линии
Позволяет автоматически разместить графические элементы в окне диаграммы с
минимальным количеством пересечений и наложений соединительных линий
Позволяет автоматически изменить размеры графических элементов текущей диаграммы
таким образом, чтобы текстовая информация помещалась внутри изображений
соответствующих элементов
Позволяет автоматически разместить выделенные графические элементы в окне
диаграммы с минимальным количеством пересечений и наложений соеденительных
линий
Операции главного меню Browse (Обзор) позволяют отображать рабочие окна с различными
каноническими диаграммами разрабатываемой модели и вызывать диалоговые окна
редактирования свойств отдельных элементов модели. Назначение операций этого пункта
главного меню представлено в следующей таблице (табл. 1.3).
Таблица 1.3. Операции пункта главного меню Browse (Обзор)
Название
Наличие кнопки на
Назначение операции главного меню
операции меню стандартной панели
Use Case
Вызывает диалоговое окно с предложением выбрать для отображения
Diagram
в рабочем окне одну из существующих диаграмм вариантов
использования модели или приступить к разработке новой
диаграммы
Class Diagram
Вызывает диалоговое окно с предложением выбрать для отображения
в рабочем окне одну из существующих диаграмм классов модели или
приступить к разработке новой диаграммы
Component
Вызывает диалоговое
окно с предложением
Diagram
выбрать для
отображения в
рабочем окне одну из
существующих
диаграмм
компонентов модели
или приступить к
разработке новой
диаграммы
Deployment
Позволяет отобразить в рабочем окне диаграмму развертывания
Diagram
разрабатываемой модели
Interaction
Diagram
Вызывает диалоговое окно с предложением выбрать для отображения
в рабочем окне одну из существующих диаграмм кооперации или
последовательности, а также приступить к разработке новой
диаграммы взаимодействия
13
Вызывает диалоговое окно с предложением выбрать для отображения
в рабочем окне одну из существующих диаграмм состояний модели
или приступить к разработке новой диаграммы
Отображает в рабочем окне первую из диаграмм выделенного пакета
модели
Отображает в рабочем окне родителя выделенной диаграммы модели
State Machine
Diagram
Expand
Parent
Вызывает диалоговое окно свойств выделенного элемента модели
Отображает в рабочем окне диаграмму самого верхнего уровня для
текущей диаграммы модели
Отображает в рабочем окне диаграмму классов, содержащую класс
для выделенного объекта модели
Отображает в рабочем окне предыдущую диаграмму модели
Specification
Top Level
Referenced Item
Previous Diagram
Позволяет создать диаграмму трассировки сообщений
Create Message
Trace Diagram
Назначение кнопок специальной панели инструментов
Специальная панель инструментов содержит кнопки с изображением графических примитивов,
необходимых для разработки различных диаграмм проекта, например, диаграммы классов
(табл. 1.4). Назначение отдельных кнопок панели можно узнать также из всплывающих
подсказок.
Таблица 1.4. Назначение кнопок специальной панели инструментов
(на примере работы с диаграммой классов)
Графическое
Всплывающая
Назначение кнопки
изображение
подсказка
Selection Tool
Превращает изображение курсора в форму стрелки для
последующего выделения элементов на диаграмме
Text Box
Добавляет на диаграмму текстовую область
Note
Добавляет на диаграмму примечание
Anchor Note to Item
Class
Добавляет на диаграмму связь примечания с соответствующим
графическим элементом диаграммы
Добавляет на диаграмму класс
Interface
Добавляет на диаграмму интерфейс
Unidirectional
Association
Association Class
Добавляет на диаграмму направленную ассоциацию
Package
Добавляет на диаграмму пакет
Dependency or
Instantiates
Generalization
Добавляет на диаграмму отношение зависимости
Realize
Добавляет на диаграмму отношение реализации
Добавляет на диаграмму ассоциацию класс
Добавляет на диаграмму отношение обобщения
14
На специальной панели инструментов по умолчанию присутствует только часть
пиктограмм элементов, которые могут быть использованы для построения диаграммы классов.
Добавить кнопки с пиктограммами других графических элементов.
Соответствующее диалоговое окно настройки специальной панели инструментов для
диаграммы классов можно вызвать аналогично другим панелям с помощью операции
контекстного меню Customize (Настройка) при позиционировании курсора на специальной
панели инструментов.
15
Построение с помощью программы Rational Rose UML диаграмм прецедентов на
примере главной диаграммы прецедентов АИС регистрации учебных курсов
Общие понятия
Диаграмма прецедентов позволяет создать список операций, которые выполняет
система. Часто этот вид диаграмм называют диаграммой функций, потому что на основе
набора таких диаграмм создается список требований к системе и определяется множество
выполняемых системой функций.
Каждая такая диаграмма или, как ее обычно называют, каждый Use case – это
описание сценария поведения, которому следуют действующие лица (Actors).
Данный тип диаграмм используется при описании бизнес процессов
автоматизируемой предметной области, определении требований к будущей программной
системе. Отражает объекты как системы, так и предметной области и задачи, ими
выполняемые.
Общее описание модели
Сценарий проекта таков: Сначала каждый преподаватель (профессор) университета
заполняет специальную форму, в которой указывает, какие учебные курсы он намерен вести
в следующем семестре. Данные из формы помещаются в университетский компьютер
работником регистратуры.
После этого из полученных данных формируется каталог курсов, который раздается
студентам. Студенты выбирают из каталога те курсы, на которых они собираются учиться, и
подают заявки на обучение в регистратуру. Все эти данные также попадают в компьютер, где
происходит их обработка и формирование списков курсов и студентов. В задачи создаваемой
системы входит, в частности, такое комплектование учебных курсов, чтобы каждый курс
посещало бы от трех до десяти студентов. Если на какой-то курс не набирается трех
студентов, он отменяется.
После формирования курсов преподаватели получают списки студентов, которых им
предстоит обучать, а каждый студент получает подтверждение о зачислении на курс и счет
на оплату.
Первое, что требуется при построении модели, — определить действующие лица
системы и сценарии поведения.
Действующих лиц в создаваемой системе четыре:
1. преподаватель,
2. студент,
3. регистратор,
4. биллинговая программа – система оплаты.
Первые три выбраны действующими лицами, поскольку они активно
взаимодействуют с создаваемой системой. Биллинговая же программа чаще всего является
отдельным программным продуктом, а в нашем случае она получает информацию для своей
работы от создаваемой курсовой системы, поэтому может считаться самостоятельным
действующим лицом.
Элементы диаграммы
16
При построении диаграммы прецедентов будем использовать пиктограммы типа
"прецеденты" и "актеры". Помним , что термин "прецедент" это не очень удачный перевод на
русский язык английского выражения use case (Computer Aided Software Engineering).
Прецедент - это описание множества последовательных событий, выполняемых
компьютерной системой, которые приводят к наблюдаемому актером результату.
Графически прецедент изображается в виде ограниченного непрерывной линией эллипса,
обычно содержащего только имя прецедента.
Актер – это кто-то (или что-то) внешний по отношению к компьютерной системе, кто
взаимодействует с ней. Графически актер изображается в виде пиктограммы,
представляющей человека, поскольку актер это человек или группа людей, использующих
данные, предоставляемые компьютерной системой.
Построение диаграммы
Теперь перенесем все это на диаграмму. Для этого нужно создать пустой проект,
переключиться на папку Use Case View – для работы с диаграммами прецедентов (Use case)
и открыть контекстное меню нажатием правой кнопки мыши. Если теперь выбрать пункт
New•Actor (рис. 2.1), то вы получите действующее лицо;
Рис. 2.1 Создание действующего лица
Теперь создадим всех действующих лиц (рис.2.2), рассмотренных в п. «Общее описание
модели».
17
Рис. 2.2 Вид окна браузера проекта после создания всех действующих лиц («Актеров»)
Теперь выделим сценарии использования для нашего примера. Каждый из них описывает
некоторое требование к функциям системы:

Выбор курсов для преподавателя

Запрос расписания курсов

Регистрация на курсы

Создание каталогов ресурсов

Хранение информации о курсах

Хранение информации о преподавателях

Хранение информации о студентах
Если выбрать New•Use Case, то будет создан сценарий поведения. (Рис.2.3)
Рис. 2.3 Создание сценария
поведения
Теперь создадим все
поведения (рис.2.4)
описанные выше сценарии
18
Рис. 2.4 Вид окна браузера проекта после создания всех сценариев поведения
(«Прецедентов»)
Все введенные нами действующие лица и сценарии поведения немедленно
появляются в окне браузера, откуда вы можете перетаскивать их мышью на диаграммы.
Далее, как правило, строится диаграмма сценариев поведения - прецедентов. Для
этого двойным щелчком на пиктограмме Main из папки Use Case View открывается главная
диаграмма сценариев.
В нее из окна браузера перетаскиваются все действующие лица и сценарии поведения,
которые были созданы в рамках модели. (Рис.2.5)
Рис. 2.5 Диаграмма сценариев поведения (пока без связей)
19
После размещения эти компоненты нужно связать между собой, чтобы отобразить
взаимосвязи. В нашей модели наилучшим образом подойдут связи типа «однонаправленная
ассоциация» (Unidirectional Association).
Ассоциация – это структурное двунаправленное отношение, описывающее
совокупность взаимоотношений между объектами. По сути дела ассоциация является
сверткой бинарных отношений между объектами. Эту свертку может мысленно выполнить в
своем сознании специалист (например, программист), который видит пиктограмму
ассоциации на UML диаграмме.
Для реализации связей применяется метод перетаскивания. Сначала в палитре
выбирается тип связи «однонаправленная ассоциация» (Uniderectional Association)
, после
чего нужно протянуть линию между действующим лицом и сценарием поведения. В
результате на диаграмме возникнет стрелка. Аналогичным образом поступают со всеми
компонентами диаграммы. Готовая диаграмма показана на Рис. 3.1.
Для создания границы («интерфейса») между актерами и прецендентами можно
воспользовавшись пунктом меню «Tools/Create/Note Anchor» или выбрать среди пиктограмм
инструмент «Anchor Note to Item». Выбрав инструмент необходимо щелкнуть один раз на
середине одной из стрелок отношения далее во всех углах интерфейса и завершить границу в
месте начала ее рисования. Если прямоугольник получился не очень ровый то это можно
исправить выбрав в меню «Format/Line Style/Rectilinear»
Рис. 3.1 Главная диаграмма прецедентов системы регистрации учебных курсов
Университета
20
Поток событий
Внешняя граница системы
регистрации учебных курсов
В среде Rational Rose так же легко создаются и диаграммы других видов,
необходимые для генерации исходных текстов на выбранном языке программирования. И
для каждого объекта диаграммы существует масса тонких настроек.
21
Диаграмма классов
Диаграмма классов является основным логическим представлением разрабатываемой
модели и содержит детальную информацию о внутреннем устройстве объектноориентированной программной системы или, используя современную терминологию, об
архитектуре программной системы. Активизировать рабочее окно диаграммы классов можно
несколькими способами:
1. окно диаграммы классов появляется по умолчанию в рабочем окне диаграммы после
создания нового проекта (Рис.1.1);
2. щелкнуть на кнопке с изображением диаграммы классов на стандартной панели
инструментов;
3. раскрыть логическое представление (Logical View) в браузере проекта и дважды
щелкнуть на пиктограмме Main (Главная);
4. выполнить операцию главного меню: Browse Class Diagram (Обзор Диаграмма
классов).
Рис. 1.1 Рабочее окно диаграммы классов
При этом появляется новое окно с чистым рабочим листом диаграммы классов и
специальная панель инструментов, содержащая кнопки с изображением графических
примитивов, необходимых для разработки диаграммы классов (Табл. 1.1).
Назначение отдельных кнопок панели можно узнать также из всплывающих подсказок.
22
Таблица 1.1 Назначение кнопок специальной панели инструментов для диаграммы классов
Графическое
изображение
Всплывающая
подсказка
Назначение кнопки
Selection Tool
Превращает изображение курсора в форму стрелки для
последующего выделения элементов на диаграмме
Text Box
Добавляет на диаграмму текстовую область
Note
Добавляет на диаграмму примечание
Anchor Note to Item
Добавляет на диаграмму связь примечания с
соответствующим графическим элементом диаграммы
Class
Добавляет на диаграмму класс
Interface
Добавляет на диаграмму интерфейс
Unidirectional
Association
Добавляет на диаграмму направленную ассоциацию
Association Class
Добавляет на диаграмму ассоциацию класс
Package
Добавляет на диаграмму пакет
Dependency or
Instantiates
Добавляет на диаграмму отношение зависимости
Generalization
Добавляет на диаграмму отношение обобщения
Realize
Добавляет на диаграмму отношение реализации
На специальной панели инструментов по умолчанию присутствует только часть
пиктограмм элементов, которые могут быть использованы для построения диаграммы
классов. Добавить кнопки с пиктограммами других графических элементов или удалить
ненужные кнопки можно с помощью настройки специальной панели инструментов.
Соответствующее диалоговое окно настройки специальной панели инструментов для
диаграммы классов можно вызвать аналогично другим панелям с помощью операции
контекстного меню Customize (Настройка) при позиционировании курсора на специальной
панели инструментов.
Для добавления класса на диаграмму классов нужно с помощью левой кнопки мыши
нажать кнопку с изображением пиктограммы класса на специальной панели инструментов,
отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте
рабочего листа диаграммы. На диаграмме появится изображение класса с маркерами
изменения его геометрических размеров и предложенным средой именем по умолчанию
NewClass. Или создать класс через пункт всплывающего меню New->Class (Рис.1.2), а потом
“перетащить” созданный класс из окна браузера проекта в область окна диаграммы классов
(Рис. 1.4).
23
Рис. 1.2 Создание нового класса
В нашем случае (АИС регистрации учебных курсов) нужно создать 4 класса (Рис.1.3):

Пользователь;

Преподаватель;

Студент;

Учебный курс (из объектов университета).
Рис. 1.3 Браузер проектов – отображает все зозданные классы
“Перетащим” мышкой только что созданные классы из окна браузера проекта в
область окна диаграммы классов (рис. 1.4.)
24
Рис. 1.4 Окно диаграммы классов – отображает все созданные классы
Из всех графических элементов среды IBM Rational Rose класс обладает
максимальным набором свойств, главными из которых являются его атрибуты и операции.
Кстати, именно диаграмма классов используется в среде IBM Rational Rose для генерации
программного кода, но об этом будет рассказано на другом лабораторном занятии.
На этом лабораторном занятии мы рассмотрим только создание и редактирование
атрибутов классов, операции же будут подробно описаны в лабораторной работе №3.
Давайте добавим аттрибуты для класса “Пользователь”:
 Имя;
 Ид.номер.
Добавить атрибут к созданному ранее классу можно одним из следующих способов:
 С помощью операции контекстного меню New Attribute (Новый атрибут) для класса,
выделенного на диаграмме классов. В этом случае активизируется курсор ввода
текста в области графического изображения класса на диаграмме (Рис. 1.5).
 С помощью операции контекстного меню: New Attribute (Новый Атрибут) для
класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода
текста в области иерархического представления класса в браузере проекта под именем
соответствующего класса.
 С помощью операции контекстного меню Insert (Вставить), вызванного при
позиционировании курсора в области открытой вкладки атрибутов в диалоговом
окне свойств Class Specification соответствующего класса (Операция контекстного
25
меню OpenSpecification или двойной «щелчок» мышью на изображении класса) (Рис.
1.6).
Рис. 1.5 Окно диаграммы классов – добавляем атрибут к классу
Рис. 1.6 Диалоговое окно свойств класса – нужно перейти к вкладке Attributes
26
Рис. 1.7 Класс “Пользователь”
После добавления атрибута к классу по умолчанию ему присваивается имя name и
некоторый квантор видимости (Рис. 1.7). Нужно запомнить, что имена атрибутов и
операций классов должны начинаться со строчной буквы.
Видимость атрибутов на диаграмме классов изображается в форме специальных
пиктограмм или украшений. Используемые пиктограммы видимости изображаются перед
именем соответствующего атрибута и имеют следующий смысл (Табл. 2.1).
Таблица 2.1 Пиктограммы видимости атрибутов классов
Графическое
изображение
Текстовый аналог
Назначение пиктограммы
Public
Общедоступный или открытый. В нотации языка UML
такому атрибуту соответствует знак «+»
Protected
Защищенный. В нотации языка UML такому атрибуту
соответствует знак «#»
Private
Закрытый. В нотации языка UML такому атрибуту
соответствует знак «-»
Implementation
Реализация. В нотации языка UML такому атрибуту
соответствует знак «∼»
Теперь добавим атрибуты всем классам, изображенным в окне диаграммы классов (Рис.1.8).
27
Рис. 1.8 Окно диаграммы классов – отображает все созданные классы и их атрибуты
Следующий этап – это установление взаимосвязей между классами нашей диаграммы.
(Вспоминаем Лабораторную работу №1).
В этой лабораторной работе мы будем использовать два типа отношений
(взаимосвязей):
 ассоциацию;
 обобщение.
Добавление на диаграмму ассоциации между двумя классами выполняется аналогично
тому как это делалось на 1ой Лабораторной работе (Рис.2.1, 2.2)
. Построим взаимосвязь
между классами “Преподаватель” и “Учебный курс” (Рис.2.2).
28
Рис. 2.1 Окно диаграммы классов – отображает элемент специальной панели инструментов“Ассоциация”
Но тогда ассоциация будет однонаправленной (Рис. 2.2), а нам нужно будет получить
двунаправленное отношение “1” к “0..5”, т.е. один преподаватель может вести от 0 до 5
учебных курсов.
Ассоциация – это структурное двунаправленное отношение, описывающее
совокупность взаимоотношений между объектами. По сути дела ассоциация является
сверткой бинарных отношений между объектами. Эту свертку может мысленно выполнить в
своем сознании специалист (например, программист), который видит пиктограмму
ассоциации на UML диаграмме.
Пометка единица (1) на левом конце линии ассоциации означает, что в
двунаправленном отношении, наряду с многими, например, работниками участвует один
работодатель. Единица и звездочка на правом конце линии означает "единица или больше"
(1..*). Если один конец линии ассоциации помечен единицей (1), то пометка на другом конце
линий называется кратностью ассоциации.
На линии ассоциации можно также задать кратность равную единице (1), можно
указать диапазон кратности: ноль или единица (0..1), много (0..*). Разрешается также
указывать кратность определенным числом (например 5). С помощью списков можно
задавать и более сложные кратности. Например, список 0..1, 3..4, 6..* означает "любое число
объектов кроме 2 и 5".
29
Рис. 2.2 Окно диаграммы классов – отображает однонаправленную взаимосвязь (отношение)
двух классов “Преподаватель” и “Учебный курс”
Изменим свойства для данной ассоциации, предложенные средой по умолчанию. Это
можно выполнить с помощью окна спецификации свойств ассоциации. Доступ к
диалоговому окну спецификации свойств ассоциации Association Specification можно
получить после выделения линии ассоциации на диаграмме классов (Рис. 2.3) или в браузере
проекта и двойного щелчка на ней левой кнопки мыши (Рис. 2.4) .
Рис. 2.3 Диалоговое окно спецификации свойств ассоциации
Первое, что мы делаем — убираем направленность отношения: во всплывающем
меню ассоциации («Клик» правой кнопкой мыши) убираем галочку с пункта «Navigate»
(Рис.2.4).
30
Рис. 2.4 Всплывающее меню свойств ассоциации
Вторым шагом нужно указать кратности для ассоциации: со стороны “Пользователя” 1, а со
стороны “Учебного курса” диапацон кратности “0..5” (от 0 до 5).


Это можно сделать двумя способами:
с помощью всплывающего меню ассоциации (см.выше) – выбрать в пункте Multiplicity
(дословно “Сложность отношения”) нужную кратность (Рис. 2.5);
в диалоговом окне свойств ассоциации (Open Specification - Рис.2.5) на вкладках RoleA
Detail и RoleB Detail выбрать кратности для обеих сторон ассоциации из выпадающего
списка пункта Multiplicity.
Воспользуемся вторым способом (Рис. 2.6). У стороны “Учебного курса” в меню
Multiplicity выберем пункт “один ко многим” (1..* или 1..n) и вместо n поставим “5”.
31
Рис. 2.5 Всплывающее меню свойств ассоциации
Рис. 2.6 Диалоговое окно свойств ассоциации
Полученная взаимосвязь (отношение) представлено на Рис.2.7.
32
Рис. 2.7 Окно диаграммы классов – отображает взаимосвязь (отношение) двух классов
“Преподаватель” и “Учебный курс”
Создадим аналогично взаимосвязь между классами “Студент” и “Учебный курс” (Рис.2.8)
Рис. 2.8 Окно диаграммы классов – отображает взаимосвязь (отношение) двух классов
“Студент” и “Учебный курс”
33
Заключительным этапом построения нашей диаграммы классов будет создание
взаимосвязи типа “обобщение”(Generalization) между классами “Пользователя”,
“Преподавателя” и “Студента”.
Обобщение - это однонаправленное отношение, называемое "потомок/прародитель", в
котором объект "потомок" может быть подставлен вместо объекта прародителя (родителя
или предка). Потомок наследует структуру и поведение своего родителя. Стрелка всегда
указывает на родителя.
В данном случае родитель – это “Пользователь”.
Добавление на диаграмму отношения обобщения между двумя классами выполняется
следующим образом. На специальной панели инструментов необходимо нажать кнопку с
изображением пиктограммы обобщения
и отпустить левую кнопку мыши. Далее на
диаграмме классов надо выделить первый элемент обобщения или потомок, от которого
исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко
второму элементу отношения или предку, к которому направлена стрелка. (Рис.3.1)
Рис. 3.1 Окно диаграммы классов – Фрагмент простой концептуальной схемы базы данных
компьютерной системы университета “Истерн”
34
Построение с помощью программы Rational Rose UML диаграмм, изображающих
логические схемы баз данных, на примере построения UML диаграммы, изображающей
большой фрагмент концептуальной схемы базы данных АИС регистрации учебных
курсов
Введение
Пример построения простой диаграммы классов был детально рассмотрен на втором
лабораторном занятии. Поэтому некоторые шаги построения диаграммы классов данного
лабораторного занятия будут рассмотрены вкратце.
На лабораторном занятии мы подробно рассмотрим добавление и изменение свойств
атрибутов классов, а так же добавление операций классов.
Построение сложной диаграммы классов
Создадим диаграмму классов и добавим на нее следующие классы (аналогично
примеру второго лабораторного занятия) (Рис.1.1, 1.2):
 Вуз;
 Факультет;
 Студент;
 Курс;
 Преподаватель.
Рис. 1.1 Браузер проектов – отображает все зозданные классы
35
Рис. 1.2 Окно диаграммы классов – отображает все созданные классы
Далее добавим атрибуты для каждого класса (Рис.1.3).
36
Рис. 1.3 Всплывающее меню – открываем свойства класса “ВУЗ”
Для редактирования свойств атрибутов предназначено специальное диалоговое окно
спецификации атрибута Class Attribute Specification, которое открывается двойным
щелчком мыши на строке выбранного атрибута в окне спецификации свойств класса. В
окне свойств отдельного атрибута класса можно задать тип данных атрибута и его
начальное значение, а также назначить атрибуту стереотип из раскрывающегося списка или
изменить его квантор видимости.
Рассмотрим изменение свойств атрибутов на примере атрибутов класса “ВУЗ”: Для
атрибута “адрес” в качестве типа его допустимых значений из вложенного списка Type
следует выбрать тип String (строка) и нажать “ОК”. Для атрибута “Название” зададим свой
тип Name, а для атрибута “Телефон” - Number (числовой). (Рис.1.4 и 1.5)
37
Рис. 1.4 Диалоговое окно спецификации атрибута ”Адрес”
38
Рис. 1.5 Диалоговое окно спецификации класса ”ВУЗ”
Теперь перейдем к добавлению и редактированию операций классов.
Добавить операцию к созданному ранее классу можно одним из следующих способов:
1. С помощью операции контекстного меню New Operation (Новая операция) для
класса, выделенного на диаграмме классов. В этом случае активизируется курсор
ввода в области графического изображения класса на диаграмме.
2. С помощью операции контекстного меню: New Operation (Новая Операция) для
класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода в
области иерархического представления класса в браузере под именем
соответствующего класса.
3. С помощью операции контекстного меню Insert (Вставить), вызванного при
позиционировании курсора в области открытой вкладки операций в диалоговом окне
свойств Class Specification соответствующего класса.(Рис.2.1)
Применим третий метод: на вкладке “Операции” (Operations) уже открытого
диалогового окна спецификации класса ”ВУЗ” добавим операции – см. Рис. 2.1 и 2.2.
39
Рис.2.1 Диалоговое окно спецификации класса ”ВУЗ” - добавление операций
После добавления операции к классу по умолчанию ей присваивается имя opname и
некоторый квантор видимости. Видимость операций на диаграмме классов также
изображается в форме специальных пиктограмм или украшений. Используемые
пиктограммы видимости изображаются перед именем соответствующей операции и имеют
следующий смысл (Табл. 1.1).
Таблица 1.1 Пиктограммы видимости операций классов
Графическое
изображение
Текстовый аналог
Назначение пиктограммы
Public
Общедоступный или открытый. В нотации языка
UML такому атрибуту соответствует знак «+»
Protected
Защищенный. В нотации языка UML такому
атрибуту соответствует знак «#»
Private
Закрытый. В нотации языка UML такому
атрибуту соответствует знак «-»
Implementation
Реализация. В нотации языка UML такому
атрибуту соответствует знак «∼ »
40
В контексте рассматриваемой модели а в качестве имени первой операции для класса
“ВУЗ” следует задать: “Добавить студента”. При этом скобки при задании имени операции
не записываются, поскольку программа IBM Rational Rose добавляет их автоматически,
следуя правилам именования операций в языке UML.
Каждая из операций классов имеет собственное диалоговое окно спецификации
свойств Operation Specification, которое может быть открыто по двойному щелчку на имени
операции на соответствующей вкладке спецификации класса или на имени этой операции в
браузере проекта.
Рис.2.2 Диалоговое окно спецификации класса ”ВУЗ” - добавленные операции
Получим следующее изображение класса в окне диаграммы классов (Рис.2.3)
Рис.2.3 Класс ”ВУЗ” - атрибуты и операции
41
Добавим аналогично атрибуты и операции во все классы нашей диаграммы. (Рис.2.4)
Рис.2.4 Диаграмма классов с добавленными атрибутами и операциями для каждого класса
Следующий этап – это установление взаимосвязей между классами нашей диаграммы.
(Вспоминаем первое и второе лабораторные занятия ).
В этой лабораторной работе мы будем использовать два типа отношений
(взаимосвязей):
 ассоциацию;
 агрегирование.
Частным случаем ассоциации является отношение типа "часть/целое". Отношение
такого типа называется агрегированием. В языке UML оно причислено к отношениям вида
"имеет". Агрегирование изображается в виде ассоциации с незакрашенным ромбом со
стороны целого.
Добавить на диаграмму отношение агрегации между двумя классами можно
следующими способами:
 Щелкнуть на кнопке с изображением отношение агрегации на специальной панели
инструментов и провести линию агрегации от одного класса к другому.
 Провести линию ассоциации между выбранными классами и изменить ее свойства
таким образом, чтобы превратить данную ассоциацию в агрегацию.
В первом случае может оказаться, что по умолчанию на специальной панели
инструментов диаграммы классов отсутствует кнопка с пиктограммой агрегации. В этом
случае необходимо предварительно добавить ее на панель инструментов одним из
описанных ранее способов.
42
Во втором случае следует открыть окно спецификации свойств ассоциации
Association Specification и на вкладке деталей соответствующего конца ассоциации выставить
отметку в строке выбора Aggregate (Агрегация) (Рис. 3.1).
Добавим агрегацию – взаимосвязь между классами “ВУЗ” и “Факультет” (Рис.3.1). Выставим
кратность через свойство агрегации Multiplicity 1 к 1..*. (См. Второе лабораторное занятие)
(Рис.3.2)
Рис.3.1 Диаграмма классов – выбор кратности для агрегации
43
Рис.3.2 Диаграмма классов – выбор кратности для агрегации
Добавим на диаграмму классов недостающие агрегации и ассоциации аналогично
примерам второго и третьего лабораторного занятия. (Рис.3.3)
44
Рис.3.3 Сложная диаграмма классов, моделирующая объекты системы регистрации курсов и
отношения между ними
Рис.3.4 Сложная диаграмма классов, моделирующая объекты системы регистрации курсов и
отношения между ними
45
Диаграмма деятельности (действий)
Начать построение диаграммы деятельности для выбранного элемента модели или
моделируемой системы в целом можно одним из следующих способов (Рис.1.1):
1. Щелкнуть на кнопке с изображением диаграммы состояний на стандартной панели
инструментов, после чего следует выбрать представление и тип разрабатываемой
диаграммы - диаграмма деятельности.
2. Выделить логическое представление (Logical View) или представление вариантов
использования (Use Case View) в браузере проекта и выполнить операцию
контекстного меню: New Activity Diagram (Новая Диаграмма деятельности).
3. Раскрыть логическое представление (Logical View) в браузере проекта и выделить
рассматриваемый класс, операцию класса, пакет, или раскрыть представление
вариантов использования (Use Case View) и выбрать вариант использования, после
чего выполнить операцию контекстного меню: New Activity Diagram (Новая
Диаграмма деятельности)(Рис.1.1).
4. Выполнить операцию главного меню: Browse State Machine Diagram (Обзор
Диаграмма состояний), после следует чего выбрать представление и тип
разрабатываемой диаграммы - диаграмма деятельности.
В результате выполнения этих действий появляется новое окно с чистым рабочим
листом диаграммы деятельности и специальная панель инструментов, содержащая кнопки с
изображением графических элементов, необходимых для разработки диаграммы
деятельности (Табл. 1.1). Назначение отдельных кнопок панели можно узнать из
всплывающих подсказок.
Таблица 1.1 Назначение кнопок специальной панели инструментов диаграммы деятельности
Графическое
изображение
Всплывающая
подсказка
Назначение кнопки
Selection Tool
Превращает изображение курсора в форму
стрелки для последующего выделения
элементов на диаграмме
Text Box
Добавляет на диаграмму текстовую область
Note
Добавляет на диаграмму примечание
Anchor Note to Item
Добавляет на диаграмму связь примечания с
соответствующим графическим элементом
диаграммы
State
Добавляет на диаграмму состояние
Activity
Добавляет на диаграмму деятельность
Start State
Добавляет на диаграмму начальное состояние
46
Таблица 1.1 Назначение кнопок специальной панели инструментов диаграммы деятельности
Графическое
изображение
Horizontal
Synchronization
Всплывающая
подсказка
Назначение кнопки
End State
Добавляет на диаграмму конечное состояние
State Transition
Добавляет на диаграмму переход
Transition to Self
Добавляет на диаграмму рефлексивный
переход
Добавляет на
диаграмму
горизонтально
расположенный
символ
синхронизации
Vertical
Synchronization
Добавляет на диаграмму вертикально
расположенный символ синхронизации
Decision
Добавляет на диаграмму символ принятия
решения для альтернативных переходов
Swimlane
Добавляет на диаграмму дорожку
Object
Добавляет на диаграмму объект (по
умолчанию отсутствует)
Object Flow
Добавляет на диаграмму стрелку потока
объектов (по умолчанию отсутствует)
Business Activity
Добавляет на диаграмму бизнес-деятельность
(по умолчанию отсутствует)
Business Transaction
Добавляет на диаграмму бизнес-транзакцию
(по умолчанию отсутствует)
Как видно из этой таблицы, по умолчанию на панели инструментов отсутствуют
некоторые графические элементы, а именно - кнопки с пиктограммами объекта и потока
объектов. При необходимости их можно добавить на специальную панель диаграммы
деятельности стандартным способом, который был описан ранее. (См. Второе лабораторное
занятие)
47
Рис. 1.1 Начало построения диаграммы деятельности
Рис. 1.2 Диаграмма деятельности
Для добавления деятельности на диаграмму деятельности нужно с помощью левой
кнопки мыши нажать кнопку с изображением пиктограммы деятельности на специальной
панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на
48
свободном месте рабочего листа диаграммы. На диаграмме появится изображение
деятельности с маркерами изменения его геометрических размеров и предложенным средой
именем по умолчанию, которое разработчику следует изменить. Добавить деятельность на
диаграмму можно также с помощью операции главного меню: Tools Create Activity или
с помощью операции контекстного меню: New Activity, предварительно выделив
диаграмму деятельности в браузере проекта (Рис.1.3).
В результате этих действий на диаграмме появится изображение деятельности с
именем NewActivity, предложенное программой по умолчанию. Начиная построение
диаграммы деятельности модели процесса “Открытие регистрации”, реализуемого в АИС
регистрации учебных курсов, для первой добавленной деятельности зададим имя “Создание
учебного плана”. Добавим аналогично все оставшиеся деятельности на диаграмму(Рис. 1.4).
Рис. 1.3 Добавление деятельности на диаграмму
49
Рис. 1.4 Окно браузера проекта - деятельности
“Перетащим” созданные деятельности в окно диаграммы деятельности (Рис.1.5)
Рис. 1.5 Окно диаграммы деятельности
50
Теперь добавим на диаграмму элемент принятия решения (ветвления) для
альтернативных переходов (Decision), “задающий вопрос”: “Все ли преподаватели
назначены?” (Рис.1.6)
Рис. 1.6 Элемент принятия решения (ветвления) – открытие свойств объекта
Зададим в свойствах объекта ветвления название-вопрос: “Все ли преподаватели
назначены?” (Рис.1.7)
Рис. 1.7 Диалоговое окно свойств объекта ветвления диаграммы деятельности
51
Добавляем на диаграмму горизонтально расположенный символ синхронизации
(Horizontal Synchronization)
, перетаскивая его со специальной панели инструментов на
область диаграммы деятельности .
Для добавления перехода между двумя деятельностями нужно с помощью левой
кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов
, отпустить левую кнопку мыши, щелкнуть левой кнопкой мыши на изображении
исходной деятельности на диаграмме и отпустить ее на изображении целевой
деятельности.
В результате этих действий на диаграмме появится изображение перехода,
соединяющего две выбранных деятельности. Если в качестве одной из деятельностей
является символ ветвления или соединения, то порядок добавления перехода сохраняется
прежним.
Добавим на диаграмму все возможные переходы (Рис. 1.8)
Рис. 1.8 Диаграмма деятельности (действий), которая моделирует действия, выполняемые в
процессе создания системы регистрации учебных курсов
52
Рис. 1.9 Диаграмма деятельности (действий), которая моделирует действия, выполняемые
в процессе создания системы регистрации учебных курсов
53
Построение с помощью программы Rational Rose UML диаграммы, изображающей
простой графический редактор.
На данном лабораторном занятии мы познакомимся с заданием параметров операций
классов: аргументов, а так же возвращаемых значений.
Используя логическое представление (Logical View) — создадим Диаграмму классов
- вспоминаем второе и третье лабораторные занятия.
В простейшем графическом редакторе будем использовать следующие основные
классы:
1 Фигура;
2 Елемент фигуры;
3 Точка;
4 Линия.
Создадим все описанные выше классы (Рис.1.1).
Рис. 1.1 Создание класса и Браузер проектов – отображает все зозданные классы
Получим:
54
Рис. 1.2 Окно диаграммы классов – отображает все созданные классы
Давайте озаглавим нашу диаграмму - “Display”
Для этого воспользуемся инструментом TextBox (Рис.1.2) на специальной панели
инструментов. Чтобы изменить стиль форматирования надписи воспользуемся
пунктом всплывающего меню Format...->Font... (Рис.2.1)
Рис.2.1 Всплывающее меню объекта TextBox
55
Рис.2.2 Сделаем текст жирным, подчеркнутым и 12м шрифтом
Теперь в каждом классе добавим операции, пользуясь навыками, полученными на
третьем лабораторном занятии (Рис.3.1).Начнем с класса Figure (Рис.3.2)
Рис.3.1 Добавление операции класса Figure
56
Рис.3.2 Операции класса Figure
Для класса FirureElement добавим следующие операции:
1. moveBy(int, int);
Здесь мы сталкиваемся с аргументами операции – оба целочисленного типа. (Рис.3.3)
Для операций классов можно задать: аргументы и их тип, тип возвращаемого
результата, стереотип операции, а также определить протокол и размер, задать
исключительные ситуации, специфицировать предусловия и постусловия и целый ряд
других свойств. Для отдельной операции эти дополнительные свойства доступны для
редактирования на вкладке Detail (Подробно) диалогового окна спецификации свойств
выбранной операции (Рис. 3.4).
57
Рис.3.3 Задание дополнительных свойств (спецификаций) операции moveBy
На вкладке Detail в многостраничном поле Arguments (Аргументы) можно определить
аргументы редактируемой операции. Для этого следует выполнить операцию контекстного
меню Insert (Вставить – Рис.3.4). После этого в этом поле появится аргумент данной
операции с именем по умолчанию argname. Для редактирования свойств аргумента
предназначено специальное окно свойств аргумента.
Рис.3.4 Задание аргументов операции moveBy
58
Операция moveBy – перемещает объект в точку экрана с координатами
(X:integer;Y:integer) – так зададим же их параметры – Рис.3.5
Рис.3.5 Задание типа аргумента операции moveBy
Теперь, если мы посмотрим на диаграмму классов – то у операции класса Figure Element не увидим
созданных аргументов. Они “покажутся”, если “кликнуть” один раз на самой операции класса (Рис.3.6)
Рис.3.6 Отображение аргументов операции moveBy класса Figure Element
Теперь зададим аргументы для всех операций имеющихся классов.
59
Для класса Point (“Точка”) следующие операции (Рис.3.7):

get X();

get Y();

set X (int);

set Y(int);

move By(int;int).
Для класса Line (“Линия”) следующие операции (Рис.3.7):

get P1();

get P2();

set P1 (Point);

set P2 (Point);

move By(int;int).
Рис.3.7 Операции классов Point и Line
Получим следующий вид диаграммы классов – Рис.4.1
60
Рис.4.1 Диалоговое окно диаграммы классов
Осталось только установить взаимосвязи между имеющимися классами.
(Вспоминаем первое и второе лабораторные занятия – Рис.5.1 и 5.2 и 5.3).
В этой лабораторной работе мы будем использовать два типа отношений
(взаимосвязей):
 ассоциацию;
 обобщение.
61
Рис.5.1 Диалоговое окно диаграммы классов – связь “Ассоциация”
Рис.5.2 Диалоговое окно диаграммы классов – связь “ко многим” (“много” или *)
62
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
Рис.5.3 Диалоговое окно диаграммы классов – связь “Обобщение”
63
Итоговый вид диаграммы классов простейшего графического редактора:
Рис.5.4 Диаграмма классов простейшего графического редактора
64
Простой пример генерации программного кода в среде IBM Rational Rose
Генерировать программный код на данном лабораторном занятии будем на примере задания
пятой лабораторной работы — простейшего графического редактора. (Откройте созданный
ранее проект (Рис. 1.1).)
Рис. 1.1 Диаграмма классов – пример простого графического редактора
Общая последовательность действий, которые необходимо выполнить для генерации
программного кода в среде IBM Rational Rose, состоит из следующих этапов:
1.
2.
3.
4.
5.
6.
7.
Проверка модели на отсутствие ошибок.
Создание компонентов для реализации классов.
Отображение классов на компоненты.
Выбор языка программирования для генерации текста программного кода.
Установка свойств генерации программного кода.
Выбор класса, компонента или пакета.
Генерация программного кода.
Особенности выполнения каждого из этапов могут изменяться в зависимости от выбора
языка программирования или схемы базы данных.
Рассмотрим особенности выполнения каждого из указанных выше этапов для языка
65
реализации модели ANSI C++.
Язык ANSI С++ не допускает использование символов кириллицы в качестве имен классов,
атрибутов и операций.
Проверка модели на отсутствие ошибок
Для проверки модели следует выполнить операцию главного меню: Tools Check Model
(Инструменты Проверить модель). Результаты проверки разработанной модели на наличие
ошибок отображаются в окне журнала. Прежде чем приступить к генерации текста
программного кода разработчику следует добиться устранения всех ошибок и
предупреждений, о чем должно свидетельствовать чистое окно журнала (Рис. 1.2).
Рис. 1.2 Проверка модели на отсутствие ошибок
Создание компонентов для реализации классов
Здесь нужно вкратце рассказать про «Диаграмму компонентов».
Диаграмма компонентов служит частью физического представления модели и является
необходимой для генерации программного кода. Для разработки диаграмм компонентов в
браузере проекта предназначено отдельное представление компонентов (Component View), в
котором уже содержится диаграмма компонентов с пустым содержанием и именем по
умолчанию Main (Главная).
Активизация диаграммы компонентов может быть выполнена одним из следующих
способов:

Щелкнуть на кнопке с изображением диаграммы компонентов на стандартной панели
66
инструментов.
Раскрыть представление компонентов в браузере (Component View) и дважды
щелкнуть на пиктограмме Main (Главная).

Через пункт меню Browse Component Diagram (Браузер Диаграмма компонентов).
В результате выполнения этих действий появляется новое окно с чистым рабочим листом
диаграммы компонентов и специальная панель инструментов, содержащая кнопки с
изображением графических примитивов, необходимых для разработки диаграммы
компонентов. В качестве «контейнера» и «главного компонента» одновременно, будем

использовать элемент «Component» («Компонент»)
. (Рис.1.3) Добавим его в область
«диаграммы компонентов» и зададим имя «MainPaint.exe». «exe» - приписка в названии, как
бы говорит о том, что при генерации кода можно получить не просто файлы с кодом
программы, но и исполняемый файл. (В данном лабораторном занятии не рассматривается,
но подобное допускается, если задать в свойствах компонента стереотип <<EXE>> из
предлагаемого вложенного списка.)
Рис. 1.3 Создали диаграмму компонентов и добавили “Компонент” «MainPaint.exe»
Отображение классов на компоненты
Для отображения классов на компоненты можно воспользоваться окном спецификации
свойств компонента, открытого на вкладке Realizes (Реализует). Для включения реализации
класса в данный компонент следует выделить требуемый класс на этой вкладке и выполнить
для него операцию контекстного меню Assign (Назначить). В результате перед именем
класса на этой вкладке появится специальная отметка (Рис.1.4)
67
Рис. 1.4 Связываем “Компонент” и классы
Выбор языка программирования для генерации текста программного кода и Установка
свойств генерации программного кода
Для выбора языка ANSI C++ в качестве языка реализации модели следует выполнить
операцию главного меню: Tools Options (Инструменты Параметры), в результате чего
будет вызвано диалоговое окно настройки параметров модели. Далее на вкладке Notation
(Нотация) в строке Default Language (Язык по умолчанию) из вложенного списка следует
выбрать язык - ANSI C++(Рис.2.1).
Если по какой-то причине языка ANSI C++ не оказалось во вложенном списке, то следует
убедиться в том, что этот язык программирования установлен в качестве расширения IBM
Rational Rose. Для этого следует открыть окно установленных расширений, выполнив
операцию главного меню: Add-Ins Add-In Manager (Расширения Менеджер
расширений), и убедиться в том, что выставлена отметка в строке с именем языка ANSI C++.
После выбора языка программирования по умолчанию следует изменить язык реализации
каждого из компонентов модели. С этой целью следует изменить язык в строке Language
(Язык) на вкладке General (Общие) окна спецификации свойств компонента, для чего из
вложенного списка следует выбрать язык - ANSI C++ (Рис. 2.1).
68
Рис. 2.1 Выбор языка программирования и языка реализации компонентов
Выбор класса, компонента или пакета и Генерация программного кода
Генерация программного кода в среде IBM Rational Rose возможна для отдельного класса
или компонента. Для этого нужный элемент модели предварительно следует выделить в
браузере проекта и выполнить операцию контекстного меню: ANSI C++ Generate Code_
(Язык ANSI C++ Генерировать код). В результате этого будет открыто диалоговое окно
с предложением выбора классов для генерации программного кода на выбранном языке
программирования (Рис. 3.1). После выбора соответствующих классов и нажатия кнопки
OK программа IBM Rational Rose выполняет кодогенерацию
69
.
Рис. 3.1 Генерация программного кода
Рис. 3.2 Окно выбора классов для генерации программного кода
70
Для просмотра и редактирования созданных файлов с текстом программного кода на языке
ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с
помощью операции контекстного меню: ANSI C++ Browse Header_ (Язык ANSI C++
Просмотреть заголовочный файл) или ANSI C++ Browse Body_ (Язык ANSI C++
Просмотреть файл реализации) для выбранного класса в браузере проекта.
После генерации программного кода для компонента MainPaint.exe каждому классу,
реализованному в данном компоненте, будет соответствовать 2 файла с текстом кода на
языке ANSI C++ (Рис.3.3):


заголовочный файл с расширением «h»;
файл реализации с расширением «cpp».
Рис. 3.3 Сгенерированные файлы

Пример сгенерированного кода — файл Line.cpp
#include "Line.h"
//##ModelId=48FB039303B9
Line::get P1()
{}
//##ModelId=48FB039C0196
Line::get P2()
{}
//##ModelId=48FB03A3035B
Line::set P1(Point P1)
{}
//##ModelId=48FB03CC0203
Line::set P2(Point P2)
{}
//##ModelId=48FB03D40261
Line::move By(Integer X, Integer Y)
{}
71

Пример сгенерированного кода — файл Line.h
#ifndef LINE_H_HEADER_INCLUDED_B6EFE6B3
#define LINE_H_HEADER_INCLUDED_B6EFE6B3
#include "Point.h"
//##ModelId=48FAFE8C0399
class Line : public Figure Element
{
public:
//##ModelId=48FB039303B9
get P1();
//##ModelId=48FB039C0196
get P2();
//##ModelId=48FB03A3035B
set P1(Point P1);
//##ModelId=48FB03CC0203
set P2(Point P2);
//##ModelId=48FB03D40261
move By(Integer X, Integer Y);
};
#endif /* LINE_H_HEADER_INCLUDED_B6EFE6B3 */
72
Заключение
Система Rational Rose — признанный лидер среди средств визуального
моделирования, и, используя ее, вы сможете интерактивно разрабатывать архитектуру
создаваемого приложения, генерировать его исходные тексты и параллельно работать над
документированием разрабатываемой системы.
Преимущества от применения Rational Rose значительны:






сокращение цикла разработки приложения;
увеличение продуктивности работы программистов;
улучшение потребительских качеств создаваемых программ за счет ориентации на
пользователей и бизнес;
способность вести большие проекты и группы проектов;
возможность повторного использования уже созданного ПО за счет упора на разбор
их архитектуры и компонентов;
язык UML служит универсальным «мостиком» между разработчиками из разных
отделов.
В данных методических указаниях рассмотрены примеры использования данной
среды — лабораторные занятия, а также краткий теоретический материал. С их помощью
студенты получат начальные знания и навыки в работе с Rational Rose и UML.
73
Алфавитный указатель
АИС ..................................................................................................................................................... 4
Актер ................................................................................................................................................ 19
аргументы редактируемой операции ............................................................................................. 59
Ассоциация ................................................................................................................................. 22, 31
атрибуты............................................................................................................................................ 27
Генерация программного кода............................................................................................ 67, 70, 71
Главное меню и стандартная панель инструментов ..................................................................... 12
действующие лица (Actors) ............................................................................................................. 18
деятельности ................................................................................................. 47, 49, 50, 51, 52, 53, 54
Диаграмма деятельности (действий).................................................................................. 47, 53, 54
Диаграмма классов ........................................................................................................................... 24
диаграмма компонентов .................................................................................................................. 68
Диаграмма компонентов ........................................................................................................... 67, 68
Диаграмма прецедентов .................................................................................................................. 18
заголовочный файл .......................................................................................................................... 72
изображение деятельности .............................................................................................................. 50
изображение перехода ..................................................................................................................... 53
квантор видимости ..................................................................................................................... 29, 39
логическое представление (Logical View) ........................................................................ 24, 47, 55
обобщение............................................................................................................................. 30, 36, 62
Обобщение .................................................................................................................................. 36, 64
однонаправленная ассоциация........................................................................................................ 22
операции............................................................................................................................................ 27
Операции........................................................................................................................................... 40
Отображение классов на компоненты ..................................................................................... 66, 68
Прецедент ......................................................................................................................................... 19
Проверка модели на отсутствие ошибок ................................................................................. 66, 67
программный код ............................................................................................................................. 66
рабочий интерфейс программы ...................................................................................................... 12
символ синхронизации .............................................................................................................. 48, 53
Специальная панель инструментов ................................................................................................ 16
спецификации атрибута................................................................................................................... 39
спецификации свойств ассоциации. ............................................................................................... 32
Стандартная панель инструментов ................................................................................................ 12
стереотип........................................................................................................................................... 39
тип данных атрибута ........................................................................................................................ 39
файл реализации .............................................................................................................................. 72
элемент принятия решения (ветвления) ........................................................................................ 52
Элемент принятия решения (ветвления) ....................................................................................... 52
язык реализации ............................................................................................................................... 69
Assign................................................................................................................................................ 68
Main (Главная) ........................................................................................................................... 24, 68
Activity diagram (диаграммы активности) ....................................................................................... 9
74
Class Attribute Specification ............................................................................................................. 39
Class diagram (диаграммы классов) ................................................................................................ 10
Collaboration diagram (диаграммы сотрудничества) ..................................................................... 10
Component ..................................................................................................................................... 7, 68
Component diagram (диаграммы компонентов) ............................................................................. 11
Component View ......................................................................................................................... 67, 68
Deployment diagram (диаграммы топологии) .................................................................................. 8
General (Общие) ............................................................................................................................... 69
Generalization .................................................................................................................................... 36
Horizontal Synchronization ............................................................................................................... 53
Interaction diagram (диаграммы взаимодействия) ........................................................................... 9
Language ........................................................................................................................................ 4, 69
Rational Rose ....................................................................................................................................... 4
Sequence diagram (диаграммы последовательностей действий) ................................................... 9
State Maсhine diagram (диаграммы состояний) ............................................................................... 8
TextBox ............................................................................................................................................. 56
Unidirectional Association ................................................................................................................. 22
Unified Modeling Language, UML ..................................................................................................... 4
Use case................................................................................................................................................ 5
Use case diagram (диаграммы прецедентов) .................................................................................... 7
Use Case View .................................................................................................................................. 19
Download