- •Методология объектно-ориентированного анализа и проектирования
- •Модель предметной области
- •Идентификация концептуальных классов
- •Основные элементы языка uml
- •Канонические диаграммы языка uml.
- •Элементы графической нотации диаграммы прецедентов.
- •Отношения на диаграмме прецедентов
- •Отношения на диаграмме прецедентов
- •Отношения и их графические изображения на диаграмме классов
- •Отношение ассоциации
- •Типы ассоциаций
- •Типы классов
- •Отношение агрегации
- •Отношение композиции
- •Отношение обобщения
- •Наследование и виртуальные функции
Типы классов
В зависимости от того, имеют ли классы экземпляры или нет, они делятся на конкретные и абстрактные классы.
Конкретный класс – класс, на основе которого могут быть непосредственно созданы экземпляры или объекты.
Абстрактный класс – класс, который не имеет экземпляров или объектов. Для его обозначения, его имя пишется курсивом.
Всё, что будет написано курсивом, будет относиться к абстрактным элементам моделируемой системы.
Интерфейс – именованное множество операций, характеризующих поведение отдельного элемента модели. В контексте UML, интерфейс является специальным случаем абстрактного класса, у которого имеются операции, но отсутствуют атрибуты. Интерфейс на диаграмме классов служит для спецификации таких элементов модели, которые видимы извне, но их внутренняя структура остается скрытой от клиентов. Интерфейсы не могут содержать ни состояний, ни направленных ассоциаций. Они содержат только и только операции, без указания особенностей их реализации. Интерфейс графически может быть стандартно изображен в виде прямоугольника классов со стереотипом <<interface>> в секции имени класса либо специальным символом в виде окружности, рядом с которой пишется имя интерфейса. Общепринято в качестве имен атрибутов использовать названия устройств, характеризующие информацию или сервис, предоставляемый системой, а его имя начать с большой латинской буквы “I”. Например:
Отношения и их графические изображения на диаграмме классов
На языке UML имеются 4 основных вида отношений между классами:
Ассоциация
Обобщение
Агрегация
Композиция
Отношение ассоциации
Отношение ассоциации соответствует наличию произвольного отношения или взаимосвязи между классами. Ассоциация обозначается сплошной линией со стрелкой (направленная ассоциация) или без нее (ненаправленная ассоциация). При этом она может содержать дополнительные характеристики, такие как имя ассоциации, символ навигации, кратность концов ассоциации и их роли.
Конец ассоциации – концевая точка ассоциации, которая связывает ее с конкретным классом, то есть конец ассоциации – часть самой ассоциации, а не класса. Наиболее важные характеристики ассоциации указываются рядом с концевыми её точками.
Следующая характеристика – роль. Имя роли представляет собой строку текста, расположенную с концом ассоциации, соответствующего класса. На что указывает роль? Она указывает на специфическую роль, которую играет класс, который является концом рассматриваемой ассоциации.
Кратность ассоциации описывается по таким же правилам, как и кратность для атрибутов, но без квадратных скобок.
Типы ассоциаций
Наиболее простой случай ассоциации – бинарная ассоциация, которая служит для представления произвольного отношения между двумя классами. Она может быть направленной или ненаправленной. Для нее на диаграмме может быть указан порядок чтения классов. С использованием специального символа в виде закрашенного внутри треугольника, рядом с именем ассоциации. При этом имя ассоциации не является обязательным элементом, но если оно задано, то записывается заглавной буквой рядом с линией ассоциации, например:
Направление направленной ассоциации указывает на то, какой класс является первым, а какой – вторым, например:
Частный случай бинарной ассоциации – рефлексивная ассоциация
Рефлексивное отношение связывает класс с самим собой.
Исключающая ассоциация – Xor-association
Такая ассоциация указывает на то, что из нескольких возможных вариантов данной ассоциации, в каждый момент времени может быть использован только один вариант. Она изображается пунктирной линией, соединяющей две и более ассоциации, рядом с которой записывается ограничение {xor}:
Клиент банка может быть либо Юридическим, либо Физическим лицом, но никак не обоими одновременно.
n-арная ассоциация (n>2) связывает 3 и более классов. Бинарную ассоциацию можно рассматривать в данном контексте, как особый случай n-арной ассоциации. Графически такая ассоциация обозначается ромбом, который соединяется с символами классов сплошными линиями, ведущимися либо от вершин, либо от середин сторон ромба:
Имя n-арной ассоциации записывается рядом с ромбом соответствующей ассоциации. Однако, порядок расположения классов не фиксируется.
Случай, когда n=4
Ассоциация-Класс:
n-арная ассоциация может обладать собственными свойствами и поведением. В таком случае её рассматривают как особый вид класса, называемый ассоциацией-классом, и объединяется он пунктирной линией к соответствующей ассоциации. Следовательно, ассоциация-класс – модельный элемент, который одновременно является ассоциацией и классом, то есть ассоциация-класс может рассматриваться как ассоциация, которая обладает свойствами класса или как класс, имеющий также свойства ассоциации.
Из книжки UML2.0 ООМР гл 17,18
ДЗ: Как реализовать в виде кода ассоциации?
