ФЭНДОМ



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

Взаимосвязи Править

Взаимосвязь — это особый тип логических соединений в диаграммах классов и объектов. В UML'е представлены следующие виды отношений:

Взаимосвязи экземпляров Править

Связь Править

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

Ассоциация Править

Ассоциация представляет семейство связей двух или более классов.

Существует пять различных типов ассоциации. Наиболее же распространёнными являются двунаправленная и однонаправленная. Например, классы рейс и самолёт связаны двунаправленной ассоциацией, а классы человек и кофейный автомат связаны однонаправленной.

Двойные ассоциации (с двумя концами) представляются линией, соединяющей два классовых блока. Ассоциации большей степени имеют более двух концов и представляются линиями, один конец которых идет к классовому блоку, а другой к общему ромбику. В представлении однонаправленной ассоциации добавляется стрелка указывающая на направление ассоциации.

Ассоциации могут быть именованными, и тогда на концах представляющей её линии будут подписаны роли, принадлежности, индикаторы, мультипликаторы, видимости или другие свойства.

Агрегация Править

Файл:KP-UML-Aggregation-20060420.svg

Агрегация — “has a” вариант ассоциации. Как тип ассоциации, агрегация может быть именованной. Но агрегация не может включать сразу несколько классов.

Агрегация встречается, когда один класс является коллекцией или контейнером других. Причём время существования содержащихся классов не зависит от времени существования содержащего их класса. Если контейнер будет уничтожен, то его содержимое — нет.

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

Композиция Править

Композиция — более строгий вариант “has a” ассоциации.

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

Графически представляется как и агрегация, но с закрашенным ромбиком.

Различия между композицией и агрегацией Править

Целое композиции должно иметь мультипликатор 0..1 или 1, что показывает, что часть является частью только одного целого. В агрегации же может быть любой мультипликатор.

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

Взаимосвязи классов Править

Генерализация (обобщение) Править

Файл:KP-UML-Generalization-20060325.svg

Генерализация показывает, что один из двух связанных классов (подтип) является более частной формой другого (надтипа), который называется обобщением первого. На практике это означает что любой экземпляр подтипа является также экземпляром надтипа. Например: животные — супертип млекопитающих, которые в свою очередь супертип приматов и так далее. Эта взаимосвязь легче всего описывается фразой «А — это Б» (приматы — это млекопитающие, млекопитающие — это животные).

Графически генерализация представляется линией с пустым треугольником у супертипа

Генерализация также известна как наследование или “is a” взаимосвязь.

Реализация Править

Реализация — отношение между двумя элементами модели, в котором один элемент (клиент) реализует поведение, заданное другим (поставщиком).

Графически реализация представляется также как и генерализация, но с пунктирной линией.

Общие взаимосвязи Править

Зависимость Править

Зависимость существует между двумя элементами, если изменение одного влечёт за собой изменение другого.

Графически представляется пунктирной стрелкой, идущей от зависимого элемента к тому, от которого он зависит.

Существует несколько именованных вариантов.

Зависимость может быть между экземплярами, классами или экземпляром и классом.

Мультипликаторы Править

Типовые мулитипликаторы:

нотация объяснение пример
0..1 Ноль или один экземпляр кошка имеет или не имеет хозяина
1 Обязательно один экземпляр у кошки одна мать
0..* or * Ноль или более экземпляров у кошки может быть, а может и не быть котят
1..* Один или более экземпляров у кошки есть хотя бы одно место, где она спит

См. также Править




Эта страница использует содержимое раздела Википедии на русском языке. Оригинальная статья находится по адресу: Диаграмма классов. Список первоначальных авторов статьи можно посмотреть в истории правок. Эта статья так же, как и статья, размещённая в Википедии, доступна на условиях CC-BY-SA .


Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики