Диаграмма классов
Цель презентации
Применение языка UML при разработке информационных систем
Диаграмма классов
Диаграмма классов
Диаграмма классов
Классы
Классы
Классы
Классы
Классы
Отношения
Отношения
Отношения
Отношения
Отношения
Отношения
Отношения
Интерфейсы
Интерфейсы
Интерфейсы
Кооперации
Примеры
Примеры
Дополнительные источники информации
Диаграмма классов
623.58K

Диаграмма классов. Применение языка UML при разработке информационных систем

1. Диаграмма классов

Delivering Excellence in Software Engineering
Диаграмма классов
Общие сведения
® 2008. EPAM Systems. All rights
reserved.

2. Цель презентации

Дать общие представления о диаграмме классов в нотации UML
2
® 2008. EPAM Systems. All rights reserved.

3. Применение языка UML при разработке информационных систем

Курс включает в себя следующие презентации:
• UML.
Введение
• Диаграмма вариантов использования
• Диаграмма деятельности
• Диаграмма последовательности
• Диаграмма классов
• Диаграмма состояний
3
® 2008. EPAM Systems. All rights reserved.

4.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
4

5.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
5

6. Диаграмма классов

При проектировании системы информационная составляющая
предметной области представляется в виде логической модели
уровня сущностей (логическая модель)
Логическая модель описывает
сущности (объекты данных)
автоматизируемой предметной области и связи между ними
В
унифицированном
языке
моделирования
представления
логической
модели
можно
диаграмму классов
(UML)
для
использовать
Диаграмма классов (class diagram) - это диаграмма, на которой
показано множество классов, интерфейсов, коопераций и
отношений между ними. Ее изображают в виде множества
вершин и дуг
6
® 2008. EPAM Systems. All rights reserved.

7. Диаграмма классов

Назначение диаграммы классов
• Диаграмма классов служит для представления статической
структуры модели системы
• Диаграмма классов может отражать различные взаимосвязи
между отдельными сущностями предметной области, такими
как объекты и подсистемы, а также описывает их внутреннюю
структуру и типы отношений
Особенности диаграммы классов
• На диаграмме классов не указывается информация
временных аспектах функционирования системы
7
® 2008. EPAM Systems. All rights reserved.
о

8. Диаграмма классов

Диаграммы классов могут содержать
• Классы
• Отношения
• Интерфейсы
• Кооперации
8
® 2008. EPAM Systems. All rights reserved.

9.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
9

10. Классы

Атрибуты класса
Классы
Класс (class) служит для обозначения множества объектов, которые обладают одинаковой
структурой, поведением и отношениями с объектами из других классов. Графически класс
изображается в виде прямоугольника, который дополнительно может быть разделен
горизонтальными линиями на разделы или секции. В этих разделах могут указываться имя
класса, атрибуты (переменные) и операции
Имя класса (методы).
class cls 01
Круг
Круг
-
10
® 2008. EPAM Systems. All rights reserved.
цент р
радиус
заливка
Круг
-
цент р
радиус
заливка
+
+
+
+
переместить()
увеличить()
скрыть()
показать()

11. Классы

Имя класса
• Имя класса должно быть уникальным в пределах пакета, который
описывается некоторой совокупностью диаграмм классов (возможно,
одной диаграммой). Имя класса указывается в верхней секции
прямоугольника полужирным шрифтом и должно начинаться с
прописной буквы.
• Абстрактный класс – это класс, который не может иметь экземпляров
(объектов). Для обозначения его имени используется наклонный шрифт.
11
® 2008. EPAM Systems. All rights reserved.

12. Классы

Атрибуты класса
Атрибут - это именованное свойство класса, общее для всех его
объектов, включающее описание множества значений, которые могут
принимать экземпляры этого свойства
class cls 02
Custome r
-
name
address
phon e
Wall
-
height: double
width: double
thickness: double
isLoadBearing: boolean = true
• Класс
может
иметь
любое
атрибутов или не иметь их вовсе
число
• Атрибут является абстракцией данных
объекта или его состояния
• В каждый момент времени любой атрибут объекта, принадлежащего данному
классу, обладает вполне определенным значением
• Атрибуты представлены в разделе, который расположен под именем класса
При описании атрибута можно явным образом указывать его тип и значение,
принимаемое по умолчанию
12
® 2008. EPAM Systems. All rights reserved.

13. Классы

Операции класса
Операция – это реализация услуги, которую можно запросить у любого
объекта класса для воздействия на поведение. Операция - это абстракция
того, что может делать объект.
class cls 03
Rectangl e
+
+
+
move()
expand()
isEmpty()
Sensor
+
+
+
reset() : void
setAlarm(double) : void
getValue() : double
• У всех объектов класса имеется общий
набор операций
• Класс может содержать любое число
операций или не содержать их вовсе
• Как правило (хотя не всегда) обращение к операции объекта изменяет его
состояние или его данные
• Операции класса изображаются в разделе, расположенном ниже раздела с
атрибутами. При этом можно ограничиться только именами.
13
® 2008. EPAM Systems. All rights reserved.

