Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

варианта использования системы

Работа добавлена на сайт samzan.net:


Л11.  ДИАГРАММЫ  

ПОСЛЕДОВАТЕЛЬНОСТИ,

СОСТОЯНИЙ,

ДЕЯТЕЛЬНОСТИ,

КОМПОНЕНТОВ,

РАЗВЕРТЫВАНИЯ.

Патерны (образцы)

 

1. Диаграмма последовательности

Диаграмма последовательности, как и диаграмма кооперации, используется для спецификации динамики поведения объектов, как правило, одного варианта использования системы.

Изображение объектов

Диаграмма последовательности (sequence diagram) - диаграмма, на которой показано взаимодействие объектов, упорядоченное по времени.

С помощью диаграммы последовательности можно представить взаимодействие элементов модели как своеобразный временной график "жизни" всей совокупности объектов варианта использования программной системы.

Никакие статические связи объектов не изображаются.

Диаграмма последовательности имеет как бы два измерения. Одно - слева направо в виде вертикальных линий, каждая из которых изображает линию жизни отдельного объекта, участвующего во взаимодействии. Второе измерение диаграммы последовательности - вертикальная временная ось, направленная сверху вниз.

Каждый объект изображается в форме прямоугольника (или в виде графического элемента расширения UML) и располагается в верхней части своей линии жизни.

Внутри прямоугольника  (под кружком для расширения) записываются собственное имя объекта со строчной буквы и имя класса, разделенные двоеточием. При этом вся запись подчеркивается, что является признаком объекта.  

Рис. Графические элементы диаграммы последовательности

Крайним слева на диаграмме изображается объект - инициатор моделируемого процесса взаимодействия. Правее - другой объект, который непосредственно взаимодействует с первым. Таким образом, порядок расположения объектов на диаграмме последовательности определяется исключительно соображениями удобства визуализации их взаимодействия друг с другом.

Процесс взаимодействия объектов реализуется посредством сообщений, которые посылаются одними объектами другим. Сообщения изображаются в виде горизонтальных стрелок с именем сообщения и образуют определенный порядок относительно времени своей инициализации.

Сообщения, расположенные на диаграмме последовательности выше, передаются раньше тех, которые расположены ниже. При этом масштаб на оси времени не указывается, поскольку диаграмма последовательности моделирует лишь временную упорядоченность взаимодействий типа "раньше-позже".

Линия жизни служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех ее взаимодействиях.

Линия жизни объекта обрывается в момент его уничтожения. Для обозначения этого момента   применяется специальный символ в форме буквы "X".

Рис. Создание и уничтожение нового объекта

Не обязательно создавать все объекты в начальный момент времени. Отдельные объекты в системе могут создаваться по мере необходимости.

Объекты могут находиться в активном состоянии, непосредственно выполняя определенные действия, или в состоянии пассивного ожидания сообщений от других объектов. Подобную активность объектов на диаграммах последовательности изображают с помощью фокуса управления.

Фокус управления (focus of control) - специальный символ на диаграмме последовательности, указывающий период времени, в течение которого объект выполняет некоторое действие, находясь в активном состоянии.

Фокус управления может заменять линию жизни объекта, если на всем ее протяжении он активен.

Объект создается со своей линией жизни а, возможно, и с фокусом управления.

В отдельных случаях инициатором взаимодействия в системе может быть актер или внешний пользователь.

При этом актер изображается на диаграмме последовательности самым первым объектом слева со своим фокусом управления.

Наиболее часто актер и его фокус управления будут существовать в системе постоянно, отмечая характерную для пользователя активность в инициировании взаимодействий с системой. Актер может иметь собственное имя либо оставаться анонимным.

В отдельных случаях объект может посылать сообщения самому себе, инициируя так называемые рефлексивные сообщения.

Если в результате рефлексивного сообщения создается новый подпроцесс или нить управления, то говорят о рекурсивном или вложенном фокусе управления.

Рис. Графическое изображение актера, рефлексивного сообщения и рекурсии на диаграмме последовательности

Сообщения на диаграмме последовательности

Стрелки сообщений изображаются так же как и на диаграммах кооперации, но применительно к диаграммам последовательности сообщения имеют дополнительные семантические особенности.

