Полное руководство по диаграмме классов UML

Table of Contents hide
14 Перспективы диаграммы классов в жизненном цикле разработки программного обеспечения
Унифицированный язык моделирования ( UML ) — это язык моделирования общего назначения в области разработки программного обеспечения, предназначенный для обеспечения стандартного подхода к визуализации проектирования системы. Первоначальным мотивом создания UML было желание стандартизировать различные системы обозначений и методы проектирования программного обеспечения. В UML диаграмма классов является одним из шести типов структурных диаграмм . Диаграммы классов являются основой процесса моделирования объектов и моделируют статическую структуру системы.

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

 

Обзор 14 типов диаграмм UML

Что такое диаграмма классов?

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

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

Цель UML — предоставить стандартную нотацию, которую можно использовать всеми объектно-ориентированными методами, а также выбрать и интегрировать лучшие элементы предшествующих нотаций. UML был разработан для широкого круга приложений. Следовательно, он предоставляет конструкции для широкого спектра систем и действий (например, распределенные системы, анализ, проектирование и развертывание систем).

UML — это нотация, возникшая в результате объединения OMT с

  1. Техника объектного моделирования OMT  [ James Rumbaugh  1991] – лучше всего подходит для анализа и информационных систем с интенсивным использованием данных.
  2. Booch [ Gradi Booch  1994] — отлично подходил для дизайна и реализации. Грэди Буч много работал с  языком Ада  и был главным игроком в разработке объектно-ориентированных методов для этого языка. Хотя метод Буча был сильным, нотация была принята хуже (в его моделях преобладало множество форм облаков — не очень аккуратно).
  3. OOSE (Object-Oriented Software Engineering [ Ivar Jacobson  1992]) — включает модель, известную как варианты использования. Сценарии использования — это мощная техника для понимания поведения всей системы (область, в которой объектно-ориентированный подход традиционно был слабым).

В 1994 году Джим Рамбо, создатель OMT, ошеломил мир программного обеспечения, когда он покинул General Electric и присоединился к Грэди Бучу в Rational Corp. Целью партнерства было объединить их идеи в единый унифицированный метод (рабочее название метод действительно был «унифицированным методом»).

История UML

Назначение диаграммы классов

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

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

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

Пример класса

У собаки есть состояния – цвет, имя, порода, а также поведение – виляние, лай, еда. Объект является экземпляром класса.

 

Обозначение класса UML

Класс представляет концепцию, которая инкапсулирует состояние ( атрибуты ) и поведение ( операции ). Каждый атрибут имеет тип. Каждая  операция  имеет  подпись . Имя класса является  единственной обязательной информацией .

Имя класса:

  • Имя класса появляется в первом разделе.

Атрибуты класса:

  • Атрибуты показаны во втором разделе.
  • Тип атрибута отображается после двоеточия.
  • Атрибуты сопоставляются с переменными-членами (элементами данных) в коде.

Классовые операции (методы):

  • Операции показаны в третьем разделе. Это услуги, предоставляемые классом.
  • Тип возвращаемого значения метода отображается после двоеточия в конце подписи метода.
  • Возвращаемый тип параметров метода отображается после двоеточия после имени параметра. Операции сопоставляются с методами класса в коде

Классовые отношения

Класс может быть вовлечен в одно или несколько отношений с другими классами. Связь может быть одного из следующих типов: (См. рисунок справа для графического представления отношений).

Тип отношений Графическое представление
Наследование  (или обобщение):
  • Представляет отношение «есть-а».
  • Имя абстрактного класса показано курсивом.
  • SubClass1 и SubClass2 являются специализациями Суперкласса.
  • Сплошная линия с полой стрелкой, указывающая от дочернего к родительскому классу
Наследование (или обобщение)
Простая ассоциация :
  • Структурная связь между двумя одноранговыми классами.
  • Существует связь между классом 1 и классом 2.
  • Сплошная линия, соединяющая два класса
Простая ассоциация
Агрегация :Особый тип ассоциации. Он представляет собой «часть» отношений.
  • Class2 является частью Class1.
  • Многие экземпляры (обозначенные *) класса 2 могут быть связаны с классом 1.
  • Объекты Class1 и Class2 имеют разное время жизни.
  • Сплошная линия с незакрашенным ромбом на конце ассоциации, связанной с классом составных
