KJ法を支援するソフトウェアについての研究

ネットワークシステム研究室
指導教員:坂本 直志 准教授
08ec130:皆川 優也

目次

1.はじめに

論文やレポートを書く時には自分の持っているデータを綺麗にまとめて文章化する必要がある。大学生は特にレポ―トを書く機会が多い。それにもかかわらず、論理的な文章を書き慣れておらずデータをどうまとめていいか分からず苦しんでいる学生は少なくはない。 本研究では、論文やレポートなどの文章化を支援するソフトウェアを開発する事を研究対象とした。 そこで、KJ法の工程をソフトウェアで実現し、どのような機能を付ければ効率よく支援できるのかの研究を行った。

KJ法とは1967年に川喜田二郎氏がデータをまとめるために考案した方法である。 この方法は、川喜田二郎氏が文化人類学を研究するときにフィールドワークで集めた膨大な情報をどのようにまとめるかを試行錯誤し、カードを使ってまとめる方法として確立した。 KJ法は、以下の流れでデータをまとめていく。

KJ法はいわば構造作りを体系化した物だが、アイデアを練る時や文章を書く時にはこの構造を作る部分がかなり重要な所となる。特に文章を書く時というのは、文章全体のアウトラインが重要である。そのため、データをカードに記入しそれを空間内で自由に動かす事によってどのような構成にするかを視覚的に捉える事ができるKJ法が効果的に働くのである。さらに、一つの章の文章の構造もKJ法でなら、カード同士の関係を理解できたり、また新しく関係をひらめく事ができるのでまとまった物にできる。

ソフトウェアで行う事の利点としては、KJ法の流れを行うにはどうしても紙切れが複数枚必要になり用意するのが大変であるが、ソフトウェアではカードは容易に生成できる。 また、データを紙切れに書き写す作業は時間を取られてしまうが、データの記入では入力も楽になる。さらに一番の利点としては、図を残しておける事である。文章にした時に、少し違和感を感じて図を崩して新しく並べ替えた図にした時に、前の図に戻したいと思っても忘れてしまったり、また並べ直さなくてはならない。この時に図を残しておく事ですぐに見る事ができ、かつ最初に作成した配置と並べ直した配置との比較もできるのである。

本論文では2章では準備としてKJ法とアウトラインプロセッサ、アイデアプロセッサ及び統一モデリング言語について説明する。 3章では本研究と関連性の高いアイデアプロセッサのソフトウェアをいくつか紹介する。4章では本研究で作成したプログラムを説明する。 5章では本研究で作成したプログラムと関連ソフトウェアとの比較をし、評価を行う。6章では本研究のまとめを行う。

2.準備

2.1.KJ法のやり方

KJ法はデータや情報をカード化、グループ化、図式化、文章化の4つの段階を進めてまとめていく。

①カード化
カード化はまとめたいデータをカードにしていく。ここでいうデータというのは、アイデアや文章にしたい文等の事である。カード化のやり方としては、1枚のカードにあまりたくさんの乱雑したデータを記入しないで、最低限の意味を持つように区切って記入することが望ましい(図1)。
図1

図1.カード化の例

②グループ化
カード化が終わったらできあがったカードの束を広いところにばらばらに広げる。そして一つ一つのカードをよく吟味し、意味が似ているカード同士や「関係がありそう」なカード同士を束にする。この「関係がありそう」というのはもちろんニュアンスなどの曖昧な裏付けでいい。それで後で並べてみると意外としっくりくる、という場合もあるのだ。  カード同士を集め束にしたら、今度はそのグループに表札をつける。表札というのは、そのグループはどのような集まりかを表すものである。表札というくらいだからなるべく字数は簡潔にすべきであるが、複数行になってしまっても構わない(図2)。
図2

図2.グループ化の例