На диаграммах последовательности могут присутствовать три разновидности сообщений, каждое из которых имеет свое графическое изображение.

Рис.  Графическое изображение различных видов сообщений между объектами на диаграмме последовательности

Первая разновидность сообщения используется для вызова процедур или обозначения отдельных вложенных потоков управления. Принимающий объект может получить фокус управления, становясь в этом случае активным. Передающий объект может потерять фокус управления или остаться активным.

Вторая разновидность сообщения используется для обозначения простого асинхронного сообщения, которое передается в произвольный момент времени. Передача такого сообщения обычно не сопровождается получением фокуса управления объектом-получателем.

Третья разновидность сообщения --->  используется для возврата из вызова процедуры.  В процедурных потоках управления эта стрелка может быть опущена. Для непроцедурных потоков управления, включая параллельные и асинхронные сообщения, стрелка возврата должна указываться явным образом.

Считается, что за время передачи сообщения с соответствующими объектами не может произойти никаких событий. Если это не так, то стрелка сообщения изображается под наклоном, так чтобы конец стрелки располагался ниже ее начала.

Ветвление потока управления

Для изображения ветвления используются две или более стрелки, выходящие из одной точки фокуса управления объекта. При этом рядом с каждой из них должно быть явно указано соответствующее условие в форме булевского выражения.

Рис. Графическое изображение бинарного ветвления потока управления на диаграмме последовательности

С помощью ветвления можно изобразить и более сложную логику взаимодействия объектов между собой.

Рис. Графическое изображение тернарного ветвления потока управления на диаграмме последовательности

Условием ветвления может служить сумма снимаемых клиентом средств со своего текущего счета. Если эта сумма превышает 1500$, то могут потребоваться дополнительные действия, связанные с созданием и последующим разрушением объекта Класса 1. Если же сумма превышает 100$, но не превышает 1500$, то вызывается операция или процедура объекта ob3. И, наконец, если сумма не превышает 100$, то вызывается операция или процедура объекта ob2. При этом объекты ob1, ob2 и ob3 постоянно существуют в системе. Последний объект создается от Класса 1 только в том случае, если справедливо первое из альтернативных условий. В противном случае он может быть никогда не создан.

На диаграммах последовательности при записи сообщений также могут использоваться стереотипы, рассмотренные ранее при построении диаграммы кооперации

Рис. Диаграмма последовательности со стереотипными значениями сообщений

Как уже отмечалось ранее, сообщения могут иметь собственное имя, в качестве которого выступает имя операции (метода) с круглыми скобками, в которых могут указываться аргументы соответствующей операции.

Рекомендации по построению диаграмм последовательности

Построение диаграммы последовательности целесообразно начинать с выделения из всей совокупности классов только тех, объекты которых участвуют в моделируемом взаимодействии.

Когда объекты визуализированы, можно приступать к спецификации сообщений.

Наиболее простые случаи ветвления процесса взаимодействия можно изобразить на одной диаграмме.  В более сложных случаях для моделирования каждой ветви управления может потребоваться отдельная диаграмма последовательности. Следует помнить, что каждый альтернативный поток управления затрудняет понимание построенной модели.

Общим правилом является визуализация особенностей реализации каждого варианта использования на отдельной диаграмме последовательности. 

В этой ситуации отдельные диаграммы должны рассматриваться совместно как одна модель взаимодействия. Необходимость синхронизации сложных потоков управления, как правило, требуют введение в модель дополнительных ограничений. При этом общая запись таких ограничений должна следовать семантике языка объектных ограничений OCL.

Примечание. В IBM Rational Rose диаграмма последовательности может быть создана автоматически из диаграммы кооперации по клавише F5.


2. Диаграммы состояний

Как было показано выше, для представления динамических особенностей взаимодействия элементов модели в контексте реализации вариантов использования предназначены диаграммы кооперации и последовательности. Однако для моделирования процессов функционирования большинства сложных систем, особенно систем реального времени, этих представлений недостаточно.

При рассмотрении состояний системы приходится отвлекаться от особенностей ее объектной структуры и мыслить категориями, описывающими динамический контекст поведения моделируемой системы.

