Учебное пособие по диаграмме классов UML (UML Class Diagram)
Диаграмма классов в UML
Диаграмма классов - это одна из 7 структурных диаграмм в нотации UML. Он изображает статическую структуру моделируемой системы, модуля или его части. Базовым строительным блоком диаграммы классов является класс - единица, представляющая набор объектов с одинаковыми атрибутами и логикой. Диаграмма также может представлять модель данных определенного домена.Назначение диаграммы классов
Диаграммы классов могут использоваться в различных сценариях, прежде всего в разработке программного обеспечения, но также и в других областях.:
- Проектирование и анализ статической структуры
- Моделирование системных взаимодействий
- Обратный инжиниринг программного обеспечения
- Генерация исходного кода
Символы и обозначения в диаграммах классов UML
Software Ideas Modeler предлагает инструменты для следующих элементов диаграммы классов:
Class
A class is an extensible template for creating objects, it is a common form for all instances of the same type (e.g. concept, thing, person). A class that cannot have any instances is called an abstract class.
Класс-это расширяемый шаблон для создания объектов, это общая форма для всех экземпляров одного и того же типа (например, понятие, вещь, человек). Класс, который не может иметь никаких экземпляров, называется абстрактным классом.
Каждый класс может содержать:
- Attributes (Атрибуты)
- Operations (Операции)
- Template parameters (Параметры шаблона)
- Stereotypes
- Tagged values
- Documentation
Visibility
Видимость определяет область, в которой могут быть атрибуты и операции, видимые и управляемые другими объектами. UML определяет эти символы для видимости элементов (атрибутов или операций)
Символ | Видимость | Значение |
---|---|---|
+ | Public(общедоступный) | Определяет элемент, доступный из всего проекта. |
~ | Package(пакетный) | Определяет элемент, доступный из всего пакета. |
# | Protected(защищенный) | Определяет элемент, доступный из класса и его подклассов. |
- | Private(частный) | Определяет элемент, доступный только из класса, в котором он указан. |
Attribute
Атрибут-это именованное поле данных в классификаторе, которое определяет допустимые данные, используя их тип, кратность и ограничения. Каждый класс может иметь ноль или более атрибутов. Атрибуты определяются внутри атрибутивного отсека (помещенного после именного отсека) классификатора.
Attribute format: <<stereotypes>> visibility_symbol name : type [multiplicity ordering] = default_value {constraint}
Абстрактные атрибуты выделены курсивом.
Статические атрибуты обозначаются подчеркиванием.
Software Ideas Modeler предлагает несколько способов добавления, редактирования и удаления атрибутов класса:
- использование меню Element / Add / Attribute
- использование кнопки контекстной панели Add Attribute
- с помощью диалогового окна "Свойства"
- с помощью Fast editor
Каждый атрибут определяется:
- Name
- ID
- Type
- Visibility
- Default Value
- Multiplicity
- Ordering
- Constraint
- Modifiers
- Stereotypes
- Documentation
- Tagged Values
Operation
Операция-это метод, функция или запрос, которые могут быть вызваны другими объектами. Каждая операция имеет свое имя и может иметь любое количество параметров (ноль или больше). Каждая операция должна выполнять только одну вещь. Операции определяются внутри операционного отсека (помещенного после атрибутивного отсека) классификатора.
Operation format: <<stereotypes>> visibility_symbol name (parameter1 ... parameterN) : return_type
Абстрактные операции выделены курсивом.
Статические операции обозначаются подчеркиванием.
Software Ideas Modeler предлагает несколько способов добавления, редактирования и удаления операций класса:
- использование меню Element / Add / Operation
- использование кнопки контекстной панели Add Operation
- с помощью диалогового окна "Свойства"
Каждая операция определяется:
- Name
- ID
- Return type
- Visibility
- Modifiers
- Stereotypes
- Parameters
- Body
- Documentation
- Tagged Values
Operation Parameter
Параметр операции обычно является входным аргументом, хотя он также может быть аргументом вывода или ввода-вывода.
Operation format: direction name : type [multiplicity]
Каждый параметр операции может быть определен с помощью:
- Name
- Type
- Direction - это может быть input (in), output (out), input-output (inout) или return
- Default value
- Multiplicity
- Documentation
- Tagged values
Association
Что такое Aggregation?
Агрегация - это своего рода ассоциативное отношение «имеет». Это ассоциация, которая представляет собой часть-целое или часть-"относится к...". Ромбическая стрелка указывает от части к целому.
Что такое Composition?
Композиция-это более строгий вид ассоциативного отношения "относится к..". Он похож на агрегацию, но более специфичен. Существование части (связанной с композицией) зависит от целого.
Generalization (concrete)
Обобщение определяет отношение между суперклассом и его подклассом. Стрелка указывает от подкласса к суперклассу. Суперкласс является базовым для подклассов.
Realization (implementation)
Реализация определяет отношение между интерфейсом и классом, который реализует этот интерфейс. Стрелка указывает от класса к интерфейсу.
Dependency
Зависимость определяет отношение между двумя зависимыми классами. Стрелка указывает на класс, который используется вторым классом.
Containment
Сдерживание определяет отношение между родительским классом и вложенным внутренним классом. Отношение сдерживания изображается кругом с плюсом на одном конце. Конец круга прикреплен к контейнеру, а немаркированный конец соединителя прикреплен к содержащемуся классу. Сдерживание используется для описания вложенных или внутренних классов - классов, определенных внутри другого класса.
Package
Пакет-это универсальный контейнерный элемент для группировки элементов, представляющих собой логическую, семантическую или иную единицу. Пакет может содержаться в других пакетах. Каждый пакет определяет свое пространство имен.
Interface
Интерфейс-это абстрактный элемент, определяющий операции, которые должны быть реализованы в классификаторе. Классификатор связан с реализованными интерфейсами с помощью отношений реализации.
Enumeration
Перечисление-это определяемый пользователем тип, который состоит из перечисляемых литералов/именованных значений. Элемент перечисления представляет собой тип с перечисляемыми литеральными значениями, которые могут использоваться для атрибутов, операций и параметров операций.
N-ary Association
N-арная ассоциация изображена ромбом на диаграмме классов. Он связывает более двух классов в одну ассоциацию.
Примеры Диаграмм Классов
Вы можете найти некоторые примеры диаграммы классов UML здесь:
- UML Class Diagram Overview (UML Class Diagram)
- Restaurant Orders (UML Class Diagram)
- Adapter Design Pattern (UML Class Diagram)
- Linked Lists (UML Class Diagrams)
- DMS - Document Management System (Project, Diagrams)
- Logger (Model of Extensible Logging Module)
- Command Stack (Diagram)
- Nervous System (UML Class Diagram)
- Haematopoiesis - Immune System (UML Class Diagram)
- Library Management System (UML Class Diagram)
Комментарии
Отправить комментарий