Advertisement
vancomm

fsm.dot

Jul 29th, 2023
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
DOT 4.82 KB | None | 0 0
  1. digraph finite_state_machine {
  2.     fontname = "Helvetica,Arial,sans-serif";
  3.     rankdir = LR;
  4.     node [fontname = "Helvetica,Arial,sans-serif";];
  5.     edge [fontname = "Helvetica,Arial,sans-serif";];
  6.     node [shape = doublecircle;];
  7.     node [shape = circle;];
  8.    
  9.     // states
  10.    
  11.     start [comment = "главное меню";];
  12.    
  13.    
  14.     tasks_view [comment = "экран просмотра заданий";style = "dashed";group = "tasks";];
  15.     tasks_prepare_submission [comment = "экран сдачи задания";group = "tasks";];
  16.    
  17.    
  18.     wallet_view [comment = "экран посмотра кошелька";style = "dashed";group = "wallet";];
  19.     wallet_submit [comment = "экран ввода кошелька";group = "wallet";];
  20.     wallet_del_conf [comment = "экран подтверждения удаления кошелька";group = "wallet";];
  21.    
  22.    
  23.     scores_type_select [comment = "экран выбора таблицы рейтингов";style = "dashed";group = "scores";];
  24.     scores_time_select [comment = "экран выбора временного промежутка рейтинга";group = "scores";];
  25.     scores_view [comment = "экран просмотра рейтинга";group = "scores";];
  26.    
  27.    
  28.     task_create [comment = "экран создания задания";style = "dashed";group = "admin";];
  29.     task_select_cat [comment = "экран выбора категории задания";group = "admin";];
  30.     task_select_time [comment = "экран выбора времени задания";group = "admin";];
  31.     task_enter_time [comment = "экран ввода времени задания";group = "admin";];
  32.     task_select_pts [comment = "экран выбора очков за задание";group = "admin";];
  33.     task_enter_pts [comment = "экран ввода очков за задание";group = "admin";];
  34.     task_enter_desc [comment = "экран ввода описания задания";group = "admin";];
  35.    
  36.     review;
  37.    
  38.     // transitions
  39.    
  40.     start -> {tasks_view scores_type_select task_create review} [label = "reply";];
  41.    
  42.    
  43.     start -> wallet_view [label = "reply+has_wallet";];
  44.     start -> wallet_submit [label = "reply+has_not_wallet";];
  45.    
  46.    
  47.     tasks_view -> tasks_prepare_submission [label = "submit";];
  48.    
  49.     tasks_prepare_submission -> tasks_view [label = "cancel";];
  50.    
  51.     wallet_view -> wallet_submit [label = "edit";];
  52.     wallet_view -> wallet_del_conf [label = "delete";];
  53.    
  54.     wallet_submit -> wallet_view [label = "success";];
  55.     wallet_submit -> wallet_view [label = "cancel+has_wallet";];
  56.     wallet_submit -> start [label = "cancel+has_not_wallet";];
  57.     wallet_submit -> wallet_submit [label = "error";];
  58.    
  59.     wallet_del_conf -> wallet_view [label = "cancel";];
  60.     wallet_del_conf -> start [label = "confirm";];
  61.    
  62.    
  63.     scores_type_select -> start [label = "back";];
  64.     scores_type_select -> scores_time_select [label = "inline";];
  65.    
  66.     scores_time_select -> scores_type_select [label = "back";];
  67.     scores_time_select -> start [label = "cancel";];
  68.     scores_time_select -> scores_view [label = "inline";];
  69.    
  70.     scores_view -> scores_time_select [label = "back";];
  71.     scores_view -> start [label = "cancel";];
  72.    
  73.    
  74.     task_create -> start [label = "back";];
  75.     task_create -> task_create [label = "error";];
  76.    
  77.     task_create -> task_select_cat [label = "inline";];
  78.     task_select_cat -> task_create [label = "back";];
  79.     task_select_cat -> start [label = "cancel";];
  80.    
  81.     task_select_cat -> task_select_time [label = "inline";];
  82.     task_select_time -> task_select_cat [label = "back";];
  83.     task_select_time -> start [label = "cancel";];
  84.    
  85.     task_select_time -> task_enter_time [label = "inline";];
  86.     task_enter_time -> task_select_time [label = "back";];
  87.     task_enter_time -> start [label = "cancel";];
  88.     task_enter_time -> task_enter_time [label = "error";];
  89.     task_enter_time -> task_select_pts [label = "success";];
  90.    
  91.     task_select_time -> task_select_pts [label = "inline";];
  92.     task_select_pts -> task_select_time [label = "back";];
  93.     task_select_pts -> start [label = "cancel";];
  94.    
  95.     task_select_pts -> task_enter_pts [label = "inline";];
  96.     task_enter_pts -> start [label = "cancel";];
  97.     task_enter_pts -> task_enter_pts [label = "error";];
  98.     task_enter_pts -> task_enter_desc [label = "success";];
  99.    
  100.     task_select_pts -> task_enter_desc [label = "inline";];
  101.     task_enter_desc -> task_select_pts [label = "back";];
  102.     task_enter_desc -> start [label = "cancel";];
  103.     task_enter_desc -> start [label = "success";];
  104.     task_enter_desc -> task_enter_desc [label = "error";];
  105.    
  106.    
  107.     review -> start [label = "back";];
  108.     review -> review [label = "inline";];
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement