МОДЕЛИРОВАНИЕ НА UML Политехнический университет 2012
Оглавление слайдов Об этом курсе Введение в UML Моделирование использования Моделирование структуры Моделирование поведения (2/2) (3 – 79 )
МОДЕЛИРОВАНИЕ НА UML Моделирование поведения
Содержание Диаграммы автомата Диаграммы деятельности Диаграммы взаимодействия Моделирование параллелизма Выводы
Диаграммы взаимодействия Моделируют поведение, описывая взаимодействия объектов : экземпляров классов, действующих лиц, вариантов использования, подсистем, компонентов, узлов на уровне ролей, а не на уровне конкретных экземпляров Моделируют поведение « по индукции », от частного к общему Взаимодействие происходит путем обмена сообщениями « Ближе » к реальному выполнению программы
Виды диаграмм взаимодействия Д иаграммы последовательности и диаграммы коммуникации семантически эквиваленты Сущности : экземпляры классификаторов Отношения : экземпляры ассоциаций, по которым передаются сообщения Обзорные диаграммы взаимодействия – смесь диаграмм деятельности и последовательности Диаграммы синхронизации – смена состояний объекта во времени
Сообщения предшественники / повторность номер : атрибуты = ИМЯ ( аргументы ) : переменные Сообщение (message) передача управления и данных от отправителя к получателю Отправка сообщения действие Получение сообщения событие Широковещательное сообщение (broadcast), т.е. имеется несколько получателей указывается с помощью повторителей Условное сообщение : со сторожевым условием
Действия отправки сообщения В UML 1: вызов метода (call) создание объекта (create) уничтожение объекта (destroy) возврат значения (return) посылка сигнала (send) UML 1 переменные := ИМЯ ( аргументы ) UML 2 атрибуты = ИМЯ ( аргументы ) : переменные
Вид стрелкиТип передачи сообщения Вложенный поток управления Сообщение отправляется, и отправитель ожидает завершения всех инициированных действий Асинхронный поток управления Сообщение асинхронно передается, при этом у отправителя сохраняется свой поток управления Возврат управления Возврат управления после выполнения всех действий, инициированных передачей сообщения с вложенным потоком управления Не определяется Допускается использование при моделировании других типов передачи управления Передача управления
Порядок сообщений На диаграмме последовательности : Определяется временем отправки Время считается текущим на диаграмме сверху вниз На диаграмме коммуникации : Определяется номером сообщения Обычная порядковая или иерархическая нумерация На диаграмме синхронизации : Определяется временем отправки Время считается текущим на диаграмме слева направо На обзорной диаграмме взаимодействия : Определяется потоком управления
Диаграммы последовательности Моделируют поведение в форме описания протокола сеанса обмена сообщениями между взаимодействующими экземплярами классификаторов во время выполнения сценария На диаграмме : только те экземпляры, связи и сообщения, которые участвуют во взаимодействии
Связь Связь (link) это экземпляр отношения = набор ссылок на экземпляры классификаторов, связанных этим отношением Постоянные связи экземпляры ассоциаций Временные связи могут ими не быть …
Линия жизни Линия жизни (lifeline): по оси времени Представляет объект во взаимодействии : отправляет сообщение получает сообщение начинает существование заканчивает существование
Описание взаимодействия (1/4) Для создания подразделения менеджер штатного расписания должен использовать специальную форму, гарантирующую выполнение проверок корректности выполнения операции по созданию подразделения
Диаграмма последовательности (2/4)
Основные классы компонента StaffManagerGui (3/4)
Диаграмма последовательности для StaffManagerGui (4/4)
Управление временем (1/3) Все подразделения, в том числе удаленные филиалы, должны быть оповещены о создании нового подразделения в течение 24 часов. Время выполнения необходимых проверок и операций при создании нового подразделения не должно превышать 3 секунды
Задержанная доставка сообщения (2/3)
Продолжительность выполнения метода (3/3)
Поток управления Спецификация выполнения (execution specification): Показывает, что некоторый объект в определенный период взаимодействия имеет фокус управления = активизирован В UML 1 называется активация (activation) Начало прием сообщения вызова метода Конец завершение выполнения метода и возврат управления Глубина стеков вызова не ограничена
Активации и возвраты
Составные шаги взаимодействия (1/2) Составные шаги взаимодействия (combined fragment) позволяют отражать ветвления, циклы Рамка, в углу которой указывается тип составного шага Ключевое слово название #ФорматОписание alt альтернатива (alternative) 2..*Сторожевое условие в каждом шаге Выбор и выполнение одной альтернативы. Можно использовать предикат else break останов 1Сторожевое условие в шаге Прекращение шага более высокого уровня
Ключевое слово название #ФорматОписание loop цикл 1Верхняя и нижняя границы числа повторений Циклическое повторение составляющего шага, пока выполнено сторожевое условие opt необязательный (optional) 1Сторожевое условие в шаге Условное выполнение шага par параллельный (parallel) 2.. * Параллельное выполнение шагов Составные шаги взаимодействия (2/2) В таблице перечислены 5 типов шагов из 12 типов, определенных в UML 2
Составной шаг взаимодействия
Составные вложенные шаги взаимодействия При запуске приложения ИС ОК необходимо : Идентифицировать и проверить пользователя ; Идентифицировать и проверить лицензию.
Использование взаимодействия Использование взаимодействия (interaction use) ссылка на взаимодействие определенное в другом месте
Состояния экземпляра класса Position
Состояния объекта на диаграмме последова - тельности
Обзорные диаграммы взаимодействия (1/2) = Interaction overview diagram Появились в UML 2 Заимствованы из MSC Поток управления и узлы управления как в диаграмме деятельности Вместо узлов действий ссылки на диаграммы последовательности
Обзорная диаграмма взаимодействия (2/2)
Диаграммы коммуникации (1/2) Сущность : объект конкретный индивидуальный объект конкретное взаимодействие слот во фрейме взаимодействия множество взаимодействий = роль ( классификатора ) Отношения : связи связывает роли классификаторов сама является слотом = роль ассоциации
Диаграммы коммуникации (2/2) Контекст взаимодействия : диаграмма коммуникации, в которой не указаны сообщения Номер сообщения : Только простые или асинхронные сообщения нумеруются подряд x x.1, х.1.1, х.1.2, … x.2, …...
Время жизни объекта Ключевое слово Способ использования Описание Create стереотип операции в сообщении Операция создает объект Destroy стереотип операции в сообщении Операция уничтожает объект Destroyed ограничение роли классификатора Объект уничтожается в процессе описываемого взаимодействия New ограничение роли классификатора Объект создается в процессе описываемого взаимодействия Transient ограничение роли классификатора Объект создается и уничтожается в процессе описываемого взаимодействия Такой объект называется временным
Диаграмма коммуникации
Диаграммы синхронизации Диаграммы синхронизации (timing diagram) описание поведения системы объектов с указанием изменения их состояний во времени Состояния могут быть : дискретные непрерывные
Диаграмма синхронизации для одного объекта
Упрощенное представление диаграммы синхронизации
Диаграмма синхрониза ции для нескольких объектов
Моделирование параллелизма Параллельность « одновременное » выполнение нескольких деятельностей Разделение времени Параллельные процессы не упорядочены во времени последовательные процессы линейно упорядочены во времени UML: параллельные потоки управления и способы взаимодействия между ними
Взаимодействие последовательных процессов Взаимодействие в UML: сообщения синхронные ( вызовы операций ) асинхронные ( посылка сигналов ) Типичный вариант : взаимодействие машин состояний разных классов с помощью действий, выполняемых на переходах
Пример : перевод сотрудника Требуется первести с одной должности на другую с сохранением ссылочной целостности leave
Исходное и целевое состояния assignP2P(person : Person, position : Position)
Изоморфные машины состояний dismiss ()
Первый сценарий выполнения
Второй сценарий выполнения
Бесконечная взаимная рекурсия leave()
Взаимная блокировка
Параллельная обработка данных Параллельная обработка данных : Начисление зарплаты, рассылка писем, создание заказа из нескольких позиций и т. д. Решение задачи : найти сумму S заданных чисел ai, i = 1, …, n var A : array [1..n] of real; S : real; i : integer; S := 0; for i:=1 to n do S := S + A[i]; ИЛИ var A : bag [n] of real; S : real; S := 0; for each a A do S := S + a;
Динамическая параллельность Динамическая параллельность (dynamic concurrency) на диаграммах деятельности в UML 1
Область разложения в UML 2 Область разложения (expansion region) структурированный узел деятельности получает коллекцию на вход разлагает коллекцию на составляющие элементы производит указанные действия индивидуально с каждым элементом коллекции помещает элементы в выходную коллекцию, если нужно
Действия над элементами коллекции Ключевое слово ОписаниеПримечания «iterative» в порядке, который задает коллекция N маркеров данных и N экземпляров тела области Выполнение экземпляров строго по очереди «parallel» параллельно, т. е. в произвольном порядке N маркеров данных и N экземпляров тела области Выполнение экземпляров в произвольном порядке «stream» конвейерным потоком N маркеров данных и 1 экземпляр тела области Маркеры данных поступают в тело по очереди, но следующий не дожидается, когда будет завершена обработка предыдущего
Последовательная область разложения 1. Рамка области разложения 2. Узел разложения 3. Ключевое слово Суммирование массива Суммировать можно в любом порядке, но переменная S одна !
Параллельная область разложения Начисление зарплаты Начислять зарплату можно в любом порядке и независимо для каждого работника ! 1.Действие по вызову деятельности 2.Ключевое слово
Параллельная область разложения (2/2) Начисление зарплаты : оклад, надбавки, налоги Начислять зарплату можно независимо для каждого работника, но налоги вычитаются после начисления оклада и надбавок !
Сокращенная нотация Если внутри области разложения содержится всего одно действие Применяется только для параллельного разложения Напоминает динамическую параллельность UML 1 1.Узел разложения 2.Маркер параллельности
Конвейерная область разложения
Параллельность на диаграммах состояний Ортогональные ( параллельные ) составные состояния и составные переходы Активное состояние (active state) в котором находится машина состояний в данный момент простое состояние все составные состояния, объемлющие данное простое состояние конфигурация активных состояний
Ортогональное составное состояние
Диаграмма автомата сотрудника ( напоминание )
Переходы, не пересекающие границу составного ортогонального состояния Аналогично последовательным составным состояниям Переход в состояние переход в начальные состояния всех областей данного состояния Переход по событию и / или со сторожевым условием из состояния распространение данного перехода на все вложенные состояния всех областей Переход по завершении из состояния синхронное завершение всех вложенных машин состояний
Ортогональные области в состоянии Employed
Составные переходы
Синхронизирующие состояния (1/2) Используется в UML 1 Синхронизирующие состояние (synch state): ставит срабатывание перехода в целевой машине в зависимость от срабатывания перехода в исходной машине Входные сегменты переходов : начинаются в развилках исходной машины состояний Выходные сегменты переходов : заканчиваются в соединениях целевой машины состояний
Синхронизирующие состояния (2/2)
Писатель и Читатель
Развилки и слияния Составной переход по завершении = развилка, слияние, линейка синхронизации UML 1 Сначала завершаются все деятельности, инцидентные входящим сегментам параллельно запускаются все деятельности, инцидентные исходящим сегментам UML 2 Развилка создает копии пришедшего маркера на каждую исходящую дугу Слияние получает маркер по всем входящим дугам отправляет маркер по исходящей дуге
Баланс развилок и слияний баланс Нарушение баланса
Диаграмма деятельности операции перевода сотрудника
Выражение обусловленного потока управления через ветвление
Обусловленный поток управления
Параллелизм на диаграммах взаимодействия На диаграммах коммуникации Номера сообщений : цифры и буквы На диаграммах последовательности Составные шаги взаимодействия
Параллельное взаимодействие
Активные классы Активный класс это класс, экземплярами которого являются активные объекты. это объект, имеющий собственный поток управления = это и есть поток управления Пассивный объект это объект класса, который не является активным
Диаграмма коммуникации с активным классом
Выводы (1/2) Диаграммы взаимодействия – последовательность сообщений при взаимодействии объектов Диаграммы взаимодействия – наиболее детальный способ описания поведения ( протокол ) Диаграммы коммуникации и последовательности семантически эквивалентны Диаграммы синхронизации показывают изменение состояния во времени Обхорные диаграммы взаимодействия являются комбинацией диаграмм деятельности и диаграмм взаимодействия
Выводы (2/2) Параллелизм на диаграммах автомата задается ортогональными составными состояниями Параллелизм на диаграммах деятельности задается развилками и слияниями потоков управления и данных Параллелизм на диаграммах последовательности задается специальными составными шагами взаимодействия Объект активного класса задает поток управления