Лекция4 (1). Лектор Ивахник Дмитрий Евгеньевич кандидат экономических наук, доцент
Скачать 7.79 Mb.
|
Лектор: Ивахник Дмитрий Евгеньевич кандидат экономических наук, доцент Анализ и концептуальное моделирование систем UML характеристики возможности
разработку репрезентативных мо- делей для организации взаимодействия заказчика и разработчика ИС, различных групп разработчиков ИС;
Версии UML
Структура UML общие UML пути достижения определенных целей представление архитектуры системы Иерархия типов диаграмм Диаграммы последовательности представляют собой углубленное рассмотрение ситуаций, описываемых вариантами использования. Каждый вариант использования требует, по крайней мере, одной диаграммы, которая отражает поток событий, происходящих в рамках данного прецедента. С помощью диаграмм последовательности можно представить взаимодействие элементов модели как своеобразный временной график «жизни» всей совокупности объектов, связанных между собой какими-либо отношениями для реализации конкретного варианта использования программной системы. Графически диаграмма последовательности имеет два измерения. Одно – слева направо в виде вертикальных линий, каждая из которых соответствует линии жизни отдельного участника взаимодействия. Второе – вертикальная временная ось, направленная сверху вниз. Начальному моменту времени соответствует самая верхняя часть диаграммы. Масштаб для оси времени на диаграмме последовательности не указывается, поскольку эта диаграмма предназначена для моделирования только лишь временного порядка следования сообщений типа «раньше – позже». Фокус управления В процессе функционирования объектно-ориентированных систем объекты могут находиться в активном состоянии, непосредственно выполняя определенные действия, или в состоянии пассивного ожидания сообщений от других объектов. Для того чтобы явно выделить подобную активность объектов, на диаграммах последовательности используется фокус управления. Фокус управления (focus of control) – специальный символ на диаграмме последовательности, указывающий период времени, в течение которого объект выполняет некоторое действие, на ходясь в активном состоянии. Фокус управления изображается в форме вытянутого узкого прямоугольника, расположенного ниже соответствующего обо- значения объекта. Верхняя сторона данного прямоугольника обозначает начало, а нижняя – окончание активности объекта. Периоды активности объекта могут чередоваться с периодами пассивности. В этом случае фокусы управления меняют свое изображение на линию жизни и наоборот. Если объект активен на всем протяжении своей линии жизни, то он получает фокус управления сразу при своем создании. В этом случае прямоугольник фокуса управления может заменять линию жизни объекта. Иногда инициатором взаимодействия в системе может быть актер или внешний пользователь. В этом случае актер изображается на диаграмме последовательности самым первым объектом слева в виде специального символа «проволочного человечка» со своим фокусом управления. Актер может иметь собственное имя или быть анонимным. Чаще всего актер и его фокус управления существуют в системе постоянно, отмечая тем самым характерную для пользователя активность в инициировании взаимодействия с системой. Оператор взаимодействия break Оператор взаимодействия break (завершение) определяет комбинированный фрагмент, который представляет некоторый сценарий завершения. Этот сценарий может выполняться вместо оставшейся части диаграммы последовательности, которая со- держит этот оператор взаимодействия, поэтому оператор завершения должен охватывать все линии жизни данной диаграммы взаимодействия. Оператор break не может содержать более одного операнда, у которого обязательно должно быть сторожевое условие, если оно истинно, то выполняется и комбинированный фрагмент, а оставшаяся часть диаграммы будет пропущена. Если сторожевое условие ложно, то игнорируется сам оператор взаимодействия, а следующим будет выполняться сообщение, идущее сразу за прямоугольником комбинированного фрагмента. На рисунке представлена часть диаграммы последовательности с комбинированным фрагментом завершения. При вводе неверного ПИН-кода поток управления передается в комбинированный фрагмент, внутри которого выполняются сообщения «вывод Сообщения» и «вернуть Карту», и на этом выполнение последовательности взаимодействий завершается, то есть все сообщения, расположенные ниже комбинированного фрагмента завершения, игнорируются. Если ПИН-код оказывается правильным, то сторожевое условие внутри комбинированного фрагмента не выполняется. Это значит, что сам комбинированный фрагмент пропускается, а выполнение последовательности взаимодействий продолжается сообщением «запросить Действие», идущим сразу после комбинированного фрагмента. Оператор взаимодействия loop Оператор взаимодействия loop (цикл) представляет собой циклическое повторение некоторой последовательности сообщений, то есть операнд цикла может повторяться несколько раз. Оператор loop содержит дополнительное сторожевое условие, которое может включать некоторое логическое выражение, а также нижний и верхний пределы числа повторений цикла. Число повторений указывается в круглых скобках после оператора loop, сначала нижний, а через запятую верхний предел повторений. Если в данном операторе взаимодействия определено только одно значение, то считается, что минимальное количество повторений равно максимальному количеству повторений. Если указан только оператор loop, то это означает цикл с бесконечной верхней границей и с нулем в качестве нижней границы. Количество повторений цикла не может быть меньше нижнего предела повторений и больше верхнего. На рисунке рассмотрен несколько измененный фрагмент диаграммы последовательности из предыдущего примера. В этом случае возможен повторный ввод ПИН-кода, если код был введен с ошибкой. Цикл будет выполнен, по крайней мере, один раз, так как при первом проходе сторожевое условие не проверяется. Цикл завершается после первого успешного ввода ПИН-кода или после трех неудачных попыток. В зависимости от условий завершения комбинированного фрагмента loop, последовательность взаимодействий будет либо прервана в операторе завершения, где карточка клиента будет блокирована после трех неудачных попыток ввода ПИН-кода, либо продолжена дальше в том случае, если хотя бы одна из трех попыток оказалась успешной. Оператор взаимодействия alt Оператор взаимодействия alt (альтернатива) специфицирует комбинированный фрагмент, предоставляющий некоторый выбор поведения минимум из двух операндов. Каждый из опе рандов должен иметь сторожевое условие его выполнения, если такого условия нет, то неявно предполагается значение «истина». При этом выбор может быть сделан не более одного из операндов, то есть несколько ограничений из разных операндов не мо- гут одновременно принимать значение «истина». Если при выполнении последовательности взаимодействий ни одно из сторожевых условий, соответствующих операндам данного комбинированного фрагмента, не приняло значение «истина», то не выполняется ни один из операндов этого комбинированного фрагмента. Он пропускается полностью и выполняется следующая за ним часть диаграммы взаимодействия. ered Trial Version rial Version E Version EA 7.1 Unregistered Tr В качестве примера рассмотрен упрощенный вариант диаграммы последовательности, которая описывает снятие денег в банкомате. Клиент запрашивает для снятия определенную сумму, если данная сумма превышает количество денег на счете, то выполняется первый операнд, а второй операнд будет пропущен. Если сторожевое условие «счет превышен» не выполняется, то первый операнд будет пропущен, после чего проверяется условие второго операнда и сам этот операнд выполняется. Частным случаем оператора alt можно назвать оператор взаимодействия opt (необязательный), так как он семантически эквивалентен альтернативному комбинированному фрагменту, в котором имеется один операнд с непустым содержанием, а вто- рой операнд отсутствует. Оператор opt специфицирует комбини- рованный фрагмент поведения, который представляет собой Оператор взаимодействия opt выбор поведения, когда выполняется один операнд или вовсе ниче- го не выполняется. Необязательный комбинированный фрагмент состоит из одного операнда со сторожевым условием. Если оно выполняется – выполняется и операнд. В противном случае опе- ранд не выполняется. На рисунке рассмотрен пример фрагмента диаграммы последовательности для ввода ПИН-кода. В данном случае комбинированный фрагмент opt используется внутри оператора взаимодействия loop для необязательного вывода сообщения и запроса ПИН-кода в случае его неверного ввода, если он окажется верным, то оператор opt будет проигнорирован. Следует обратить внимание, что комбинированный фрагмент (кроме оператора break) может охватывать не все линии жизни, имеющиеся на диаграмме последовательности, а только те, которые участвуют во взаимодействии внутри данного фрагмента. Это правило не является обязательным и используется только для удобства визуализации. В приведенном примере оператор взаимодействия opt расположен на тех линиях жизни, которые участвуют в передаче сообщений при выполнении данного оператора. Оператор взаимодействия par Наряду с последовательными сообщениями на диаграммах последовательности можно отображать и параллельное выполнение взаимодействий. Для этого используется оператор взаимодействия par (параллельный), который специфицирует комбини- рованный фрагмент, представляющий некоторое параллельное выполнений взаимодействий своих операндов. В параллельном комбинированном фрагменте наступления событий у различных операндов могут чередоваться по времени произвольным образом. Однако внутри каждого отдельного операнда соблюдается последовательный порядок выполнения со- общений. На рисунке приведен фрагмент диаграммы последовательности, которая моделирует обработку запросов некоторой СУБД. В этом примере все запросы могут обрабатываться параллельно, причем запросы от разных пользователей и их обработка могут чередоваться между собой. Например, после передачи запроса в первом операнде может быть передан запрос во втором операнде. После чего обработан запрос в первом операнде, и, наконец, обработан запрос во втором операнде. То есть из расположения со- общений в различных регионах операндов нельзя сделать ника- кого заключения о порядке их выполнения. В то же время сообщения внутри каждого операнда упорядочены сверху вниз. Оператор взаимодействия critical Оператор взаимодействия critical (критический регион) специфицирует комбинированный фрагмент взаимодействия, траектории которого не могут чередоваться с другими спецификация- ми, наступления событий на тех или иных линиях жизни, которые этот регион покрывает. Это означает, что наступления событий или передача сообщений в этом регионе не может чередоваться с наступлениями собы тий или передачами сообщений в других регионах, даже если другие операторы взаимодействия могут допускать такое чередование В качестве иллюстрации применения критического региона рассмотрим фрагмент диаграммы последовательности из предыдущего примера. Добавление на диаграмму критического региона означает, что если поступает запрос на обновление, который изображен в комбинированном фрагменте «critical», то он должен быть сразу обработан. При этом между поступлением запроса на обновление и его обработкой СУБД не могут быть выполнены никакие другие сообщения. В отдельных случаях объект может посылать сообщения самому себе, инициируя так называемые рефлексивные сообщения. Такие сообщения изображаются в форме сообщения, начало и конец которого соприкасаются с линией жизни или фокусом управления одного и того же объекта. Подобные ситуации возникают, например, при обработке нажатий на клавиши клавиатуры при вводе текста в редактируемый документ, при наборе цифр номера телефона абонента. Если в результате рефлексивного сообщения создается новый подпроцесс или нить управления, то говорят о рекурсивном или вложенном фокусе управления. На диаграмме последовательности рекурсия обозначается небольшим прямоугольником, присоединенным к правой стороне фокуса управления того объекта, для которого изображается данное рекурсивное взаимодействие. |