Автор Тема: Диаграмма состояний: choice vs junction  (Прочитано 958 раз)

Vadim

  • Full Member
  • ***
  • Сообщений: 122
  • Рейтинг читателей: 16
    • Просмотр профиля
Диаграмма состояний: choice vs junction
« : 17 Августа 2016, 20:26:01 »
На диаграмме 1 из State1 по событию b произойдет переход в State2.
На диаграмме 2 из State1 по событию b произойдет переход в State3.
А куда и почему произойдет переход из State1 по событию b На диаграмме 3?


Григорий Печенкин

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 1318
  • Рейтинг читателей: 57
    • Просмотр профиля
    • http://www.greesha.ru
Re: Диаграмма состояний: choice vs junction
« Ответ #1 : 18 Августа 2016, 15:04:52 »
Это головоломка? Чем отличаются диаграммы 1 и 2?
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)

Vadim

  • Full Member
  • ***
  • Сообщений: 122
  • Рейтинг читателей: 16
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #2 : 18 Августа 2016, 19:27:28 »
Условия переходов из choice проверяются на момент входа в него, переменная А к этому моменту имеет значение 1.
Условия переходов из junction проверяются на момент выхода из настоящего (не псевдо) состояния, переменная А к этому моменту имеет значение 0.
Строго по этим правилам в диаграмме 3 произойдет переход в State3. Но это как-то неестественно (подряд два перехода с одним и тем же условием, но по одному идём, а по другому - нет).


Григорий Печенкин

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 1318
  • Рейтинг читателей: 57
    • Просмотр профиля
    • http://www.greesha.ru
Re: Диаграмма состояний: choice vs junction
« Ответ #3 : 19 Августа 2016, 08:56:43 »
Главное – не использовать такие картинки в реальных проектах.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)

[прилетело НЛО и...]

  • Full Member
  • ***
  • Сообщений: 168
  • Рейтинг читателей: 25
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #4 : 20 Августа 2016, 12:04:06 »
А куда и почему произойдет переход из State1 по событию b На диаграмме 3?
Если трактовать переходное псевдосостояние, как спец. обозначение для более удобной записи переходов и сторожей, то для ответа на вопрос, нужно переписать диаграмму без спец. обозначения. Получаем:
<>--[a=1 and a=1]-->State2
и
<>--[a=1 and a!=1]-->State3
Ответ: State2.
[...и улетело НЛО.]

Vadim

  • Full Member
  • ***
  • Сообщений: 122
  • Рейтинг читателей: 16
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #5 : 21 Августа 2016, 13:02:20 »
трактовать переходное псевдосостояние, как спец. обозначение для более удобной записи переходов и сторожей
Класс! Я только чувствовал, что так должно быть, а теперь получил и обоснование.
К сторожам можно добавить триггеры и действия на переходе (более удобной записи переходов: триггеров, сторожей и действий). Триггер не более, чем 1 на всей цепочке переходов через junction, выходящей из состояния (для остальных цепочек триггеров не может быть).
Цепочки переходов через junction не могут быть циклами (через choice могут!).

[прилетело НЛО и...]

  • Full Member
  • ***
  • Сообщений: 168
  • Рейтинг читателей: 25
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #6 : 22 Августа 2016, 01:23:22 »
Проблема стандарта в том, что эти вершины-псевдосостояния и звенья-псевдопереходы для авторов стандарта как бы заслонили тот факт, то [настоящая] диаграмма состояний описывает табличку [настоящих] переходов между [настоящими] состояниями.  В результате метамодель в части конечных автоматов описывает не автомат как таковой, а некий граф, из которого может быть выведен [настоящий] автомат в том случае, когда граф построен по правилам. Но описать правила построения графа и правила вывода из него автомата стандарт не берётся.
[...и улетело НЛО.]

Vadim

  • Full Member
  • ***
  • Сообщений: 122
  • Рейтинг читателей: 16
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #7 : 22 Августа 2016, 10:33:25 »
В результате метамодель в части конечных автоматов описывает не автомат как таковой, а некий граф, из которого может быть выведен [настоящий] автомат в том случае, когда граф построен по правилам.
По-моему так и надо, если:
  • граф получается наглядным
  • есть хорошие правила, которым граф должен соответствовать (синтаксис)
  • есть хорошие правила получения автомата из графа (семантика)

Но описать правила построения графа и правила вывода из него автомата стандарт не берётся.
Берётся, но не достигает.

[прилетело НЛО и...]

  • Full Member
  • ***
  • Сообщений: 168
  • Рейтинг читателей: 25
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #8 : 22 Августа 2016, 12:03:46 »
Берётся, но не достигает.
Имелось в виду, что там не придаётся внимания тому, что за графом лежит ещё один слой "таблички", почти не отличимый в простых случаях, и требующий вывода в сложных. Наоборот применяется растушёвка: вершины стабильные и нестабильные; звенья/переходы/составные переходы.
« Последнее редактирование: 22 Августа 2016, 12:12:07 от [прилетело НЛО и...] »
[...и улетело НЛО.]

Vadim

  • Full Member
  • ***
  • Сообщений: 122
  • Рейтинг читателей: 16
    • Просмотр профиля
Re: Диаграмма состояний: choice vs junction
« Ответ #9 : 22 Августа 2016, 16:24:54 »
Имелось в виду, что там не придаётся внимания тому, что за графом лежит ещё один слой "таблички", почти не отличимый в простых случаях, и требующий вывода в сложных.
Из-за того, что "почти не отличимый в простых случаях" делается попытка делать одно общее описание сразу для обоих слоёв, что приводит к полной неразберихе в сложных случаях.
Хорошая формулировка проблемы - если вместо "граф" и "таблички" подставлять другие термины, то получается описание другой проблемы, когда несколько разных слоёв пытаются представить общим описанием.