14. Классы

Советы
Изображая класс в UML, придерживайтесь следующих правил:
• показывайте только те свойства класса, которые важны для понимания
абстракции в данном контексте
• разделяйте длинные списки атрибутов и операций на группы в
соответствии с их категориями
• показывайте взаимосвязанные классы на одной и той же диаграмме
14
® 2008. EPAM Systems. All rights reserved.

15.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
15

16. Отношения

Отношения между классами
Помимо внутреннего устройства классов на диаграмме классов
указываются различные отношения (связи) между ними. Совокупность
типов отношений фиксирована.
Базовые отношениями в языке UML:
• Отношение зависимости (dependency relationship)
• Отношение ассоциации (association relationship)
• Отношение обобщения (generalization relationship)
16
® 2008. EPAM Systems. All rights reserved.

17. Отношения

Отношение зависимости
Зависимость (dependency) - отношение использования, согласно которому изменение в
спецификации одного элемента может повлиять на другой элемент, его использующий, причем
обратное не обязательно.
Графически зависимость изображается пунктирной линией со стрелкой, направленной от
зависимого элемента на тот, от которого он зависит.
class cls 04
Client
17
® 2008. EPAM Systems. All rights reserved.
Orde r

18. Отношения

Отношение ассоциации
Ассоциация (association) - структурное отношение, показывающее, что объекты одного типа
неким образом связаны с объектами другого типа.
Ассоциация, связывающая два класса, называется бинарной. Можно создавать ассоциации,
связывающие сразу несколько классов; они называются n-арными.
У ассоциаций могут быть: имя, роль, кратность и агрегирование.
class cls 05
Person
Person
+Employee
1.. *
work on
+Employer
Company
18
® 2008. EPAM Systems. All rights reserved.
*
Compan y

19. Отношения

Отношение ассоциации
class cls 06
work on
Имя описывает природу отношения. Чтобы избежать
возможных двусмысленностей в понимании имени,
указывается направление, в котором оно должно
читаться.
+Employee
Роль – это «лицо», которым класс, находящийся на
одной стороне ассоциации, обращен к классу с
другой ее стороны. Один класс может играть в
разных ассоциациях как одну и ту же роль, так и
различные.
Person
Company
class cls 07
Person
+Employer
class cls 08
Person
Company
1.. *
19
*
® 2008. EPAM Systems. All rights reserved.
Compan y
Кратность - количество объектов, которое может быть
связано посредством одного экземпляра ассоциации.
Кратность записывается либо как выражение, значением
которого является диапазон значений, либо в явном виде.
Кратность можно задать равной единице (1), можно
указать диапазон: «ноль или единица» (0..1), «много»
(0..*), «единица или больше» (1..*), «любое число
объектов, кроме 2 и 5» (0 . . 1, 3..4, 6..*).

20. Отношения

Отношение ассоциации
Агрегирование (aggregation) показывает отношение типа «часть/целое», в котором один
класс состоит из нескольких меньших классов
class cls 09
Team
Person
1
*
Композиция (composition) служит для выделения специальной формы отношения
«часть/целое». Специфика связи заключается в том, что части не могут выступать в отрыве
от целого, то есть с уничтожением целого уничтожаются и все его составные части.
class cls 10
Building
Room
1
20
® 2008. EPAM Systems. All rights reserved.
*

21. Отношения

Отношение обобщения
Обобщение (generalization) - это отношение между общей сущностью (суперклассом, или
родителем) и ее конкретным воплощением (подклассом, или потомком).
Данное отношение описывает иерархию классов и наследование их свойств и поведения.
Предполагается, что класс-потомок обладает всеми свойствами и поведением класса-предка,
а также имеет свои собственные свойства и поведение, которые отсутствуют у класса-предка.
class cls 11
Актив
Банковский счет
Чековы й сче т
21
® 2008. EPAM Systems. All rights reserved.
Недвижимо сть
Сберега тельный
сче т
Ценная бумага
Акция
Облигация

22. Отношения

Советы
При моделировании отношений в UML соблюдайте следующие правила:
• используйте зависимость, только если моделируемое отношение не
является структурным
• используйте обобщение, только если имеет место отношение типа
«является»
• избегайте множественного наследования
• иерархия наследования не должна быть ни слишком глубокой
(желательно не более пяти уровней), ни слишком широкой
• применяйте ассоциации прежде всего там, где между объектами
существуют структурные отношения
22
® 2008. EPAM Systems. All rights reserved.

23.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
23

24. Интерфейсы

