- •Тема 1.4. (Продовження) Основи об'єктно-орієнтованого проектування мовою uml
- •1. Діаграми послідовності і кооперації.
- •Диаграммы последовательности
- •Диаграммы кооперации
- •Когда следует использовать диаграммы взаимодействия
- •2. Діаграми стану.
- •Диаграммы параллельных состояний
- •Когда использовать диаграммы состояний
- •3. Діаграми діяльності.
- •Декомпозиция деятельности
- •Динамическая параллельность
- •Дорожки
- •Когда использовать диаграммы деятельности
Когда следует использовать диаграммы взаимодействия
Диаграммами взаимодействия следует пользоваться в том случае, когда вы хотите описать поведение нескольких объектов в рамках одного варианта использования. Диаграммы взаимодействия удобны для изображения кооперации объектов и вовсе не так хороши для точного представления их поведения.
Если вы хотите описать поведение единственного объекта во многих вариантах использования, то следует применять диаграмму состояний.
Если же возникает необходимость описать поведение, охватывающее несколько вариантов использования или несколько нитей процесса, следует рассматривать диаграмму деятельности.
2. Діаграми стану.
Диаграммы состояний являются методом описания поведения систем.
Они изображают все возможные состояния, в которых может находиться конкретный объект, а также изменения состояния объекта, которые происходят в результате влияния некоторых событий на этот объект.
Действия ассоциируются с переходами и рассматриваются как мгновенные и непрерываемые.
Деятельности ассоциируются с состояниями и могут продолжаться достаточно долго. Деятельность может быть прервана некоторым событием.
Синтаксис метки перехода состоит из трех частей, каждая из которых является необязательной: Событие [Сторожевое условие] / Действие.
Если метка перехода не содержит никакого события, это означает, что переход произойдет, как только завершится какая-либо деятельность, ассоциированная с данным состоянием; в данном случае - как только будет выполнена Проверка. Из состояния Проверка выходят три перехода. Метка каждого из них включает только Сторожевое условие.
Сторожевое условие - это логическое условие, которое может принимать одно из двух значений: «истина» или «ложь». Переход со сторожевым условием выполняется только в том случае, если данное сторожевое условие принимает значение «истина».
Если проверены не все позиции, входящие в заказ, мы получаем следующую позицию и возвращаемся в состояние Проверка.
Если проверены все позиции и все они имеются на складе, то мы переходим в состояние Отправка.
Если проверены все позиции, но не все из них имеются на складе, то мы переходим в состояние Ожидание.
Сначала рассмотрим состояние Ожидание. В этом состоянии не существует деятельностей, поэтому данный заказ находится в состоянии ожидания, пока не наступит некоторое событие. Оба перехода из состояния Ожидание помечены событием «Позиция получена». Это означает, что соответствующий заказ находится в состоянии Ожидание до тех пор, пока он не обнаружит наступление данного события. В этот момент оцениваются сторожевые условия данных переходов, и выполняется соответствующий переход либо в состояние Отправка, либо обратно в состояние Ожидание.
В состоянии Отправка имеется деятельность, которая инициирует доставку. Из этого состояния имеется единственный безусловный переход, который происходит в результате наступления события «Отправлен». Это означает, что рассматриваемый переход обязательно произойдет, если наступит данное событие. При этом следует заметить, что этот переход не произойдет, даже если завершится деятельность; наоборот, когда деятельность «инициировать доставку» завершится, данный заказ останется в состоянии Отправка, пока не наступит событие «Отправлен».
Помимо событий с именами существуют еще два других типа событий:
• Событие может быть инициировано после завершения определенного периода времени. Такое событие можно пометить ключевым словом после. Например, можно записать после (20 минут).
• Событие может быть инициировано в результате выполнения того или иного логического условия. Такое событие можно пометить ключевым словом если. Например, можно записать если (температура >100 градусов ).
Существуют также два особых события: вход и выход.
Любое действие, связанное с событием входа, выполняется в момент перехода объекта в данное состояние. Действие, ассоциированное с событием выхода, выполняется в том случае, когда объект покидает данное состояние в результате осуществления некоторого перехода.
Если имеется так называемый рефлексивный переход, возвращающий объект обратно в то же самое состояние и связанный с каким-либо действием, то сначала должно выполниться действие выхода, затем действие данного перехода и, наконец, действие входа. Если с данным состоянием ассоциирована некоторая деятельность, то она начнет выполняться сразу после действия входа.