ТСПП - МЕТОДИЧКА UML
.pdf1.3. Структура языка ULM
"Нотация" - это синтаксис языка.
Само слово "нотация" подчеркивает, что UML - язык графический и модели (а точнее диаграммы) не "записывают", а рисуют. Одна из задач UML - служить средством коммуникации внутри команды и при общении с заказчиком. Поэтому при выборе элементов нотации основным принципом был отбор значков, которые хорошо смотрелись бы и были бы правильно интерпретированы в любом случае - будь они
нарисованы карандашом на салфетке или созданы на компьютере и распечатаны на лазерном принтере.
В UML используется четыре вида элементов нотации:
1.фигуры,
2.линии,
3.значки,
4.надписи.
Фигуры используются "плоские" - прямоугольники, эллипсы,
ромбы и т. д. Но есть одно исключение - на диаграмме развертывания для обозначения узлов инфраструктуры применяется "трехмерное" изображение параллелепипеда. Это единственное исключение из правил. Внутри любой фигуры могут помещаться другие элементы нотации.
Лини своими концами должны соединяться с фигурами. На UML диаграммах не используются линии, нарисованных "сами по себе" и не соединяющих фигуры. Применяется два типа линий - сплошная и пунктирная. Линии могут пересекаться, хотя таких случаев следует по возможности избегать.
11
Для использования вычислительной техники при работе с UML разработан ряд CASE-средств для UML-проектирования. К таким пакетам можно отнести:
∙IBM Rational Rose;
∙Borland Together;
∙Gentleware Poseidon;
∙Microsoft Visio;
∙Telelogic TAU G2;
∙StarUML.
В данном учебном пособии мы будем использовать терминологию и стандарты, определенные в StarUML. В настоящее время StarUML является свободно распространяемым пакетом, который можно скачать с Internet или сайта кафедры.
1.4. Модель и ее элементы
Модель UML (UML model)— это совокупность конечного множества конструкций языка, главные из которых — это сущности и отношения между ними.
Сами сущности и отношения модели являются экземплярами метаклассов метамодели.
Сущности
Для удобства обзора сущности в UML можно подразделить на четыре группы:
-структурные;
-поведенческие;
-группирующие;
-аннотационные.
12
Структурные сущности предназначены для описания структуры. К структурным сущностям относят:
Объект (object) — сущность, обладающая уникальностью и инкапсулирующая в себе состояние и поведение.
Класс (class) — описание множества объектов с общими атрибутами, определяющими состояние, и операциями, определяющими поведение.
Интерфейс (interface) — именованное множество операций, определяющее набор услуг, которые могут быть запрошены потребителем и предоставлены поставщиком услуг.
Кооперация (collaboration) — совокупность объектов, которые взаимодействуют для достижения некоторой цели.
Действующее лицо (actor) — сущность, находящаяся вне моделируемой системы и непосредственно взаимодействующая с ней.
Компонент (component) — модульная часть системы с четко определенным набором требуемых и предоставляемых интерфейсов.
Артефакт (artifact) — элемент информации, который используется или порождается в процессе разработки программного обеспечения. Другими словами, артефакт — это физическая единица реализации, получаемая из элемента модели (например, класса или компонента).
Узел (node) — вычислительный ресурс, на котором размещаются и при необходимости выполняются артефакты.
Поведенческие сущности предназначены для описания поведения. Основных поведенческих сущностей всего две: состояние и действие.
Состояние (state) — период в жизненном цикле объекта, находясь в
котором объект удовлетворяет некоторому условию и осуществляет собственную деятельность или ожидает наступления некоторого события.
13
Деятельность (activity) - частный случай состояния, который характеризуется продолжительными (по времени) не атомарными вычислениями.
Действие (action) — примитивное атомарное вычисление.
Кроме того, при моделировании поведения используется еще ряд вспомогательных сущностей, которые здесь не перечислены, потому что сосуществуют только вместе с указанными основными.
Несколько особняком стоит сущность — вариант использования, которому присущи как структурные, так и поведенческие аспекты.
Вариант использования (use case) — множество сценариев,
объединенных по некоторому критерию и описывающих последовательности производимых системой действий, доставляющих значимый для некоторого действующего лица результат.
Приведенная классификация не является исчерпывающей. У каждой из этих сущностей есть различные частные случаи и вариации, рассматриваемые в последующих разделах.
Группирующая сущность в UML одна — пакет — зато универсальная.
Пакет (package) — группа элементов модели (в том числе пакетов). Аннотационная сущность тоже одна — примечание (comment) — в нее можно поместить все что угодно, так как содержание примечания
UML не ограничивает.
Отношения
ВUML используются четыре основных типа отношений:
-зависимость (dependency);
-ассоциация (association);
-обобщение (generalization);
-реализация (realization).
14
Зависимость — это наиболее общий тип отношения между двумя сущностями.
Отношение зависимости указывает на то, что изменение независимой сущности каким-то образом влияет на зависимую сущность.
Графически отношение зависимости изображается в виде пунктирной линии со стрелкой (1), направленной от зависимой сущности (2) к независимой (3) (рис.1.1). Как правило, семантика
конкретной зависимости уточняется в модели с помощью дополнительной информации.
Рис..1.1. Отношение зависимости
Ассоциация — это наиболее часто используемый тип отношения между сущностями.
Отношение ассоциации имеет место, если одна сущность непосредственно связана с другой (или с другими — ассоциация может быть не только бинарной).
Графически ассоциация изображается в виде сплошной линии (1) с различными дополнениями, соединяющей связанные сущности (рис.1.2). На программном уровне непосредственная связь может быть реализована различным образом, главное, что ассоциированные сущности знают друг о друге. Например, отношение часть–целое
15
является частным случаем ассоциации и называется отношением агрегации.
Рис. 1.2. Отношение ассоциации
Обобщение — это отношение между двумя сущностями, одна их которых является частным (специализированным) случаем другой.
Графически обобщение изображается в виде линии с треугольной незакрашенной стрелкой на конце (1), направленной от частного (2) (подкласса) к общему (3) (суперклассу) (рис.1.3).
Рис. 1.3. Отношение обобщения
Отношение реализации указывает, что одна сущность является реализацией другой.
Графически реализация изображается в виде пунктирной линии с треугольной незакрашенной стрелкой на конце (1), направленной от реализующей сущности (2) к реализуемой (3) (рис.1.4.).
16
Рис. 1.4. Отношение реализации
Перечисленные типы отношений являются основными, различные
их вариации и дополнительные отношения детально рассматриваются в последующих разделах.
1.5. Диаграммы
Диаграммы UML есть та основная накладываемая на модель структура, которая облегчает создание и использование модели.
Диаграмм (diagram) — это графическое представление некоторой части графа модели.
В диаграмму можно включить любые (допустимые) комбинации сущностей и отношений. Авторы UML определили набор рекомендуемых к использованию типов диаграмм, которые получили название канонических типов диаграмм.
Классификация диаграмм
В UML 1 всего определено 9 канонических типов диаграмм. Ниже перечислены их названия, принятые в данном учебном пособии (в других источниках есть отличия).
- Диаграмма использования (Use Case diagram).
17
-Диаграмма классов (Class diagram).
-Диаграмма объектов (Object diagram).
-Диаграмма состояний (State chart diagram).
-Диаграмма деятельности (Activity diagram).
-Диаграмма последовательности (Sequence diagram).
-Диаграмма кооперации (Collaboration diagram).
-Диаграмма компонентов (Component diagram).
-Диаграмма размещения (Deployment diagram).
Классификация диаграмм приведена на рис. 1.5.
Рис. 1.5.. Диаграммы UML 1.
18
Диаграмма использования (use case diagram)
Модель описывает функциональное назначение системы или, другими словами, то, что система будет делать в процессе своего функционирования. Диаграмма использования является исходным
концептуальным представлением или концептуальной моделью системы в процессе ее проектирования и разработки.
Разработка диаграммы использования преследует цели:
1.Определить общие границы и контекст моделируемой предметной области на начальных этапах проектирования системы.
2.Сформулировать общие требования к функциональному поведению проектируемой системы.
3.Разработать исходную концептуальную модель системы для
еепоследующей детализации в форме логических и физических моделей.
4.Подготовить исходную документацию для взаимодействия разработчиков системы с ее заказчиками и пользователями.
Диаграмма классов (class diagram)
Диаграмма классов (class diagram) служит для представления
статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений. На данной диаграмме не указывается информация о временных аспектах функционирования системы. С этой точки зрения
19
диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы.
Диаграмма состояний (statechart diagram)
Диаграмма состояний описывает процесс изменения состояний только одного класса, а точнее – одного экземпляра определенного класса, т. е. моделирует все возможные изменения в состоянии конкретного объекта. При этом изменение состояния объекта может
быть вызвано внешними воздействиями со стороны других объектов или извне. Именно для описания реакции объекта на подобные внешние воздействия и используются диаграммы состояний.
Диаграмма деятельности (activity diagram)
Диаграммы деятельности служат для моделирования процесса выполнения операций в языке UML. Каждое состояние на диаграмме
деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние срабатывает только при завершении этой, операции в предыдущем состоянии. Графически диаграмма деятельности представляется в форме графа деятельности, вершинами которого являются состояния действия, а дугами – переходы от одного состояния действия к другому.
Хотя диаграмма деятельности предназначена для моделирования поведения систем, время в явном виде отсутствует на этой диаграмме. Ситуация здесь во многом аналогична диаграмме состояний.
20
