Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

Диаграммы деятельности (activity diagram)- частный случай диаграмм состоя­ний. Они позволяют реализовать в языке UML особенности процедурного и син­хронного управления, обусловленного завершением внутренних действий и дея­тельности. Основным направлением использования диаграмм деятельности является ви­зуализация особенностей реализации операций классов, когда необходимо пред­ставить алгоритмы их выполнения. При этом каждое состояние может яв­ляться вы­полнением операции определенного класса либо ее части, позволяя использовать диаграммы деятельности для описания реакций на внутренние со­бытия системы.

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

Состояние деятельности (activity state) - состояние в графе деятельно­сти, кото­рое служит для представления процедурной последовательности дей­ствий, требую­щих определенного времени. Переход из состояния деятельности происходит после выполнения специ­фицированной в нем ду-деятельности, при этом ключевое слово do в имени дея­тельности не указывается. Состояние деятельности не может иметь внутренних переходов, поскольку оно является элементарным.

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

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

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

Состояние действия (action state) - специальный случай состояния с не­которым входным действием и, по крайней мере, одним выходящим из состоя­ния переходом. Переход из состояния действия происходит после завершения входного дей­ствия. Состояние действия не может иметь внутренних переходов, по­скольку оно является элементарным. Использование состояния дейст­вия заключается в моделировании шага выполнения алгоритма. Графически состояния деятельности и действия изображаются одинако­вой фи­гурой, напоминающей прямоугольник, боковые стороны которого заме­нены выпук­лыми дугами. Внутри этой фигуры записывается имя со­стояния деятельности или действия в форме выражения, которое должно быть уникальным в пре­делах одной диаграммы деятельности.

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

 

Действие может быть записано на естественном языке, псевдокоде или языке программирования. Никаких дополнительных или неявных ограничений при записи действий не накладывается. Рекомендуется в качестве имени про­стого действия использовать глагол с пояснительными словами (рис. 59). Если же действие может быть представлено в формальном виде, то оно записывается на том языке программирования, на котором предполагается реализовывать разрабатываемый проект.

Когда возникает необходимость представить на диаграмме деятельности сложное действие, состоящее из нескольких более простых. то используют специальное обозначение так называемого со­стояния под-деятельности. Состояние под-деятельности (subactivity state) - состояние в графе дея­тельно­сти, которое служит для представления неатомарной последовательности шагов процесса. Это состояние является графом деятельности и обозначается специальной пик­тограммой в правом нижнем углу символа состояния действия (рис. 60). Данная конструкция может применяться к любому элементу языка UML, кото­рый поддер­живает " вложенность" своей структуры. При этом пиктограмма мо­жет быть допол­нительно помечена типом вложенной структуры.

 

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

Каждая диаграмма деятельности должна иметь единственное начальное и ко­нечное состояния. Они имеют такие же обозначения, как и на диаграмме со­стояний. При этом каждая деятельность начинается в начальном состоянии и заканчивается в конечном состоянии.

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

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

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

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

Графически ветвление на диаграмме деятельности обозначается символом ре­шения (decision), изображаемого в форме небольшого ромба, внутри которого нет никакого текста (рис. 61). В ромб может входить только одна стрелка от того состо­яния действия, после выполнения, которого поток управления должен быть продол­жен по одной из взаимно исключающих ветвей. Принято входящую стрелку присо­единять к верхней или левой вершине символа реше­ния. Выходящих стрелок может быть две или более. Для каждой из них явно указывается соответствующее стороже­вое условие в форме булевского выраже­ния.

Для графического объединения альтернативных ветвей на диаграмме дея­тельно­сти рекомендуется использовать аналогичный символ в форме ромба, ко­торый в этом случае называют соединением (merge). Наличие этого символа, внутри кото­рого также не записывается никакого текста, упрощает визуальный контроль логики выполнения процедурных действий на диаграмме деятельно­сти (рис. 61 внизу). Входящих стрелок у символа соединения может быть не­сколько, они исходят от состояний действия, принадлежащих к одной из вза­имно исключающих ветвей. Выходить из ромба соединения может только одна стрелка, при этом ни входящие, ни выходящая стрелки не должны содержать сторожевых условий. Исключением является ситуация, когда с целью сокраще­ния диаграммы объединяют символ реше­ния с символом соединения.

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

 

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

 

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

 

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

На диаграммах деятельности такая черточка изображается отрезком гори­зон­тальной, реже - вертикальной, линии, толщина которой несколько шире ли­ний про­стых переходов диаграммы деятельности. При этом разделение (fork) имеет один входящий переход и несколько выходя­щих (рис. 62, а), которые изображаются отрезками вертикальных, реже - горизонталь­ных, линий. Слия­ние (join), наоборот, имеет несколько входящих пере­ходов и один выходящий (рис. 62, б). Параллельные переходы на диаграмме дея­тельности можно изо­бражать в удлиненной форме, а входящие и выходящие пере­ходы вертикаль­ными стрелками.

Пример: Регистра­ция пассажиров в аэропорту. Первоначально выполняется деятель­ность по проверке билета: если билет не действителен, он возвраща­ется пассажиру; если билет действителен, то пассажиру выдается посадочный талон, в до­полнение проверяется гражданство и наличие багажа у пассажира. Если есть багаж, то его проверка может быть выполнена параллельно, после чего пассажиру выдается талон на багаж. Если пассажир является иностранным гражда­нином, то дополнительно проверяется наличие у него визы. Если виза действи­тельна, то проверка завершается успешно, и пассажир может проследовать на посадку. Если же виза не действительна, то для этого пассажира посадка оказывается невозможной, и ему не выдается поса­дочный талон и талон на багаж. Происходит прекращение всех выполняемых сотрудниками аэропорта действий.

 

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

 

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

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

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

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

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

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

 

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

 

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

После принятия заказа от клиента отделом приема и оформления заказов осу­ществляется распаралле­ливание деятельности на два потока (переход-разделение). Первый из них оста­ется в этом же отделе и связан с получением оплаты от клиента за заказанный товар. Второй инициирует выполнение действия по регистрации за­каза в отделе продаж (модель товара, размеры, цвет, год выпуска и пр.). Однако выдача то­вара со склада начинается только после того, как будет получена от кли­ента оп­лата за товар (переход-слияние). Затем выполняется подготовка товара к от­правке и его отправка клиенту в отделе продаж. После завершения этих дея­тельно­стей заказ закрывается в отделе приема и оформления заказов.

 

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

 

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

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

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

 

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

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

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

Рис. 67. Пример диаграммы деятельности






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.