
帰納的な推論と発見的な推論(アブダクション)は、
私たちがソフトウェア開発の現場/実務で(知らず知らずにでも)駆使している思考の形です(それどころか日々の暮らしでも使っています)。
それほど“自然な”思考の形ですが、どんな考え方で、どんなところに注意すると質の高い思考ができるのか、基本知識を押さえておくと実務のレベルアップにつながります。
<実務三年目からの発見力と仮説力 記事一覧>※クリックで開きます
前編では「帰納的推論で気をつけたい落とし穴」についてお伝えしました。
後編となる今回は「帰納的推論の仲間」(第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.)、その見込みは低くなるでしょう。
なお、今回紹介した「帰納的推論の性質に関わる落とし穴」はそのまま類推でも気をつける必要があります。
既知の因果関係を用いた推論
既知の因果関係の知識を手がかりに、起こった事象から原因を(または、先行事象から起こり得る結果を)推論する、というのも一種の類推と言えるでしょう。
(たとえば、電子レンジの原理を知っていれば、実際にレンジ内で“爆発”が起こった時に何が原因か推測が働きやすいでしょうし、ある種の食品を電子レンジで温める際に注意深くなるでしょう)

「ハードウェアやソフトウェアで起こりがちなトラブルの原因と事象の知識」は、問題発生時の原因の切り分けにも通じますし、エラー推測といったテスト技法とも関わります。仕入れておくに越したことはありません。
- ネットワーク機器などのハードウェアで起こるトラブルと、ソフトウェアの実行に及ぼす影響
- 使用しているOS, ミドルウェア, サーバー等の典型的なトラブルと、それが引き起こす事象
- プログラミング言語や処理系に関する知識
- etc.
なお、既知の因果関係の知識は推論を支えてくれはしますが、状況証拠からの推測である点、やはり蓋然的な推論になります。
事象の原因を説明する仮説
「因果関係の推定に関わる落とし穴」の「早急な特定は禁物」で触れているように、因果関係の推定は簡単にいかない場合も多々あります。
原因らしきものを挙げるにとどまらず、「それが原因だとして、どんな過程でこの結果に至ったのか」を説明する仮説(説明仮説)が考えられるとなおよいです。
(類推(類比推論)や既知の因果関係を用いた推論は仮説を考える助けになります)
原因から結果までの過程に矛盾がない、他の事象との整合もとれているような“よい”説明仮説は、原因の推定に対する確信を与えてくれますし、原因の特定作業も助けてくれます。
そこで、次回からはよい仮説を考えるためのもうひとつの推論の形であるアブダクションを紹介していきます。
参考文献
- 近藤洋逸, 好並英司 『論理学入門』 岩波書店 1979
- 鈴木美佐子 『論理的思考の技法Ⅱ』 法学書院 2008
- 藤野登 『論理学 伝統的形式論理学』 内田老鶴圃 1968
- J.S.ミル(著), 大関将一(訳) 『論理学体系 : 論証と帰納 5』 春秋社 1959
- T・エドワード・デイマー(著), 小西卓三(監訳), 今村真由子(訳) 『誤謬論入門 優れた議論の実践ガイド』 九夏社 2023
図版に使用した画像の出典
- Loose Drawing
- 人物画をお借りしています。
- 品質探偵コニャン:Produced by Sqripts. No Unauthorized Reproduction.