Диаграммы состояний чаще всего используются для описания поведения отдельных систем и подсистем.

Диаграмма состояний изображает динамическое поведение сущностей, на основе описания их реакции на конкретные события.

Системы, которые реагируют на внешние действия от других систем или от пользователей, иногда называют реактивными.

Если такие действия инициируются в произвольные случайные моменты времени, то говорят об асинхронном поведении модели.

Диаграмма состояний изображается в виде ориентированного графа, вершины которого соответствуют состояниям, а дуги - переходам.

Переход объекта из состояния в состояние происходит мгновенно.

Каждое последующее состояние может наступить позже предшествующего ему состояния.

Состояние – это совокупность значений принципиальных для поведения объекта или системы атрибутов классов.

Состояние на диаграмме изображается прямоугольником со скругленными вершинами. Этот прямоугольник, в свою очередь, может быть разделен на две секции горизонтальной линией. Если указана лишь одна секция, то в ней записывается только имя состояния. В противном случае в первой из них записывается имя состояния, а во второй - список некоторых внутренних действий или переходов в данном состоянии.

При этом под действием в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения (например, "истина" или "ложь").

Рис. Графическое изображение состояний на диаграмме состояний

Действие обычно приводит к изменению состояния системы, и может быть реализовано посредством передачи сообщения объекту (вызова метода), модификацией связи или значения атрибута.

Каждое действие записывается в виде отдельной строки и имеет следующий формат:

<метка действия> /  <выражение действия>

Метка действия указывает на обстоятельства или условия, при которых будет выполняться деятельность, определенная выражением действия.

При этом выражение действия может использовать любые атрибуты и связи, принадлежащие области имен или контексту моделируемого объекта. Если список выражений действия пустой, то метка действия с разделителем в виде наклонной черты '/' не указывается. Перечень меток действий в языке UML фиксирован, причем эти метки не могут быть использованы в качестве имен событий:

Входное действие (entry) - действие, которое выполняется в момент перехода в данное состояние.

Внутренняя деятельность (do) - выполнение объектом операций или процедур, которые требуют определенного времени.

Действие выхода (exit) - действие, производимое при выходе из данного состояния.

В качестве примера состояния можно рассмотреть аутентификацию клиента для доступа к ресурсам моделируемой информационной системы.

Рис. Пример состояния с непустой секцией внутренних действий

Кроме обычных состояний, на диаграмме состояний могут размещаться псевдосостояния.

Псевдосостояние (pseudo-state) - вершина, которая имеет форму состояния, но не обладает поведением.

Примерами псевдосостояний, которые определены в языке UML, являются начальное и конечное состояния.

Начальное состояние (start state) - разновидность псевдосостояния, обозначающее начало выполнения процесса изменения состояний конечного автомата или нахождения моделируемого объекта в составном состоянии.

В этом состоянии находится объект по умолчанию в начальный момент времени. Оно служит для указания на диаграмме состояний графической области, от которой начинается процесс изменения состояний.

Рис. Графическое изображение начального и конечного состояний на диаграмме состояний

Конечное состояние (final state) - разновидность псевдосостояния, обозначающее прекращение процесса изменения состояний системы или нахождения моделируемого объекта в составном состоянии.

Переход и событие

При изменении состояния объект переходит в другое состояние.

Срабатывание перехода (fire) - выполнение перехода из одного состояния в другое.

До срабатывания перехода объект находится в исходном состоянии, или в источнике (не путать с начальным состоянием - это разные понятия), а после его срабатывания объект находится в целевом состоянии.

Переход называется триггерным, если его специфицирует событие-триггер, связанное с внешними условиями по отношению к рассматриваемому состоянию.

Переход называется нетриггерным, если он происходит по завершении выполнения ду-деятельности в данном состоянии.

Рис. Графическое изображение триггерного (а) и нетриггерного (б) переходов на диаграмме состояний

Срабатывание перехода может зависеть не только от наступления события, но и от выполнения определенного условия, называемого сторожевым.

Сторожевое условие (guard condition) - логическое условие, записанное в прямых скобках и представляющее собой булевское выражение.