③A型図式化
グループ化の後は、KJ法としてよく知られている部分である図式化を行う。この図式化というのはカードやグループを空間配置していくことである。配置をする前に、一回グループ編成したものやカードを広げて内容を良く読む。これはグループであれば表札でも良いが、カードやグループの内容を読めば、互いの関係が見えてくる。そして、空間配置をする事で、カードやグループの間の関係を発見するのである。 配置に関しては、自分で文章にした時に意味が通じる配置になるまで続けていく。もし、自分では納得ができる配置をしたとしても、この配置で良いか心配である時には簡単に確認することができる。その配置の意味するところを口ずさんでみるのである。それですらすらと説明できるのであれば心配なく、逆に詰まってしまったら配置を変える事を勧める。 このように配置をし終えたら、今度はカードやグループ間の関係を記す。これもかなり重要な作業で、この関係を記す事で全体構造がかなり見易くなり次の陳述化をする時に大いに役に立つ。 また関係を記すときには矢印や線を用いる。種類は決まってないので、自分で作ると良い。その記号が示す関係が簡単に言えれば問題はない(図3)。
図3

図3.A型図式化の例

④B型陳述化
A型図式が完成したら、最後に文章化を行う。A型図式から文章化する時には、基本的に図解の一番左上から攻めると文章にし易い。文章化し始めた所からA型図式の関係線を辿って図解を文章化していく。この時、A型図式の関係を表している矢印や線は前後関係が成り立つように接続詞として文章化する(図4)。 また、文章化していく内に、図解では納得できていた関係も文章化してみると詰まってしまうという事がある。しかし、この時こそ新しい発想が飛び出す時なのである。このように、ここの図解は誤りで、改めてこのように図解をすべきであるという発見をするのである。文章化することは、このように図解を改めて確認しさらに誤りを見破って修正の道を示す能力をもっている。図解では各カードごとの関係があることは分かっても、どのように繋がっているかは文章化してみないとわからないのである。
図4

図4.文章化の例

2.2.アウトラインプロセッサ

アウトラインプロセッサとは文書のアウトラインの構造を定めてから細かい部分を編集するために用いられる文書作成ソフトウェアのことである。長文を書かなければならない場合、大まかな文書構成を考えた後そこに肉付けをする形で文章を埋めていくという手法を取ることが多い。その時、アウトラインプロセッサを使用すれば全体の構成をツリーとして表示し、編集位置を確認しながら文章を記述することができる。また、階層構造を移動させることができたりするので小説家などに好まれて使われていることが多いソフトである(図5)。 使われている規格としては、OPMLというものがある。OPMLは、Outline Processor Markup Language(アウトライン・プロセッサ・マークアップ言語)の事で、XML1.0をベースとした文書のアウトライン構造の情報を異なるOS・環境間で交換可能にするための規格である。本来の目的としては、XMLにアウトライン構造を格納し、その情報を各環境間で交換できるようにするための規格として策定されている。今では複数のウェブサイトの情報をリストとして表現もできることを生かしてもっぱらRSSリーダーの規格として使われている。

図5

図5.Nami2000 ver.1.92.9でのアウトラインプロセッサ使用例

2.3.アイデアプロセッサ

アイデアプロセッサとは、アウトラインプロセッサと類似している物で、アウトラインプロセッサと違うところは、文章の記述の前の発想をまとめておくソフトウェアだというところである。アイデアプロセッサは発想の支援を重視したもので、思いついた事をメモ書きした物などをグラフィカルに構造化し、自由に構成を組み立てたりすることができる(図6)。 アイデアプロセッサはアウトラインプロセッサと違うところはあるものの、アイデアプロセッサといいながらアウトラインプロセッサのようなソフトウェアがあったり、両方の機能も備わっているものもある。

図6

図6.アイデアプロセッサの例

2.4.統一モデリング言語

