Моделирование структурных отношений на UML
Предметная область: «Цветы»
Диаграммы классов в UML
Основные элементы диаграммы классов
Отношения между объектами
Ассоциация
Ассоциация
Ассоциация с агрегированием
Класс-ассоциация
Зависимость
Обобщение / Наследование
Суперкласс и подкласс
Виды наследования
Моделирование обобщения (Г. Буч)
Пример моделирования обобщения
Пример моделирования обобщения
Применение диаграмм классов
Применение диаграмм классов (1)
Применение диаграмм классов (2)
Применение диаграмм классов (3)
Хорошая диаграмма классов
Резюме: рассмотренные вопросы
898.25K
Категория: ПрограммированиеПрограммирование

Моделирование структурных отношений на UML

1. Моделирование структурных отношений на UML

1.
2.
3.
4.
5.
6.
7.
Диаграмма классов
Структурные отношения между классами
Отношения ассоциации
Отношения агрегации/композиции
Отношения зависимости
Отношения обобщения (наследования)
Применение диаграмм классов
Преподаватель:
Ботов Дмитрий Сергеевич

2. Предметная область: «Цветы»

• Цветок
• Ромашка
• Роза
• Красная и желтая роза
• Лепесток
• Божья коровка
2

3. Диаграммы классов в UML

• Диаграммой классов (Class diagram) в UML называют
диаграмму, на которой показано множество классов,
интерфейсов и структурных отношений между ними.
• Диаграммы классов используются для моделирования
статического вида системы с точки зрения
проектирования.
3

4. Основные элементы диаграммы классов

• Классы
• Интерфейсы
• Отношения
4

5. Отношения между объектами

Отношения между объектами – общий термин, охватывающий
специфику логических связей между объектами различных
классов
Отношения
между
объектами
Зависимость
Простая
ассоциация
Ассоциация
Агрегация
Обобщение
Композиция
Структурные
Динамические
Реализация
5

6. Ассоциация

• Отношение между классами и их объектами, которые
имеют равноправное значение в предметной области
• Позволяет перемещаться от объектов одного класса к
объектам другого
• Навигация может быть однонаправленной
Человек
Пользователь
Работает
эксплуатирует
использует
Компания
Пароль
6

7. Ассоциация

• Каждый класс, который участвует в
ассоциации, играет в ней определенную
роль
• Ассоциацией может быть связано
некоторое множество объектов. Число
объектов, связанных через одну
ассоциацию называют кратностью
Человек
Компания
Работник
Человек
1..*
Работник
Работодатель
*
Компания
Работодатель
7

8. Ассоциация с агрегированием

Показывает отношение между объектами типа «часть-целое» («is a part of»)
Агрегация
(Простое агрегирование)
Компания
1
*
Сотрудник
подчиненные объекты могут
существовать независимо от
главного объекта
Композиция
(Композитное агрегирование)
Графическое
окно
1
*
Элемент
управления
время жизни подчиненных
объектов зависит от времени
жизни главных объектов
8

9. Класс-ассоциация

• Сама ассоциация может быть объектом некоторого
класса
• Может быть преобразована к некоторой системе с
тремя классами
Компания
*
1..*
работодатель
работник
Человек
Работа
Описание
Дата найма
Оклад
9

10. Зависимость

• Зависимость объектов возникает, когда реализация класса
одного объекта зависит от спецификаций операций класса
другого объекта
• Чаще всего зависимость проявляется, когда объекты одного
класса используются в качестве параметров методов
другого класса
Видеофильм
Кодек
Автор
Название
Поток
Версия
Декомпрессия(поток)
Воспроизвести(Кодек)
Воспроизвести(Кодек)
{ Кодек.Декомпрессия(поток) }
10

11. Обобщение / Наследование

Обобщение (Generalization) или
наследование (Inheritance) –
отношение в котором один класс
повторяет структуру и поведение
одного или нескольких классов
Моделирует связь типа «является»
(«is a») или «частное/общее»
Животное
+возраст : double
+Родиться() : void
+Умереть() : void
Млекопитающее
+ПитьМолоко() : void
Насекомое
+Ползать() : void
11

12. Суперкласс и подкласс

Название
суперкласса
Атрибуты
суперкласса
Операции
класса
Название
подкласса
Дополнительные
атрибуты
Дополнительные
операции
Суперкласс (superclass)
(общая сущность) — класс, структура и поведение
которого наследуются и который служит основой для
создания новых классов
Подкласс (subclass) (конкретное воплощение
общей сущности) —
класс, который создается на основе
суперкласса
Подкласс включает в себя:
• Все состояние и поведение родительского класса
• Собственное состояние и поведение (специализацию)
12

13. Виды наследования

Наследование может быть:
• Одиночным: подкласс
повторяет структуру и поведение
одного суперкласса
• Множественным: подкласс
повторяет структуру и поведение
нескольких суперклассов
13

14. Моделирование обобщения (Г. Буч)

1. Найдите общие атрибуты, операции и обязанности,
для двух или более классов из данной совокупности
2. Вынесите эти элементы в некоторый общий
суперкласс (если нужно создайте новый класс)
3. Отметьте в модели, что подклассы наследуются от
суперкласса, установив между ними отношения
обобщения
14

15. Пример моделирования обобщения

Height
Radius
Width
Прямоугольник
Окружность
X,Y,
Width, Height
X,Y,
Radius
15

16. Пример моделирования обобщения

Фигура
Прямоугольник
Окружность
X,Y
X,Y,
Radius
X,Y,
Width, Height
Прямоугольник
Окружность
Width, Height
Radius
16

17. Применение диаграмм классов

Диаграммы классов чаще всего применяются для
моделирования:
• словаря предметной области
• структуры отдельных модулей (подсистем), фрагментов
совместного взаимодействия (коопераций) классов
• логической схемы базы данных
• классов при прямом или обратном проектировании
17

18. Применение диаграмм классов (1)

• Моделирование структуры отдельных модулей (подсистем),
фрагментов совместного взаимодействия (коопераций)
Система
«Автономный робот»
Кооперация:
движение
по заданной траектории
18

19. Применение диаграмм классов (2)

• Проектирование логической схемы базы данных
19

20. Применение диаграмм классов (3)

• Прямое и обратное проектирование
Модель реализации
Реализация в программном коде
public abstract class EventHandler {
EventHandler successor;
private Integer currentEventID;
private String source;
EventHandler() {}
public void handleRequest() {}
}
20

21. Хорошая диаграмма классов

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

22. Резюме: рассмотренные вопросы

• Что такое диаграмма классов? Какие основные элементы
диаграммы отображаются при моделировании?
• Какие существуют разновидности структурных отношений
между классами?
• Чем характеризуется отношение ассоциации?
• В чем отличие композиции и агрегации?
• В чем суть отношения обобщения? Как соотносятся суперкласс
и подклассы? Как моделировать отношение обобщения?
• Как применяются диаграммы классов в моделировании?
• Как построить хорошую диаграмму классов?
22
English     Русский Правила