Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по ТООМ.doc
Скачиваний:
298
Добавлен:
02.05.2014
Размер:
7.46 Mб
Скачать

Состояния синхронизации.

Состояния для синхронизации потоков управления в параллельных подсостояниях.

Диаграмма состояний и переходов. Пример диаграммы: описание работы телефона.

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

4.2. Диаграммы деятельности (activity diagrams).

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

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

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

Узлы деятельности могут быть вложенными. Диаграмма деятельности может иметь ветвления (branches), а также разделения (forking) управления между параллельными потоками. Параллельные потоки представляют собой элементы деятельности, которые объекты или люди могут совершать одновременно. Часто параллельность возникает в результате агрегации, когда у каждого объекта появляется свой собственный поток управления. Параллельные элементы деятельности могут осуществляться как одновременно, так и в любой последовательности.

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

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

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

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

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

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

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

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

Для обозначения начального и конечного состояний в потоке управления используются специальные символы Start State и End State.

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

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

Если результатом выполнения элемента деятельности является несколько выходных значений или если за ним следуют несколько потоков управления, то стрелки начинаются от знака разделения (fork). Точно так же, в случае наличия нескольких входных параметров, стрелки заканчиваются на знаке слияния (join).

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

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

Действия

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