UML(統一モデリング言語)はソフトウェア工学におけるオブジェクトモデリングのために標準化した仕様記述言語であり、抽象化したシステムのモデルをグラフィカルな記述で生成する汎用モデリング言語で、ソフトウェア開発においてソフトウェアを利用する汎用モデリングとして最も普及している。UMLはグラディ・ブーチ、イヴァー・ヤコブソン、ジェームズ・ランボーの3人が策定し、現在は OMG (Object Management Group) が管理している。公式な定義は、Object Management Group (OMG) が Meta-Object Facility (MOF) のメタモデルを使って行っている。 UML はソフトウェアのモデリングだけに利用する訳ではない。ビジネスプロセスのモデリングやシステム工学的モデリングにも使われ、組織の構造図を表現するのにも使うことができる。UML2.0以降では13種類の図を必要に応じて書き分ける。よく使われる図としては、状態遷移図、シーケンス図がある。特定の言語での開発が決まった時点では、クラス図やユースケース図を使う場合がある。 UML図は、システムの静的な構造を示す構造図と、システムの振る舞いを示す振る舞い図に分類される。振る舞い図の中で、オブジェクト間のメッセージのやり取りに着目したものを特に相互作用図と呼ぶ。 13種類の図としてUMLで作成できる図は以下の図である。

構造図
構造図では、システムの静的な構造をモデルで表現する。
クラス図
システムを構成するクラス(概念)とそれらの間に存在する関連の構造を表現する。ユーザの視点から、システムを構成する物や概念を表す(図7)。
図7

図7.クラス図の例

複合構造図
コンポーネント図
物理的な構成要素 (ファイル、ヘッダ、ライブラリ、モジュール、実行可能ファイルやパッケージなど) からシステムの構造を表現する。
配置図
ハードウェアとアプリケーションとの関係を図示したもの。
オブジェクト図
クラスを実体化して生成されたオブジェクト同士の関係を表現する。
パッケージ図
パッケージ同士の依存関係を描画することで論理的なグルーピングをするための図で、クラス図の一部である。パッケージは、慣例的にはディレクトリ構造のように表すことができる。パッケージ図では、システムを論理的な階層構造に分解するのに役立つ(図8)。
図8

図8.パッケージ図の例

振る舞い図
振る舞い図では、システムの振る舞いをモデルで表現する。
アクティビティ図
システムなどのフローを記述する表記法、フローチャートの一種。UMLでは表記するフローは特定されておらず、ユーザ側に近い業務のフローや、実装に近い関数のフローを示すことができる。
ユースケース図
システムに要求される機能を、ユーザの視点から示したもの。ユースケース図を有効に活用することにより、システムの全体像を開発者とユーザが一緒に評価しやすくなる。これにより完成後のシステムがユーザの要望に合わないという問題を軽減できる(図9)。
図9

図9.ユースケース図の例

状態遷移図
1つのオブジェクトの状態(ステート)に着目し、その変化を表現したもの。
相互作用図
相互作用図は、振る舞い図の一種であり、オブジェクトに間のデータ(メッセージ)の受け渡しをモデル化する。
シーケンス図
オブジェクト間のメッセージの流れを時系列に表す。図の中に時間の流れが存在するため、イベントの発生順序やオブジェクト間の生存時間を記述することができる。
コミュニケーション図
オブジェクト間のメッセージの流れを時系列に表す。図の中に時間の流れが存在するため、イベントの発生順序やオブジェクト間の生存時間を記述することができる。
相互作用概念図
タイミング図

3.関連のソフトウェア

この章では現在存在するKJ法を用いて発想を促すソフトウェアや文章を構成するのを支援するソフトウェアについて説明する。 アイデアプロセッサがKJ法のA型図式に非常に近いので、どのようなアイデアプロセッサがあるかに注目する。また、UMLの構造図を用いてもKJ法のA型図式と似た図が描けるので、UML描画ソフトウェアも使ってアイデアプロセッサと同様に検討する。

