Существует ли стандартный тип диаграммы с указанием состояния и активности?
Я понимаю, что диаграмма действий UML описывает алгоритм, поэтому в некотором смысле это современная версия блок-схемы, в то время как диаграмма состояний UML показывает все возможные (или интересные) состояния, в которых может находиться объект или система, и показывает все возможные переходы между этими состояниями.
Я также понимаю, что они являются ортогональными моделями: стрелка, соединяющая два состояния в диаграмме состояний, представляет алгоритм или часть диаграммы деятельности; и некоторые, если не все, стрелки между двумя действиями диаграммы деятельности представляют состояния, в которых объект находится между последовательными действиями.
Существует ли стандартный тип диаграммы (UML или другой традиционный), который придает различные формы как действиям (алгоритмическим шагам, включая ветвление, разветвление / объединение и т. Д.), Так и состояниям между действиями (только те состояния, которым разработчик желает дать имя)?
Что-то вроде этого:
begin --> (state: new) --> [action: save] --> (state: saved) --> [action: delete]...
2 ответа
Нет, это не так, но StateMachine - это тип определения поведения, который может быть определен с использованием некоторых функций структурного программирования, таких как Decision (называемый "Выбор в конечном автомате"), Fork, Join. Вы можете определить поведение (действия, если хотите) для выполнения в нескольких частях конечного автомата.. во время перехода, при входе в состояние, при выполнении состояния и при выходе из состояния. В этом случае вы можете объединить поток состояний вашего объекта и указать выполнение поведения на одной диаграмме. Но поведение, определенное для состояний и переходов, не имеет четких форм, оно отображается как текст в имени перехода и определении состояния. См. Раздел StateMachine документа надстройки для получения более подробной информации.
Существует ли стандартный тип диаграммы (UML или другой традиционный), который придает различные формы как действиям (алгоритмическим шагам, включая ветвление, разветвление / объединение и т. Д.), Так и состояниям между действиями (только те состояния, которым разработчик желает дать имя)?
Что-то вроде этого:
начало -> (состояние: новое) -> [действие: сохранить] -> (состояние: сохранено) -> [действие: удалить]...
Да, с помощью сетей Петри вы можете представлять действия с помощью узлов- переходов, а состояния с помощью мест- узлов; ветвление и соединение также поддерживается. Я бы порекомендовал прочитать лекции по сетям Петри I: базовые модели (paywalled), если у вас есть доступ к этому.