- •3 Классы
- •4. Пакеты (Packages)
- •5 Утилита – класс, объединяющий группу общедоступных (глобальных) переменных и процедур.
- •7 Ассоциации
- •8 Роли ассоциаций
- •Диаграмма классов
- •Обобщение (наследование)
- •15.1.4. Диаграммы последовательностей
- •15.1.5. Кооперативные диаграммы
- •Основные приёмы xp
- •Представители заказчиков
- •32 Структура группы разработчиков
- •33 Виды документации в xp
- •Ограничения
Диаграмма классов
Диаграмма классов состоит из следующих элементов:
Модули (Packages)
Классы (Classes)
Интерфейсы (Interface)
Объекты (Objects)
Между которыми существуют следующие виды связи:
Ассоциация (Association)
Наследование (Inheritance)
Агрегация (Aggregation)
Использование (Usage)
Реализация (Realization)
Имплементация (Implementation)
Диаграмма классов представляет собой граф, вершинами которого являются элементы типа классификатор, которые связаны различными типами структурных отношений. Диаграммой классов принято считать графическим представлением, только тех структурных взаимосвязей, которые инварианты ко времени.
В отличие от двух предыдущих поведенческих диаграмм, диаграмма классов носит структурный характер. Она предназначена для отображения классов разрабатываемого приложения и их взаимосвязей.
Так же как и предыдущие диаграммы она может быть представлена как в терминах конкретных классов, так и в терминах бизнес-объектов.
Диаграммы классов обычно заполняются параллельно с диаграммами последовательностей в процессе моделирования работы вариантов использования.
Основным элементом диаграммы классов является класс.
Обозначается значком:
Класс состоит из двух частей – заголовка с именем класса и тела с описанием его полей (Атрибуты – в терминах UML) и методов (Операции - в терминах UML).
Абстрактные классы отличаются наклонным написанием заголовка:
Под атрибутами класса в терминологии UML понимают его поля.
Атрибуты записываются с указанием доступности, имени и типа.
Например:
Знак «-» означает, что атрибут является приватным (private).
Знак «+» означает, что атрибут является публичным (public).
Знак «#» означает, что атрибут является защищенным(protected).
После имени следует указание типа атрибута.
Под операциями в терминологии UML понимаются методы, свойства, индексаторы и пр.
Операции также записываются с указанием области видимости, имени и возвращаемого типа. Однако для них также указывается перечень принимаемых значений.
Например:
12
Агрегация
Комната является частью квартиры, следовательно здесь подходит композиция, потому что комната без квартиры существовать не может. А, например, мебель не является неотъемлемой частью квартиры, но в то же время, квартира содержит мебель, поэтому следует использовать агрегацию.
Композиция (Compose) - означает, что объекты одного класса могут быть включены в объекты другого класса и при этом этот вложенный объект может находиться только в одном объекте-контейнере. Если объект контейнер удаляется, то вложенный объект тоже удаляется.
Например:
Агрегация (Aggregate) - означает, что объекты одного класса могут быть включены в объекты другого класса и при этом этот вложенный объект может находиться в нескольких объектах-контейнерах. Если объект контейнер удаляется, то вложенный объект не удаляется.
Например:
13
Между классами существуют следующие виды связи:
Ассоциация (Association)
Наследование (Inheritance)
Агрегация (Aggregation)
Использование (Usage)
Реализация (Realization)
Имплементация (Implementation)
Ассоциация показывает, что объекты одной сущности (класса) связаны с объектами другой сущности.
Существует пять различных типов ассоциации. Наиболее распространёнными являются двунаправленная и однонаправленная. Например, классы «рейс» и «самолёт» связаны двунаправленной ассоциацией, а классы «человек» и «кофейный автомат» связаны однонаправленной.
Двойные ассоциации (с двумя концами) представляются линией, соединяющей два классовых блока. Ассоциации более высокой степени имеют более двух концов и представляются линиями, один конец которых идет к классовому блоку, а другой к общему ромбику. В представлении однонаправленной ассоциации добавляется стрелка, указывающая на направление ассоциации.
Ассоциация может быть именованной, и тогда на концах представляющей её линии будут подписаны роли, принадлежности, индикаторы, мультипликаторы, видимости или другие свойства.
Композиция — более строгий вариант агрегации. Известна также как агрегация по значению.
Композиция имеет жёсткую зависимость времени существования экземпляров класса контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё его содержимое будет также уничтожено.
Графически представляется как и агрегация, но с закрашенным ромбиком.
