Приведены основные сведения, необходимые для чтения UML диаграммам.
Содержание
- UML диаграммы
- Основы UML
- Взаимосвязи элементов диаграмм
- Кратность отношений элементов
- Примеры UML диаграмм
UML диаграммы
В основе успешной разработки любого приложения должен лежать этап проектирования, на котором определяются используемые средства, архитектура приложения, структура и взаимодействие его компонентов. И здесь большую помощь могут оказать диаграммы на основе унифицированного языка моделирования UML — Unified Modeling Language. Он позволяет с помощью наглядных изображений моделировать сложные системы, в нашем случае программное обеспечение. Существует множество видов диаграмм, описывающих определенные свойства моделей, например, диаграммы классов, объектов, состояний. Для тех, кто не знаком с UML, ниже приводятся начальные сведения, необходимые для знакомства с UML диаграммами. Кроме того, они будут полезны на этапе освоения этого инструментария в качестве шпаргалки.
Больше узнать об истории, развитии, преимуществах и недостатках UML можно по ссылке. Те, кто дружит с английским, и хочет плотно познакомиться, вам сюда.
Основы UML
Из множества видов диаграмм, сегодня речь пойдет об UML диаграммах классов. Это диаграмма, описывающая структуру программного обеспечения или его отдельных элементов с помощью описания классов и интерфейсов, их атрибутов, методов и связей между ними.
Описание классов на диаграммах достаточно наглядно: есть прямоугольник с 3-мя секциями, в первом отображается наименование класса или интерфейса, во втором — список атрибутов и в третьем — список методов. Если отображается абстрактный класс, его наименование записывается курсивом, наименования статических элементов класса подчеркиваются. Для модификаторов доступа полей и методов перед их наименованием указывают специальные символы.
- + для публичных(public);
- — для приватных(private);
- # для защищённых(protected);
- / для производных (derived) полей, которые могут быть вычислены с помощью существующих данных.
Как видите, всё довольно просто. Куда полезней разобраться с видами взаимных связей элементов диаграммы.
Взаимосвязи элементов диаграмм
В приложениях взаимные связи классов могут быть самые разные, диаграммы позволяют наглядно их отображать. Ниже в таблице приведены виды взаимных связей UML диаграмм классов и их графические обозначения.
| Вид взаимосвязи | Графическое обозначение | Описание взаимосвязи |
| Ассоциация (Association) | Связь между классами, когда они могут использовать друг друга или взаимодействовать, не обязательно являясь частью друг друга. В однонаправленной ассоциации стрелка указывает направление ассоциации, двойная ассоциация отображается без стрелки на конце. | |
| Зависимость (Dependency) | Связь, при которой изменение одного элемента (независимого) может(но не обязательно) привести к изменению другого элемента (зависимого). Часто такие связи используются, когда один из классов является параметром в методе другого класса. Стрелка расположена у независимого элемента. | |
| Агрегация (Aggregation) | ![]() | Определяет связь между целым(агрегатором) и его частями, например, между контейнером и его элементами. Элемент может иметь несколько связей и существовать самостоятельно (зависимость по ссылке). Ромб располагается у контейнера. |
| Композиция (Composition) | Более тесная связь между целым и его частями, когда часть не может существовать вне целого и ограничена им(связь по значению). | |
| Обобщение/Наследование (Generalization) | Определяет связь типа «общее-частное», когда один класс является наследником другого. Треугольник располагают у родителя. | |
| Реализация (Implementation) | Связь между классом и интерфейсом(или абстрактным классом), при которой класс реализует все методы интерфейса. Треугольник располагают у интерфейса. |
Кратность отношений
Кратность отношений определяет возможное число элементов, участвующих во взаимосвязях. Возможные значения:
| Обозначение | Возможные значения |
| 0..1 | Ноль или один экземпляр |
| 1 | Обязательно один экземпляр |
| 0..* или * | Ноль или более экземпляров |
| 1..* | Один или более экземпляров |
Ознакомиться с видами UML диаграмм можно в Википедии по ссылке. Те, кто дружит с английским, и хочет плотно познакомиться, вам сюда.
Примеры UML диаграмм
Прежде чем отображать диаграммы, замечу, что их создание можно переложить на плечи стороннего программного обеспечения. Например, ниже приведена сгенерированная диаграмма классов шаблона проектирования Command, приведенная в посте Шаблон проектирования Command.
Вот еще один пример диаграммы классов с различными взаимоотношениями, позаимствованный из блога программиста.



