2014-11-04 2 views
2

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

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

Существует стандартный тип диаграммы (UML или традиционно традиционный), который дает разные формы для обоих действий (алгоритмические шаги, включая ветвление, fork/join и т. Д.) И состояния между действиями (только те состояния, которые дизайнер хочет дать имя)? не

Что-то вроде этого:

begin --> (state: new) --> [action: save] --> (state: saved) --> [action: delete]... 
+0

Возможный дубликат [Какая UML-диаграмма подходит? Два объекта взаимодействуют, а один меняет состояние других] (http://stackoverflow.com/questions/25600958/which-uml-diagram-is-suitable-two-object-interacting-and-one-is-changing-) – xmojmr

+0

@xmojmr [этот пример] (http://www.uml-diagrams.org/document-management-uml-activity-diagram-example.html) использует стандартные закругленные прямоугольники для действий и квадраты прямоугольников как состояния объекта. Так что да, это предварительный ответ. – Tobia

ответ

1

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

+0

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

1

Есть стандартный тип диаграммы (UML или иным традиционным), что дает различные формы для обоих действий (алгоритмические шаги, в том числе разветвления, вилки/присоединиться, и т.д.) и состояния между действиями (только тех государств дизайнер хочет дать имя)?

Что-то вроде этого:

начать -> (состояние: новое) -> [действие: сохранить] -> (состояние: сохранено) -> [действие: удалить] ...

Да, с Petri Nets вы можете представлять действия с использованием перехода -nodes и состояний, используя место -nodes; ветвление и соединение также поддерживаются. Я бы рекомендовал прочитать Lectures on Petri Nets I: Basic Models (paywalled), если у вас есть к этому доступ.

Смежные вопросы