Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RGZ_OOP_10.doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
820.74 Кб
Скачать

3.2. Создание диаграммы классов

Если Вы открываете созданный ранее проект, то для отображения диаграммы дважды щелкните левой кнопкой мыши в окне «ProjectBrowser» на пиктограмме диаграммы классов (или щелкните правой кнопкой мыши на пиктограмме диаграммы классов и выберите в контекстном меню пункт «Open»).

Рассмотрим ряд инструментов, которыми будем пользоваться для создания диаграммы классов (рис 3.4).

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

В группе Class RelationshipsпиктограммаGeneralize предназначена для создания на диаграмме отношения наследования (обобщения), пиктограммаCompose – отношения композиции, пиктограммаAggregate – отношения агрегации, пиктограммаNesting– отношения вложения.

В группе Commonнаходится пиктограммаDependency, предназначенная для создания на диаграмме отношения зависимости.

Рис. 3.4

3.2.1. Спецификация класса

При добавлении класса на диаграмму открывается окно для установления его свойств. Его можно открыть из контекстного меню класса (на диаграмме или в браузере), выбрав пункт Properties, или просто сделав двойной щелчок мышью на изображении класса.

На вкладке General (рис. 3.5) необходимо ввести имя класса (Name), выбрать язык программирования LanguageC++. Если класс является абстрактным – установить флажок Abstract.

Рис. 3.5

На вкладке Details (рис. 3.6) можно специфицировать параметризованный класс (шаблон). Для этого в группе Templates выберите в списке Type пункт Parameterized. Нажав кнопку Add, определите параметры шаблона. На этой же вкладке можно получить доступ к окнам, предназначенным для определения атрибутов класса (кнопка Attributes) и его операций (кнопка Operations).

Рис. 3.6

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

На вкладке General (рис. 3.7) внизу представлен список атрибутов класса, который мож­но редактировать при помощи кнопок и полей, расположенных в верхней части окна.

Основные поля, которые необходимо заполнить – это имя (Name), тип (Type) и видимость (Scope). Если возможно, то задать значение по умолчанию (Initial).

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

Рис. 3.7

Если атрибут представляет собой массив, то количество элементов в массиве можно задать на вкладке Detail (рис. 3.8). Необходимо установить флажок Attribute is a Collection и в поле Container Type ввести количество элементов в прямых скобках.

Рис. 3.8

Заметим, что на диаграмме классов результаты наших действий будут отображаться с лишними круглыми скобками. Например, атрибут array типа int, являющийся массивом из десяти элементов, будет выглядеть следующим образом:

array: int ([10])

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

На вкладке General (рис. 3.9) внизу представлен список операций класса, который мож­но редактировать при помощи кнопок и полей, расположенных в верхней части окна. Основные элементы, которые необходимо заполнить – это имя (Name), параметры (Parameters), тип возвращаемого значения (Return Type) и видимость (Scope). Для виртуальных функций необходимо установить флажок Virtual, а для чисто виртуальных – флажок Pure.

Специфицировав новую операцию, или изменив существующую, нажмите кнопку Save для перенесения спецификации в список.

Рис. 3.9

Для задания параметров операции служит окно Parameters, доступ к которому можно получить, нажав кнопку Edit Parameters (рис. 3.10). Для каждого параметра необходимо указать имя (Name), тип (Type) и указать вид (Kind): in – входной, out – выходной, inout – смешанный. Если возможно, то задать значение по умолчанию (Default).

Рис. 3.10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]