KAOS (11) システム要求とソフトウェア要求 (1.1.4-2)

定義からいって,ソフトウェア要求は,システム要求である.しかし,逆は成立しない.あいまいさがないところでは,要求といえば,システム要求を指す (p.19)

システム要求 SysReq は,次のように記述できる.いま,Mが監視している変数の集合で,制御対象変数の集合をCとする(一般的なコントローループラントモデル).このとき,次が成立する

SysReq ⊆ M × C

ソフトウェア要求 SofReq は,次のように記述できる.同様に,入力変数の集合をIとし,出力変数の集合をOとする.

SofReq ⊆ I × O

この2つの式は,当たり前のようにも見えるし,本当かと思ったりもする.

どのような記述が適切かは,システムやソフトウェアをどうモデル化するかに依存している.ここでは,システムにしろソフトウェアにしろ,入力を変換して出力する機械とみなす.もちろん,対象は異なる.システムの場合,監視している変数(例えば,自動車の場合,現在速度や車軸回転数)から制御対象の変数(アクセル開度が決まる).M × Cというのは,直積を示す(要求と関する部分が,かなり疎なマトリクスになる).ソフトウェアの場合も同様である.ただ,監視や制御ではなく,入出力といういい方に変わる.

さて,次は,SysReqとSoftReqの関係である.

前回は,ドメインプロパティと前提について見た.ここで復習を兼ねて,ドメインプロパティ(Dom)と前提(Asm)の関連する記述を示す(p. 22)

システム要求 SysReq TrainMoving → DoorsClosed
ソフトウェア要求 SoftReq MeasuredSpeed ≠ 0 → doorsState = ‘closed’
ドメインプロパティ Dom TrainMoving ↔ trainSpeed ≠ 0
前提 Asm measuredSpeed ≠ 0 ↔ trainSpeed ≠ 0
DoorsState = ‘closed’ ↔ DoorsClosed

ドメインプロパティは,環境側(システムが埋め込まれる世界)であり 1,前提は環境とソフトウェアの共通領域なので,DOMとASMを利用して,システム要求 SysReq とソフトウェア要求 SofReq を結びつけることができる.

{SOFREQ, ASM, DOM} ⊨ SysReq

これは,左側が成立すれば,右側を満足するという一般的な読み方でもよいし,左側が右をモデル化していると読むこともできる.

(nil)

Notes:

  1. 上記で,trainSpeedは,変数のように見える.しかし,ここでは環境中の表現である.ソフトウェア的な変数は,measuredSpeedの方である