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

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

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

 関係代名詞の「限定用法」と「叙述用法」を覚えていますか。
 例文をコチラから引いてみます。
  • 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 です。
 次の二つの文では、カッコ内の言葉が果たす役割が違います。前者では叙述用法、後者では限定用法ですね。
  • カキ(果物)が好きだ。
  • カキ(熟れたもの)が好きだ。
 もう一つは、外部仕様の話を、内部的なパラメタで補う、あるいは限定していること。
 次の工程への優しさなのかも知れませんが、たとえば外部仕様書をレビューするお客様にとっては意味のない記述でしょうし、上述のような曖昧さをはらんでいるだけに、あまりよい方法とは思えません。
 それでは、外部仕様と内部仕様の「言葉」をどう繋げばいいのか。
 これはまた別の話になりますので、別のエントリーで。