ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

サンプリングレビューにおける「ガイド」を探した

 昨年11月に開催されたレビュー祭ブログ記事)で、「ガイドを用いたサンプリングレビュー」というレビュー技法が紹介されました。

www.kzsuzuki.com

 そこで提示された「ガイド」の例が、入出力のガイド。機能を記述した文章で、「入力」「処理」「出力」欄をきちんと埋められるかどうかで、記述の網羅性を判断します。埋まらない部分、埋めようとしても曖昧な部分が、仕様として不十分な箇所、ということになりますね。
 このようなガイド、他にどういうものがあるのでしょう。
 『Engineer Mind』の連載『エンジニアよ、国語力に目を向けよう』(開米瑞浩氏)で紹介されている「キーワードマトリックス」が、まさにガイドとして使えると感じたので、紹介します。
 記事では、Microsoft Windows XP Professional リソースキットの文章を引用しています。以下の引用はその孫引きです。
ユーザープロファイルは、コンピュータにログオンしたユーザーごとに1つずつ作成され、規定の設定ではローカルコンピュータに保存されます。移動用のユーザープロファイルを構成しておくと、ユーザーがコンピュータからログオフしたときにユーザープロファイル内の設定がネットワークサーバーにコピーされ、そのユーザーが次にネットワーク上のどのコンピュータにログオンしても同じ設定が使用できるようになります。
 何といいますか、清潔に書かれていますが、シーケンシャルに流れていって、頭にはなかなか入ってこない、そんな文章です。
 開米さんはこの文章を、ステートメント(1つの意味だけを明確に表現した短い文)に解体し、グルーピングせよと教えています。するとこの文章は、(1)ユーザプロファイルの話 と (2)移動用のユーザプロファイルの話 に分けられることがわかります。
 キーワードマトリックスは、この再構築が終わった後に使います。
 キーワードとは、上の文章でいう「ユーザプロファイル」「ログオン」など、説明の要となる言葉。さらにこのキーワードたちの、文章における属性を抽出して、マトリックスを作ります。そのマトリックスに、再構築したステートメントの内容を埋めていく。すると・・・
用途 作成の単位 保存場所 保存タイミング メリット
(A) コンピュータにログオンしたユーザごとに1つずつ ローカルコンピュータ (B) (C)
移動用 ネットワークサーバ ユーザのログオフ時 どのコンピュータでも同じ設定が使える
 このように、「埋まっていない部分」が明確になるというわけです。
 特に(B)は、仕様として明確にしておくべき場所でしょうが、元の文章から、「Bが抜けている」と見ぬくのは難しいですよね。
 また「用途」列でわかるように、「移動用」に対して、「デフォルト」的なモノは、名前が省略されがちと指摘されていました。「ラッパ飲み」という言葉はありますが、「容器から飲み物をコップに注いでから飲む」という動作に名前がないのと同じですね。この名前の省略は、あとあと仕様の曖昧につながっていきます。
 入出力ガイドに比べて、自分で属性を抽出しなくてはならない分難しくはなりますが、有効な方法だと思います。色々な要素が長文でダラダラ書かれているような箇所に適用するのがよさそうです。
 
 ところで、開米瑞浩さんにはどんな著作があるのかな?と調べてみたところ、WACATE2011冬の予習本であり、ぼくも購入している『エンジニアのための図解思考 再入門講座』がまさに、それでした。2012年も、毎度毎度の出遅れ感・・・。
エンジニアのための図解思考 再入門講座 情報の“本質

エンジニアのための図解思考 再入門講座 情報の“本質"を理解するための実践テクニック