システム設計7 プロジェクト管理の仕組み (その39)

 前回のシステム設計6に続いて解説します。
 
 検証作業の基本は、考えたサブシステム構成に対してシステム要件の一つひとつに対してどのような振る舞いになるのかを確認することです。まず、FURPS+ で整理したシステム要件のうち、図70に示している機能 (Functionality) について検証したいと思います。再度、図70を下記に示します。
 
図70. システム要件
 
 図を見ると、機能の最初のシステム要件である「取り扱い商品の確認」は、「お金の投入前はすべての商品をライトアップする」(システム要件 F1.1 とします)と「自販機の中の在庫が切れた場合はその商品はライトアップしない」(システム要件 F1.2 とします)という2つの要件に分かれていることがわかります。それぞれの要件についてサブシステムの振る舞いを考えます。図75 を見てください。
 
図75. サブシステム構成の検証(その1) 
 
 まずシステム要件 F1.1 です。「状態管理サブシステム」がお金が投入される前の待機状態が正常であることを確認して「操作管理サブシステム」に知らせます。知らせを受けた「操作管理サブシステム」は商品のライトをすべてオンにしてユーザからの操作を待ちます。ちなみに、要件 F1.1 には記述していませんが、自販機に異常が見つかった場合には、今の振る舞いと同様に「状態管理サブシステム」は「操作管理サブシステム」に異常であることを知らせ、「操作管理サブシステム」は商品ライトを全部消して何も操作ができないようにする必要があるでしょう。
 
 このように、ある要件を検証するときに関係する新たな要件が出てくるときがあります。このような要件は派生要件としてシステム要件に加えます。今の場合であれば、システム要件 F1.1.1 として「自販機に異常が見つかった場合は商品ライトを消して操作できないようにする」を追加します。
 
 次にシステム要件 F1.2 を考えます。「商品管理サブシステム」は商品在庫があるかどうかを把握し、在庫が切れている商品があれば「操作管理サブシステム」に知らせます。知らせを受けた「操作管理サブシステム」はその商品のライトを消しその状態を維持します。
 
 以上のシステム要件の振る舞いを記述したサブシステム構成の図を使って、サブシステムが受け持つ役割(機能)がシンプルかどうか、サブシステム間のやりとりがシンプルかどうかを確認します。たとえば、「商品管理サブシステム」の役割は「在庫がない商品を確認する」となっていますが、これは、「商品管理サブシステム」が商品ごとのストッカーにセンサーを持ち、商品がないことを知らせるための信号線を確保することでシンプルに実現できそうです。ストッカーなどのハードウェアは化粧品に合うように作り直す必要がありますが、センサーなどの仕組みは既存の自販機から流用できそうです。同様に、「操作管理サブシステム」は在庫がない商品を教えてもらえれば、在庫がある商品だけにライトをつけることは問題ないですし、「状態管理サブシステム」も自販機の状態を常にモニターしているわけですから正常かどうかを判断するのは適切です。どちらもサブシステムも役割としてシンプルなものになっています。
 
 さらに、サブシステム間のやりとりについて検証します。「商品管理サブシステム」は「操作管理サブシステム」に対して「在庫がない商品を知らせる」ことになっていますが、在庫は「商品管理サブシステム」が把握できるデータなので問題はありません。ただ、「操作管理サブシステム」には商品が特定できる...
データにして知らせる必要があります。先ほど、「商品管理サブシステム」と「操作管理サブシステム」の間に在庫の有無を知らせる信号線を確保する必要があるとしましたが、商品が特定できる信号にしてその状態を保持しておく必要があります。同じように、「状態管理サブシステム」から「操作管理サブシステム」に自販機が正常か異常かを知らせるようになっていますが、このやりとりもシンプルなので問題ないでしょう。ただ、異常を検出した時点で「操作管理サブシステム」に対して割り込みがかかるような信号線にしておく必要があります。
 
 次回は、最後に追加したシステム要件「停電時の商品とお金の保証」についての検証作業を解説します。
 
 
◆関連解説『技術マネジメントとは』

↓ 続きを読むには・・・

新規会員登録


この記事の著者