Если сторожевое условие принимает значение "истина", то соответствующий переход при наступлении события-триггера или завершении деятельности может сработать, в результате чего объект перейдет в целевое состояние. Если же сторожевое условие принимает значение "ложь", то переход не может сработать, даже если произошло событие-триггер или завершилась деятельность в исходном состоянии.

Рис. Триггерные и нетриггерные переходы на диаграмме состояний

После сторожевого условия через символ / может быть записано выражение действия.

Рис. Выражение действия перехода на диаграмме состояний

Выражение действия (action expression) представляет собой вызов операции или передачу сообщения, имеет атомарный характер и выполняется сразу после срабатывания соответствующего перехода до начала действий в целевом состоянии.


Составное состояние и подсостояние

Составное состояние (composite state) - сложное состояние, которое состоит из других вложенных в него состояний.

Рис. Графическое представление составного состояния с двумя вложенными в него последовательными подсостояниями

Последовательные подсостояния (sequential substates) - вложенные состояния состояния-композита, в рамках которого в каждый момент времени объект может находиться в одном и только одном подсостоянии.

Рис. Пример составного состояния с двумя вложенными последовательными подсостояниями

Параллельные подсостояния (concurrent substates) - вложенные состояния, используемые для спецификации двух и более подсистем, которые могут выполняться параллельно внутри составного состояния.

Рис.  Графическое изображение состояния-композита с вложенными параллельными подсостояниями

Несовместимое подсостояние (disjoint substate) - подсостояние, в котором подсистема не может находиться одновременно с другими подсостояниями одного и того же составного состояния.

Сложные переходы и псевдосостояния

Состояние синхронизации (synch state) - псевдосостояние в системе, которое используется для синхронизации параллельных областей системы.

Синхронизирующее состояние обозначается небольшой окружностью, внутри которой помещен символ звездочки "*". Оно используется совместно с переходом-слиянием | или переходом-разделением | для того, чтобы явно указать события в других системах (потоках управления), оказывающие непосредственное влияние на поведение данной системе (потока управления).

Так, например, при включении компьютера с некоторой сетевой операционной системой параллельно начинается выполнение нескольких процессов. В частности, происходит проверка пароля пользователя и запуск различных служб. При этом работа пользователя на компьютере станет возможной только в случае успешной его аутентификации, в противном случае компьютер может быть выключен.

Рассмотренные особенности синхронизации этих параллельных процессов учтены на соответствующей диаграмме состояний с помощью синхронизирующего состояния.

Рис. Диаграмма состояний для примера включения компьютера


3. Диаграмма деятельности

Диаграммы деятельности - частный случай диаграмм состояний.

Основным направлением использования диаграмм деятельности является визуализация особенностей реализации операций (методов) классов, когда необходимо представить алгоритмы их выполнения.

В этом плане ДД напоминает блок-схему алгоритма.

В контексте языка UML деятельность представляет собой совокупность отдельных вычислений.

На диаграмме деятельности отображается логика или последовательность перехода от одной деятельности к другой, при этом внимание фиксируется на результате деятельности. Сам же результат может привести к изменению состояния системы или возвращению некоторого значения.

При разработке диаграммы используют понятия:

  •  деятельность;
  •  действие;
  •  переход.

Деятельность – это крупный шаг в процессе, моделируемом в ДД.

Как правило, каждый шаг в потоке событий становится деятельностью на диаграмме.  

Эквивалентом деятельности на схеме алгоритма можно считать блок.

Деятельность отличается от состояния тем, что состояние используется для определения разных ситуаций в жизненном цикле объекта, тогда как деятельность является шагом в процессе перехода объекта из одного состояния в другое.

Например, объект служащий может находиться в состояниях «нанят», «в отпуске», «уволен» или «уволился». Диаграммы деятельности должны показывать процесс найма, ухода в отпуск или увольнения.

Деятельность – это набор действий.

Действие – это непрерываемая задача, возникшая внутри деятельности.

Эквивалентом действия можно считать простой оператор блок-схемы, например, исполняемое выражение присваивания.

Действие атомарно.

