Назад
Cправочная информация
Работа
с классами в Rational Rose
СОДЕРЖАНИЕ
Приемы работы в Rational Rose для создания классов
Создание новой
диаграммы классов
Создание нового
класса
Создание
отношений между классами
Приемы
работы в Rational Rose для
создания классов
Для
создания
классов и отношений между ними в Rational Rose предназначена панель Toolbox,
которая
расположена вертикально между браузером и окном диаграммы. На ней по
умолчанию представлены следующие кнопки:
|
Вид
кнопки
|
Название
кнопки
|
Назначение
кнопки
|
|

|
Selection Tool
|
Превращает
курсор в стрелку указателя для того, чтобы можно было выделять объекты
|
|

|
Text Box
|
Добавление
к диаграмме текста
|
|

|
Note
|
Добавление
к диаграмме примечания
|
|

|
Anchor Note to Item
|
Связывание
примечания с объектом на диаграмме
|
|

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

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

|
Unidirectional
Association
|
Создание
отношения ассоциации
|
|

|
Association
Class
|
Связывание
класса ассоциации с отношением ассоциации
|
|

|
Package
|
Добавление
на диаграмму нового пакета
|
|

|
Dependency or instantiaties
|
Создание
отношения зависимости
|
|

|
Generalization
|
Создание
отношения обобщения
|
|

|
Realize
|
Создание
отношения реализации
|
При
желании состав кнопок на панели Toolbox можно
изменить, добавив на нее недостающие элементы.
Для каждого класса можно задать
ряд режимов отображения. Сделать это можно, щелкнув
правой кнопкой мыши по классу, и выбрав пункт меню Options (рис. 1):

Рисунок 1. Контекстное меню
класса
- Automatic Resize -
автоматически подгонять размеры класса;
- Stereotype Display -
способ отображения стереотипа класса:. Возможные варианты: none (не
отображать), Label (отображать
в виде строки над названием класса), Decoration (отображать
в виде графического значка над названием класса), Icon (отображать
весь класс соответствующим графическим значком);
- Show Visibility -
отображать модификаторы доступа атрибутов и операций;
- Show All Attributes -
отображать все атрибуты класса;
- Show All Operations
- отображать все операции класса;
- Show Operation Signature
- отображать сигнатуру операций;
- Suppress Attributes -
скрывать блок атрибутов;
- Suppress Operations -
скрывать блок операций.
Для задания режимов отображений по умолчанию для всех классов
предусмотрен пункт меню Tools ->Options, где во вкладке Diagram можно
задать эти же значения.
Создание
новой диаграммы классов.
Для
создания новой диаграммы классов необходимо щелкнуть правой кнопкой
мыши на логическом представлении браузера (Logical View). В
открывшемся меню выбрать пункт New > Class Diagram (Создать
>
Диаграмма Классов) (рис. 2). Далее ввести название диаграммы, после
чего дважды щелкнуть по ней в браузере, чтобы открыть ее.

Рисунок 2. Создание диаграммы классов
Создание
нового класса.
Для создания нового класса
нужно щелкнуть по кнопке Class на панели Toolbox
и
затем по свободному месту окна диаграммы, после чего можно ввести
название класса. После создания класса нужно определить его свойства.
Для этого нужно дважды по нему щелкнуть или же вызвать для него
контекстное меню и выбрать пункт Open Specification..., после
чего откроется окно спецификации класса, содержащее ряд вкладок (рис. 3).

Рисунок 3. Окно спецификации класса
Рассмотрим
содержимое каждой вкладки:
-
General
— здесь задаются общие свойства класса: имя класса (Name),
тип класса (Type), стереотип (Stereotype), видимость класса за
пределами его пакета (Export Control) и текстовое описание класса
(Documentation);
-
Detail
— задаются некоторые подробности класса: мощность
(Multiplicity), количество памяти, необходимое при выполнении объектов
данного класса (Space), время жизни экземпляров класса (Persistence),
сколько действий может выполняться в один временной интервал
(Concurrency), является ли класс абстрактным (Abstract), формальные
параметры для определенных типов классов (Formal Arguments);
-
Operations
— задаются операции класса;
-
Attributes
— задаются атрибуты класса;
-
Relations
— отображаются
отношения класса с другими классами;
-
Components
— отображаются
связанные с классом компоненты;
-
Nested
— добавление
вложенных классов;
-
Files
— добавление
файлов, содержащих дополнительную информацию о классе.
Добавление
новых
атрибутов к классу.
Для
добавления нового атрибута к классу необходимо открыть спецификацию
класса и выбрать вкладку Attributes (рис. 4).
Рисунок 4. Вкладка Attributes окна спецификации класса
Далее следует щелкнуть правой кнопкой по
свободному
месту основного поля вкладки, выбрать пункт Insert и
ввести имя атрибута. Для задания свойств атрибута следует дважды
щелкнуть по нему или же вызвать для него контекстное меню и выбрать
пункт Specification ... ,
после
чего откроется окно спецификации атрибута, содержащее две вкладки
(рис. 5):
Рисунок 5. Окно спецификации атрибута класса
-
General —
задаются общие
свойства атрибута: имя (Name), тип (Type), стереотип (Stereotype),
начальное значение (Initial value), видимость
атрибута за пределами его класса (Export Control) и текстовое описание
класса (Documentation);
-
Detail
-
задаются некоторые подробности атрибута: способ хранения атрибута в
классе (Containment), является ли атрибут статическим (Static),
производным, т.е. созданным на основе других атрибутов (Derived).
Добавление
новых операций
к классу.
Для добавления новой операции к классу необходимо открыть
спецификацию класса и выбрать вкладку Operations
(рис. 6):

