
- •Введение
- •Управление моделью
- •Сноски (Note)
- •Общие механизмы расширения
- •Ограничение (constraint)
- •Комментарии (comment)
- •Свойства элементов
- •Стереотипы
- •Диаграммы статических структур
- •Диаграмма классов
- •Диаграмма объектов
- •Классификатор (Classifier)
- •Семантика
- •Нотация
- •Варианты представления
- •Рекомендации по оформлению
- •Секция названия Нотация
- •Секция список Нотация
- •Варианты представления
- •Атрибут
- •Семантика
- •Нотация
- •Варианты представления
- •Нотация
- •Интерфейсы Семантика
- •Нотация
- •Параметризованный класс (шаблон) Семантика
- •Нотация
- •Варианты представления
- •Связанный элемент Семантика
- •Нотация
- •Импортирование пакета Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Рекомендации по оформлению
- •Варианты
- •Варианты представления
- •Рекомендации по оформлению
- •Семантика
- •Нотация
- •Нотация
- •Рекомендации по проектированию
- •Варианты представления
- •Подробности
- •Нотация
- •Диаграммы последовательности Виды диаграмм взаимодействия
- •Диаграмма последовательности Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Время переходов Семантика
- •Нотация
- •Диаграммы сотрудничества
- •Сотрудничество Семантика
- •Нотация
- •Диаграмма сотрудничества Семантика
- •Нотация
- •Структура шаблона Семантика
- •Нотация
- •Взаимодействия
- •Семантика
- •Нотация
- •Активный объект
- •Варианты представления
- •Нотация
- •Составные состояния Семантика
- •Нотация
- •События Семантика
- •Нотация
- •Простые переходы Семантика
- •Нотация
- •Переходы во вложенные состояния Семантика
- •Нотация
- •Варианты представления
- •Внутренние переходы Семантика
- •Состояние действия Семантика
- •Нотация
- •Пиктограммы управления
- •Стереотипы
- •Диаграммы реализации
- •Компонентная диаграмма Семантика
- •Нотация
- •Диаграммы развертывания Семантика
- •Нотация
- •Узлы Семантика
- •Нотация
- •Компоненты Семантика
- •Нотация
Варианты представления
Когда два пути пересекаются, чтобы показать, что они не соединяются, пересечение может быть изображено с небольшим полукруглым изломом (как на принципиальных электрических схемах). В качестве альтернативы пересечение не маркируется, а соединение показывается маленькой точкой.
Рекомендации по оформлению
Для рисования линий могут применяться различные стили, включая ортогональные, косые и изогнутые сегменты. Выбор стилей линий остается за пользователем.
Варианты
Ассоциация-ИЛИ. Ограничение ИЛИ показывает ситуацию, в которой для любого одиночного объекта может быть одновременно реализована только одна из нескольких потенциальных ассоциация. Это показывается как пунктирная линия, соединяющая две или более ассоциации, которые все должны иметь общий класс, со строкой ограничения "{or}" помечающей пунктирную линию. Любой экземпляр класса может иметь в конкретный момент времени только одну из ассоциаций. Все названия ролей должны различаться. (Это простое предопределенное использование описания ограничения.)
Пример
Рисунок 18. Нотация ассоциации
Цель ассоциации
Семантика
Цель ассоциации является просто концом ассоциации, которым она присоединяется к классу. Это часть ассоциации, а не часть класса. Каждая ассоциация имеет две или более цели. Наиболее интересные подробности относительно ассоциации заключены в ее целях. Цель ассоциации не является отдельным элементом; она только механическая часть ассоциации.
Нотация
Путь может иметь графические "украшения" на каждом конце, которым путь соединяется с символом класса. Эти "украшения" показывают связанные с классом свойства ассоциации. "Украшения" являются частью символа ассоциации, а не частью символа класса. "Украшения" концов либо присоединяются к концу линии либо недалеко от конца линии и должны перемещаться с ней. Следующие виды "украшений" могут присоединяться к целям ассоциации:
множественность - определяется с помощью текстового описания (подробности в соответствующем разделе). Множественность может быть опущена для конкретной ассоциации или для всей диаграммы. В незавершенной модели множественность может быть не определенной, в этом случае она должна быть опущена в описании.
упорядочение - если множественность больше единицы, то набор связанных элементов может быть упорядоченным или не упорядоченным. Если не указано обратное, он не упорядочен. Различные виды упорядочения могут определяться в виде ограничения цели ассоциации. Объявление не определяет, как упорядочение устанавливается или поддерживается; операции, добавляющие новый элемент должны предоставлять средство либо для неявного (например, в конец) либо для явного указания их положения. Возможны следующие значения:
неупорядочены - элементы формируют неупорядоченный набор. Это является умолчанием и не требует явного указания.
упорядочены - элементы набора упорядочены в список. Это по-прежнему набор и дубликаты запрещены. Эта общая спецификация включает все виды упорядочения. Она может быть определена с помощью ключевого слова {ordered}.
Упорядоченное отношение может реализовываться различными способами, однако обычно оно определяется как зависящее от языка генерирующее код свойство, обеспечивающее особенности реализации. Расширение реализации могло бы заменить структуру данных, содержащую элементы для общего описания "ordered".
Сортировка также может быть определена на уровне реализации. Это не добавляет новой семантической информации, но выражает проектное решение:
отсортированы - элементы отсортированы на основе их внутренних значений. Правило сортировки, лучше всего определять как отдельное ограничение.
спецификатор - смотри отдельный раздел. Спецификатор является необязательным, но не может опускаться.
навигация
Присоединенная к концу пути стрелка показывает, что поддерживается навигация к классу присоединенному к стрелке. Стрелки могут быть присоединены к одному, обоим концам пути или вообще отсутствовать. Чтобы было полностью понятно, стрелки могут показываться всякий раз, когда поддерживается навигация в заданном направлении. На практике часто удобно опускать некоторые стрелки и показывать только исключительные ситуации. Подробности смотри в вариантах представления.
указатель конгломерата
Для указания на конгломерат к концу пути присоединяется полый ромб. Ромб не может присоединяться к обоим концам линии, но может вообще отсутствовать. Ромб присоединяется к классу, который является совокупностью. Конгломерат является необязательным, но не может опускаться.
Если ромб заполнен, то это выражает сильную форму конгломерата, известную как композиция (composition).
название роли
Строка названия недалеко от конца пути. Показывает роль играемую классом, присоединенным к ближайшему от названия роли концу пути. Название роли является необязательным, но не может опускаться.
описатель интерфейса
Название классификатора со следующим синтаксисом:
':' classifiername ':' название классификатора
Показывает ожидаемое поведение ассоциированного объекта через связанный объект. Другими словами, описатель интерфейса определяет поведение необходимое для возникновения ассоциации. В этом случае, реальный класс обычно обеспечивает больше функциональных возможностей, чем требуется для заданной ассоциации (так как он может иметь другие обязательства).
Использование названия роли и описателя интерфейса эквивалентно созданию небольшого сотрудничества, которое включает только ассоциацию и две роли, чья структура определяется названием и классификатором роли исходной ассоциации. Исходные ассоциация и классы являются, следовательно, применением сотрудничества. Исходный класс должен быть совместим с описателем интерфейса (который может быть интерфейсом или типом).
Если описатель интерфейса опущен, то ассоциация может быть использована для получения полного доступа к ассоциированному классу.
изменчивость
Если связи изменяются (могут быть добавлены, удалены или перемещены), то никаких указаний на это не требуется. Свойство {frozen} показывает, что связи объекта (находящегося на конце с данным "украшением") не могут быть добавлены, удалены или перемещены после того, как объект создан и инициализирован. Свойство {addOnly} показывает, что связи могут быть добавлены (возможно, множественность является переменной), но не могут быть модифицированы или удалены.
видимость
Определяется индикатором видимости ('+', '#', '-' или явно заданным ключевым словом, например, {public}) перед названием роли. Определяет видимость ассоциации со стороны заданного наименования роли.
Для ролей ассоциации могут быть определены другие свойства, но графический синтаксис для них не предусмотрен. Для определения таких свойств используется синтаксис ограничения рядом с концом пути ассоциации (текстовая строка в фигурных скобках). Примером таких свойств является изменчивость.