NHKクローズアップ現代でソフトウェア品質のプログラムがこの前やってた。見逃した。
「ソフトウエア危機 ~誤作動相次ぐハイテク製品~」
ブログで少し検索したので、リストアップ。
ソフトウェアの欠陥はなぜ無くならないのか
NHKクローズアップ現代 ソフトウェア危機
==
原因結果グラフのテーブル作成をツール化する前に、基礎的なことを復習・まとめてみる。小さなテーブル作成をしているうちに何かいいことが気づけるかなあと。手持ち資料で原因結果グラフを勉強するとなると、マイヤーズ本くらいしかないが、わかりにくい表現が多い。自分なりの言葉でまとめてみる。
IDENTITY(同値)
原因が「T」なら、結果も「T」。原因が「F」なら、結果も「F」。原因と結果が同値な状態をさしていて、デシジョンテーブルも非常にシンプル。

これは中間ノードが入ってもデシジョンテーブルは同じ。

NOT(否定)
原因が「T」なら、結果は「F」。原因が「F」なら、結果は「T」。原因と結果の関係が逆になるケース。

AND(積)
原因が2ノード以上関係して、さらにその論理積で結果を決定するケース。「身長が高くて、学歴が高くて、高収入なら結婚する」みたいな。下図にあるように原因ノードが3つある場合は、デシジョンテーブルは4列(結果が「T」=1、「F」=3)となる。

単純に考えてみると、原因(真/偽)が3つあるので、全数では2^3=8列になるはずである。しかし、原因の複数項目が「F」だと、どの原因が結果を決定しているかが判断できない。つまりは、#2、#3、#4の3列は、それぞれノード11、ノード12、ノード13が結果を「F」にする原因となっていることを確認することが目的であるため、下図#5のようなテストケースは適当ではないのだ。これは経路感光(path sensitizing)というそうです。

OR(和)
原因が2ノード以上関係して、さらにその論理和で結果を決定するケース。「医者か、弁護士か、あるいはIT長者なら結婚する」みたいな。下図にあるように原因ノードが3つある場合は、デシジョンテーブルは4列(結果が「F」=1、「T」=3)となる。

ORとANDは表裏の関係なのがポイント。高校のときに習った、ド・モルガンを思い出せ。
さーて、続きはまた今度。次は制約記号だな>EXC、ONE、INCなどなど
最近のコメント