Design
Draw.io
regularexpression
#migrated

図 > {状態、イベント、経過時間条件} を組み合わせた状態変化 (時系列)

More than 1 year has passed since last update.
動作環境
Windows 8.1 Pro (64bit)
Google Chrome バージョン 57.0.2987.133
  • 状態
  • イベント
  • 経過時間の条件

上記3つを含めた時系列の状態変化の図はどういうのがいいか。

UMLで良さそうな図は見当たらなかった。

draw.io使用

draw.ioで描いてみた。

work.png

分岐が増えていくと破たんする。
図の変更が面倒。

正規表現使用 v0.1

https://www.debuggex.com/#cheatsheet
で正規表現表示。

(Normal)(Proc1[N min])([for N<10]Proc2-1[P min]([for P<5]Proc3-1|[for 5<=P]Proc3-2)|[for 10<=N<20]Proc2-2[Q min]([for Q<7]Proc4-1|[for 7<=Q]Proc4-2)|[for 20<=N]Proc2-3[R min])

work.png

  • 分岐は分かりやすい
  • キーボード入力だけ
  • イベントの開始と終了が不明瞭
  • 分岐3つになると見にくい
  • mindmupとの違いは右側で分岐を減らすことができるかどうか

正規表現使用 v0.2

(Normal)(Proc1|[N min])([N<10](Proc2-1|[P min])([P<5]Proc3-1|[5<=P]Proc3-2)|[10<=N<20](Proc2-2|[Q min])([Q<7]Proc4-1|[7<=Q]Proc4-2)|[20<=N](Proc2-3|[R min]))

work.png

タイミングチャート

(追記 2017/04/28)

関連: http://qiita.com/7of9/items/4febc353f37ee2cd262b

https://rawgit.com/osamutake/tchart-coffee/master/bin/editor-offline.html

U  ====SPL====X=BKU=X=SPL============
S  ===NRM======================

U  ====SPL====X=BKU====X=SPL=========
S  ===NRM=========X=SDN1===X=DWN==X=BOOT==

U  ====SPL====X=BKU===============
S  ===NRM=========X=SDN1===X=DWN======

U  =SPL====X=BKU=X=SPL===============
S  =X[=BOOT=X=NRM=X=SDN2==X=]DWN==XBOOT===X=====

U  =SPL========X=BKU=X=SPL===========
S  =X=BOOT=X=NRM=====X=SDN2==X=DWN==X=BOOT==X=

U  =SPL=============X=BKU=X=SPL======
S  =X=BOOT=X=NRM==========X=SDN1==X=DWN==X

work.png

  • 利点
    • テキストで変更が容易
    • 2つのシステムのタイミングをだいたいつかめる
    • コピペが簡単
    • コンパクトに表示
  • 欠点
    • 経過時間の条件が数値的に見えにくい