Интерфейс (interface) - набор операций, используемый для специфицирования услуг,
предоставляемых классом или компонентом.
Интерфейс должен иметь уникальное имя.
Интерфейс может включать любое число операций.
class cls 12
«interface»
IEmployee
+
+
getHistory()
getCompensation()
Особенности
• Интерфейсы не содержат атрибутов
• Интерфейсы не содержат реализующих операции методов
IEmployee
class cls 13
«interface»
IEmployee
Employee
+
+
getHistory()
getCompensation()
+
+
getHistory()
getCompensation()
Employee
+
+
24
getHisory()
getCompensation()
IEmployee
® 2008. EPAM Systems. All rights reserved.
Интерфейс специфицирует контракт класса, но не
накладывает
никаких
ограничений
на
свою
реализацию.
Связь интерфейса с реализующим его элементом
можно графически представить двумя способами:
• интерфейс представляют в виде стереотипного
класса и связывают его с классом отношением
реализации. Отношение реализации объединяет
отношения обобщения и зависимости
• отношение между интерфейсом и его реализацией
изображается кружочком с одной стороны класса.

25. Интерфейсы

Интерфейсы могут принимать участие в отношениях обобщения, ассоциации и зависимости.
Интерфейс представляет собой стыковочный узел в системе. Он определяет условия
контракта, после чего обе стороны - клиент и поставщик - могут действовать независимо друг
от друга, полностью полагаясь на взаимные обязательства.
class cls 14
TemperatureSensor
+
getValue()
ISensor
10
1
Dev ice
Observ er
+
25
® 2008. EPAM Systems. All rights reserved.
scan()

26. Интерфейсы

Советы
Изображая интерфейс на языке UML, руководствуйтесь приведенными
ниже правилами:
• используйте сокращенную нотацию, если надо просто показать
наличие стыковочного узла в системе
• используйте форму, если надо визуализировать детали самого сервиса
26
® 2008. EPAM Systems. All rights reserved.

27.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
27

28. Кооперации

Кооперация (collaboration) - это сообщество классов, интерфейсов и других элементов,
которые работают совместно для обеспечения кооперативного поведения, более значимого,
чем сумма его составляющих.
class System
А гент траектории
Датчик
столкновений
1
*
Привод
1
1
1
1
Мотор
поворотного
мех анизма
Главный мотор
Мотор
28
® 2008. EPAM Systems. All rights reserved.

29.

1
Диаграмма
Диаграмма классов
классов
2
Классы
Классы
3
Отношения
Отношения
4
Интерфейсы
Интерфейсы
5
Кооперации
Кооперации
6
Примеры
Примеры
® 2008. EPAM Systems. All rights reserved.
29

30. Примеры

class cls 15
Colledge
-
name
address
phon e
+
+
attestInst ruct ors()
attestSt udents() : v oid
Faculty
-
name
+
+
+
+
addInstructor()
removeInstructor()
getInstructor()
getAllInstructor()
0..1
include
1
1.. *
rule
1.. *
work on
1.. *
1.. *
studied at
*
1.. *
Student
-
30
id
name
® 2008. EPAM Systems. All rights reserved.
Cours e
visit
*
*
-
id
name
1.. *
+dean 1
Instructo r

31. Примеры

class cls 16
Зака з
Позиция заказ а
-
количес тво: int
*
включает
1.. *
1
-
номер: I D
дата заказа: Dat e
дата оплаты: Date
+
с умма() : double
д елает
*
1
-
имя: String
адрес: Адрес
+
оплатить()
*
входит в
работает с
1
Физическое лицо
Товар
-
Клиент
название: String
цена: double
+
0..1
оплатить()
Сотру дник
31
® 2008. EPAM Systems. All rights reserved.
-
имя: String
+
+
+
принять заказ()
проверить оплату()
выполнить()
Юридическое
лицо
формирует отчет
0..1
*
+
оплатить()

32. Дополнительные источники информации

Web-cайты
UML® Resource Page
www.uml.org
UML Tutorial
http://www.sparxsystems.com.au/uml-tutorial.html
UML 2.1 Tutorial
http://www.sparxsystems.com.au/resources/uml2_tutorial/
Книги
Г. Буч, Д. Рамбо, А. Джекобсон “Язык UML Руководство пользователя”
Леоненков А. “Самоучитель UML”
Martin Fowler “UML Distilled: A Brief Guide to the Standard Object Modeling
Language”
32
® 2008. EPAM Systems. All rights reserved.

33. Диаграмма классов

Delivering Excellence in Software Engineering
Диаграмма классов
For more information, please contact:
Sergey Kalinov
Software Engineering Team Leader
EPAM Systems, Inc.
Ryazan, Russia (GMT+3)
Phone: +7 920 635 02 13
Email: [email protected]
http://www.epam.com
® 2008. EPAM Systems. All rights
reserved.
English     Русский Правила