Главная страница
Навигация по странице:

  • Последовательные подсостояния

  • Параллельные подсостояния

  • Несовместимое подсостояние

  • Sub Diagrams > 1) New Diagram > State Machine Diagram >

  • Transition > State (

  • Open Specification…

  • Entry

  • Initial Pseudo State

  • Orientation > Horizontal.

  • Практическая работа №21 Разработка диаграмм деятельности с помощью Visual Paradigm for UML Цель

  • 2 Краткие теоретические сведения

  • Состояние под-деятельности

  • Практическая работа 1213 Построение диаграмм состояний на языке uml с помощью ms visio


    Скачать 3.46 Mb.
    НазваниеПрактическая работа 1213 Построение диаграмм состояний на языке uml с помощью ms visio
    Дата26.03.2023
    Размер3.46 Mb.
    Формат файлаpdf
    Имя файла3_MR_PR_i_SR_MDK.01.02_chasty_2.pdf
    ТипПрактическая работа
    #1016164
    страница6 из 7
    1   2   3   4   5   6   7
    триггерным, если его специфицирует событие-триггер, связанное с внешними условиями по отношению к рассматриваемому состоянию.
    В этом случае рядом со стрелкой триггерного перехода обязательно указывается имя события в форме строки текста, начинающейся со строчной буквы. Наиболее часто в качестве имен триггерных переходов задают имена операций, вызываемых у тех или иных объектов системы. После имени такого события следуют круглые скобки для явного задания параметров соответствующей операции. Если таких параметров нет, то список параметров со скобками может отсутствовать. Например, переход на рис. 4, а,

    54 является триггерным, поскольку с ним связано конкретное событие-триггер, происходящее асинхронно при срабатывании некоторого датчика.
    Переход называется нетриггерным, если он происходит по завершении выполнения ду- деятельности в данном состоянии.
    Нетриггерные переходы часто называют переходами по завершении ду-деятельности. Для них рядом со стрелкой перехода не указывается никакого имени события, а в исходном состоянии должна быть описана внутренняя ду-деятельность, по окончании которой произойдет тот или иной нетриггерный переход.
    Рисунок 88 – Графическое изображение триггерного (а) и нетриггерного (б) переходов на диаграмме состояний
    Сторожевое условие (guard condition) – логическое условие, записанное в прямых скобках и представляющее собой булевское выражение. При этом булевское выражение должно принимать одно из двух взаимно исключающих значений: «истина» или «ложь». Из контекста диаграммы состояний должна явно следовать семантика этого выражения, а для записи выражения может использоваться обычный язык, псевдокод или язык программирования.
    Рисунок 89 – Триггерные и нетриггерные переходы на диаграмме состояний
    Изображенный фрагмент диаграммы состояний (рис. 5) моделирует изменение состояний банкомата при проверке ПИН-кода. Нетриггерные переходы на данной диаграмме помечены сторожевыми условиями, которые исключают конфликт между ними. Что касается триггерного перехода, помеченного событием отмена транзакции, то он происходит независимо от проверки ПИН-кода в том случае, когда клиент решил отказаться от ввода ПИН-кода.
    Выражение действия (action expression) представляет собой вызов операции или передачу сообщения, имеет атомарный характер и выполняется сразу после срабатывания соответствующего перехода до начала действий в целевом состоянии. Выражение действия выполняется в том и только в том случае, когда переход срабатывает.
    Атомарность действия означает, что оно не может быть прервано никаким другим действием до тех пор, пока не закончится его выполнение. Данное действие может оказывать влияние как на сам объект, так и на его окружение, если это с очевидностью следует из контекста модели. Данное выражение записывается после знака "/" в строке текста, присоединенной к соответствующему переходу.
    В качестве примера выражения действия перехода (рис. 6) может служить отображение сообщения на экране банкомата в том случае, когда запрашиваемая клиентом сумма превосходит остаток на его счету. В случае если кредит не превышен, то происходит переход в состояние получения наличных.
    Рисунок 90 – Выражение действия перехода на диаграмме состояний

    55
    Составное состояние (composite state) – сложное состояние, которое состоит из других вложенных в него состояний (состояние-композит). Вложенные состояния выступают по отношению к составному состоянию как подсостояния (substate). И хотя между ними имеет место отношение композиции, графически все вершины диаграммы, которые соответствуют вложенным состояниям, изображаются внутри символа составного состояния (рис. 7). В этом случае размеры графического символа составного состояния увеличиваются, так чтобы вместить в себя все подсостояния.
    Рисунок 91 – Графическое представление составного состояния с двумя вложенными в него последовательными подсостояниями
    Составное состояние может содержать или несколько последовательных подсостояний, или несколько параллельных конечных подавтоматов. Каждое состояние-композит может уточняться только одним из указанных способов. При этом любое из подсостояний, в свою очередь, может быть состоянием- композитом и содержать внутри себя другие вложенные подсостояния. Количество уровней вложенности составных состояний в языке UML не фиксировано.
    Последовательныеподсостояния (sequential substates) – вложенные состояния состояния- композита, в рамках которого в каждый момент времени объект может находиться в одном и только одном подсостоянии.
    Поведение объекта в этом случае представляет собой последовательную смену подсостояний, от начального до конечного. Моделируемый объект или система продолжает находиться в составном состоянии, тем не менее, введение в рассмотрение последовательных подсостояний позволяет учесть более тонкие логические аспекты его внутреннего поведения.
    В качестве примера моделируемой системы стоит рассмотреть обычный телефонный аппарат. Он может находиться в различных состояниях, в частности в состоянии дозвона до абонента. Очевидно, для того чтобы позвонить, необходимо снять телефонную трубку, услышать тоновый сигнал, после чего набрать нужный телефонный номер. Таким образом, состояние дозвона до абонента является составным и состоит из двух последовательных подсостояний: Телефонная трубка поднята и Набор телефонного номера. Фрагмент диаграммы состояний для этого примера содержит одно состояние-композит, которое состоит из двух последовательных подсостояний (рис. 8).
    Рисунок 92 – Пример составного состояния с двумя вложенными последовательными подсостояниями
    Некоторых пояснений могут потребовать переходы. Два из них специфицируют событие-триггер, которое имеет имя: набор цифры(n) с параметром n. В качестве параметра, как нетрудно предположить, выступает отдельная цифра на диске телефонного аппарата. Переход из начального подсостояния не содержит никакой строки текста. Последний переход в конечное подсостояние также не имеет события- триггера, но имеет сторожевое условие, проверяющее полноту набранного номера абонента. Только в

    56 случае истинности этого условия телефонный аппарат может перейти в конечное состояние для состояния-композита Дозвон до абонента.
    Каждое составное состояние должно содержать в качестве вложенных состояний начальное и конечное состояния. При этом начальное подсостояние является исходным, когда происходит переход объекта в данное составное состояние. Если составное состояние содержит внутри себя конечное состояние, то переход в это вложенное конечное состояние означает завершение нахождения объекта в данном составном состоянии. Важно помнить, что для последовательных подсостояний начальное и конечное состояния должны быть единственными в каждом составном состоянии.
    Это можно объяснить следующим образом. Каждая совокупность вложенных последовательных подсостояний представляет собой конечный подавтомат того конечного автомата, которому принадлежит рассматриваемое составное состояние. Поскольку каждый конечный автомат может иметь по определению единственное начальное и единственное конечное состояния, то для любого его конечного подавтомата это условие также должно выполняться.
    Параллельные подсостояния (concurrent substates) – вложенные состояния, используемые для спецификации двух и более конечных подавтоматов, которые могут выполняться параллельно внутри составного состояния.
    Каждый из конечных подавтоматов занимает некоторую графическую область внутри составного состояния, которая отделяется от остальных горизонтальной пунктирной линией. Если на диаграмме состояний имеется составное состояние с вложенными параллельными подсостояниями, то объект может одновременно находиться в каждом из этих подсостояний.
    Отдельные параллельные подсостояния могут, в свою очередь, состоять из нескольких последовательных подсостояний (рис. 9). В этом случае по определению моделируемый объект может находиться только в одном из последовательных подсостояний каждого подавтомата. Таким образом, для фрагмента диаграммы состояний (рис. 9) допустимо одновременное нахождение объекта только в следующих подсостояниях: (А, В, Г), (Б, В, Г), (А, В, Д), (Б, В, Д).
    Рисунок 93 – Графическое изображение состояния-композита с вложенными параллельными подсостояниями
    Несовместимое подсостояние (disjoint substate) – подсостояние, в котором подсистема не может находиться одновременно с другими подсостояниями одного и того же составного состояния.
    В этом контексте недопустимо нахождение объекта одновременно в несовместимых подсостояниях
    (А, Б, В) или (В, Г, Д).
    Может оказаться необходимым учесть ту часть деятельности, которая была выполнена на момент выхода из этого состояния-композита, чтобы не начинать ее выполнение сначала. Для этой цели в языке
    UML существует историческое состояние.
    Историческое состояние (history state) – псевдосостояние, используемое для запоминания того из последовательных подсостояний, которое было текущим в момент выхода из составного состояния.
    Историческое состояние применяется только в контексте составного состояния. При этом существует две разновидности исторического состояния: неглубокое или недавнее и глубокое или давнее (рис. 10).
    Рисунок 94 – Графическое изображение недавнего (а) и давнего (б) исторического состояния
    Неглубокое историческое состояние (shallow history state) обозначается в форме небольшой окружности, в которую помещена латинская буква «H» (рис. 10, а). Это состояние обладает следующей семантикой. Во-первых, оно является первым подсостоянием в составном состоянии, и переход извне в рассматриваемое составное состояние должен вести непосредственно в данное историческое состояние.

    57
    Во-вторых, при первом попадании в неглубокое историческое состояние оно не хранит никакой истории.
    Другими словами, при первом переходе в недавнее историческое состояние оно заменяет собой начальное состояние соответствующего конечного подавтомата.
    Далее могут последовательно изменяться вложенные подсостояния. Если в некоторый момент происходит выход из составного состояния (например, в случае наступления некоторого события), то рассматриваемое историческое состояние запоминает то из подсостояний, которое было текущим на момент выхода из данного составного состояния. При последующем входе в это составное состояние неглубокое историческое подсостояние имеет непустую историю и сразу отправляет конечный подавтомат в запомненное подсостояние, минуя все предшествующие ему подсостояния.
    Глубокое историческое состояние (deep history state или состояние глубокой истории) также обозначается в форме небольшой окружности, в которую помещена латинская буква «H» с дополнительным символом "*" (рис. 10, б), и служит для запоминания всех подсостояний любого уровня вложенности для исходного составного состояния.
    В отдельных случаях возникает необходимость явно показать ситуацию, когда переход может иметь несколько исходных состояний или целевых состояний. Такой переход получил название –
    параллельный переход. Введение в рассмотрение параллельных переходов может быть обусловлено необходимостью синхронизировать и/или разделить отдельные процессы управления на параллельные нити без спецификации дополнительной синхронизации в параллельных конечных подавтоматах.
    Графически такой переход изображается вертикальной черточкой, аналогично обозначению перехода в известном формализме сетей Петри. Если параллельный переход имеет две или более исходящих из него дуг (рис. 11, а), то его называют разделением (fork). Если же он имеет две или более входящие дуги (рис. 11, б), то его называют слиянием (join). Текстовая строка спецификации параллельного перехода записывается рядом с черточкой и относится ко всем входящим или исходящим дугам.
    Рисунок 95 – Графическое изображение перехода-разделения в параллельные подсостояния (а) и перехода-слияния из параллельных подсостояний (б)
    Состояние синхронизации (synch state) – псевдосостояние в конечном автомате, которое используется для синхронизации параллельных областей конечного автомата.
    Синхронизирующее состояние обозначается небольшой окружностью, внутри которой помещен символ звездочки "*". Оно используется совместно с переходом-слиянием или переходом-разделением для того, чтобы явно указать события в других конечных подавтоматах, оказывающие непосредственное влияние на поведение данного подавтомата.
    Так, например, при включении компьютера с некоторой сетевой операционной системой параллельно начинается выполнение нескольких процессов. В частности, происходит проверка пароля пользователя и запуск различных служб. При этом работа пользователя на компьютере станет возможной только в случае успешной его аутентификации, в противном случае компьютер может быть выключен.
    Рассмотренные особенности синхронизации этих параллельных процессов учтены на соответствующей диаграмме состояний с помощью синхронизирующего состояния (рис. 12).

    58
    Рисунок 96 – Диаграмма состояний для примера включения компьютера
    Пример:Программное средство представляет собой базу данных и обеспечивает корректировку данных, а именно в БД «Группы» может изменяться перечень предметов в соответствие с курсом группы и отделением; в БД «Предметы» могут изменяться номера аудиторий и фамилии преподавателей; осуществляет поиск по ФИО преподавателя, номеру аудитории, названию предмета и номеру группы.
    Программное средство составляет расписание работы для конкретного преподавателя на неделю; для группы на неделю; для группы по конкретному предмету, а также отчет о загрузке аудиторий на каждый день.
    Рисунок 97 – Пример диаграммы состояний
    3 Методика выполнения
    В качестве примера рассматривается моделирование системы продажи товаров по каталогу.
    1. Запустите Visual Paradigm for UML CE.
    2. Откройте проект, содержащий диаграмму вариантов использования, построенную в практическом занятии №13.
    3. Для добавления новой диаграммы достаточно в меню Diagram > New Diagram выбрать тип диаграммы State Machine Diagram и нажмите кнопку Next. Задаnm имя диаграммы и нажать OK.
    4. Либо, в ранее созданной диаграмме классов, щелкнуть правой кнопкой мыши по классу, для которого необходимо создать диаграмму состояний и в контекстном меню выбрать Sub Diagrams > 1)
    New Diagram > State Machine Diagram > при необходимости изменить имя диаграммы и нажать ОК.
    2) Existing Diagram > выбрать в списке ранее созданную диаграмму и добавить ее в качестве поддиаграммы.
    5. В результате отобразится рабочая область с элементами для построения диаграммы состояний
    (рис. 14).

    59
    Рисунок 98 – Рабочая область для построения диаграммы состояний
    Далее будут описаны принципы построения диаграммы состояний.
    Для создания состояния необходимо на панели инструментов выбрать State и затем курсором мыши выбрать место расположения на диаграмме (Рисунок 15). После создания класса необходимо задать его имя (Рисунок 16).
    Рисунок 99 – Создание состояния
    Рисунок 100 – Задание имени в созданном состоянии
    Для создания перехода между на начальным состоянием и последующим состоянием или между состояниями выберите Transition > State (Рисунок 17).
    Перетащите курсор мыши на пустое место на диаграмме для создания нового или на уже существующее состояние для соединения. Отпустите кнопку мыши (Рисунок 17).
    Рисунок 101 – Выбор типа перехода
    Рисунок 102 – Создание перехода

    60
    Для добавления внутренних действий, нажмите правой кнопкой мыши по состоянию и выберите пункт Open Specification… добавить действия можно посредством определения значений полей Entry,
    Do, Exit Activity (Рисунок 19). Либо выделите состояние и нажмите Enter (рисунок 19).
    Рисунок 103 – Изменение внутренних действий
    Например, для добавления внутреннего действия Entry щелкните раскрывающийся список и выберите Create Activity… (рисунок 20).
    Рисунок 104 – Создание внутреннего действия
    Для добавления описания перехода дважды щелкните по нему и введите описание (рисунок 21).
    Рисунок 105 – Добавление описания перехода
    Чтобы добавить переход разветвления или объединения наведите курсор в правый нижний угол элемента Initial Pseudo State и выберите Fork или Join (рисунок 22). После добавления элемента, для того чтобы изменить ориентацию на горизонтальную, щелкните правой кнопкой мыши по элементу и в контекстном меню выберите Orientation > Horizontal.

    61
    Рисунок 106 – Добавление перехода разветвления
    Для того чтобы вернуться к диаграмме классов, нажмите на имя класса в иерархии диаграмм (рисунок
    22).
    Рисунок 107 – Открытие диаграммы классов
    Основываясь, на описанных выше принципах построения, постройте диаграммы состояний для системы продажи товаров по каталогу в соответствии с рисунками 24-27.
    Рисунок 108 – Диаграмма состояний для класса «Клиент»

    62
    Рисунок 109 – Диаграмма состояний для класса «Заказ»
    Рисунок 110 – Диаграмма состояний для класса «Заказ_Оплата»

    63
    Рисунок 111 – Диаграмма состояний для класса «Вариант_Оплаты»
    4 Задание
    Построить диаграммы состояний для всех классов диаграммы классов, построенной в практическом занятии №19 в соответствии с вариантом.
    Отчет по практическому занятию выполняется в формате MS Word, который содержит пошаговое описание процесса построения диаграммы, а также скриншоты результатов согласно заданию.
    5 Варианты
    1. «Отдел кадров»;
    2. «Агентство аренды»;
    3. «Аптека»;
    4. «Ателье»;
    5. «Аэропорт»;
    6. «Библиотека»;
    7. «Кинотеатр»;
    8. «Поликлиника»;
    9. «Автосалон»;
    10. «Таксопарк».
    11. «Издательство»;
    12. «Прокат велосипедов»;
    13. «Спортивный клуб».
    6 Контрольные вопросы
    1. Дайте определение понятию «диаграмма состояний».
    2. Опишите назначение диаграммы состояний.
    3. Дайте определение понятию «конечный автомат».
    4. Дайте определение понятиям «состояния», «действие», «псевдосостояние». Графическое изображение состояния.
    5. Что представляет собой переход? Какие бывают переходы, в чем их различие?
    6. Дайте определение понятию «событие».
    7. Дайте определения следующим понятиям: «составное состояние», «последовательные подсостояния», «параллельные подсостояния», «несовместимое подсостояние», «историческое состояние», «параллельный переход», «состояние синхронизации».

    64
    Практическая работа №21
    Разработка диаграмм деятельности с помощью Visual Paradigm for UML
    Цель: изучение основ создания диаграмм деятельности на языке UML с помощью case-средства
    Visual Paradigm for UML CE, применение приобретенных навыков для построения объектно- ориентированных моделей определенной предметной области.
    1 Задачи
    Основными задачами практической работы являются:
    ‒ получить навыки создания диаграмм деятельности с помощью case-средства Visual Paradigm for
    UML CE.
    2 Краткие теоретические сведения
    При моделировании поведения проектируемой или анализируемой программной системы возникает необходимость не только представить процесс изменения ее состояний, но и детализировать особенности алгоритмической и процедурной реализации выполняемых системой операций. Для этой цели, как правило, используются блок-схемы или структурные схемы алгоритмов. Каждая такая схема акцентирует внимание на последовательности выполнения определенных процедур или элементарных операций, которые в совокупности приводят к получению желаемого результата. С увеличением сложности системы строгое соблюдение определенной последовательности выполняемых действий приобретает большое значение.
    Для моделирования процесса выполнения операций в языке UML используются диаграммы деятельности. Применяемая в них графическая нотация во многом похожа на нотацию диаграммы состояний, поскольку на диаграммах деятельности также присутствуют обозначения состояний и переходов. Отличие заключается в семантике состояний, которые используются для представления деятельности и действий, а также в отсутствии на переходах сигнатуры событий. Каждое состояние на диаграмме деятельности соответствует выполнению некой операции, а переход в следующее состояние происходит только после завершения выполнения этой операции. Диаграмма деятельности представляется в форме графа деятельности, вершинами которого являются состояния действия или деятельности, а дугами – переходы от одного состояния действия к другому.
    Диаграммы деятельности (activity diagram) – частный случай диаграмм состояний. Они позволяют реализовать в языке UML особенности процедурного и синхронного управления, обусловленного завершением внутренних действий и деятельности. Основным направлением использования диаграмм деятельности является визуализация особенностей реализации операций классов, когда необходимо представить алгоритмы их выполнения. При этом каждое состояние может являться выполнением операции определенного класса либо ее части, позволяя использовать диаграммы деятельности для описания реакций на внутренние события системы.
    В контексте языка UML деятельность представляет собой совокупность отдельных вычислений, выполняемых автоматом. При этом отдельные элементарные вычисления могут приводить к результату или действию. На диаграмме деятельности отображается логика или последовательность перехода от одной деятельности к другой, при этом внимание фиксируется на результате деятельности. Сам же результат может привести к изменению состояния системы или возвращению некоторого значения.
    Диаграмма деятельности предназначена для моделирования поведения систем, хотя время в явном виде отсутствует на этой диаграмме. Ситуация здесь во многом аналогична диаграмме состояний, однако имеет ряд особенностей.
    Состояние деятельности (activity state) – состояние в графе деятельности, которое служит для представления процедурной последовательности действий, требующих определенного времени. Переход из состояния деятельности происходит после выполнения специфицированной в нем ду-деятельности, при этом ключевое слово do в имени деятельности не указывается. Состояние деятельности не может иметь внутренних переходов, поскольку оно является элементарным.
    Состояния деятельности могут быть подвергнуты дальнейшей декомпозиции, вследствие чего выполняемую деятельность можно представить с помощью других диаграмм деятельности. Состояния деятельности не являются атомарными, то есть могут быть прерваны. Предполагается, что для их завершения требуется заметное время.

    65
    Состояние деятельности можно представлять себе как составное состояние, поток управления которого включает только другие состояния деятельности и действий.
    Рисунок 112 – Графическое изображение состояний деятельности действия
    Состояние действия (action state) – специальный случай состояния с некоторым входным действием и, по крайней мере, одним выходящим из состояния переходом. Переход из состояния действия происходит после завершения входного действия. Состояние действия не может иметь внутренних переходов, поскольку оно является элементарным. Использование состояния действия заключается в моделировании шага выполнения алгоритма. Графически состояния деятельности и действия изображаются одинаковой фигурой, напоминающей прямоугольник, боковые стороны которого заменены выпуклыми дугами. Внутри этой фигуры записывается имя состояния деятельности или действия в форме выражения, которое должно быть уникальным в пределах одной диаграммы деятельности.
    Рисунок 113 – Графическое изображение состояний действия на диаграмме деятельности
    Действие может быть записано на естественном языке, псевдокоде или языке программирования.
    Никаких дополнительных или неявных ограничений при записи действий не накладывается.
    Рекомендуется в качестве имени простого действия использовать глагол с пояснительными словами (рис.
    2). Если же действие может быть представлено в формальном виде, то оно записывается на том языке программирования, на котором предполагается реализовывать разрабатываемый проект.
    Когда возникает необходимость представить на диаграмме деятельности сложное действие, состоящее из нескольких более простых, то используют специальное обозначение так называемого состояния под-деятельности. Состояние под-деятельности (subactivity state) – состояние в графе деятельности, которое служит для представления неатомарной последовательности шагов процесса. Это состояние является графом деятельности и обозначается специальной пиктограммой в правом нижнем углу символа состояния действия (рис. 3). Данная конструкция может применяться к любому элементу языка UML, который поддерживает «вложенность» своей структуры. При этом пиктограмма может быть дополнительно помечена типом вложенной структуры.
    Рисунок 114 – Графическое изображение состояния под-деятельности
    Каждая диаграмма деятельности должна иметь единственное начальное и конечное состояния. Они имеют такие же обозначения, как и на диаграмме состояний. При этом каждая деятельность начинается в начальном состоянии и заканчивается в конечном состоянии.
    Саму диаграмму деятельности принято располагать таким образом, чтобы действия следовали сверху вниз или слева направо. В этом случае начальное состояние будет изображаться в верхней или левой части диаграммы, а конечное – в ее нижней или правой части. В интересах удобства визуального представления на диаграмме деятельности допускается изображать несколько конечных состояний. В этом случае все их принято считать эквивалентными друг другу.
    Переход на диаграмме деятельности аналогичен переходу на диаграмме состояний. При построении диаграммы деятельности используются только нетриггерные переходы, т.е. такие, которые происходят

    66 сразу после завершения деятельности или выполнения соответствующего действия. Такой переход передает управление в последующее состояние сразу, как только закончится действие или деятельность в предыдущем состоянии. На диаграмме такой переход изображается сплошной линией со стрелкой.
    Если из состояния действия выходит единственный переход, то его можно никак не помечать. Если же таких переходов несколько, то при моделировании последовательной деятельности запускается только один из них. В этом случае для каждого из таких переходов должно быть явно записано собственное сторожевое условие в прямых скобках.
    При этом для всех выходящих из некоторого состояния деятельности переходов должно выполняться требование истинности только одного из них. Подобный случай встречается тогда, когда последовательно выполняемая деятельность должна разделиться на альтернативные ветви в зависимости от значения промежуточного результата. Такая ситуация получила название ветвления, а для ее обозначения применяется специальный символ решения.
    Графически ветвление на диаграмме деятельности обозначается символом решения (decision), изображаемого в форме небольшого ромба, внутри которого нет никакого текста (рис. 4). В ромб может входить только одна стрелка от того состояния действия, после выполнения, которого поток управления должен быть продолжен по одной из взаимно исключающих ветвей. Принято входящую стрелку присоединять к верхней или левой вершине символа решения. Выходящих стрелок может быть две или более. Для каждой из них явно указывается соответствующее сторожевое условие в форме булевского выражения.
    Для графического объединения альтернативных ветвей на диаграмме деятельности рекомендуется использовать аналогичный символ в форме ромба, который в этом случае называют соединением
    (merge). Наличие этого символа, внутри которого также не записывается никакого текста, упрощает визуальный контроль логики выполнения процедурных действий на диаграмме деятельности (рис. 4 внизу). Входящих стрелок у символа соединения может быть несколько, они исходят от состояний действия, принадлежащих к одной из взаимно исключающих ветвей. Выходить из ромба соединения может только одна стрелка, при этом ни входящие, ни выходящая стрелки не должны содержать сторожевых условий. Исключением является ситуация, когда с целью сокращения диаграммы объединяют символ решения с символом соединения.
    Пример: моделируется ситуация, возникающая в супермаркетах при оплате товаров. Как правило, заплатить за покупки можно либо наличными, либо по кредитной карточке. Если покупателем выбран вариант оплаты по кредитной карточке, то проверяется сумма баланса предъявленной к оплате кредитной карточки. При этом оплата происходит только в том случае, если общая стоимость приобретаемых товаров не превышает суммы баланса этой карточки. В противном случае оплаты не происходит, и товар остается у продавца.
    Рисунок 115 – Различные варианты ветвлений на диаграмме деятельности

    67
    На диаграмме деятельности изображаются параллельные процессы, поскольку распараллеливание вычислений существенно повышает быстродействие программных систем. В диаграммах деятельности для изображения параллельных процессов используется специальный символ.
    Рисунок 116 – Графическое изображение разделения и слияния параллельных потоков управления на диаграмме деятельности
    На диаграммах деятельности такая черточка изображается отрезком горизонтальной, реже – вертикальной, линии, толщина которой несколько шире линий простых переходов диаграммы деятельности. При этом разделение (fork) имеет один входящий переход и несколько выходящих (рис. 6, а), которые изображаются отрезками вертикальных, реже – горизонтальных, линий. Слияние (join), наоборот, имеет несколько входящих переходов и один выходящий (рис. 6, б). Параллельные переходы на диаграмме деятельности можно изображать в удлиненной форме, а входящие и выходящие переходы вертикальными стрелками.
    Пример: Регистрация пассажиров в аэропорту. Первоначально выполняется деятельность по проверке билета: если билет не действителен, он возвращается пассажиру; если билет действителен, то пассажиру выдается посадочный талон, в дополнение проверяется гражданство и наличие багажа у пассажира. Если есть багаж, то его проверка может быть выполнена параллельно, после чего пассажиру выдается талон на багаж. Если пассажир является иностранным гражданином, то дополнительно проверяется наличие у него визы. Если виза действительна, то проверка завершается успешно, и пассажир может проследовать на посадку. Если же виза не действительна, то для этого пассажира посадка оказывается невозможной, и ему не выдается посадочный талон и талон на багаж. Происходит прекращение всех выполняемых сотрудниками аэропорта действий.
    Рисунок 117 – Диаграмма деятельности для примера регистрации пассажиров в аэропорту
    Дорожка (swimlane) – графическая область диаграммы деятельности, содержащая элементы модели, ответственность за выполнение которых принадлежит отдельным подсистемам.
    В данном случае имеется в виду визуальная аналогия с плавательными дорожками в бассейне, если смотреть на соответствующую диаграмму деятельности сверху. При этом все состояния на диаграмме деятельности делятся на группы, разграниченные вертикальными линиями.

    68
    Две соседних линии и образуют дорожку, а группа состояний между этими линиями выполняется организационным подразделением (отделом, группой, отделением, филиалом) или сотрудником компании (рис. 7). В последнем случае принято указывать должность сотрудника, ответственного за выполнение определенных действий.
    Названия подразделений или должностей явно указываются в верхней части дорожки. Пересекать линию дорожки могут только переходы, которые в этом случае обозначают выход или вход потока управления в соответствующее подразделение компании. Порядок следования дорожек не несет какой- либо семантической информации и определяется соображениями удобства.
    Рисунок 118 – Вариант диаграммы деятельности с дорожками
    Пример: фрагмент диаграммы деятельности торговой компании, обслуживающей клиентов в форме заказов. Подразделениями компании обычно являются отдел приема и оформления заказов, отдел продаж и склад. Этим подразделениям будут соответствовать три дорожки на диаграмме деятельности, каждая из которых специфицирует зону ответственности подразделения. В этом случае диаграмма деятельности заключает в себе не только информацию о последовательности выполнения рабочих действий, но и о том, какое подразделение торговой компании должно выполнять то или иное действие (рис. 8).
    После принятия заказа от клиента отделом приема и оформления заказов осуществляется распараллеливание деятельности на два потока (переход-разделение). Первый из них остается в этом же отделе и связан с получением оплаты от клиента за заказанный товар. Второй инициирует выполнение действия по регистрации заказа в отделе продаж (модель товара, размеры, цвет, год выпуска и пр.).
    Однако выдача товара со склада начинается только после того, как будет получена от клиента оплата за товар (переход-слияние). Затем выполняется подготовка товара к отправке и его отправка клиенту в отделе продаж. После завершения этих деятельностей заказ закрывается в отделе приема и оформления заказов.

    69
    Рисунок 119 – Фрагмент диаграммы деятельности для торговой компании
    Действия на диаграмме деятельности могут производиться над теми или иными объектами. Эти объекты либо инициируют выполнение действий, либо определяют результат этих действий. При этом действия специфицируют вызовы, которые передаются от одного объекта графа деятельности другому.
    Поскольку в таком ракурсе объекты играют определенную роль в понимании процесса деятельности, иногда возникает необходимость явно указать их на диаграмме деятельности.
    На диаграмме деятельности с дорожками расположение объекта может иметь дополнительный смысл. А именно, если объект расположен на границе двух дорожек, то это может означать, что переход к следующему состоянию действия в соседней дорожке ассоциирован с нахождением документа в некотором состоянии. Если же объект расположен внутри дорожки, то и состояние этого объекта целиком определяется действиями данной дорожки.
    В примере с торговой компанией центральным объектом процесса продажи является заказ или вернее состояние его выполнения. Вначале до обращения клиента заказ как объект отсутствует и возникает после контакта с клиентом. В результате фиксируется полученный заказ, потом он регистрируется в отделе продаж, затем он передается на склад, где после получения оплаты за товар оформляется окончательно. После того, как товар отправлен клиенту, эта информация вносится в заказ, и он считается выполненным (рис. 9).
    Достоинством диаграммы деятельности является возможность визуализировать отдельные аспекты поведения рассматриваемой системы или реализации отдельных операций классов в виде процедурной последовательности действий. Таким образом, полная модель системы может содержать одну или несколько диаграмм деятельности, каждая из которых описывает последовательность реализации либо наиболее важных вариантов использования (типичный ход событий и все исключения), либо нетривиальных операций классов.

    70
    Рисунок 120 – Фрагмент диаграммы деятельности торговой компании с объектом-заказом
    Пример:Программное средство представляет собой базу данных «Автоматизация процесса составления расписания в учебном заведении». Программное средство обеспечивает корректировку данных, а именно в БД «Группы» может изменяться перечень предметов в соответствие с курсом группы и отделением; в БД «Предметы» могут изменяться номера аудиторий и фамилии преподавателей; осуществляет поиск по ФИО преподавателя, номеру аудитории, названию предмета и номеру группы.
    Программное средство составляет расписание работы для конкретного преподавателя на неделю; для группы на неделю; для группы по конкретному предмету, а также отчет о загрузке аудиторий на каждый день.

    71
    Рисунок 121 – Пример диаграммы деятельности
    3 Методика выполнения
    В качестве примера рассматривается моделирование системы продажи товаров по каталогу.
    1. Запустите Visual Paradigm for UML CE.
    2. Откройте проект, содержащий диаграмму вариантов использования, построенную в практическом занятии №14.
    3. Для добавления новой диаграммы достаточно в меню Diagram > New Diagram выбрать тип диаграммы Activity Diagram и нажмите кнопку Next. Задать имя диаграммы SaleSystemActivityDiagram и нажать OK.
    4. В результате отобразится рабочая область с элементами для построения диаграммы деятельности
    (рис. 11).
    Начало
    Загрузка БД
    Ведение БД
    Выполнение запросов
    Создание отчетов
    Создание записей
    Редактирование записей
    Поиск
    Составление расписания
    По имени преподавателя
    По номеру группы
    По названию предмета
    Для преподавателя
    Для группы
    Для аудитории
    Вывод данных
    [ данные найдены ]
    Вывод сообщения
    [ данные не найдены ]
    Вывод информации по запросу
    Сохранение отчета
    Вывод на печать
    Выход вывод отчета об аудиториях
    [ печать ]
    [ сохранить ]
    Удаление записей
    По аудитории

    72
    Рисунок 122 – Рабочая область для построения диаграммы деятельности
    Далее будут описаны принципы построения диаграммы деятельности.
    Для создания дорожек необходимо на панели инструментов выбрать Vertical SwimLine и затем курсором мыши выбрать место расположения на диаграмме (Рисунок 12). Чтобы добавить дорожку необходимо щелкнуть правой кнопкой мыши по элементу и в контекстном меню выбрать Add Vertical
    1   2   3   4   5   6   7


    написать администратору сайта