UML состояние для торгового автомата - дилемма филиалов? - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь нарисовать диаграмму состояний UML для торгового автомата, может быть, его основной, но я новичок и не нашел подходящего решения в интернете

Задача: - торговый автомат получает1,2 и 5 $, цена напитка составляет 2 $ - он распределяет напиток, если введено достаточное количество денег, и возвращается возврат денег - машина включена и выключена)

Я пометил каждое состояние и перевел числа(СОСТОЯНИЯ = s1,2 ..., ПЕРЕХОДЫ = p1,2 ...), чтобы было легче ответить без рисунка (например, «p1 неверно, должно быть написано это» и т. Д.)

Здесьмоя диаграмма: enter image description here

Вопросы:

  1. Возвращается ли он в конечном итоге к IDLE - что мне кажется более логичным - или он долженперейти в конечное состояние (округленная черная точка) при отключении питания?

    Или может быть два конечных состояния, поэтому S5 переходит в другое конечное состояние?

  2. следуетэто будет после P3 или P4, может быть, две ветви?

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

    триггерное событие [условие, если оно существует] /
    действие

  4. Есть ли какие-либо основные ошибки, которые я сделал?

Заранее благодарен за любые отзывы.

1 Ответ

0 голосов
/ 19 октября 2018
  1. Вы можете иметь столько финалов, сколько вам нужно.
  2. Я бы сделал Dispensing необязательным состоянием после Ожидания (для случая>), в то время как случай = непосредственно перейдет к выбору.Просто с логической точки зрения.Конечно, вы можете заставить машины производить дозирование и заменять их параллельно.В этом случае вам нужно перейти на Dispense and Refund.
  3. Correct
  4. Вы должны смоделировать Power off как Signal, который может быть активирован в любое время.Питание может быть отключено в любое время во время работы машины, а не только в режиме ожидания.
...