- •Построение и обсуждение uml-диаграмм. Содержание
- •Часть 1. Построение модели поведения в rational rose 3
- •Часть 2. Конструирование классов. 9
- •Часть 3. Диаграммы взаимодействия. 20
- •Часть 1. Построение модели поведения в rational rose при помощи диаграмм действий (activity).
- •1 Диаграммы действий
- •1.1 Назначение диаграмм действий.
- •2 Инструменты диаграммы activity
- •3 Создание диаграмм действий.
- •3.1 Действия
- •3.2 Переходы
- •3.3 Точки принятия решений (элементы выбора)
- •3.4 Линии синхронизации
- •3.5 Секции (зоны)
- •3.6 Начальное и конечное состояния (исходное и завершающеедействия).
- •Контрольные вопросы
- •Часть 2. Конструирование классов.
- •1 Создание классов.
- •1.1 Стереотипы и классы
- •1.2 Определение классов
- •Классы-сущности
- •Граничные классы
- •Управляющие классы
- •1.3 Документирование классов
- •2 Создание пакетов.
- •3 Объекты и классы в системе регистрации курсов
- •4 Диаграммы классов
- •4.1 Панель инструментов.
- •4.2 Контекстное меню класса
- •4.3 Спецификации класса
- •Вкладка сом
- •Контрольные вопросы.
- •Часть 3. Диаграммы взаимодействия.
- •1 Реализации вариантов использования
- •2 Создание реализации Вариантов использования.
- •3 Документирование сценариев
- •4 Диаграммы последовательностей действий
- •4.1 Строка инструментов диаграммы
- •4.2 Настройка времени жизни объекта
- •4.3 Создание диаграммы последовательности действий
- •4.4 Свойства сообщений
- •5 Диаграммы сотрудничества
- •6 Диаграмма последовательности действий для системы регистрации курсов
- •Контрольные вопросы
- •Часть 4. Отношения между классами. Определение отношений.
- •1 Ассоциативные отношения
- •2 Агрегационные отношения
- •2.1 Именование отношений
- •2.2 Мощность отношений
- •3 Возвратные отношения
- •Отношения в системе регистрации учебных курсов
- •4 Отношения между пакетами
- •Отношения между пакетами в системе регистрации учебных курсов
- •Контрольные вопросы:
- •Часть 5. Представление поведения и структуры классов.
- •1. Поведение и структура класса.
- •2. Создание операций
- •Документирование операций
- •Отношения и сигнатуры операций
- •Создание атрибутов
- •Документирование атрибутов
- •Отображение атрибутов и операций
- •Ассоциативные классы
- •Часть 6. Понятие наследования.
- •1 Обобщение
- •2 Специализация
- •3 Иерархии наследования.
- •5 Единичное и множественное наследование
- •6 Наследование и агрегация
- •Часть 7. Диаграмма состояний.
- •1 Диаграмма состояний
- •2 Состояния
- •3 Переходы между состояниями
- •4 Особые состояния
- •5 Параметры переходов
- •6 Параметры состояний
- •Часть 8. Проектирование архитектуры системы.
- •1 Пять уровней архитектуры
- •2 Логический уровень
- •2.1 Ключевые механизмы для задачи регистрации учебных курсов
- •3 Уровень реализации
- •3.1 Программные компоненты
- •3.2 Программные компоненты в задаче регистрации учебных курсов
- •4 Уровень выполнения.
- •5 Уровень промышленного внедрения
- •5.1 Диаграмма размещения для системы регистрации учебных курсов
- •6 Уровень вариантов использования
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 между классом и интерфейсом или между компонентом и интерфейсом. Этот тип связи используется для того, чтобы показать, что класс выполняет операции, предоставляемые интерфейсом.
Чтобы добавить пакеты к главной диаграмме классов, сделайте следующее:
Дважды щелкните по пункту списка Main diagram (Главная диаграмма) в браузере, чтобы открыть диаграмму.
Выберите нужный пакет в списке, щелкнув по нему мышью.
Перетащите пакет на диаграмму.
Аналогичным образом перетащите на диаграмму другие пакеты.
Главная диаграмма классов для системы регистрации показана на рис. 2.5.
Рис.2.5
Этапы создания главной диаграммы классов пакета в программе Rational Rose:
Дважды щелкните по изображению пакета на диаграмме классов.
Пакет откроется, и появится главная диаграмма классов.
Выберите нужный класс в списке браузера и перетащите его на диаграмму с помощью мыши. Для отображения стереотипа класса на диаграмме можно воспользоваться командой меню Format => Stereotype display (Формат =>Показать стереотип).
Повторите предыдущий шаг для других классов, которые вы хотите поместить на диаграмму.
Главная диаграмма классов для пакета Объекты университета изображена на рис. 2.6. Заметьте, что класс учебный курс (CourseOffenng) на ней отсутствует. Это класс реализации в пакете, и мы не будем показывать его на главной диаграмме. По мере добавления пакетов и классов в модель могут быть созданы дополнительные диаграммы.
Рис.2.6
Настройка признака отображения принадлежности класса пакету по умолчанию:
1. Выберите команду меню Tools => Options (Сервис => Параметры).
2. Щелкните по вкладке Diagram (Диаграмма)
3. Установите флажок Show Visibility (Показать видимость) для отображения по умолчанию всех классов.
Установка видимости для выбранного класса:
Щелкните правой кнопкой мыши по одному из классов на диаграмме
В появившемся контекстно-зависимом меню выберите команду Options =>Show Visibility (Параметры => Показать видимость).
Диаграмма классов, отражающая видимость пакетов, показана на рис. 2.7.
Рис. 2.7