Рисунок 6. Вкладка Operations окна спецификации класса
Далее
следует щелкнуть правой кнопкой по свободному месту основного поля
вкладки, выбрать пункт Insert
и ввести имя операции. Для задания свойств операции следует дважды
щелкнуть по ней или же вызвать для нее контекстное меню и выбрать
пункт Specification
... ,
после чего откроется окно спецификации операции, содержащее следующие
вкладки (рис. 7):
Рисунок
7. Окно спецификации операции класса
-
General
— задаются
общие свойства атрибута: имя (Name), тип возвращаемого значения (Return
Type), показывать ли все классы пакета (Show
classes), стереотип
(Stereotype), видимость операции за пределами ее класса
(Export
Control) и текстовое описание операции (Documentation);
- Detail— задаются некоторые
подробности операции:
параметры (Arguments); список операций, которые может выполнять клиент
класса, и порядок их выполнения (Protocol); уточнения операции,
связанные с конкретным языком программирования (Qualification);
исключительные ситуации (Exceptions); предполагаемый объем, который
потребуется во время выполнения операции (Size); предполагаемое время
выполнения операции (Time); поведение операции при наличии нескольких
потоков управления (Concurrency);
- Preconditions —
задаются предусловия, т.е. условия, которые должны быть выполнены перед
запуском операции;
- Postconditions — задаются
постусловия, т.е. условия, которые должны быть выполнены после
завершения работы операции;
- Semantics —
позволяет описать, что будет делать операция (логика операции);
- Files
— добавление
файлов, содержащих дополнительную информацию о классе.
Добавление
параметров к операции класса.
Для добавления параметров к операции класса необходимо открыть
спецификацию операции, выбрать вкладку Details,
в ней щелкнуть правой кнопкой мыши по полю Arguments и ввести
имя параметра. Для задания свойств параметра следует дважды
щелкнуть по нему или же вызвать для него контекстное меню и выбрать
пункт Specification
... ,
после чего откроется окно спецификации параметра, содержащее следующую
вкладку (рис.8):
Рисунок
8. Окно спецификации параметров операции класса
- General
— здесь
задаются имя параметра (Name), тип (Type), значение по умолчанию
(Default) и текстовое описание параметра (Documentation).
Создание
отношений между классами.
Общее замечание. Для любого типа отношений задание его
свойств
осуществляется одинаковым способом - или дважды щелкнуть по линии, или
вызвать для нее контекстное меню и выбрать пункт Specification
... . Часть свойств
отношения можно задать прямо в его контекстном меню. Общими свойствами
для всех типов отношений являются: имя (Name), стереотип
(Stereotype) и
текстовое описание отношения (Documentation). Ниже
будут описаны только специфические для каждого типа отношений свойства.
Отношение зависимости.
Является
наиболее общей формой отношения в языке
UML. Все другие типы отношений можно
считать частным случаем данного
отношения. Отношение зависимости
показывает, что изменение одного класса
влечет изменение другого класса. Чаще
всего применяется, когда один класс
использует другой в качестве аргумента.
Изображается пунктирной линией со
стрелкой, направленной от зависимого
класса к независимому.
Для создания отношения зависимости следует выбрать кнопку Dependency or instantiaties на
панели
Toolbox, затем
щелкнуть мышкой по зависимому классу и не отпуская кнопки мыши
перетащить стрелку на независимый класс. Для данного типа отношения
можно задать следующие свойства: будет ли иметь зависимый
класс
доступ к не-public элементам независимого класса (Friendship required),
видимость отношения
(Export
Control), начальную (Multiplicity from) и конечную мощность(Multiplicity) отношения.
Отношение ассоциации, агрегации и
композиции.
Поскольку отношения ассоциации, агрегации и композиции
отличаются очень незначительно, то рассмотрим работу с ними в общем.
Отношение ассоциации
показывает,
что один класс каким-то образом связан
с другим классом (аналог связи в диаграмме
«Сущность-Связь»). Изображается
сплошной линией, соединяющей классы.
Отношение агрегации - частный
случай ассоциации. Представляет
собой отношение типа «целое/часть».
Изображается в виде простой ассоциации
с незакрашенным ромбом со стороны
«целого». Агрегация не является наследованием,
поскольку
все классы-«части» в агрегации являются вполне
самостоятельными, со своими атрибутами и операциями, отличающимися от
атрибутов и операций класса-«целое».
Отношение композиции - частный
случай агрегации. Служит для выделения специальной формы отношения
«целое-часть», при которой составляющие части в
некотором
смысле находятся внутри целого. Специфика взаимосвязи между ними
заключается в том, что части не могут выступать в отрыве от целого,
т.е. с уничтожением целого уничтожаются и все его составные части.
Изображается в виде сплошной линии с закрашенным ромбом возле класса
«целое».
Для создания одного из
приведенных выше отношений следует выбрать кнопку Unidirectional Association
на панели
Toolbox,
затем
щелкнуть мышкой по одному классу и не отпуская кнопки мыши
перетащить стрелку на другой класс. По умолчанию создается
однонаправленная ассоциация, т.е. класс, от которого идет стрелка,
знает об общих атрибутах и операциях второго класса, но не наоборот.
Для создания двунаправленной ассоциации следует вызвать для отношения
контекстное меню и выбрать пункт
Navigable.
Для данных типов отношений
можно задать следующие свойства:
- вкладка General — роль классов в
данном отношении (Role A и Role B);
- вкладка Detail
— является ли отношение производным
(Derived); класс-ассоциация, связанный с данным отношением (Link
Element);
направление роли (Name Direction); ограничения - некоторое
условие, которое должно выполняться (Constraints);
- вкладки Role A General, Role
B General — задаются общие свойства ролей классов, участвующих
в отношении: название роли (Role), видимость
роли (Export
Control) и текстовое описание роли (Documentation);
- вкладки Role A Detail, Role B Detail — задаются
некоторые подробности ролей: имя роли (Role), ограничения для роли
(Constraints), мощность роли (Multiplicity), направление отношения
(Navigable), является ли отношение агрегацией (Aggregate), являются ли
атрибуты классов, участвующие в отношении, статичными (Static);
являются ли классы отношения дружественными (Friend); каким образом
будут включаться созданные атрибуты агрегации - по значению или по
ссылке (Containment of Class) (при выборе значения By Value тип
отношения поменяется на композицию), добавление квалификаторов
(Keys/Qualifiers).
Отношение обобщения.
Это отношение
между общей сущностью (суперклассом,
или родителем) и ее конкретным воплощением
(субклассом, или потомком). Обобщения
иногда называют отношениями типа
"является", имея в виду, что одна
сущность является частным выражением
другой, более общей. Обобщение означает,
что объекты класса-потомка могут
использоваться всюду, где встречаются
объекты класса-родителя, но не наоборот.
Изображается в виде линии с большой
незакрашенной стрелкой.
Для создания отношения обобщения следует
выбрать кнопку Generalization на
панели
Toolbox, затем
щелкнуть мышкой по классу-потомку и не отпуская кнопки мыши
перетащить стрелку на класс-родитель. Для данного типа
отношения
можно задать следующие свойства: будет ли
иметь класс-потомок
доступ к не-public элементам класса-родителя (Friendship
required),
видимость отношения
(Export
Control), будет ли наследоваться только одна копия класса-родителя
(Virtual inheritance).
Отношение реализации.
Это
отношение
между двумя элементами модели, при
котором один элемент (клиент) реализует
поведение, заданное другим (поставщиком).
Изображается в виде пунктирной линии
с большой незакрашенной стрелкой,
указывающей на поставщика. Чаще
всего реализации используют для
определения отношений между интерфейсом
и классом или компонентом, который
предоставляет объявленные в интерфейсе
операции или услуги.
Для создания отношения
обобщения следует выбрать кнопку Realize на панели
Toolbox, затем
щелкнуть мышкой по объекту-клиенту и не отпуская кнопки мыши
перетащить стрелку на объект-поставщик. Специфических свойств у данного
типа отношений не предусмотрено.