Агрегация
Состав :Особый тип агрегации, при котором части разрушаются при разрушении целого.
  • Объекты класса 2 живут и умирают вместе с классом 1.
  • Класс 2 не может стоять сам по себе.
  • Сплошная линия с закрашенным ромбом в ассоциации, связанной с классом составных
Зависимость :
  • Существует между двумя классами, если изменения в определении одного могут вызвать изменения в другом (но не наоборот).
  • Class1 зависит от Class2
  • Пунктирная линия с открытой стрелкой
Зависимость

Имена отношений

  • Имена отношений пишутся посередине ассоциативной строки.
  • Названия хороших отношений имеют смысл, если прочитать их вслух:
    • «Каждая электронная таблица  содержит  некоторое количество ячеек»,
    • «выражение  оценивается  как значение»
  • Они часто имеют  небольшую стрелку, указывающую направление,  в котором следует читать отношения, например, выражения оцениваются как значения, но значения не оцениваются как выражения.

 

Отношения — Роли

  • Роль – это направленная цель ассоциации.
  • Роли написаны на концах ассоциативной линии и описывают цель, которую играет этот класс в отношениях.
    • Например, ячейка связана с выражением. Характер связи таков, что выражением является  формула  клетки.

Видимость атрибутов класса и операций

В объектно-ориентированном дизайне есть нотация видимости атрибутов и операций. UML определяет четыре типа видимости:  public ,  protected ,  private и  package .

Символы +, -, # и ~ перед именем атрибута и операции в классе обозначают видимость атрибута и операции.

  • + обозначает общедоступные атрибуты или операции
  • – обозначает частные атрибуты или операции
  • # обозначает защищенные атрибуты или операции
  • ~ обозначает атрибуты пакета или операции

Пример видимости класса

В приведенном выше примере:

  • attribute1 и op1 MyClassName являются общедоступными
  • attribute3 и op3 защищены.
  • attribute2 и op2 являются частными.

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

Право доступа общественный (+) частный (-) защищенный (#) Пакет (~)
Члены одного класса да да да да
Члены производных классов да нет да да
Члены любого другого класса да нет нет в том же пакете

Множественность

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

  • Ровно один — 1
  • Ноль или единица – 0..1
  • Многие – 0..* или *
  • Один или несколько – 1..*
  • Точное число — например, 3..4 или 6
  • Или сложное отношение — например, 0..1, 3..4, 6.* будет означать любое количество объектов, кроме 2 или 5.

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

  • Требование: Студент может посещать несколько курсов, и многие студенты могут быть зачислены на один курс.
  • В приведенном ниже примере  диаграмма классов  (слева) описывает формулировку вышеуказанного требования для статической модели, а диаграмма объектов (справа) показывает моментальный снимок (экземпляр диаграммы классов) зачисления на курс для курсы по программной инженерии и управлению базами данных соответственно)

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

Пример агрегации — компьютер и комплектующие

  • Агрегация — это частный случай ассоциации, обозначающий иерархию «состоит из».
  • Агрегат — это родительский класс, компоненты — это дочерние классы.
Пример агрегации

Пример наследования — таксономия ячеек

  • Наследование — еще один частный случай ассоциации, обозначающей «своего рода» иерархию.
  • Наследование упрощает модель анализа, вводя таксономию
  • Дочерние классы наследуют атрибуты и операции родительского класса.
Пример наследования

 

Диаграмма классов — пример инструмента диаграммы

Диаграмма классов может также иметь примечания, прикрепленные к классам или отношениям. Примечания отображаются серым цветом.

Пример диаграммы классов

 

В приведенном выше примере:

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

  1. Форма — это абстрактный класс. Он показан курсивом.
  2. Форма — это суперкласс. Круг, прямоугольник и многоугольник являются производными от формы. Другими словами, Круг — это Форма. Это отношение обобщения/наследования.
  3. Существует связь между DialogBox и DataController.
  4. Форма является частью окна. Это агрегационные отношения. Shape может существовать без Window.
  5. Точка является частью Круга. Это композиционные отношения. Точка не может существовать без Окружности.
  6. Окно зависит от события. Однако Event не зависит от Window.
  7. Атрибутами Circle являются радиус и центр. Это класс сущности.
  8. Имена методов Circle: area(),circ(), setCenter() и setRadius().
  9. Радиус параметра в Circle является параметром in типа float.
  10. Метод area() класса Circle возвращает значение типа double.
  11. Атрибуты и имена методов Rectangle скрыты. У некоторых других классов на диаграмме также скрыты атрибуты и имена методов.

