Что такое диаграмма классов?
Диаграмма классов UML — это графическая нотация, используемая для построения и визуализации объектно-ориентированных систем. Диаграмма классов на унифицированном языке моделирования ( UML ) — это тип диаграммы статической структуры, которая описывает структуру системы, показывая систему:
- классы,
- их атрибуты (или свойства),
- операции (или методы),
- и отношения между объектами.
Что такое класс?
Класс — это план объекта. Объекты и классы идут рука об руку. Мы не можем говорить об одном, не говоря о другом. И вся суть объектно-ориентированного проектирования не в объектах, а в классах, потому что мы используем классы для создания объектов. Таким образом, класс описывает, каким будет объект, но не является самим объектом.
На самом деле классы описывают тип объектов, а объекты — это используемые экземпляры классов. Каждый объект был создан на основе одного и того же набора чертежей и, следовательно, содержит одни и те же компоненты (свойства и методы). Стандартное значение состоит в том, что объект является экземпляром класса и объекта. Объекты имеют состояния и поведение.
Пример
У собаки есть состояния — цвет, имя, порода, а также поведение — виляние, лай, еда. Объект является экземпляром класса.

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

Имя класса:
- Имя класса появляется в первом разделе.
Атрибуты класса:
- Атрибуты показаны во втором разделе.
- Тип атрибута отображается после двоеточия.
- Атрибуты сопоставляются с переменными-членами (элементами данных) в коде.
Классовые операции (методы):
- Операции показаны в третьем разделе. Это услуги, предоставляемые классом.
- Тип возвращаемого значения метода отображается после двоеточия в конце подписи метода.
- Возвращаемый тип параметров метода отображается после двоеточия после имени параметра. Операции сопоставляются с методами класса в коде

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

- + обозначает общедоступные атрибуты или операции
- – обозначает частные атрибуты или операции
- # обозначает защищенные атрибуты или операции
Направленность параметра
Каждый параметр в операции (методе) может быть обозначен как in, out или inout , что определяет его направление относительно вызывающего. Эта направленность отображается перед именем параметра.

Перспективы диаграммы классов
Выбор точки зрения зависит от того, насколько далеко вы продвинулись в процессе разработки. Например, при формулировании модели предметной области вы редко выходите за пределы концептуальной точки зрения . Аналитические модели , как правило, представляют собой смесь концептуальных и спецификационных точек зрения . Разработка проектной модели обычно начинается с упора на спецификацию и переходит к реализации .
Диаграмму можно интерпретировать с разных точек зрения:
- Концептуальный : представляет концепции в предметной области.
- Спецификация : основное внимание уделяется интерфейсам абстрактного типа данных (ADT) в программном обеспечении.
- Реализация : описывает, как классы будут реализовывать свои интерфейсы.
Перспектива влияет на количество деталей, которые должны быть предоставлены, и на виды отношений, которые стоит представить. Как мы упоминали выше, имя класса является единственной обязательной информацией.

Диаграмма классов — это центральный метод моделирования, который проходит почти через все объектно-ориентированные методы. Эта диаграмма описывает типы объектов в системе и различные виды статических отношений, которые существуют между ними.
Отношения
Важны три основных вида отношений:
- Ассоциация — представляет отношения между экземплярами типов (человек работает в компании, у компании есть несколько офисов.
- Наследование — самое очевидное дополнение к ER-диаграммам для использования в ООП. Это имеет прямое соответствие с наследованием в объектно-ориентированном дизайне.
- Агрегация — Агрегация, форма композиции объектов в объектно-ориентированном дизайне.

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

Бесплатный программный инструмент UML
В этой статье я представляю два инструмента UML:
- Visual Paradigm Community Editon (БЕСПЛАТНО) — это настольный инструмент UML с возможностями моделирования объектов. (возможно обновление до коммерческих версий)
- Visual Paradigm Online для общего рисования uml и других диаграмм.
30 примеров диаграмм классов
- Бесплатные примеры и шаблоны диаграмм классов, которые можно редактировать в онлайн-программном обеспечении для создания диаграмм классов: Visual Paradigm Online.
- Используйте шаблоны в качестве отправной точки для создания собственной диаграммы классов.
- ( Нажмите, чтобы мгновенно изменить примеры диаграмм классов )
Для вашего удобства следующие примеры настроены в Visual Paradigm Online. Вы можете попробовать его прямо сейчас, без настройки или установки, получайте удовольствие!

Локальная сеть на основе Token Ring



Вывод файла (использование обобщения)

Телефон (использование ассоциации)

Шаблоны проектирования GoF — прокси

Шаблоны проектирования GoF — легковес

Шаблоны проектирования GoF — Фасад

Шаблоны дизайна GoF — Декоратор

Шаблоны проектирования GoF — Композитный

Шаблоны проектирования GoF — мост

Шаблоны проектирования GoF — адаптер

Шаблоны проектирования GoF — синглтон

Шаблоны проектирования GoF — прототип

Шаблоны проектирования GoF — фабричный метод

Шаблоны проектирования GoF — Конструктор

Шаблоны проектирования GoF — Абстрактная фабрика

Шаблоны проектирования GoF — Посетитель

Шаблоны проектирования GoF — шаблонный метод

Шаблоны проектирования GoF — стратегия

Шаблоны проектирования GoF — состояние

Шаблоны проектирования GoF — Observer

Шаблоны проектирования GoF — Сувениры

Шаблоны проектирования GoF — посредник

Шаблоны проектирования GoF — итератор

Шаблоны проектирования GoF — интерпретатор

Шаблоны проектирования GoF — команда

Шаблоны проектирования GoF — цепочка ответственности

Диаграмма классов — процесс заказа

Диаграмма классов — Классы и пакеты Ограничения

Диаграмма классов — класс в пакете (авиакомпания)



Класс ассоциации и самоассоциация



- Полнофункциональный БЕСПЛАТНЫЙ инструмент UML — Visual Paradigm Community Edition (настольный компьютер)
Другое рекомендуемое чтение
Эта статья также доступна на Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Việt Nam, 简体中文 and 繁體中文