

13. UML, основные диаграммы
Диаграмма вариантов использования
Описывается состав и основное исполнение функциональных задач.
Используются следующие элементы:
1. Действующее лицо . Обозначает внешнюю сущность взаимодействия системы. Может быть пользователем, автоматическим устройством, внешней системой, временем. Действующее лицо находится вне системы, взаимодействует с системой, является источником или приемником информации.
2. Вариант использования . Указывает функцию, выполняемую системой.
3. Связи. Типы:
· Коммутация (commutation ) - связывает действующее лицо с вариантом использования (направление инициализации).
· Исполнение ( ) - указывает, что include-вариант входит в исполнение основного варианта.
· Расширение ( ) - связывает основной и дополняющий вариант. Направление от дополнительного к основному указывает предоставление дополнительных возможностей (одна функция может выполняться в базовом варианте и расширенном).
· Обобщение ( ) - соединяет несколько действующих лиц в обобщенное действующее лицо. Используется для упрощения связывания с вариантами при наличии общих функций.
Пример:
Для детализации варианта даётся описание потока. Стандартный состав:
O название;
O предусловие: описывается, что должно быть выполнено для того, чтобы началось выполнение такого-то варианта;
O описание основного потока: пошаговое описание работы варианта с точки зрения внешнего пользователя;
O описание подпроцессов: при наличии альтернативных вариантов, т.е. логика ветвления;
O описание альтернативных процессов: описание побочного варианта, связанного с желанием пользователя завершить процесс ненормальным образом. Можно выделить подкласс обработки ошибок.
Диаграмма активности и деятельности
Описывается логика работы системы, описание отдельных вариантов или наборов вариантов.
Наборы инструментов:
1. Вход . Может быть несколько, если описывается несколько вариантов использования.
2. Выход . Указывает завершение работы.
3. Действие . Указывает функцию обработки.
4. Связь >. Указывает возможный переход от действия к действию. Из действия может быть несколько выходов. Если несколько действий, то задаются условия перехода, они должны быть взаимоисключающими, набор должен быть полным.
5. Ветвление . Служит для более наглядного представления множественного ветвления.
6. Линейка синхронности . Верхняя часть - ветвление на несколько параллельных веток, а нижняя - слияние этих веток. Для верхней части может быть задано условие инициализации, для нижней - условие завершения параллельного участка.
Диаграмма классов
Представляется набор классов и связей между ними. Класс изображается следующим образом:
В названии может быть указан стереотип:
§ <> - основной объект предметной области. Диаграмма ER.
§ <> - граничный класс. Класс для связи системы с внешней средой.
§ <> - управляющий класс. Класс, координирующий работу других классов.
В атрибутах указывается перечень сведений, представляющий информацию об экземпляре класса, класс видимости, название, тип, значение по умолчанию:
<видимость> <название> : <тип> = <умолчание>
Классы видимости:
§ <> - пакетный атрибут. Наборы классов, которые будут транслировать друг друга.
§ <> - открытый атрибут. Все классы могут с ним работать.
§ <> - закрытый атрибут. Доступен только из данного класса.
§ <> - защищенный атрибут. Видимость из класса и его потомков.
В операциях указываются действия, которые могут выполняться данным классом, задается видимость, название, список атрибутов, тип выходного результата.
Класс предметной области связывается по нескольким типам:
1) Ассоциация. Описывает связь между экземплярами классов. Связь может быть однонаправленная и двунаправленная. Направление указывается стрелкой, для двунаправленной стрелки можно не указывать. >, <, - (-). Направленность стрелок указывает наличие ссылок на класс партнера. Ассоциации может быть приписан ассоциативный класс, в нем указывают дополнительные сведения по ассоциациям. Для ассоциативной связи можно указывать координальность (сколько экземпляров классов может входить в экземпляр).
1>1; *>0-?; 1...*(1,*)>1-?; 0,1>0-1; n; n…m
2) Агрегация и композиция указывают, что экземпляр класса А как составная часть входит в экземпляр класса В. Агрегация - более слабый вид связи, экземпляры В могут быть свободными. А в композиции экземпляры В жестко связаны с А.
3) Обобщение. Указывает, что один класс является наследником другого.
4) Зависимость. Один класс в своем определении использует ссылки на другой класс (как в Си библиотеки). Класс использует класс используется.
Диаграмма взаимодействия
Показывает последовательность выполнения действий классами для решения задачи.
Варианты:
1. Диаграмма последовательностей. Описывает последовательность решения отдельной задачи. Верхняя часть диаграммы - - действующие лица и - объекты, участвующие в операциях. Последовательность решений задается стрелками между линиями жизни. Стрелка - передача сообщения от объекта к объекту. Указывается название (параметры) [условия].
2. Корпоративная диаграмма. Позволяет отобразить несколько вариантов развития в компактной форме. Сообщения маркируются с указанием названия и номера. Номера в простейшем случае последовательные, в сложном - составные:
инициализирующее_сообщение.ответное_сообщение
Диаграмма состояний
Описывает динамику изменения состояния для одного класса. Состояния относятся ко всем или нескольким вариантам. Объект может принимать несколько состояний. Расширяет описание конкретного класса, описывает возможное состояние экземпляра класса и переход из состояния в состояние.
Элементы:
Типы действий:
§ entry: <название> - действие, выполняющееся при входе в состояние (однократное).
§ do: <название> - действие, выполняющееся при нахождении в данном состоянии. Действие может быть разовым или повторяющимся. Действие-состояние может быть прерываемым и непрерываемым.
§ exit: <название> - действие, выполняющееся однократно при выходе из состояния.
Стрелки - переход из одного состояния в другое.
Для состояний может быть указано: событие [условие] / действие.
Событие - указывается событие, инициализирующее переход.
Условие - ограничение - которое должно быть выполнено для выполнения перехода. Условия взаимоисключающие по событиям.
Результат объектно-ориентированного проектирования: набор классов для реализации.
Описывается состав и основное исполнение функциональных задач.
Используются следующие элементы:
1. Действующее лицо . Обозначает внешнюю сущность взаимодействия системы. Может быть пользователем, автоматическим устройством, внешней системой, временем. Действующее лицо находится вне системы, взаимодействует с системой, является источником или приемником информации.
2. Вариант использования . Указывает функцию, выполняемую системой.
3. Связи. Типы:
· Коммутация (commutation ) - связывает действующее лицо с вариантом использования (направление инициализации).
· Исполнение (
· Расширение (
· Обобщение (
Пример:
Для детализации варианта даётся описание потока. Стандартный состав:
O название;
O предусловие: описывается, что должно быть выполнено для того, чтобы началось выполнение такого-то варианта;
O описание основного потока: пошаговое описание работы варианта с точки зрения внешнего пользователя;
O описание подпроцессов: при наличии альтернативных вариантов, т.е. логика ветвления;
O описание альтернативных процессов: описание побочного варианта, связанного с желанием пользователя завершить процесс ненормальным образом. Можно выделить подкласс обработки ошибок.
Диаграмма активности и деятельности
Описывается логика работы системы, описание отдельных вариантов или наборов вариантов.
Наборы инструментов:
1. Вход . Может быть несколько, если описывается несколько вариантов использования.
2. Выход . Указывает завершение работы.
3. Действие . Указывает функцию обработки.
4. Связь >. Указывает возможный переход от действия к действию. Из действия может быть несколько выходов. Если несколько действий, то задаются условия перехода, они должны быть взаимоисключающими, набор должен быть полным.
5. Ветвление . Служит для более наглядного представления множественного ветвления.
6. Линейка синхронности . Верхняя часть - ветвление на несколько параллельных веток, а нижняя - слияние этих веток. Для верхней части может быть задано условие инициализации, для нижней - условие завершения параллельного участка.
Диаграмма классов
Представляется набор классов и связей между ними. Класс изображается следующим образом:
В названии может быть указан стереотип:
§ <
§ <
§ <
В атрибутах указывается перечень сведений, представляющий информацию об экземпляре класса, класс видимости, название, тип, значение по умолчанию:
<видимость> <название> : <тип> = <умолчание>
Классы видимости:
§ <
§ <
§ <
§ <
В операциях указываются действия, которые могут выполняться данным классом, задается видимость, название, список атрибутов, тип выходного результата.
Класс предметной области связывается по нескольким типам:
1) Ассоциация. Описывает связь между экземплярами классов. Связь может быть однонаправленная и двунаправленная. Направление указывается стрелкой, для двунаправленной стрелки можно не указывать. >, <, - (-). Направленность стрелок указывает наличие ссылок на класс партнера. Ассоциации может быть приписан ассоциативный класс, в нем указывают дополнительные сведения по ассоциациям. Для ассоциативной связи можно указывать координальность (сколько экземпляров классов может входить в экземпляр).
1>1; *>0-?; 1...*(1,*)>1-?; 0,1>0-1; n; n…m
2) Агрегация и композиция указывают, что экземпляр класса А как составная часть входит в экземпляр класса В. Агрегация - более слабый вид связи, экземпляры В могут быть свободными. А в композиции экземпляры В жестко связаны с А.
3) Обобщение. Указывает, что один класс является наследником другого.
4) Зависимость. Один класс в своем определении использует ссылки на другой класс (как в Си библиотеки). Класс использует класс используется.
Диаграмма взаимодействия
Показывает последовательность выполнения действий классами для решения задачи.
Варианты:
1. Диаграмма последовательностей. Описывает последовательность решения отдельной задачи. Верхняя часть диаграммы - - действующие лица и - объекты, участвующие в операциях. Последовательность решений задается стрелками между линиями жизни. Стрелка - передача сообщения от объекта к объекту. Указывается название (параметры) [условия].
2. Корпоративная диаграмма. Позволяет отобразить несколько вариантов развития в компактной форме. Сообщения маркируются с указанием названия и номера. Номера в простейшем случае последовательные, в сложном - составные:
инициализирующее_сообщение.ответное_сообщение
Диаграмма состояний
Описывает динамику изменения состояния для одного класса. Состояния относятся ко всем или нескольким вариантам. Объект может принимать несколько состояний. Расширяет описание конкретного класса, описывает возможное состояние экземпляра класса и переход из состояния в состояние.
Элементы:
Типы действий:
§ entry: <название> - действие, выполняющееся при входе в состояние (однократное).
§ do: <название> - действие, выполняющееся при нахождении в данном состоянии. Действие может быть разовым или повторяющимся. Действие-состояние может быть прерываемым и непрерываемым.
§ exit: <название> - действие, выполняющееся однократно при выходе из состояния.
Стрелки - переход из одного состояния в другое.
Для состояний может быть указано: событие [условие] / действие.
Событие - указывается событие, инициализирующее переход.
Условие - ограничение - которое должно быть выполнено для выполнения перехода. Условия взаимоисключающие по событиям.
Результат объектно-ориентированного проектирования: набор классов для реализации.