主なアイデアプロセッサ
IdeaCard(ver.3.52)
IdeaCardはKJ法的なアイデア発想支援ソフトである。カードに思いついた事柄を自由に記入し、そのカードをグループで囲ったりマウスで移動したりする事でアイデアを視覚的に整理することができる。IdeaCardには以下の機能がある。
  • テキスト入力ボタンを押して入力欄にデータを打ち込む事でカード状のテキストボックスを生成できる(図10)。
  • 図10

    図10.テキストボックス

  • 連続テキスト入力機能があり、対応するボタンを押して対応する場所にデータを入力する事で複数のテキストボックスを作成できる(図11, 図12)。
  • 図11

    図11.連続テキスト入力1

    図12

    図12.連続テキスト入力2

  • 前者は複数行のテキストボックスを作成できるが、後者は1行のテキストボックスしか作成できない。しかし、後者のほうが一度に作成できる数の制限がないので6個以上一気に作りたいときは後者が良い。
  • ドラッグアンドドロップでグループを作成でき、グループ枠内の上側にタイトルを打ち込む場所があり、KJ法の表札の機能として働く(図13)。
  • 図13

    図13.ドラッグアンドドロップでグループ作成

  • 8方向の矢印、左右指さし、感嘆符、情報などの表現上のシンボルを置ける(図14)。
  • 図14

    図14.表現のシンボル

  • 階層表示機能があり、windowsのエクスプローラー的な階層表示ができる(図15)。
  • 図15

    図15.階層表示

  • テキストファイルへの出力機能があり、出力される内容は階層構造である(図16)。
  • 図16

    図16.テキスト出力

  • また、IdeaCardで準備の章のKJ法のA型図式で示した例を作成した図が以下の図である(図17)。
  • 図17

    図17.IdeaCardで作成したA型図式の例

IdeaFragment2(ver.1.55)
IdeaFragment2はKJ法的なグラフィックでアイデアを整理する思考支援ソフトである。思いついた言葉の断片に画面に書き起こし動かしたりしながら思考を支援することができる。GUIの操作でグループや関係線が引くことができ、作成する図もKJ法のA型図式に最も近い。 IdeaFragment2は以下の事が可能になっている。
  • 新規断片からカード型のテキストボックスを生成することができる(図18)。また、テキストボックスを生成する時に、あらかじめ所属するグループを決める事もできる(図19)。
  • 図18

    図18.テキストボックス生成

    図19

    図19.グループ生成

  • 入れたいグループが存在している時には、テキストボックス作成の時点でグループを選べば、作成時にはそのグループに入っている(図20)。また、グループ化ボタンからもドラッグアンドドロップでグループ化できる(図21)。ただ、このソフトはグループ内にグループを内包することができない(図22)。
  • 図20

    図20.テキストボックス生成

    図21

    図21.テキストボックス生成

    図22

    図22.テキストボックス生成

  • グループを選んでテキストを作る時に、そのグループの表札を作ることができる(図23)。
  • 図23

    図23.グループの表札

  • 関係線はペイント感覚で自分で引くことができる(図24)。
  • 図24

    図24.関係線の例

  • テキストファイルへの出力機能があり、内容は階層構造が出力される(図25)。
  • 図25

    図25.テキスト出力の例

  • また、IdeaFragment2で準備の章のKJ法のA型図式で示した例を作成した図が以下の図である(図26)。
  • 図26

    図26.IdeaFragment2で作成したA型図式の例

