オルタナティブ・ブログ > An Agile Way >

アジャイルに行こう!

UML と Mind Map の融合はなぜ必要か?

»

UML と Mind Map の融合はなぜ必要か?

ずっと温めているアイディアだが、一回整理してみよう。

UMLは、ソフトウェア開発における分析・設計記述の標準ビジュアル言語だ。しかし、UMLを利用してユーザと会話ができるだろうか?ぼくは、実際に、ユースケース図やクラス図をユーザに提示したことともあるが、絵の意味を理解するのに時間がかかるし、彼らの本業はソフトウェア開発ではないから、それを勉強してもらう、というのはおかしな話だ。また、仮にUMLを理解していても、ユーザとあいまいな要求を探索している場面、アイディアを出し合って仕様をこねている場面、対話をしながら合意を作っている場面では、UMLは使えない。矢印や四角の意味(ここは点線?ここは、白抜きの矢印?)に迷ったりしていたのでは、思考や会話のスピードについていくことはできない(Kent Beck 提唱の、GML ならまだしも)。

つまり、UMLはユーザとの対話の場面に向く図解方法ではない。それは、文法とセマンティクスが比較的きっちりしているために、やわらかな状態の概念を扱うのが苦手だからだ。

ぼくは、この曖昧な要求探索の場面に、もっと人間の思考にやさしく、速く描ける図法はないか、と探していた。マインドマップは、キーワードを線でつないでいくだけ。ツールを使えば、ショートカットキーを使って素早くその場で議事録のように描いていくことができる。マインドマップはすべての線が「連想」という広1つの意味しかない。曖昧であることが、逆にスピードと発想の柔軟性を活かすことができる。

Umlmm そこで、考えたソリューションは、「要求を把握する」という活動を二つに分けて考えること。要求がまだ曖昧で、ユーザー自身もよく分かっていない状況ではマインドマップのような「柔らかい」記法を使って自由に記述するのがよい。インタビュー形式でもブレインストーミング形式でも、あるいは一人でアイディア出しをする場面でも、記法に縛られずにすばやく考えを書いていく。この段階を「要求収集」(要求のギャザリング)と呼ぶ。ユーザーが使っている単語や頭の中のアイディアを集めていく段階だ。そして、それを整理し、概念を定義したり概念間の関係を意味づけしたりする場面では、UMLのように文法とセマンティクスがしっかりした言語を使うのがよい。この段階を、「要求分析」(要求のモデリング)と呼ぶ。ここでは、集められた語彙を、より正確に定義し、概念間の関係を規定していくことで、よりはっきりと要求を分析することができるのだ。

  1. 要求収集(要求のギャザリング)=柔らかなものを集める、雲をつかむ。(ドメインボキャブラリ、ドメイン要求の収集)-Mind Map の得意領域
  2. 要求構築(要求のモデリング)=集めたものを定義、意味づけし、関連をはっきりさせる。(ドメインボキャブラリ、ドメイン要求の構築)-UMLの得意領域

この2つの「思考モード」には、それぞれ適した記法がある。それが、マインドマップとUMLだ、というわけだ。この考えは、自分の中では、一つの結論を与えることができた。このあたり、英語の論文にもしていて、近々発表できる機会を得た。

さて、今考えているのは、マインドマップを使って集めた概念集を、そのままUMLに持っていく、という考えにもう一工夫いるのではないか、ということ。

おそらく、ドメインボキャブラリとして、「用語辞書」のような第3の整理記法が必要で、それがマインドマップとUMLの間に「概念プール」として働くのではないか?

と考えている。このあたりの知見、参考文献を知っている方は、ぜひコメントやトラバください。

※ちなみに、Mind Map と UML を融合して双方向変換できるエディタは、現在 JUDE だけです、ぜひお試しを(^_^)。
http://jude.change-vision.com/jude-web/

Comment(6)

コメント

松岡正剛「知の編集術」

あと、最近感動したものでは、矢野りん「デザインする技術」

M田中

以前名刺交換させていただいて、ときどき見てます。

以下のBLOGで同じような事が書いてありますよ。
http://uml.livedoor.biz/archives/50206133.html

どこかで聞いたことがある話だと思いまして。

平鍋

>ゆきちさん、

早速、Amazonで注文しました!

>M田中さん、

はい、まさにそれです。上記URLの中でも後半参照されているのが、私たちの開発しているJUDEです。

おぉ!興味深いテーマですね。
ちょっと思いついたことを書かせていただきますね。

私はマインドマップを用いてある程度の長さと論理構造を持った記事を書く場合、
手描きのマインドマップでアイディア出しを行いました。
最初から論理的な思考・構造を目指すのではなく、まず発想を広げることを
意識してマインドマップを使用します。

次に、これをまとめるためにJUDEなどのソフトで書き直したりします。
これは、移動が容易なため、階層構造などのオーダリングが容易なためです。
# ただ、この時点であまりに整理されたマインドマップにしてしまうと
# 面白みがなくなってしまうのでそのあたりは注意しています。

ここから、何らかの文章の型や構造に当てはめてみました。
# 即興のスピーチや簡単なプレゼンなどであれば
# ココまでやらなくてもマインドマップ一枚あれがスグできますけど。。
# この辺はまだ、私としても試行錯誤中です。

この手順から考えてみたのですが、
Mind Map→UMLにするための中間体として
UMLに変換するために必要な情報をテンプレート化し階層化し、
そこに一度集約してみるというのはいかがでしょうか?
たとえば、アウトラインプロセッサ(MacOSで使われていたような)
のような形式など。

この段階を経ることにより、MECEの観点からのチェックなどが行え
UMLによる「意味の収束」につなげやすくなるのではないかと考えてみました。

t-nakanishi

単純に「概念辞書」を思い出しました。
大学時代の研究室で、話に出てました。
自然言語処理業界の話です。

http://www.kanto.co.jp/times/t_pdf/CT_195_5.pdf#search=%22%E6%A6%82%E5%BF%B5%E8%BE%9E%E6%9B%B8%22
の3.2の2)に、ざっくりとした説明があります。


ちなみに、EDRという電子化辞書があり、その中に概念辞書があります。
http://www.gip.jipdec.jp/japanese/project-j/project20-j.html

直接役立つとは思えませんが、考え方のヒントくらいはあるかもしれません。

コメントを投稿する