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

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。

レビュー観点: 反町の「の」の曖昧さの回避の方法

 関係代名詞の「限定用法」と「叙述用法」を覚えていますか。
 例文をコチラから引いてみます。
  • There were few passengers who escaped without serious injury. (重傷を負わない乗客は少ししかいなかった)
  • There were few passengers, who escaped without serious injury. (乗客は少数で、それに重傷者もいなかった)
 差はカンマの有無だけですが、意味がまったく違ってきます。この「few」について、限定用法の(1)が指しているのは「重傷じゃない乗客」、叙述用法の(2)が指しているのは「乗客」ですよね。
 重要なポイントとして(1)は、「重傷じゃない乗客」という限定が、逆に「重傷である乗客」の存在を暗示していることです。
 この違いを踏まえたうえで・・・。

反町隆史の「の」

 この関係代名詞のような表現が、(自然な)日本語にはないので、ややこしいことが起きます。
  1. 「延滞中の新着図書を一覧表示する」
  2. 「購入から2週間以内の新着図書を一覧表示する」
 (1)は、一覧表示される条件が 延滞中 ∧ 新着図書 であることが、まあわかる。なぜなら、「延滞中か否か」と「新着図書か否か」とは、直交する条件であると自然に推測できるからです。
 (2)はどうか。「購入から2週間以内か否か」と「新着図書か否か」とは、直交するという確信がもてないと思いませんか。どちらも、「購入からの経過時間」に関係していそうだからです。
 よって、2つの意味に解釈することができます。
 叙述用法的な意味なら、「新着図書・・・ああ、これは購入から2週間以内の図書を指すんだけどね。それを一覧表示したいんだ」というアメリカ文学みたいな仕様。
 限定用法的な意味なら、「新着図書のうち、購入から2週間以内のものを、一覧表示する」という仕様。
 「以内の」の「の」のせいで言いたいことが言えない。そんな「の」はまさに poison のような危険さをもっています。
 この曖昧さを回避するための表現方法として、
  • 叙述的な意味の場合は、「新着図書」のようなシステム用語を、別に定義しておく。定義しておけば、「2週間以内の」とか書くまでもない。むしろ書かない方がいい。
  • 限定的な意味の場合は、「新着図書のうち、購入から2週間以内のものを・・」と、「うち」で「限定」する。
などが考えられます。
 とにかく「の」は危ない。意味が多すぎるんだ。

一粒で二度おいしいマーブル模様の仕様書

 この「反町仕様書」の派生版が「マーブル仕様書」です。
 例を挙げてみます。
「廃棄済みの書籍(廃棄フラグ=1)は一覧に表示しない」
 この仕様には嫌な点が2つあります。
 一つ目は、カッコ内を体言止めにしていること。カッコ内の体言止めは、反町の「の」と同じ、曖昧さをもたらす poison です。
 次の二つの文では、カッコ内の言葉が果たす役割が違います。前者では叙述用法、後者では限定用法ですね。
  • カキ(果物)が好きだ。
  • カキ(熟れたもの)が好きだ。
 もう一つは、外部仕様の話を、内部的なパラメタで補う、あるいは限定していること。
 次の工程への優しさなのかも知れませんが、たとえば外部仕様書をレビューするお客様にとっては意味のない記述でしょうし、上述のような曖昧さをはらんでいるだけに、あまりよい方法とは思えません。
 それでは、外部仕様と内部仕様の「言葉」をどう繋げばいいのか。
 これはまた別の話になりますので、別のエントリーで。