iEdit(ver.1.98)
iEditはアイデアプロセッサであるが、ツリー構造での編集が主なのでアウトラインエディタに近いソフトウェアである。ツリー構造とネットワーク構造を用いてノードを組み合わせて、ノードをアイデアの構成の一部として考える事でアイデアを練っていくことができる。 iEditは以下の機能がある。
  • ノード追加形式で親ノードに子ノードを追加したり、同じ階層にノードを作ることでデータが入力されたテキストボックスが生成される(図27)。
  • 図27

    図27.ノードの作成

  • テキスト入力欄ではシングルとマルチと分けられており、一行ならシングル、複数行ならマルチとなっている(図28, 図29)。
  • 図28

    図28.通常シングルで作られる

    図29

    図29.マルチを選んでノードを作成

  • 矢印や線でリンクとしてノード間の関係を表せる(図30)。
  • 図30

    図30.リンクなどのネットワーク図

  • リンクはノードに限らず、ディスク上のファイルやWEBのURLなども指定できる。ファイルやWEBのURLを指定した時には、指定したノードのステータスとしてリンクが貼られる(図31)。もちろん、ステータス上のリンクをダブルクリックすることでリンク先に飛ぶことができる。
  • 図31

    図31.ファイルやURLのリンク

  • 自動的にレイアウトし直す機能が付いていて、雑多に図を書いてしまっても見やすくなる(図32)。
  • 図32

    図32.自動レイアウト機能

  • グラフィカルな操作で、表現上でグループでノードをまとめたりすることができる(図33)。
  • 図33

    図33.表現上のグループ化

  • 図をSVGやPKG形式に出力でき、エクスポートでxml、プレーンテキストなどに出力できる。テキスト出力した時にはドットの数で階層を表示する形式で出力される(図34)。
  • 図34

    図34.テキスト出力の例

  • また、iEditで準備の章のKJ法のA型図式で示した例を作成した図が以下の図である(図35)。
  • 図35

    図35.iEditでA型図式の例を作成

Frieve Editor(ver.1.31)
Frieve Editorはアイデアの発想をよりグラフィカルに支援するソフトウェアである。アイデアをカードとして作成し、カード同士の関係をリンクで表現することで、アイデアを整理することができる。特徴としては、動作全体がアニメーションのような感じになっており、カードをマウスで選択するとカードの周りにカーソルが出たり、リンクで結ぶ時にリンクの点線が動いたりする(図36)。
図36

図36.選択時に出るカーソル

Frieve Editorは以下の機能がある。
  • テキスト作成時に複数行の記入ができる(図37)。
  • 図37

    図37.選択時に出るカーソル

  • カード同士をリンクという線で結ぶことができる。この時、ボタンで線の種類を変えたり、矢印をつけるかどうかも選択ができる。また、その線の関係も記すことができる(図38)。
  • 図38

    図38.リンクの作成

  • カードに図を自分で書くことができる。図が描かれたカードはテキストの補足のように扱うと見栄えが良くなる(図39)。
  • 図39

    図39.カードへの図形の書き込み

  • シート全体をアニメーションとしていくつかのパターンで動かすことができる(図40)。
  • 図40

    図40.Random Animation機能

  • 初期設定ではProblem, Solution, Resultの三種類のグループが作成できるが、 名前を変更でき、新しいグループも作成できる(図41)。
  • 図41

    図41.Frieve Editorのグループ表現

  • また、Frieve Editorで準備の章で説明したKJ法のA型図式の例の図を作成した図が以下の図である(図42)。
  • 図42

    図42.Frieve EditorでA型図式の例の図を作成

Idea Tree(ver.7.31)
idea treeはアイデアプロセッサであるが、アウトラインエディタ寄りの作りのソフトウェアで、主にツリーで操作する。ツリーはノードのタイトルと内容文で構成されている。 特徴として、表示には章立て表示とツリー表示の2種類あり、章立て表示はアウトラインプロセッサ寄りの表示である(図43, 図44)。
図43

図43.章立て表示

図44

図44.ツリー表示

IdeaTreeには以下の機能がある。
  • 木構造のようなチャート表示機能があり、表示方法に縦長と横長がある(図45, 図46)。
  • 図45

    図45.縦長チャート表示

    図46

    図46.横長チャート表示

  • テキスト出力ができ、出力形式からどの部分を出力するかなど少し細かく設定できる(図47)。出力されたテキストの内容は、章立てのツリー構造とほとんど同じである(図48)。
  • 図47

    図47.テキスト出力設定

    図48

    図48.テキスト出力例

