本講義の目標
システムデザイン
順序機械によるユーザインタフェース(UI)
システムの挙動モデリング
(金井 担当分 第2回目)
CDプレーヤーのUI例
順序機械によるUIシステムモデリングの問題点
1
順序機械(Sequential Machine)
2
順序機械の状態遷移図表現
< S, Σ, Δ,δ,ω,qi >
状態遷移図(State Transition Diagram), 状態図(State Diagram)
順序機械の有向グラフ表現
状態集合
S = {q0, q1,……, qn-1}
入力記号集合 Σ= {a0, a1,……, am-1}
出力記号集合 Δ= {b0, b1,……, bk-1}
状態遷移関数 δ: Σ x S → S
出力関数
ω: Σ x S → Δ
初期状態
qi S
例: 1個110円の缶ジュース自動販売機
入力記号列
qi, q2, q4, q8,….
入力記号
出力記号
状態集合 (販売機内の入金状態)
¥100 / 0個¥0
S = { ¥0, ¥100}
入力記号集合
Σ= {¥100, 返却レバ押下}
¥0
¥100 / 1個¥90
¥100
出力記号集合 (販売缶個数&つり銭)
記号列変換機
a3,a2,a1,a5,…
節点=状態,有向辺=状態遷移,有向辺の属性=入力,出力
b0,b4,b2,b4,…
出力記号列
Δ= { 0個¥0,1個¥90, 0個¥100}
3
初期状態
¥0
(初期状態)
返却レバ押下/
0個¥100
4
CDプレーヤーのユーザインタ
フェース挙動モデルの設計
順序機械の状態表・出力表表現
缶ジュース自動販売機の
状態表・出力表表現
缶ジュース自動販売機の
状態遷移図表現
入力記号
状態表
¥100
返却レバ押下
¥0
¥100
?
¥100
¥0
¥0
出力記号
等価な表現
¥100 / 0個¥0
Drawer
Time
Track
¥0
(初期状態)
¥100 / 1個¥90
返却レバ押下/
¥100
0個¥100
•不完全な挙動定義
•挙動の理解が容易
出力表
¥100
返却レバ押下
¥0
0個¥0
?
¥100
1個¥90
0個¥100
•完全な挙動定義
課題: CDプレーヤーのUI
コントロールソフトの挙動モ
デルを表現する。
1
Play
00:00
Pause
Stop
Prev.
Rev.
Forwd. Next
Eject
CDプレーヤーの動作
は直感的で単純 →
自然言語で挙動モデル
を表現すると….
5
6
•挙動の理解が困難
CDプレーヤーのユーザインタフェース
挙動モデルの自然言語による表現(1)
CDプレーヤーのユーザインタフェース
挙動モデルの自然言語による表現(2)
1. UIには、Play, Pause, Stop, Previous, Next, Forward, Reverse, Eject の8個
のボタンがある。
入力記号の1部
7. <No CD Loaded>状態で、Play, Pause, Stop, Previous, Next, Forward, Reverseボ
タンを押しても、なにも反応しない。
2. UIには、Time と Track 2つの表示フィールドがある。
8. ユーザがPlayボタンを押すと, <CD Stopped>状態から <CD Playing>状態へ入る.
3. CDプレーヤー内にディスクが無い時、もしくはCDプレーヤーのDrawerがOpenの
場合、システムは <No CD Loaded> 状態にある。
9. ユーザがStopボタンを押すと, <CD Playing>状態から <CD Stopped>状態へ入る.
4. CDプレーヤーのDrawerが閉まっており、CDがプレーヤー内にある場合、システ
ムは<CD Stopped>, <CD Playing>, <CD Paused>の何れかの状態にある。
10. ユーザがPauseボタンを押すと, <CD Playing>状態から <CD Paused>状態へ入る.
11. ユーザがPauseボタンかPlayボタンを押すと, <CD Paused>状態から <CD
Playing>状態へ入る.
5. <No CD Loaded>状態で、DrawerがOpen,かつCDがDrawer内にある場合、
Ejectボタンが押されると、Drawerが閉じ、システムが<CD stopped>状態に入る。
6. <No CD Loaded>状態で、DrawerがOpen, かつCDがDrawer内に無い場合、
Ejectボタンが押されると、Drawerが閉じ、システムは<No CD Loaded>の状態
のままである。
7
12. <CD Stopped>状態では,<Time>フィールドの表示は”00:00”で, <Track>フィール
ドの表示は”1”でなければならない.
13. <CD Stopped>状態では, PauseボタンとPlayボタンは機能してはならない.
14. <CD Playing>状態では,Playは機能してはならない.
8
CDプレーヤーのユーザインタフェース
挙動モデルの自然言語による表現(3)
CDプレーヤーのユーザインタフェース
挙動モデルの自然言語による表現(4)
15. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,現在のトラック
が最終トラックでない場合,Nextボタンが押されると,プレーヤーは次のトラック
へ移動し,<Time>フィールドの表示は”00:00”で, <Track>フィールドの表示は
そのトラック番号となる.
19. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,Forwardボタンを押
し下げた場合,CDの再生を中止し,CDを1秒進めては0.1秒分のみ再生させるス
テッピング処理を行う.各ステップごとの再生時間は0.1秒である.各ステップごとに,
<Time>フィールドの表示は現在のトラックでの経過時間を表示し, <Track>フィール
ドの表示はそのトラック番号となる.ユーザが,Forwardボタン押し下げをやめた場
合,もしくは,CDの最後に到達した場合は,このステッピング処理を中止する.もし
CDの最後に到達した場合は, <CD Stopped> 状態に入り, <Time>フィールドの表
示は”00:00”で, <Track>フィールドの表示は”1”となる.
16. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,現在のトラック
が最終トラックの場合,Nextボタンが押されると,プレーヤーは最初のトラックへ
移動し,<Time>フィールドの表示は”00:00”で, <Track>フィールドの表示は”1”
となり, <CD Stopped>状態に入る.
20. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,Reverseボタンを押
し下げた場合,CDの再生を中止し, CDを1秒戻しては0.1秒分のみ再生させるス
テッピング処理を行う.各ステップごとの再生時間は0.1秒である.各ステップごとに,
<Time>フィールドの表示は現在のトラックでの経過時間を表示し, <Track>フィール
ドの表示はそのトラック番号となる.ユーザが,Forwardボタン押し下げをやめた場
合,もしくは,CDの最初に到達した場合は,このステッピング処理を中止する.
17. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,現在のトラック
が最初のトラックでない場合,Previousボタンが押されると,プレーヤーは前のト
ラックへ移動し,<Time>フィールドの表示は”00:00”で, <Track>フィールドの表
示はそのトラック番号となる.
18. <CD Stopped> ,<CD Playing>もしくは <CD Paused>状態で,現在のトラック
が最初のトラックの場合,Previousボタンが押されると,プレーヤーは最初のト
ラックの先頭に移動し,<Time>フィールドの表示は”00:00”で, <Track>フィー
ルドの表示は”1”となる.
9
CDプレーヤーのユーザインタフェース
挙動モデルの自然言語による表現(5)
10
挙動モデルの自然言語表現の問題点
21. <CD Playing>状態のとき,<Time>フィールドでは、現在のトラックの所
要再生時間が1秒毎に更新され、 <Track>フィールドの表示はそのトラッ
ク番号となる.
通常の表現では、記述に「あいまいさ」を含む
22. <CD Paused>状態のとき,<Time>と <Track>フィールドの表示が最初
表示され、1秒後に消える。さらに数秒後に、再度表示される。この表示の
On/Offサイクルは、システムが<CD Paused>状態にある間、繰り返され
る。
自然言語で厳密に表現しようとすると、記述が膨大と
なり、設計者の理解が困難となる
UIシステムが大規模で複雑になった場合,このような自然言
語での仕様を、設計者が,誤りなく記述してゆけるだろうか?
前述のCDプレーヤーの例
挙動モデルの、計算機による再利用が困難
11
各語の厳密な定義がない。(状態の定義等)
各語が文章内で利用されるとき、あいまいさは、さらに増大
仕様→コード生成、テストケース生成
12
CDプレーヤーUIを「順序機械」と考えた場合の
入力記号は?
解決案:
順序機械による挙動モデルの表現
厳密に意味が定義された(well-defined
semantics)図的モデルで挙動を表現できる
(入力キーのみをとりあえず入力記号と考える)
状態遷移図
挙動記述が簡潔に行える
図的モデルがあり,設計者が理解しやすい
挙動モデルの計算機による再利用が可能
1
Play
CD
Playing
CD
Stopped
Stop
Rev.
Forwd. Next
Eject
CDがトレイ上にあるか否かをセンサ等でシステムが判定した結果を、
順序機械の入力として追加し、挙動仕様を拡張 (入力記号にセンサを追加)
•本来であれば,システムがトレイ上のCDの
有無を判断し、異なる処理を実施する必要
あり。
Pause
Play
Prev.
•この状態遷移では、ユーザがCDをトレイ内
に入れていることを暗黙に仮定してしまって
いる。
•ユーザ入力以外の入力も仕様記述に必要
Eject
Stop
14
問題点:
Drawer
Closed
Pause
順序機械を用いたCDプレーヤーの
挙動仕様記述(2)
挙動モデルの自然言語表現(前述) 3ー14の状態遷移図表現
Drawer
Open
00:00
13
順序機械を用いたCDプレーヤーの
挙動仕様記述(1)
Eject
Pause, Stop, Prev.,
Rev., Forwd., Next, Eject}
Time
Track
仕様→形式検証、コード生成、テストケース生成
→ 組み込み制御ソフトウエアの分野で、
状態遷移図による仕様表現が広く利用
Σ= {Play,
Drawer
入力記号集合
( )で表現
CD
Paused
新たに追加された状態
入力が Pause もしくはPlayの意味
CD
Paused
Pause
15
Play
センサーによる
判定結果
16
仕様記述(2)と等価な状態遷移表
センサ等の判定を
表した入力記号
元々の入力記号
状態遷移図による仕様表現の利点と
問題点
状 態
Play
Pause
Stop
Prev.
Rev.
Forwd.
Next
Eject
Drawer
Closed
Drawer
Open
Drawer
Open
Drawer
Closing
Drawer
Closing
(no CD)
CD
Stopped
CD
Playing
CD
Playing
Paused
not
blank
利点
Drawer
Closed
CD
Stopped
(CD in
drawer)
CD
Stopped
問題点
CD
Paused
CD
Playing
CD
Playing
前頁の状態遷移図のみでは,まだ多くの未定義部分が存在!
17
各状態において、許容される入力を下表(「状態遷移表」ではないの
で注意)のように制限することで、未定義の状態遷移を減少可能。
→ コンパクトな順序機械として定義できる。
d (disable): 入力を制限,
e (enable): 入力を許容
Play
Pause
Stop
Prev.
Rev.
Forwd.
Next
Eject
(no CD)
(CD in
drawer)
Drawer
Closed
d
d
d
d
d
d
d
e
-
-
Drawer
Open
d
d
d
d
d
d
d
e
-
-
Drawer
Closing
-
-
-
-
-
-
-
-
-
-
CD
Stopped
e
d
d
e
e
e
e
e
-
-
CD
Playing
d
e
e
e
e
e
e
e
-
-
CD
Paused
e
e
e
e
e
e
e
e
-
-
これは「入力制限」の表 (≠「状態遷移表」)
状態遷移数 = (状態数)×(入力記号数)
状態数が増加 → 未定義の状態遷移数が増加
システムが無反応で良い(処理をしなくとも良い、入力を受け付け
なくとも良い)入力に対しても、状態遷移図上で定義する必要があ
18
るか? (=状態遷移表の全欄で遷移の定義が必要か?)
順序機械を用いたCDプレーヤーの
挙動仕様記述(3)
各状態における入力制限の指定
表3
図的表現のため挙動が理解しやすい
自然言語では分からない、仕様記述に潜在的に含まれる未定義
部分が状態遷移図に対応する状態遷移表から明らかにできる
状態”CD stopped”, “CD playing”, “CD paused”において、Eject
ボタンが押された場合が未定義
状態”CD paused”において、Stopボタンが押された場合が未定義
19
表3の入力制限+一部の未定義状態遷移を追加した、自然言
語仕様3ー14に対する状態遷移図表現
CD
Paused
20
順序機械を用いたCDプレーヤーの
挙動仕様記述(3)
順序機械を用いたCDプレーヤーの
挙動仕様記述(4)
表3の入力制限+一部の未定義状態遷移を追加した、自然言
語仕様3ー14に対する状態遷移図表現
Eject
Eject
Eject
( ) 内は,
システム内部からの入力
もしくは成立すべき条件
に相当
CD
Paused
21
順序機械を用いたCDプレーヤーの挙動仕様記述(5)
ブリンク
Next, Previous
ボタンに対する
挙動の自然言語
仕様 15-18に
対する状態・状
態遷移を追加し
た挙動仕様
<Time>, <Track>
フィールドの表示に
関する挙動の自然
言語仕様 21-22を
追加した挙動仕様
‐Play 状態では表示内容
を1秒ごとに更新
‐Pause状態では1秒ご
とに表示のon/offを反復
“Timer expired”=タイマー
で規定した時間が経過し
たという事象(入力)
状態数が増えるにつ
れ、状態遷移図での
仕様記述も、入り組ん
23
で複雑になってしまう。
22
挙動仕様記述(5)における入力制限
状態遷移
表ではない
ので注意
V (visible): フィールドに数値が表示、 I (invisible): フィールドの表示が消灯
24
順序機械を用いたCDプレーヤーの挙動仕様記述(5)
順序機械を用いたCDプレーヤーの
挙動仕様記述(6)
Forward, Reverseボタンに関する挙動の自然言語仕様
19-20の部分のみの挙動仕様
状態Xは、各状態
4,5,6,7を表す。
0.1s
ボタン
押し下げ
0.1s
Stepping forward 時の挙動
1s
0.1s
0.1s
t
0.1s 0.1s 0.1s 0.1s 0.1s
0.1sごとに曲の1s先の部分を0.1s分だけ再生
ボタン
解放
「現在より1s前に戻り,
再生をしている」こと
を表す状態
0.1s
状態数が増えるにつ
れ、状態遷移図での
仕様記述も、入り組ん
で複雑になってしまう。
0.1s
「現在より1s先に進み,
再生をしている」ことを
表す状態
<Time>, <Track>
フィールドの表示
に関する挙動の自
然言語仕様 2122を追加した挙動
仕様
25
26
単純な順序機械のみによるUI挙動
仕様記述の問題点
順序機械のみで、UIの挙動をモデル化することが困難
現実のUIは純粋な順序機械ではない。入力ではなく、内部条件のみに
状態ベースの挙動記述の
より状態遷移する場合もある。(トレイ内CDの有無による遷移など)
利点を生かし、順序機械
モデリング対象システムの構造があまり複雑でなくても、
の問題点を解決した仕様
状態数が急激に増加する。
記述が必要
本日はここで終了
Pause状態を表示の観点で2状態に分けると、Pause状態と関連のあ
るStopped, Playingなどの状態ごとに、その2状態が付加される。
重複した状態や入力が存在してしまう。
Stepping forward, Stepping backwardは、4回現れる。
状態遷移図が大規模になり、解読が困難になる。
設計者が、仕様に対す状態や入力の追加をあきらめてしまう。
状態遷移図は、Scalableな仕様記述でない。
大規模なUIシステムになると、1ページに収まらない図となる。
27
28
© Copyright 2025 Paperzz