Основные элементы UML
Язык UML состоит из трех видов элементов:
1) сущности;
2) отношения;
3) диаграммы.
Сущности — это некоторые абстрактные объекты. Сущности являются основными элементами UML.
Связи между сущностями выражаются отношениями.
Диаграмма — это группа взаимосвязанных сущностей, характеризующих один из аспектов предметной области.
Если проводить параллели с естественным языком, то сущности — это существительные, пассивная составляющая, а отношения — глаголы, активные элементы.
Типы сущностей:
1) структурные;
2) поведенческие;
3) группирующие;
4) аннотационные.
Структурные сущности соответствуют концептуальным или физическим элементам системы.
Существует семь разновидностей структурных сущностей:
1. Класс (class) — описание совокупности объектов с общими атрибутами, методами, отношениями и семантикой. Данная абстракция соответствует понятию «класс» в языках программирования. Обозначение:
В верхней части прямоугольника записывается наименование класса, в средней перечисляются атрибуты, в нижней — методы (операции). Для атрибутов могут указываться тип и видимость. Для методов могут указываться видимость и тип возвращаемого значения. Видимость и типы соответствуют общепринятым в языках C++, Java, Ada. В зависимости от назначения модели, класс может отображаться с той или иной степени детальности, например, может указываться только наименование.
2. Интерфейс (interface) — описание совокупности методов, которые определяют набор услуг, предоставляемых классом или компонентом (см. ниже). Обозначение:
Интерфейс описывает «видимое» извне поведение элемента через спецификацию операций. Интерфейс содержит только декларативную часть, реализация методов заключена в классе или компоненте, на которые он ссылается.
3. Кооперация, или сотрудничество (collaboration), — совокупность классов, интерфейсов и других элементов, эффект от работы которых не сводится к сумме простых слагаемых. Обозначение:
Кооперация специфицирует, как некий элемент реализуется с помощью совокупности других элементов. Чаще всего кооперация используется для описания реализации прецедента. Следует также отметить, что элементы могут участвовать в нескольких кооперациях.
4. Прецедент (use case) — описание последовательности выполняемых системой действий (в том числе вариантных), которые приводят к наблюдаемому результату, значимому для какого-либо пользователя системы (актера). Обозначение:
Прецедентыреализуются посредством кооперации.
5. Компонент (component) — физическая заменяемая часть системы, которой соответствует некоторому набору интерфейсов и обеспечивает их реализацию. Компонент — это «обертка» для классов, компонентов, коопераций. Обозначение:
6. Узел (node) —это элемент реальной системы. Это вычислительный элемент, который обладает машинной памятью некоторого объема и, обычно, способностью обработки.
Поведенческие сущности:
1. Взаимодействие (interaction) — поведение, состоящее в обмене сообщениями между объектами в рамках конкретного контекста для достижения определенной цели. Отдельное сообщение обозначается как
Здесь «2» — порядковый номер, «СозданиеСтроки()» — сообщение, стрелка определяет направление передачи сообщения и линия обозначает связь.
2. Автомат (state machine) — алгоритм поведения, определяющий последовательность состояний, через которые проходят объект или взаимодействие. Автомат определяется через диаграмму состояний. Отдельное состояние обозначается прямоугольником со скругленными углами:
Или:
Группирующие сущности:
Включают только одну разновидность — пакет.
Пакет (package) — механизм организации элементов в группы. Пакеты существуют только во время разработки модели, в отличие от компонентов, которые тоже выполняют функции агрегации элементов.
В пакет могут входить классы, интерфейсы, компоненты, узлы, кооперации, другие пакеты и даже диаграммы. Элемент может принадлежать только одному пакету.
Аннотационные сущности:
Также только одна разновидность — примечание(note). Используется для словесного описания чего-либо на диаграмме. Обозначается прямоугольником с загнутым правым верхним углом:
Пример использования:
Среди сущностей языка UML выделяют так называемые классификаторы. Классификаторы — это элементы, которые могут иметь экземпляры, т.е. реализации с конкретными характеристиками. Классификаторы характеризуются как структурными (состав атрибутов), так и поведенческими (состав операций) свойствами. Все экземпляры одного классификатора обладают рядом общих свойств.
Основные классификаторы:
- класс;
- интерфейс;
- компонент;
- узел;
- прецедент;
- актер.
Отношения:
1. Зависимость (dependency) — семантическое отношение; показывает, что изменение спецификации независимой (или целевой) сущности влияет на зависимую, при этом обратное в общем случае неверно. Зависимость часто применяется для обозначения использования методами класса методов другого класса. Например, если в реализации класса Б используется операция А1 класса А, то зависимость Б от А обозначается следующим образом:
Зависимость показывается пунктирной стрелкой, направленной к независимой сущности (поэтому также называемой целевой).
2. Ассоциация (association) — структурное отношение, рассматривается ниже при описании диаграммы классов; в общем случае обозначается линией.
3. Обобщение (generalization) — структурное отношение типа «наследование», т.е. показывает, что объект-потомок наследует структуру и поведение родителя. Примеры:
Обобщение показывается стрелкой с незаштрихованным наконечником, направленной от потомка в сторону родительской сущности.
4. Реализация (realization) — семантическое отношение, показывающее такую зависимость, когда один из элементов определяет запрос, а другой обеспечивает его выполнение, например: интерфейс и класс, прецедент и кооперация. Если класс «Строка» реализует интерфейс «Сравнение строк», то это обозначается так:
Реализация указывается пунктирной стрелкой с незаштрихованным наконечником, направленной от реализующего элемента к определяющему запрос элементу.
Дата добавления: 2018-11-25; просмотров: 3426;