主なUMLモデリングツール
Microsoft Visio 2010 SP1 MSO
Microsoft Visio 2010 は、UMLモデル図が扱う事ができ、ノートの作成やノート間にリンクを引くことができる等、KJ法のA型図式を作成するためのパーツがUMLモデル図には揃っている。 Microsoft Visioには以下の機能がある。
  • ノートの作成で、データが入力されたテキストボックスが生成できる(図49)。
  • 図49

    図49.ノート作成

  • ノート同士にコネクタと呼ばれる方形的な線をつなげることができる。繋ぐときに直線的に障害物を跨ぐようであれば、迂回するようになっている(図50)。
  • 図50

    図50.リンクでの構造図

  • 大きな長方形を描きそこに複数のノートを入れることで、グループ化のような図になる(図51)。また、長方形に長方形は重ねられないので多重グループの表現ができない。
  • 図51

    図51.疑似グルーピング

  • 出力はXML図面形式やHTML形式、BMP、PNGなどの図面形式や画像形式が主である(図52, 図53)。
  • 図52

    図52.HTML形式出力

    図53

    図53.PNG形式出力

    また、Microsoft Visioで準備の章で説明したKJ法のA型図式の例を作成した図が以下の図である(図54)。
    図54

    図54.Microsoft Visioで作成したA型図式の例

astah community(ver.6.5.1)
astah communityはUMLモデリングツールであり、クラス図やユースケース図などは同時に開けるので並行しながら書けるという利点もある。ノート作成でテキストボックスが作れる他、直線や矢印を引くことができ、グループ化も表現できる。   astah communityは以下の機能がある。
  • ノートにデータを入力することでデータが入力されたテキストボックスが生成される(図55)。
  • 図55

    図55.テキストボックスの作成

  • グループ化の表現は長方形を描くことでできる(図56)。
  • 図56

    図56.グループ表現

  • 図に直接線の書き入れを行う事ができる(図57)。
  • 図57

    図57.線の書き込み

    また、astah communityで準備の章で説明したKJ法のA型図式の例を作成した図が以下の図である(図58)。
    図58

    図58.astah communityで作成したA型図式の例

4.作成したプログラム

4.1.目標

本研究の目標は、KJ法のA型図式を画面で操作しながら作ることができ、かつその図から文章が容易にできるようなソフトウェアを製作することである。

4.2.概要

目標のプログラムを作成するためには、プログラムで以下の機能を実装する必要がある。

4.3.進捗

現段階のプログラムでは以下の機能を実装している。

次に、今回作成したプログラムの機能の使い方を説明する。

カード作成
KJTextクラスが主にカードについてのメソッドを持っており、カードのデータを受け取るメソッドや返すメソッド、大きさを取得するメソッドや返すメソッドなどがある。その中のKJText create(String text,int width, int hight, int x, int y)メソッドを使うことでカードを作成する事ができる。引数のString textには作成したいカードに記入する文字列のデータを入れる。int width, int hightにはそれぞれ設定したいカードの横幅、縦幅の数値を入れる。int x, int yには作成したいカードの位置の座標を入れる。例として、String text=”カードの例”、int width=150、int hight=50、int x=100、int y=150で設定したカードを一枚作成した(図59)。
図59

図59.カード作成例

グループにまとめる
グループに関してはGroupクラスがグループのメソッドを持っており、その中のGroup create(String title)メソッドとvoid addElement(KJElement e)メソッドを使うことでグループの表札とカードやグループをグループに追加することができる。createメソッドの引数であるString titleに表札のデータの文字列を、addElementの引数であるKJElement eにはグループに入れたいカードやグループのオブジェクトを入れる事でグループにまとめる事ができる。例として前述で記したカード作成の例で作成したカードともう一つカードを作成して、グループの設定をString title=”グループの表札”としてグループにまとめた(図60)。
図60

図60.グループ化機能の例

関係線を結ぶ
関係線は、描画のメソッドを持っているSheetクラスのaddArrow (ElementPair elementPair)メソッドを使う。引数であるElementPair型のelementPairには、ElementPairクラスのElementPair(KJElement a, KJElement b)メソッドの引数KJElement aとKJElement bに関係線を引きたい2つのカードやグループのオブジェクトを入れたオブジェクトを引数として入れる事で2つの間に線を引くことができる。 例として、カードとカードの間に線を引いた図を載せる(図61)。
図61