Обычное использование состояния действия заключается в моделировании шага выполнения алгоритма или процедуры в рамках одного потока управления.

Действие может быть записано на естественном языке, псевдокоде или языке программирования.

Рис. Графическое изображение состояний деятельности и действия

Деятельность высокого уровня можно разбить на поддеятельности.

Рис. Графическое изображение состояния поддеятельности

Каждая диаграмма деятельности должна иметь единственное начальное и конечное состояния.

Они имеют такие же обозначения, как и на диаграмме состояний.

Рис. Начальное состояние.  Конечное состояние.   Ветвление (символ решения и соединения).

Диаграмму деятельности принято располагать таким образом, чтобы действия следовали сверху вниз или слева направо.

Переход перемещает технологический поток из одной деятельности в другую в пределах одной диаграммы деятельности.

Диаграмма деятельности на следующем рисунке моделирует ситуацию, возникающую в супермаркетах при оплате товаров. Как правило, заплатить за покупки можно либо наличными, либо по кредитной карточке. Если покупателем выбран вариант оплаты по кредитной карточке, то проверяется сумма баланса предъявленной к оплате кредитной карточки. При этом оплата происходит только в том случае, если общая стоимость приобретаемых товаров не превышает суммы баланса этой карточки. В противном случае оплаты не происходит, и товар остается у продавца.

Рис. Различные варианты ветвлений на диаграмме деятельности

Один из наиболее значимых недостатков обычных блок-схем или структурных схем алгоритмов связан с проблемой изображения параллельных ветвей отдельных вычислений.

Поскольку распараллеливание вычислений существенно повышает общее быстродействие программных систем, необходимы графические примитивы для представления параллельных процессов.

В диаграммах деятельности с этой целью используется специальный символ для разделения и слияния параллельных вычислений или потоков управления. Это прямая черточка, аналогичная обозначению параллельных переходов для диаграмм состояний.

Рис. Графическое изображение разделения и слияния параллельных потоков управления на диаграмме деятельности

Рис. Диаграмма деятельности для примера регистрации пассажиров в аэропорту

Дорожки

Применительно к бизнес-процессам желательно выполнение каждого действия связывать с конкретным подразделением компании. 

В этом случае подразделение будет нести ответственность за реализацию определенных действий, а сам бизнес-процесс представляется в виде переходов действий из одного подразделения к другому. 

Для моделирования этих особенностей в языке UML предложена специальная конструкция, получившее название дорожки.

Дорожка (swimlane) - графическая область диаграммы деятельности, содержащая элементы модели, ответственность за выполнение которых принадлежит отдельным подсистемам (ролям).

Названия подразделений или должностей явно указываются в верхней части дорожки.

Рис. Вариант диаграммы деятельности с дорожками

В качестве примера можно рассмотреть фрагмент диаграммы деятельности торговой компании, обслуживающей клиентов в форме заказов. Подразделениями компании обычно являются отдел приема и оформления заказов, отдел продаж и склад.

Рис. Фрагмент диаграммы деятельности для торговой компании

Объекты на диаграмме деятельности

Иногда возникает необходимость явно указать объекты на диаграмме деятельности.

Следует напомнить, что имя объекта подчеркивается.

Кроме того, на диаграммах деятельности после имени может указываться характеристика состояния объекта в прямых скобках. Такие прямоугольники объектов присоединяются к состояниям действия отношением зависимости пунктирной линией со стрелкой.

Если объект расположен внутри дорожки, то состояние этого объекта целиком определяется действиями данной дорожки. Если объект расположен на границе двух дорожек, то его состояние определяет смену дорожек.

Рис. Фрагмент диаграммы деятельности торговой компании с объектом-заказом

Полная модель системы может содержать одну или несколько диаграмм деятельности, каждая из которых описывает последовательность реализации либо наиболее важных вариантов использования (типичный ход событий и все исключения), либо нетривиальных операций классов.

 

4. Диаграмма компонентов

Все рассмотренные ранее диаграммы отражали концептуальные и логические аспекты построения модели системы.

Особенность логического представления заключается в том, что оно оперирует понятиями, которые не имеют материального воплощения.

