Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек_ООП_1_4_2 Основи об'єктно-орієнтованого про...doc
Скачиваний:
0
Добавлен:
12.11.2019
Размер:
179.71 Кб
Скачать

Диаграммы параллельных состояний

Смысл параллельных секций диаграммы состояний заключается в том, что в любой момент времени данный заказ находится одновремен­но в двух различных состояниях, каждое из которых относится к сво­ей исходной диаграмме. Когда заказ покидает параллельные состоя­ния, он оказывается только в одном состоянии. Из этой диаграммы можно увидеть, что в начальный момент заказ оказывается одновре­менно в двух состояниях: Проверка Позиции Заказа и Подтверждение Оплаты. Если деятельность «проверить оплату» в состоянии Под­тверждение Оплаты успешно завершится первой, то заказ окажется в двух состояниях: Проверка Позиции Заказа и Оплата Подтверждена. Если же наступит событие «отменен», то заказ окажется только в сос­тоянии Отмена.

Когда использовать диаграммы состояний

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

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

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

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

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

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

Условное поведение изображается с помощью ветвлений и соединений.

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

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

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

Параллельное поведение изображается с помощью слияний и разделе­ний.

Разделение имеет единственный входящий переход и несколько выходящих переходов. Когда срабатывает входящий переход, все вы­ходящие переходы выполняются параллельно.

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

В процессе моделирования некоторого параллельного поведения необ­ходима синхронизация.

Мы не можем закрыть заказ до тех пор, пока он не будет оплачен и отправлен клиенту. Именно это указывает слия­ние перед деятельностью Закрыть Заказ.

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

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

Однако это правило имеет несколько исключений:

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

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

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