図61.関係線の描写の例

XMLから読み込む
作成したXML読み込みはXMLパーサを使用し、XML文書の上から順にタグを辿っていく。その中で上記に記したTextタグとGroupタグがあるとタグに対応したオブジェクトを生成し、辿り終えたら描写するプログラムとなっている。以下に例として読み込む対象のXML文書とそれを読み込んだ時の描写画面を載せる(図62, 図63)。
また、作成したプログラムで準備の章で説明したKJ法のA型図式の例を再現した図は以下の図である(図64)。
図64

図64.作成したプログラムでのA型図式の例

5.評価

本研究で作成したプログラムと関連ソフトウェアを比較すると以下の違いがある。

今回作成したプログラムは、カードを生成し、グループにまとめてカードやグループ間に線を引いて画面に表示する程度で、今あるアイデアプロセッサの機能と余り変わらない性能となってしまった。しかし、アイデアプロセッサも完全にKJ法的な法則を取ったものはなく、どれも物足りなさを感じた。そこで、今後どのようにプログラムを改良していけばアイデアプロセッサを出し抜けるかをここで提案する。

多重グループ表示
これは現段階ではある程度は出来ているものの、3,4重になった時には形が崩れてしまうため、もっと効率の良い設定をしないといけない。この機能はKJ法では頻繁に行うためあるとよりKJ法的な図が作れるのであるが、アイデアプロセッサではできないまたは、それっぽく線で囲む程度しかできていないのでこれができれば少しは差が出るのではないかと思う。
グループ移動
アイデアプロセッサを使ってみて気になった点であるが今回作成したプログラムもこれは出来ていない。今回作成したプログラムもアイデアプロセッサもグループにまとめてしまったら、それ以降外さないと動かせなかったり中のテキストボックスを動かしてグループが伸縮することを利用した移動しかできなかった。手動でのKJ法の図解で見れば、グループにしたカード達は束になっていて空間配置を決めるときにその束を移動させるだけで良い。今回作成したプログラムでもグループ内のテキストによって囲み線を決めていて、アイデアプロセッサも伸縮だけであったので、空間配置をする時には非常に面倒になってしまう。趣旨としてはKJ法の作業を画面上で行いたいので、この機能を実装すべきであると考えている。
グループの束化
グループ移動の部分でも書いたように、手動でやる時はグループ内のカードは束ねて、表札を主に見ながら空間配置をするので、プログラムにも移動する時には一回束ねてから移動させたり、表示だけは表札だけで中を見たいときにはダブルクリックをするなどの、表示簡略化を行った方がより効率的になるのではないかと考えた。
文章出力
今回プログラムを作成する時に目標にしていたのが文章出力である。アイデアプロセッサを使っている時に、図はなんとなくKJ法っぽくできているが、肝心の文章に出力する機能がないのである。アイデアプロセッサの中にはプレーンテキストやXML出力できるものがあったが、前章で書いた通りただグループの表札、中にあるテキストを縦に並べるだけの出力であったり、XMLはすぐに文章にするには難しい位の内容であったりと、図を作ってからの次のステップを考えていないのである。KJ法は図を作って終わりではなく、文章にしてみて新たな発想を得る方法であるので、この文章出力の機能を主眼に置いていた。しかし、作成したプログラムでも文章出力を助ける機能をつけることができずに終わってしまった。今後やるとしたら、まず文章出力に関する機能を考えることから始めようと考えている。

6.まとめ

本研究ではいくつかのアイデアプロセッサを調べ、KJ法をPCで効率よく扱えるソフトウェア作りのアイデアを探り、そのアイデアを元にプログラムの製作を行った。プログラムは今回あまりうまくいかなかったが、KJ図の製作およびそれを用いたXMLからKJ図にするというプログラムは途中段階ではあるが、可能性を見出すことができた。今後はアイデアプロセッサとの比較の所で記述した機能をつけてさらに新たな発想ができるようなソフトウェアを研究していきたい。

7.参考文献