Диаграмма компонентов в uml

Взаимосвязи

Много в UML касается программирования, поэтому UML как язык для общения с бизнесом, применяется очень скудно, но я попробую привести пример на основе компьютера.

Взаимосвязь Пример Описание
Ассоциация наличие обязательных деталей Компьютер Если у сложного устройства есть в наличии обязательные детали (материнская плата, процессор, озу) значит это компьютер
Наследование сложное устройство Компьютер Любое сложное устройство (ноутбук, планшет, умные часы и т.д.) является представителем компьютера
Реализация/Имплементация компьютер Стандарты сборки Чтобы правильно собрать компьютер, нужно следовать неким стандартам сборки (размеры, виды разъемов, версии протоколов взаимодействия и т.д.)
Зависимость компьютер Электричество Работа компьютера зависит от электричества, но электричество не зависит от компьютера
Агрегация дополнительные детали Компьютер В компьютере могут быть дополнительные детали (точпад, веб-камера и т.д), но их может и не быть
Композиция обязательные детали Компьютер Без обязательных деталей компьюетр не может быть собран (материнская плата, процессор, озу)

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

Конечно, чтобы построить диаграмму, нужно ознакомиться вкратце с каждым из 13 официальных типов диаграмм, которые описаны UML 2.

Диаграмма

Цель

Происхождение

Деятельности

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

В UML 1

Классов

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

В UML 1

Взаимодействия

Взаимодействие между объектами; акцент на связях

Диаграмма коопераций в UML 1

Компонентов

Структура и взаимосвязи между компонентами

В UML 1

Составных структур

Декомпозиция класса во время выполнения

Новое в UML 2

Развертывания

Развертывание артефактов в узлы

В UML 1

Обзора взаимодействий

Комбинация диаграммы после довательности и диаграммы деятельности

Новое в UML 2

Объектов

Вариант конфигурации экземпляров

Неофициально в UML 1

Пакетов

Пример программный: иерархическая структура времени компиляции. Пример из жизни: высокоуровневую организацию программного продукта.

Неофициально в UML 1

Последовательности

Взаимодействие между объектами; акцент на последовательности

В UML 1

Конечных автоматов

Как события изменяют объект в течение его жизни. Второе название — диаграмма состояний.

В UML 1

Временная

Взаимодействие между объектами; акцент на синхронизации

Новое в UML 2

Прецедентов

Как пользователи взаимодействуют с системой

В UML 1

READ  Частотно-регулируемый асинхронный электропривод - курс лекций

Авторы UML считают, что диаграммы определены не очень строго. Часто вполне допустимо присутствие элементов диаграммы одного типа в другой диаграмме.

Стоит добавить, что иерархия UML диаграмм и полное описание каждого типа хорошо продемонстрированы в википедии.

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

Типы элементов нотации

  1. фигура (shape) — прямоугольники и эллипсы, внутри фигур могут помещаться другие элементы нотации: тексты, линии, значки и даже другие фигуры. Единственное требование: должно быть однозначно понятно, что элемент нотации находится внутри фигуры, в частности, его изображение не должно пересекать границу фигуры.
  2. линия (line) — могут быть прямые, ломаные, плавные кривые, сплошные и пунктирные. Всегда присоединяются своими концами к фигурам или значкам, они не могут быть нарисованы сами по себе. К линиям могут быть пририсованы дополнительные элементы: стрелки на концах, тексты и т.д. Единственное требование: должно быть ясно, что дополнительный элемент относится именно к данной линии. Линии могут пересекаться, и это ничего не значит, но рекомендуется избегать таких случаев, поскольку это затрудняет восприятие.
  3. значок (icon) — не имеют внутренности, в которую можно что-то поместить.
  4. текст (text) — различаются прямые, курсивные и подчеркнутые тексты
  5. рамка (frame) — используется исключительно как контейнер для других фигур, линий, значков и текстов

Нотация UML довольно свободная: рисовать можно как угодно, лишь бы не возникало недоразумений. Например рассмотрим пример «Четыре способа представления ребер» из книги Фаулер М. UML. Основы (3-е издание, 2005):

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

READ  Энергоаудит: путь к повышению эффективности производства

Диаграмма классов

Кратность

  • 1 Заказ может представить только один клиент.
  • 0..1 (Корпоративный клиент может иметь, а может и не иметь единственного торгового представителя.)
  • * Клиент не обязан размещать заказ, и количество заказов не ограничено. Он может разместить ноль или более заказов.

Атрибут

Пример: + String = «Без имени» {readOnly}

Обязательно только имя.

  • слева от имени отображается метка видимости, которая может быть + (public) или — (private). Если не указано, значит +
  • справа от знака равно = показано значение по умолчанию (значение для вновь создаваемых объектов, если атрибут не определен в процессе создания)
  • Элемент {строка свойств} позволяет указывать дополнительные свойства атрибута. В примере он равен {readOnly}, то есть клиенты не могут изменять атрибут. Если он пропущен, то, как правило, атрибут можно модифицировать

Шарово-гнездовая нотация:

Рассмотрим пример нотации называемом леденц на палочке:

  • ArrayList реализует List и Collection
  • Order требует интерфейс List

Параметризованный класс:

Диаграмма последовательности

Пример демонстрирующий, как вызов функции calculatePrice порождает цепочку действий.

Обратите внимание на следующие нюансы:

  • возвращающие стрелки не отображены, но подразумеваются (кроме последней стрелки пунктиром)
  • объект Order сделав вызов getDiscountedValue породил обратный вызов к себе getBaseValue от объекта Customer

Диаграмма деятельности

Обратите внимание выше, как завершается слияние у решения. Часто, можно встретить такие обозначения:

Часто, можно встретить такие обозначения:

Иногда полезно разбить диаграмму деятельности на разделы (partitions):

Временный сигнал:

Как видите, до моего отлета остается два часа (Two hours before flight), и мне пора собирать багаж. Если я упакую его раньше времени, то все равно не смогу уехать, пока не прибудет такси. Если такси приходит (Taxi Arrives) до того, как я успею собрать багаж (Pack Bags), то оно должно ждать меня, пока я не закончу.

Пример вложенности:

READ  Электрооборудование металлорежущих станков

Временные диаграммы

Акцентирует внимание на временных ограничениях. Пример из жизни основанный на использовании насоса (Pump) и нагревательного элемента (Hotplate) в кофеварке (coffee pot)

Пример из жизни основанный на использовании насоса (Pump) и нагревательного элемента (Hotplate) в кофеварке (coffee pot).

Представим себе правило, которое гласит, что между включением насоса и включением нагревательного элемента должно пройти по крайней мере 10 секунд. Когда емкость с водой становится пустой (waterEmpty), насос выключается, а нагревательный элемент не может оставаться включенным более 15 минут.

Временная диаграмма, на которой состояния представлены в виде линий:

Временная диаграмма, на которой состояния представлены в виде областей:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: