Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб.8 ПОСТРОЕНИЕ И ОБСУЖДЕНИЕ UML-ДИАГРАММ.doc
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
23.83 Mб
Скачать

4 Диаграммы классов

По мере того как новые классы добавляются в систему, их текстовое представление становится неудобным. Диаграммы классов (class diagrams) помогают графически представить некоторые или все классы в модели.

Class diagram (диаграмма классов) — основная диаграмма для создания кода приложения. При помощи диаграммы классов создается внутренняя структура системы, описывается наследование и взаимное положение классов друг относительно друга. Здесь описывается логическое представление системы. Именно логическое, так как классы — это лишь заготовки, на основе которых затем будут определены физические объекты.

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

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

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

Главная диаграмма классов (Main) уже присутствует во вновь созданной пустой модели, но возможно создание дополнительных диаграмм при помощи уже знакомых способов посредством контекстного меню Logical View в окне Browse, при помощи пункта Browse в главном меню или при помощи кнопки Class diagram.

Главная диаграмма классов в логическом представлении модели обычно отображает пакеты системы. Каждый пакет также имеет свою главную диаграмму классов, которая обычно содержит общедоступные классы пакета. Другие диаграммы создаются по необходимости. Приведем типичные примеры использования диаграмм классов:

  • просмотр всех классов реализации в пакете;

  • просмотр структуры и поведения одного или нескольких классов;

  • просмотр иерархии наследования классов.

4.1 Панель инструментов.

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

Класс в UML нотации изображается как прямоугольник, разделенный на три части. В верхней части записывается название класса, в середине - атрибуты, в нижней части - операции.

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

Interface (интерфейс)

Значок Interface позволяет создать объект Interface, который указывает на видимые извне операции класса или компонента. Обычно интерфейс создается только для некоторых строго определенных классов или компонентов и предназначен скорее для логического отображения системы, но может присутствовать как на диаграмме классов, так и на диаграмме компонентов.

Unidirectional Association (однонаправленная связь)

Значок Unidirectional Association позволяет создать однонаправленную связь класса с классом или класса с интерфейсом. Это общий и самый слабый вид связи.

Association Class (ассоциация класса)

Значок Association Class позволяет связать классы ассоциативной связью. Это свойство сохраняется в классе и для того, чтобы его установить, необходимо создать класс и связать класс реляцией с другим при помощи этого значка.

Package (пакет)

Значок Package позволяет создать элемент Package, который используется для группировки элементов. Может быть использован для физической или логической группировки.

Dependency of instantiates (зависимость реализации)

Значок Dependency of instantiates позволяет создать связь Dependency of instantiates, при этом генератор кода C++ Rational Rose создает код класса, включающий определения зависимого класса путем генерации директивы #include. Установка этого типа связей показывает, что класс использует другой класс как параметр в одном из методов.

Generalization (обобщение)

Значок Generalization позволяет создать связь Generalization, для которой Rational Rose создает код наследования, то есть создается подкласс для соединенного этой связью класса, наследуемого из родительского класса.

Realize (выполнять)

Значок Realize позволяет создать связь Realize между классом и интерфейсом или между компонентом и интерфейсом. Этот тип связи используется для того, чтобы показать, что класс выполняет операции, предоставляемые интерфейсом.

Чтобы добавить пакеты к главной диаграмме классов, сделайте следующее:

  1. Дважды щелкните по пункту списка Main diagram (Главная диаграмма) в браузере, чтобы открыть диаграмму.

  2. Выберите нужный пакет в списке, щелкнув по нему мышью.

  3. Перетащите пакет на диаграмму.

  4. Аналогичным образом перетащите на диаграмму другие пакеты.

Главная диаграмма классов для системы регистрации показана на рис. 2.5.

Рис.2.5

Этапы создания главной диаграммы классов пакета в программе Rational Rose:

  1. Дважды щелкните по изображению пакета на диаграмме классов.

  2. Пакет откроется, и появится главная диаграмма классов.

  3. Выберите нужный класс в списке браузера и перетащите его на диаграмму с помощью мыши. Для отображения стереотипа класса на диаграмме можно воспользоваться командой меню Format => Stereotype display (Формат =>Показать стереотип).

  4. Повторите предыдущий шаг для других классов, которые вы хотите поместить на диаграмму.

Главная диаграмма классов для пакета Объекты университета изображена на рис. 2.6. Заметьте, что класс учебный курс (CourseOffenng) на ней отсутствует. Это класс реализации в пакете, и мы не будем показывать его на главной диаграмме. По мере добавления пакетов и классов в модель могут быть созданы дополнительные диаграммы.

Рис.2.6

Настройка признака отображения принадлежности класса пакету по умолчанию:

1. Выберите команду меню Tools => Options (Сервис => Параметры).

2. Щелкните по вкладке Diagram (Диаграмма)

3. Установите флажок Show Visibility (Показать видимость) для отображения по умолчанию всех классов.

Установка видимости для выбранного класса:

  1. Щелкните правой кнопкой мыши по одному из классов на диаграмме

  2. В появившемся контекстно-зависимом меню выберите команду Options =>Show Visibility (Параметры => Показать видимость).

Диаграмма классов, отражающая видимость пакетов, показана на рис. 2.7.

Рис. 2.7