
帰納的な推論と発見的な推論(アブダクション)は、
私たちがソフトウェア開発の現場/実務で(知らず知らずにでも)駆使している思考の形です(それどころか日々の暮らしでも使っています)。
それほど“自然な”思考の形ですが、どんな考え方で、どんなところに注意すると質の高い思考ができるのか、基本知識を押さえておくと実務のレベルアップにつながります。
<実務三年目からの発見力と仮説力 記事一覧>※クリックで開きます
前編では「帰納的推論で気をつけたい落とし穴」についてお伝えしました。
後編となる今回は「帰納的推論の仲間」(第2回の続き)です。
帰納の仲間たち
帰納的な推論には
第2回で紹介したものの他にも仲間がいます。
ここではふたつ、類推(類比的推論)と既知の因果関係を用いた推論を紹介します。
(実は、どちらもこれまでの記事の中でさりげなく活躍しています……)
類推(類比的推論)
「あるものごとを他のものごとになぞらえて、共通項を見出す」「あるものごとと他のものごととの類似点を見つけ、一般化する」
といった思考の形は類推、類比的推論と呼ばれます。
有限の事例の列挙から共通項を見出し、対象全体に一般化する点で、これも帰納的な推論の仲間と言えます。
類推の形には2種類あります。
- 事例群αに見出された共通点を、別の事例群βの中に見出す(推論する)形
(本記事内独自の呼称として、“タイプA”と呼びます) - 事例群αとβとの類似性を基に、新たな共通点を見出す(推論する)形
(本記事内独自の呼称として、“タイプB”と呼びます)

“タイプA”では、
①ある事例群αにおける共通項(属性/特徴/etc.)から、
②同じ共通項を持つ別の事例群βでも同じことが言えるだろう、
と推論しています。
この形はこれまでも本連載の中でひそかに出てきています。
「ソフトウェアZがプリインストールされているスマートフォンで故障Fが起こる」では、「故障Fが起こるスマートフォンの特徴」「起こらないスマートフォンの特徴」を仕分ける際に、「同じ特徴を持っているなら、同じ故障が起こるのでは」という見方をしています。
“タイプB”はちょっと込み入っていますが、
①ふたつの事例群α, βに共通項を見出し、
②事例群αに新たに発見された属性/特徴に対して、
③似ている事例群βにも同じ属性/特徴が見られるだろう(共通項が増えるだろう)、
と推論しています。

類推をする上での注意点は、
- ふたつの事例群間の共通項が多いほど、推論の蓋然性は高くなります。
- 既知の共通項と、新たに加わる共通項との関連が密接であるほど、蓋然性は高くなります。
図4-4の“タイプA”の例で、ソフトウェアYとZの共通項は、単に「同じようなサービスを提供する」だけよりは、「使用するリソース、必要とする権限設定、制御構造など」の類似点が多い方が、「ソフトウェアYでも同じ故障Fが起こる」見込みが高いでしょう。
(といっても、「同じようなサービスを提供する」のような目につく点に着目するのは悪手、ということではありません。調査初期の、手がかりが何もないような状況では、見えやすい類似点から手をつけることはよくあります)
“タイプB”の例では、ソフトウェアZとYの共通項と故障Fとの関連が強そうで、故障Gもそれら共通項との関連が強そうなら、「Yでも故障Gが起こる」見込みは高いでしょう。
逆に故障GがZに固有の故障でありそうなら(Z独自の処理や、Zに特有のデータに関わる、etc.)、その見込みは低くなるでしょう。
なお、今回紹介した「帰納的推論の性質に関わる落とし穴」はそのまま類推でも気をつける必要があります。
既知の因果関係を用いた推論
既知の因果関係の知識を手がかりに、起こった事象から原因を(または、先行事象から起こり得る結果を)推論する、というのも一種の類推と言えるでしょう。
続きを読むにはログインが必要です。
ご利用は無料ですので、ぜひご登録ください。