Хабр, привет!

Меня зовут Витя, я работаю системным аналитиком, а также пишу про системный анализ и в целом про аналитику у себя в Telegram канале. В прошлых статьях про UML (Часть 1, Часть 2) мы узнали что такое язык моделирования UML и зачем он нужен, а также рассмотрели диаграмму классов и диаграмму компонентов. Сегодня я хочу продолжить тему проектирования процессов и остановиться на диаграмме объектов.

Диаграмма объектов

Диаграмма объектов - это структурная диаграмма, которая показывает объекты, их атрибуты и взаимосвязи с другими объектами.

Объект - это экземпляр класса в определенный момент времени выполнения, который может иметь свое собственное состояние и значения данных.

Диаграмма объектов UML является экземпляром диаграммы классов (про диаграмму классов ранее я писал тут), она показывает моментальный снимок подробного состояния системы в определенный момент времени.

Таким образом, можно сказать, что диаграмма объектов является частным случаем диаграммы классов.

Когда использовать диаграмму объектов?

Использование объектных диаграмм довольно ограничено.

На этапе анализа проекта вы можете создать диаграмму классов для описания структуры системы, а затем создать набор объектных диаграмм в качестве тестовых примеров для проверки точности и полноты диаграммы классов.

Прежде чем создавать диаграмму классов, можно создать диаграмму объектов, чтобы узнать факты о конкретных элементах модели и их связях или проиллюстрировать конкретные примеры необходимых классификаторов.

Из каких элементов состоит диаграмма объектов ?

Объекты

Изображение объекта на диаграмме объектов
Изображение объекта на диаграмме объектов

Каждый объект обозначается в виде прямоугольника, в котором имя объекта и его класс подчеркнуты, а также разделены двоеточием.

Атрибуты объекта

Изображение атрибута объекта на диаграмме объектов
Изображение атрибута объекта на диаграмме объектов

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

Связи

Изображение связей на диаграмме объектов
Изображение связей на диаграмме объектов

Связи используются для представления взаимосвязи между двумя объектами (по аналогии с диаграммой классов).

 Диаграмма классов VS  Диаграмма объектов

Ниже представлены основные тезисы про диаграмму классов и диаграмму объектов:

  • Объектная диаграмма - это структурная диаграмма UML, которая показывает экземпляры классификаторов в моделях.

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

  • Диаграммы классов показывают фактические классификаторы и их взаимосвязи в системе.

  • Объектные диаграммы показывают конкретные экземпляры этих классификаторов и связи между этими экземплярами в определенный момент времени.

На картинке ниже показан пример диаграммы классов и диаграммы объектов для этого класса. Как можно видеть, обе диаграммы очень схожи и вторая является частным случаем первой.

Изображение диаграммы классов и диаграммы объектов
Изображение диаграммы классов и диаграммы объектов

Как нарисовать диаграмму объектов ?

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

Ниже представлены шаги для моделирования диаграммы объектов.

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

  2. Для каждого механизма нужно определить классы, интерфейсы и другие элементы, которые участвуют в этом взаимодействии; также нужно определить взаимосвязи между этими элементами.

  3. Далее нужно рассмотреть один сценарий, который проходит через этот механизм. Заморозить этот сценарий на определенный момент времени и визуализировать каждый объект, участвующий в механизме.

  4. При необходимости нужно представить информацию о состоянии и значениях атрибутов каждого такого объекта, чтобы понять сценарий.

Заключение

Итак, сегодня мы рассмотрели диаграмму объектов, познакомились с её основными элементами, а также поняли в чём она отличается (и в чём схожа) с диаграммой классов.

Подводя итоги, хочу сказать, что:

  1. Диаграмма объектов — это частный случай диаграммы классов. Она показывает моментальный снимок подробного состояния системы в определенный момент времени.

  2. Диаграмма объектов состоит практически из такого-же набора сущностей, как и диаграмма классов: объекты, атрибуты объекта и связи

  3. Использование объектных диаграмм довольно ограничено. Как один из примеров использования диаграммы - это создание диаграммы классов для описания структуры системы, а затем создание набора объектных диаграмм в качестве тестовых примеров для проверки точности и полноты диаграммы классов.

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

Комментарии (2)


  1. Robastik
    18.03.2024 06:17

    Сначала нудно определить механизм

    Тема интересная, но все как-то слишком нудно. Оживить бы стиль, а то какой-то нечеловеческий езыг.

    И вопрос:
    какой тип диаграмм используется для описания работы с данными. Например, надо получить пару запросов по апи, объединить правым внешним соединением по полю х, удалить лишние столбцы, добавить вычисляемый столбец, агрегировать по полю у и т.п.


    1. MagicData Автор
      18.03.2024 06:17
      +2

      Спасибо за фидбек, постараюсь писать менее нудно :)


      По поводу описания работы с данными - я в работе использую диаграмму потоков данных для таких случаев. С помощью такого типа диаграмм можно проиллюстрировать различные соединения/группировки и т.д.

      Про диаграмму потоков тоже планирую сделать отдельную статью.