💀
Второй курс РПО
Язык UML
Язык UML
  • Сложности при разработке программного обеспечения
  • Почему появилось ООП и в чём его смысл?
  • Как программировали до ООП и почему это стало проблемой?
  • Как появился ООП и почему он спас программирование
  • Как планировать код до его написания: ООАП
  • Системный анализ и моделирование: как понимать сложные системы
  • Что такое объекты?
  • Экскурс в Диаграммы
  • История развития языка UML
  • 56-я Практическая
  • Диаграмма развёртывания
  • Диаграмма сотрудничества
  • Паттерны - что это?
  • Для второкурсников
Powered by GitBook
On this page

Диаграмма сотрудничества

Конспект по элементам диаграмм взаимодействия (Collaboration Diagram)

Диаграммы взаимодействия используются для отображения того, как объекты и участники взаимодействуют друг с другом в рамках какого-либо процесса или системы. На диаграмме используется несколько ключевых элементов, каждый из которых имеет свой формат и назначение. Я сейчас разберу все основные элементы, их назначение и представление на диаграммах с использованием языка DOT.


1. Участник (Actor)

  • Предназначение: Представляет пользователя или внешний компонент системы, который взаимодействует с объектами.

  • Как выглядит: Иконка в виде человечка.

DOT код:

actor [label="Участник"]

2. Экземпляр класса (Instance)

  • Предназначение: Показывает объект, который является экземпляром класса.

  • Как выглядит: Простой прямоугольник.

DOT код:

instance [label="Экземпляр класса"]

3. Мультиобъект (Multiobject)

  • Предназначение: Используется для отображения объекта, состоящего из нескольких частей.

  • Как выглядит: Прямоугольник, внутри которого находятся другие объекты (например, как иконка развернутого окна).

DOT код:

multiobject [label="Мультиобъект"]

4. Активный объект (Active object)

  • Предназначение: Объект, который может выполнять операции или изменять своё состояние.

  • Как выглядит: Прямоугольник, внутри которого закрашенный кружок, не закрашенный треугольник и закрашенный прямоугольник.

DOT код:

activeobject [label="Активный объект"]

5. N-арная ассоциация (N-ary association)

  • Предназначение: Связь между несколькими объектами, которая описывает многократные отношения.

  • Как выглядит: Ромб.

DOT код:

n_ary_association [label="N-арная ассоциация"]

6. Шаблон (Design pattern)

  • Предназначение: Указывает на использование шаблона проектирования в системе.

  • Как выглядит: Пунктирный овал.

DOT код:

designpattern [label="Шаблон"]

7. Коннектор шаблона (Design pattern connector)

  • Предназначение: Связь между элементами, использующими шаблон.

  • Как выглядит: Пунктирная линия.

DOT код:

designpattern_connector [label="Коннектор шаблона"]

8. Коннектор N-арной ассоциации (N-ary association connector)

  • Предназначение: Обозначает связь между ассоциациями в контексте N-арной ассоциации.

  • Как выглядит: Ромб квадратный с тремя обычными линиями.

DOT код:

n_ary_association_connector [label="Коннектор N-арной ассоциации"]

9. Ассоциация (Association)

  • Предназначение: Общая связь между двумя объектами.

  • Как выглядит: Простая линия.

DOT код:

association [label="Ассоциация"]

10. Квалифицированная ассоциация (Qualified link)

  • Предназначение: Обозначает связь, в которой указаны условия.

  • Как выглядит: Линия с двумя путями.

DOT код:

qualified_link [label="Квалифицированная ассоциация"]

11. Агрегация (Aggregation)

  • Предназначение: Связь "часть-целое", где объекты могут существовать независимо друг от друга.

  • Как выглядит: Линия с пустым ромбом в конце.

DOT код:

aggregation [label="Агрегация"]

12. Квалифицированная агрегация (Qualified aggregation link)

  • Предназначение: Агрегация, в которой явно указаны условия.

  • Как выглядит: Линия с пустым ромбом и двумя ответвлениями.

DOT код:

qualified_aggregation [label="Квалифицированная агрегация"]

13. Композиция (Composition)

  • Предназначение: Жёсткая связь "часть-целое", где компоненты не могут существовать без целого.

  • Как выглядит: Линия с закрашенным ромбом.

DOT код:

composition [label="Композиция"]

14. Квалифицированная композиция (Qualified composition link)

  • Предназначение: Композиция с условиями, уточняющими её особенности.

  • Как выглядит: Линия с закрашенным ромбом и ответвлениями.

DOT код:

qualified_composition [label="Квалифицированная композиция"]

15. Наследование (Inheritance)

  • Предназначение: Показывает, что один объект наследует свойства другого.

  • Как выглядит: Стрелка с пустым наконечником.

DOT код:

inheritance [label="Наследование"]

16. Обратное/Прямое вложенное сообщение (Backward/forward nested message)

  • Предназначение: Представление вложенных сообщений между объектами.

  • Как выглядит: Стрелка с закрашенными треугольными наконечниками.

DOT код:

nested_message [label="Обратное/Прямое вложенное сообщение"]

17. Обратное/Прямое сообщение (Backward/forward message)

  • Предназначение: Показывает обычное сообщение между объектами.

  • Как выглядит: Простые стрелки.

DOT код:

message [label="Обратное/Прямое сообщение"]

18. Обратное/Прямое асинхронное сообщение (Backward/forward async message)

  • Предназначение: Показывает асинхронные сообщения.

  • Как выглядит: Стрелки с недостающим наконечником.

DOT код:

async_message [label="Обратное/Прямое асинхронное сообщение"]

19. Точка изгиба связей (Point)

  • Предназначение: Обозначает точку, где линия изгибается.

  • Как выглядит: Линия, изгибающаяся под углом.

DOT код:

bend_point [label="Точка изгиба"]

20. Комментарий (Note)

  • Предназначение: Текстовый комментарий для пояснения элементов диаграммы.

  • Как выглядит: Записка с закругленным краем.

DOT код:

note [label="Комментарий"]

21. Коннектор комментария (Note connector)

  • Предназначение: Соединяет комментарий с другими элементами диаграммы.

  • Как выглядит: Пунктирная линия, ведущая от комментария к элементу.

DOT код:

note_connector [label="Коннектор комментария"]

digraph G {
    actor [label="Участник"];
    instance [label="Экземпляр класса"];
    multiobject [label="Мультиобъект"];
    activeobject [label="Активный объект"];
    n_ary_association [label="N-арная ассоциация"];
    association [label="Ассоциация"];

    actor -> instance [label="Взаимодействие"];
    instance -> multiobject [label="Объект в мультиобъекте"];
    multiobject -> activeobject [label="Активный процесс"];
    n_ary_association -> association [label="Связь"];
}
PreviousДиаграмма развёртыванияNextПаттерны - что это?

Last updated 2 months ago