Другими словами, различные элементы логического представления, такие как классы, ассоциации, состояния, сообщения, не существуют материально или физически. Они лишь отражают понимание статической структуры той или иной системы или динамические аспекты ее поведения.

Для создания конкретной физической системы необходимо все элементы логического представления преобразовать в конкретные материальные сущности.

Для описания таких реальных сущностей предназначен другой аспект модельного представления, а именно – физическое представление модели. В контексте языка UML это означает совокупность связанных физических сущностей, включая программное и аппаратное обеспечение, а также персонал, которые организованы для выполнения специальных задач.

Физическая система (physical system) — реально существующий прототип модели системы.

Полный проект программной системы представляет собой совокупность моделей логического и физического представлений, которые должны быть согласованы между собой.

В языке UML для физического представления моделей систем используются так называемые диаграммы реализации, которые включают в себя две отдельные канонические диаграммы: диаграмму компонентов и диаграмму развертывания.

Диаграмма компонентов позволяет определить архитектуру разрабатываемой системы, установив зависимости между программными компонентами, в роли которых может выступать исходный, бинарный и исполняемый код. Во многих средах разработки модуль или компонент соответствует файлу.

Рис. Фрагмент диаграммы компонентов с отношениями зависимости и реализации

5. Диаграмма развертывания

При создании корпоративных или распределенных приложений требуется визуализировать сетевую инфраструктуру программной системы.

Диаграмма развертывания показывает на какой платформе и на каких вычислительных средствах может быть реализована программная система.

Диаграмма развертывания применяется для представления общей конфигурации и топологии распределенной программной системы и содержит изображение размещения компонентов по отдельным узлам системы.

Кроме того, диаграмма развертывания показывает наличие физических соединений - маршрутов передачи информации между аппаратными устройствами, задействованными в реализации системы.

Рис. Графическое изображение узла-экземпляра с дополнительной информацией в форме помеченного значения

Рис. Варианты графического изображения узлов-экземпляров с размещаемыми на них компонентами

Рис. Диаграмма развертывания для системы мобильного доступа к корпоративной базе данных

6. Патерны

При реализации проектов по разработке программных систем и моделированию бизнес-процессов встречаются ситуации, когда решение проблем в различных проектах имеют сходные структурные черты.

Попытки выявить похожие схемы или структуры в рамках объектно-ориентированного анализа и проектирования привели к появлению понятия паттерна  (образца), которое из абстрактной категории превратилось в непременный атрибут современных CASE-средств

Паттерны ООАП различаются степенью детализации и уровнем абстракции. Предлагается следующая общая классификация паттернов по категориям их применения:

  •  Архитектурные паттерны
  •  Паттерны проектирования
  •  Паттерны анализа
  •  Паттерны тестирования
  •  Паттерны реализации




1. Проникаюче поранення лівого ока
2. Организация обслуживания банкета
3. Six sportsmen shooting snips Seven Severn slmon swllowing shrimps
4. Традиции и обычаи Украины укр
5. реферат дисертації на здобуття наукового ступеня доктора технічних наук Х
6. язычников евреев государственной власти и античной философии.
7. способ осуществления перегонки дистилляции
8. Методика обработки экспериментальных данных
9. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата технічних наук Дніпропетр
10. А Реакция производства на изменение хозяйственной среды предопределяет финансовую структуру компан
11. Средства связи с подвижными объектами 2 курс 5
12. реферату- Впровадження стандартів на підприємствіРозділ- Економіка підприємства Впровадження стандартів
13. Разработка перехода между портами Фамагуста - Мессина
14. Основная часть
15. Реферат- Психоаналитические идеи и представления в терапевтическом анализе
16. тематики и физики КУРСОВАЯ РАБОТА по информатике ВИЗУАЛИЗАЦИЯ ЧИСЛ
17. Лекция Ведение в языкознание Хафизова А
18. 2011г. CD-CM-CE СИСТЕМЫ СОЗДАНИЕ ЧЕРТЕЖЕЙ Методические указания к выпол
19. тема втратила два важливих стимули розвитку економіки- зі смертю Сталіна страх перед репресіями з усунення
20. 00 гост.Черногов 2 день Прибытие в Витебск