Graphviz:ロジックツリーを作ってみよう
ロジックツリーとは
ロジックツリー(logic tree)
ロジックツリーは、事象をMECE(漏れ無く、ダブりなく)で分解し、構造化、可視化するのに有効なツールである。
ロジックツリーは、試行錯誤しながら作成することになる。
だいたい、ロジックとして3段階レベルくらいのものを作ってみる。
原因究明のロジックツリー(WHYツリー)
WHYツリー
結果から始めて、その原因をずっと展開していくロジックツリーである
例えば、プロジェクトで何かトラブルが発生したときにそのトラブルの原因を究明するために使われるものである
問題→原因→原因→原因→・・・根本原因
1. 問題を決める
2. 問題をいくつかの要素(原因)に切り分ける
3. さらに要素(原因)をいくつかの要素に細かく切り分ける。
原因究明のロジックツリーのテンプレート
code:d3.js
const graph = ` graph g {
// ノード左から右に向かって配置する
graph rankdir = LR ,ratio=auto margin=0.1;
// ノード(ボックス)の設定
node fontsize = 12, fixedsize = true, width=5, height=0.3, shape = box;
// エッジの設定
edge fontsize = 10;
// 問題を設定する。
rootlabel="問題", peripheries = 2;
{rank=same; class0 root;}
//第1層
cause1label="原因1"
cause2label="原因2"
cause3label="原因3"
root -- { cause1 cause2 cause3 }
{rank=same; class1 cause1 cause2 cause3;}
//第2層
cause1_1label="原因1-1"
cause1_2label="原因1-2"
cause1_3label="原因1-3"
cause1 -- { cause1_1 cause1_2 cause1_3 }
cause2_1label="原因2-1"
cause2_2label="原因2-2"
cause2_3label="原因2-3"
cause2 -- { cause2_1 cause2_2 cause2_3 }
cause3_1label="原因3-1"
cause3_2label="原因3-2"
cause3_3label="原因3-3"
cause3 -- { cause3_1 cause3_2 cause3_3 }
{rank=same;
class2
cause1_1
cause1_2
cause1_3
cause2_1
cause2_2
cause2_3
cause3_1
cause3_2
cause3_3;
}
// なぜか後で定義したほうが上に表示される
class0label="解決したい問題", style = filled, fillcolor = LightSlateGray
class1label="問題の原因と考えられるもの", style = filled, fillcolor = LightSlateGray
class2label="さらにその問題の原因と考えられるもの", style = filled, fillcolor = LightSlateGray
class0 -- class1 style=invis
class1 -- class2 style=invis
}
`
レンダリングしてみます→
あ、もしかして、アウトライン編集で十分じゃね? → Scrapbox:アウトライン編集
#Graphviz
#logic-tree
logic-tree.icon
code:d3.css
/* */
code:d3.js
d3.select("#graph").graphviz()
.fade(false)
.renderDot(graph);