Похожие презентации:
9лекция диаграммы классов
1.
Диаграммы UML для логическогоДиаграммы классов
(class diagrams)
2.
Диаграмма классов – это логическаямодель системы, отражающая статические
аспекты структурного построения системы.
3.
Назначение диаграмм классовДиаграмма классов (class diagram) служит для
представления статической структуры модели
системы в терминологии классов объектно –
ориентированного программирования.
4.
Назначение диаграмм классовДиаграмма классов может отражать различные
взаимосвязи между отдельными сущностями
предметной области, такими как объекты и
подсистемы, а также описывает их внутреннюю
структуру и типы отношений.
5.
Компоненты диаграммы классовДиаграмма классов состоит из множества
элементов, которые в совокупности отражают
декларативные знания о предметной области.
Эти знания интерпретируются в базовых понятиях
языка UML, таких как классы, интерфейсы и
отношения между ними и их составляющими
компонентами.
6.
Определение класса как элементадиаграммы классов
Класс (class) в языке UML – это абстрактное
описание или и представление множества
объектов, которые обладают одинаковой
структурой, поведением и отношениями с
объектами из других классов.
7.
Изображение класса на диаграммеклассов
Графически класс изображается в виде
прямоугольника, который дополнительно может
быть разделен горизонтальными линиями на
разделы или секции. В этих разделах могут
указываться имя класса, атрибуты (переменные) и
операции (методы).
8.
Изображение класса на диаграммеклассов
Прямоугольник, изображающий класс, называется
классификатором. Диаграмма классов
представляет собой некоторый граф, вершинами
которого являются элементы типа "классификатор",
которые связаны различными типами структурных
отношений. Диаграмма классов может также
содержать интерфейсы, пакеты, отношения и даже
отдельные экземпляры, такие как объекты и связи.
9.
Способы отображения класса надиаграмме классов
10.
Имя классаИмя класса должно быть уникальным в пределах
пакета, который описывается некоторой
совокупностью диаграмм классов (возможно, одной
диаграммой). Оно указывается в первой верхней
секции прямоугольника.
Рекомендуется в качестве имен классов
использовать существительные, записанные по
практическим соображениям без пробелов.
11.
Атрибут классаВо второй сверху секции прямоугольника класса
записываются его атрибуты (attributes) или
свойства. В языке UML принята определенная
стандартизация записи атрибутов класса, которая
подчиняется некоторым синтаксическим правилам.
12.
Атрибут классаКаждому атрибуту класса соответствует отдельная
строка текста, которая состоит из квантора
видимости атрибута, имени атрибута, его
кратности, типа значений атрибута и, возможно, его
исходного значения:
<квантор видимости> <имя атрибута> [кратность]:
<тип атрибута> = <исходное значение>
{строка-свойство}
13.
Значения квантора видимостиатрибута класса
Символ "+" обозначает атрибут с областью
видимости типа общедоступный (public). Атрибут с
этой областью видимости доступен или виден из
любого другого класса пакета, в котором
определена диаграмма.
14.
Значения квантора видимостиатрибута класса
Символ "#" обозначает атрибут с областью
видимости типа защищенный (protected). Атрибут с
этой областью видимости недоступен или невиден
для всех классов, за исключением подклассов
данного класса.
15.
Значения квантора видимостиатрибута класса
Символ "-" обозначает атрибут с областью
видимости типа закрытый (private).
Атрибут с этой областью видимости
недоступен или невиден для всех классов
без исключения.
16.
Значения квантора видимостиатрибута класса
Символ «~» обозначает атрибут с областью
видимости типа пакет (package). Атрибут с этой
областью видимости доступен в пределах пакета.
Пакет- это способ организации элементов модели в
UML.
17.
Имя атрибутаИмя атрибута – это строка текста, которая
используется в качестве идентификатора
соответствующего атрибута и поэтому должна быть
уникальной в пределах данного класса.
Имя атрибута – единственный обязательный
элемент синтаксического обозначения атрибута.
18.
Кратность(multiplcity)Кратность атрибута характеризует общее
количество конкретных атрибутов данного типа,
входящих в состав отдельного класса. В общем
случае кратность записывается в форме строки
текста в квадратных скобках после имени
соответствующего атрибута:
[нижняя_граница1 .. верхняя_граница1,
нижняя_граница2.. верхняя_граница2, ...,
нuжняя_гpaнuцak .. верхняя_границаk],
19.
КратностьНижняя_граница и верхняя_граница являются
положительными целыми числами, каждая пара
которых служит для обозначения отдельного
замкнутого интервала целых чисел, у которого
нижняя (верхняя) граница равна значению
нижняя_граница (верхняя_граница).
20.
Примеры задания кратности[0..1] означает, что кратность атрибута
может принимать значение О или 1. При
этом 0 означает отсутствие значения для
данного атрибута.
[0..*] означает, что кратность атрибута
может принимать любое положительное
целое значение большее или равное 0.
Эта кратность может быть записана
короче в виде простого символа - [*].
21.
Примеры задания кратности[1.:*] означает, что кратность атрибута
может принимать любое положительное
целое значение большее или равное 1;
[1..5] означает, что кратность атрибута
может принимать любое значение из
чисел: 1, 2, 3, 4, 5.
22.
Примеры задания кратности[1..3,5,7] означает, что кратность атрибута может
принимать любое значение из чисел: 1, 2, 3, 5, 7.
[1..3,7.. 10] означает, что кратность атрибута
может принимать любое значение из чисел: 1, 2,
3, 7, 8, 9, 10.
[1..3,7..*] означает, что кратность атрибута может
принимать любое значение из чисел: 1, 2, 3, а
также любое положительное целое значение
большее или равное 7.
23.
Тип атрибутаТип атрибута представляет собой выражение,
семантика которого определяется языком
спецификации соответствующей модели.
В нотации UML тип атрибута иногда определяется в
зависимости от языка программирования, который
предполагается использовать для реализации
данной модели.
24.
Пример задания типа атрибутаимя_сотрудника [1..2] : string – здесь
имя_сотрудника является именем атрибута,
который служит для представления информации об
имени, а возможно, и отчестве конкретного
сотрудника.
Тип атрибута string (Строка) как раз и указывает на
тот факт, что отдельное значение имени
представляет собой строку текста из одного
или двух слов (например, "Кирилл" или "Дмитрий
Иванович").
25.
Исходное значение атрибутаИсходное значение служит для задания некоторого
начального значения для соответствующего
атрибута в момент создания отдельного
экземпляра класса.
26.
Строка – свойство атрибутаСтрока-свойство служит для указания значений
атрибута, которые не могут быть изменены в
программе при работе с данным типом объектов.
Фигурные скобки как раз и обозначают
фиксированное значение соответствующего
атрибута для класса в целом, которое должны
принимать все вновь создаваемые экземпляры
класса без исключения.
27.
Операции классаОперация (operation) представляет собой
некоторый сервис, предоставляющий каждый
экземпляр класса по определенному требованию.
Совокупность операций характеризует
функциональный аспект поведения класса. Запись
операций класса в языке UML стандартизована и
подчиняется определенным синтаксическим
правилам.
28.
Операции классаПри этом каждой операции класса соответствует
отдельная строка, которая состоит из квантора
видимости операции, имени операции, выражения
типа возвращаемого операцией значения и строка
свойство данной операции:
<квантор видимости> <имя операции> (список
параметров): <выражение типа возвращаемого
значения> {строка-свойство}
29.
Квантор видимости операцииКвантор видимости, как и в случае
атрибутов класса, может принимать одно из
трех возможных значений и,
соответственно, отображается при помощи
специального символа.
30.
Квантор видимости операцииСимвол "+" обозначает операцию с
областью видимости типа общедоступный
(public).
Символ "#" обозначает операцию с областью
видимости типа защищенный (protected).
Символ "-" используется для обозначения операции
с областью видимости типа закрытый (private).
31.
Имя операцииИмя операции представляет собой строку
текста, которая используется в качестве
идентификатора соответствующей операции
и поэтому должна быть уникальной в
пределах данного класса.
Имя операции является единственным
обязательным элементом синтаксического
обозначения операции.
32.
Список параметров операцииСписок параметров является перечнем
разделенных запятой формальных параметров,
каждый из которых может быть представлен в
следующем виде:
<вид параметра><имя параметра>:<выражение
типа>=<значение параметра по умолчанию>.
33.
Список параметров операцииЗдесь вид параметра - есть одно из ключевых слов
in, out или inout со значением in по умолчанию, в
случае если вид параметра не указывается. Имя
параметра есть идентификатор соответствующего
формального параметра.
34.
Выражение типа возвращаемогозначения
Выражение типа возвращаемого значения также
является зависимой от языка реализации
спецификацией типа или типов значений
параметров, которые возвращаются объектом
после выполнения соответствующей операции.
Двоеточие и выражение типа возвращаемого
значения могут быть опущены, если операция не
возвращает никакого значения.
35.
Строка – свойство операцииСтрока-свойство служит для указания значений
свойств, которые могут быть применены к данному
элементу. Строка-свойство не является
обязательной, она может отсутствовать, если
никакие свойства не специфицированы.
36.
Выполнение операцийДля повышения производительности системы одни
операции могут выполняться параллельно или
одновременно, а другие - только последовательно.
37.
Указание режима выполнениеопераций
В этом случае для указания параллельности
выполнения операции используется строка
свойство вида "{concurrency = режим}" .
38.
Указание режима выполнениеопераций
Свойство concurency принимает следующие
значения:
последовательная (sequential) - для данной
операции необходимо обеспечить ее
единственное выполнение в системе,
одновременное выполнение других операций
может привести к ошибкам или нарушениям
целостности объектов класса.
39.
Указание режима выполнениеопераций
параллельная (concurrent) - данная операция в силу
своих особенностей может выполняться
параллельно с другими операциями в системе,
при этом параллельность должна
поддерживаться на уровне реализации модели.
40.
Указание режима выполнениеопераций
охраняемая (guarded) - все обращения к данной
операции должны быть строго упорядочены во
времени с целью сохранения целостности
объектов данного класса, при этом могут быть
приняты дополнительные меры по контролю
исключительных ситуаций на этапе ее
выполнения.
41.
Примеры классовЗаказ
+датаполучения
+проплачен
+номер: строка
+цена: деньги
+отправить()
+закрыть()
КлиентБанка
+имя
+адрес
+кредитныйрейтинг(): строка
42.
Отношения между классамиОтношение ассоциации (association relationship)
Отношение обобщения (generalization relationship)
Отношение реализации (realization relationship)
Отношение зависимости (dependency relationship)
43.
Отношение ассоциацииОтношение ассоциации соответствует наличию
некоторого отношения между классами. Данное
отношение обозначается сплошной линией с
дополнительными специальными символами,
которые характеризуют отдельные свойства
конкретной ассоциации.
44.
Бинарная ассоциацияБинарная ассоциация связывает в точности два
класса и, как исключение, может связывать класс с
самим собой. Бинарная ассоциация может быть
направленной и ненаправленной.
Ненаправленная ассоциация изображается линией
без стрелки. На ней может быть указан
необязательный значок указания порядка чтения
классов ►.
45.
Пример ненаправленной бинарнойассоциации
Работает
Сотрудник
1..*
Компания
1
46.
Пример направленной бинарнойассоциации
Содержит
Многоугольник
1
Сторона
3..*
47.
N-арная ассоциацияN-арная ассоциация связывает 3 и более классов.
Рассмотрим пример тернарной ассоциации.
Футбольная
команда
2
Год
*
*
Игра
48.
Отношение обобщенияОтношение обобщения – это отношение между
более общим элементом (родителем или предком)
и более частным или специальным элементом
(дочерним или потомком).
Данное отношение может использоваться для
представления взаимосвязей между пакетами,
классами, вариантами использования и другими
элементами языка UML.
49.
Отношение обобщенияНа диаграммах отношение обобщения
обозначается сплошной линией с треугольной
стрелкой на одном из концов. Стрелка указывает на
более общий класс (класс-предок или суперкласс).
50.
Изображение отношения обобщенияна диаграмме классов
Класс-родитель
Класс-потомок
51.
Пример отношения обобщенияГеометрическая фигура
Прямоугольник
Круг
Треугольник
52.
Ограничения отношения обобщения{complete} - означает, что в данном
отношении обобщения специфицированы
все классы-потомки, и других классовпотомков у данного класса-предка быть не
может.
53.
Пример ограничения отношенияобобщения
Пример - класс Клиент_банка является
предком для двух классов: Физическое_лицо
и Компания, и других классов-потомков он
не имеет. На соответствующей диаграмме
классов это можно указать явно, записав
рядом с линией обобщения данную строку
ограничение;
54.
Ограничения отношения обобщения{disjoint} - означает, что классы-потомки не
могут содержать объектов, одновременно
являющихся экземплярами двух или
более классов.
55.
Ограничения отношения обобщенияВ приведенном выше примере это условие также
выполняется, поскольку предполагается, что
никакое конкретное физическое лицо не может
являться одновременно и конкретной компанией.
В этом случае рядом с линией обобщения можно
записать данную строку-ограничение;
56.
Ограничения отношения обобщения{incomplete} - означает случай, противоположный
первому. А именно, предполагается, что на
диаграмме указаны не все классы-потомки. В
последующем возможно восполнить их перечень
не изменяя уже построенную диаграмму.
57.
Ограничения отношения обобщенияПример - диаграмма класса "Автомобиль", для
которой указание всех без исключения моделей
автомобилей соизмеримо с созданием
соответствующего каталога. С другой стороны,
для отдельной задачи, такой как разработка
системы продажи автомобилей конкретных
моделей, в этом нет необходимости. Но указать
неполноту структуры классов-потомков все же
следует;
58.
Ограничения отношения обобщения{overlapping} - означает, что отдельные
экземпляры классов-потомков могут
принадлежать одновременно нескольким
классам.
59.
Ограничения отношения обобщенияПример - класс "Многоугольник" является
классом-предком для класса
"Прямоугольник" и класса "Ромб". Однако
существует отдельный класс "Квадрат",
экземпляры которого одновременно
являются объектами первых двух классов.
Вполне естественно такую ситуацию
указать явно с помощью данной строкиограничения.
60.
Отношение агрегацииОтношение агрегации имеет место между
несколькими классами в том случае, если один из
классов представляет собой некоторую сущность,
включающую в себя в качестве составных частей
другие сущности и называется контейнером.
Данное отношение имеет фундаментальное
значение для описания структуры сложных систем,
поскольку применяется для представления
системных взаимосвязей типа "часть-целое".
61.
Отношение агрегацииРаскрывая внутреннюю структуру системы,
отношение агрегации показывает, из каких
компонентов состоит систем и как они связаны
между собой.
С точки зрения модели отдельные части системы
могут выступать как в виде элементов, так и в виде
подсистем, которые, в свою очередь, тоже могут
образовывать составные компоненты или
подсистемы.
62.
Отношение агрегацииЭто отношение по своей сути описывает
декомпозицию или разбиение сложной системы на
более простые составные части.
Графически отношение агрегации изображается
сплошной линией, один из концов которой
представляет собой незакрашенный внутри ромб.
Этот ромб указывает на класс-контейнер, который
представляет собой "целое". Остальные классы
являются его "частями".
63.
Изображение отношения агрегацииКласс-контейнер
Класс-часть
64.
Пример отношения агрегацииПерсональный
компьютер
Системный
блок
Монитор
Клавиатура
Мышь
65.
Отношение композицииОтношение композиции – это частный случай
отношения агрегации. Это отношение служит для
выделения специальной формы отношения "часть
целое", при которой составляющие части в
некотором смысле находятся внутри целого.
Специфика взаимосвязи между ними заключается в
том, что части не могут выступать в отрыве от
целого, т. е. с уничтожением целого уничтожаются и
все его составные части.
66.
Изображение отношениякомпозиции
Класс-композит
Класс-часть
67.
Пример отношения композицииОкно приложения
1
Заголовок
1
1
2
Полоса
прокрутки
1
1
1
Рабочая
область
1
Главное
мню
68.
Отношение зависимостиОтношение зависимости в общем случае указывает
некоторое семантическое отношение между двумя
элементами модели или двумя множествами таких
элементов, которое не является отношением
ассоциации, обобщения или реализации.
69.
Отношение зависимостиОно касается только самих элементов модели и не
требует множества отдельных примеров для
пояснения своего смысла. Отношение зависимости
используется в такой ситуации, когда некоторое
изменение одного элемента модели может
потребовать изменения другого зависимого от него
элемента модели.
70.
Изображение отношениязависимости
Отношение зависимости графически изображается
пунктирной линией между соответствующими
элементами со стрелкой на одном из ее концов (">”
или "<-"). На диаграмме классов данное отношение
связывает отдельные классы между собой, при
этом стрелка направлена от класса-клиента
зависимости к независимому классу или классу
источнику.
71.
Изображение отношениязависимости
<<access>>
Класс А
Источник
Класс В
Зависимый класс
72.
Стандартные зависимости"access" - служит для обозначения доступности
открытых атрибутов и операций класса-источника
для классов-клиентов;
"bind" - класс-клиент может использовать
некоторый шаблон для своей последующей
параметризации;
"derive" - атрибуты класса-клиента могут быть
вычислены по атрибутам класса-источника;
73.
Стандартные зависимости"import" - открытые атрибуты и операции классаисточника становятся частью класса-клиента, как
если бы они были объявлены непосредственно в
нем;
"refine" - указывает, что класс-клиент служит
уточнением класса-источника в силу причин
исторического характера, когда появляется
дополнительная информация в ходе работы над
проектом.
74.
ИнтерфейсыИнтерфейс (interface) служит для
спецификации параметров модели, которые
видимы извне без указания их внутренней
структуры. В языке UML интерфейс
является классификатором и характеризует
только ограниченную часть поведения
моделируемой сущности
75.
ИнтерфейсыПри построении диаграммы классов
отдельные интерфейсы могут уточняться и
в этом случае для их изображения
используется специальный графический символ –
прямоугольник класса с ключевым словом или
стереотипом "interface".
При этом секция атрибутов у прямоугольника
отсутствует, а указывается только секция операций.
76.
Изображение интерфейса на диаграммеклассов
<<interface>>
ДатчикТемпературы
+ЗначениеТемпературы()
77.
Вставка интерфейса в диаграммуВставка осуществляется с помощью значка
«интерфейс» в формате Stereotype interface
– Textual.
78.
ОбъектыОбъект (object) является отдельным
экземпляром класса, который создается на
этапе выполнения программы. Он имеет
свое собственное имя и конкретные
значения атрибутов.
79.
ОбъектыДля графического изображения объектов
используется такой же символ прямоугольника, что
и для классов.
При этом запись имени объекта представляет
собой строку текста "имя объекта: имя класса",
разделенную двоеточием.
80.
ОбъектыИмя объекта может отсутствовать, в этом случае
предполагается, что объект является анонимным, и
двоеточие указывает на данное обстоятельство.
Отсутствовать может и имя класса. Тогда
указывается просто имя объекта. Атрибуты
объектов принимают конкретные значения.
81.
Примеры объектовквадрат : Прямоугольник
квадрат : Прямоугольник
вершина = (1,10)
сторона
цвет_границы
цвет_заливки
82.
Пример диаграммы классов< < bounda ry > >
У с т р о йс т в о Ч т е н ия
< < inte rfa ce > >
Ко н т р о л л е р Ба н к а
+ зна ч е ние ПИНк о д а
+ но ме рС ч е т а К лие нт а
+ про в е рит ь ПИНк о д ()
+ про в е рит ь Номе рС ч е т а ()
+ о т к ры т ь С че т ()
+ у ме нь шит ь С ч е т ()
+ про ч ит а т ь ПИНк о д ()
+ про ч ит а т ь Номе рС ч е т а ()
+ изв ле ч ь К а рт у ()
1
А у т е нт иф ициру е т к лие нт а и в ы полня е т т ра нза к ции
1
С ч ит ы в а е т инф о рма цию
1
1
< < co ntro l> >
Ко н т р о л л е р Ба н к о м а т а
1
О т о бра ж а е т инф о рма цию
1
1
Вы д а е т на личны е
Пе ч а т а е т спра в к у
< < bounda ry > >
Эк р а н Ба н к о м а т а
+ по к а за т ь Ме ню О пций()
+ по к а за т ь Ме ню С у ммы ()
1
1
1
< < bounda ry > >
П р ин т е р Ба н к о м а т а
< < bounda ry > >
У с т р о йс т в о П о л у ч е н ия Н а л ич н ы х
+ пе ч а т ь С пра в к и()
+ в ы д а т ь На лич ны е ()
Д иагр ам м а клас с о в д ля с ис те м ы упр ав ле ния б анко м ато м
Программирование