Пример диаграммы классов: система заказов

Пример диаграммы классов: система заказов

Пример диаграммы классов: графический интерфейс

Диаграмма классов может также иметь примечания, прикрепленные к классам или отношениям.

Пример диаграммы классов: графический интерфейс

Работа со сложной системой — диаграмма нескольких или одного класса?

Неизбежно, если вы моделируете большую систему или большую бизнес-сферу, вам придется учитывать множество сущностей. Должны ли мы использовать несколько или одну диаграмму классов для моделирования проблемы? Ответ:

  • Вместо моделирования каждой сущности и ее взаимосвязей на одной диаграмме классов лучше использовать несколько диаграмм классов.
  • Разделение системы на несколько диаграмм классов облегчает понимание системы, особенно если каждая диаграмма является графическим представлением определенной части системы.

Перспективы диаграммы классов в жизненном цикле разработки программного обеспечения

Мы можем использовать диаграммы классов на разных этапах  жизненного цикла разработки программного обеспечения  и, как правило, моделируя диаграммы классов в трех различных перспективах (уровнях детализации) постепенно по мере продвижения вперед:

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

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

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

Ищете бесплатный инструмент для построения диаграмм классов?

Visual Paradigm Online (VP Online) Free Edition — это бесплатное онлайн-программное обеспечение для рисования, которое поддерживает диаграммы классов, другие диаграммы UML, инструменты ERD и инструменты организационных диаграмм. Он имеет простой, но мощный редактор, который позволяет быстро и легко создавать диаграммы классов. В этом бесплатном редакторе UML нет рекламы, нет сроков доступа и нет ограничений, например, на количество диаграмм, количество фигур и т. д. Вы являетесь владельцем диаграмм, которые создаете для личных и некоммерческих целей.

Онлайн-инструмент для построения диаграмм классов

Ищете более формальное моделирование UML на рабочем столе?

Visual Paradigm Community Edition был запущен в 2004 году для предоставления  бесплатного программного обеспечения UML  исключительно для некоммерческих целей, поддержки пользователей, которые делали свои первые шаги в моделировании UML и которым требуется бесплатное и кросс-платформенное программное обеспечение для моделирования UML для личного использования, например как применение UML в студенческих проектах.

Экран визуальной парадигмы

Бесплатный инструмент моделирования UML для всех видов некоммерческих целей. Поддержка 13 диаграмм UML 2.x

Бесплатный инструмент UML с поддержкой 13 диаграмм UML 2.x

Нас приняли более 1 миллиона установок по всему миру, и эта цифра продолжает расти. Многие люди используют платные версии Visual Paradigm для ежедневного рисования профессиональных диаграмм UML и ERD для проектирования и анализа систем и баз данных.

Причина 2

Доверие ИТ-специалистов и крупных организаций

Многие крупные организации, ИТ-компании, консультанты, университеты, неправительственные организации и правительственные учреждения по всему миру приняли Visual Paradigm (платные версии). На рисунке ниже показаны некоторые из наших платных клиентов.

Клиенты визуальной парадигмы

Причина 3

Высокое качество – награда

Нам доверяют не только самые известные предприятия мира, но и вся отрасль. Visual Paradigm — многократный обладатель международных наград.

Награды визуальной парадигмы

Причина 4

Самая широко используемая платформа для моделирования в академических кругах.

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

Школы, использующие визуальную парадигму

Причина 5

Огромная коллекция БЕСПЛАТНЫХ учебных ресурсов (при поддержке VP Community Circle)

Сотни примеров и шаблонов диаграмм UML и ERD

Сотни примеров UML и ERD,  готовых для импорта в Visual Paradigm для мгновенного эксперимента или для начала работы с собственной моделью UML. Все бесплатно.

Причина 6

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

Простое обновление для огромного набора дополнительных функций (например, BPMN и поддержки совместной работы) и для коммерческого использования, начиная с  6 долларов США в месяц .

Упакованные функции в Visual Paradigm

Причина 7

Форум активных пользователей для получения помощи и обмена идеями и опытом

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

Форум визуальной парадигмы

Причина 8

Кроссплатформенное, удобное, быстрое и отзывчивое приложение

Visual Paradigm может работать на разных платформах, таких как Windows, Linux и Mac. Его интуитивно понятный интерфейс и мощные функции моделирования делают моделирование быстрым и легким!

Leave a Reply

Ваш адрес email не будет опубликован.