UML と Mind Map の融合はなぜ必要か?
UML と Mind Map の融合はなぜ必要か?
ずっと温めているアイディアだが、一回整理してみよう。
UMLは、ソフトウェア開発における分析・設計記述の標準ビジュアル言語だ。しかし、UMLを利用してユーザと会話ができるだろうか?ぼくは、実際に、ユースケース図やクラス図をユーザに提示したことともあるが、絵の意味を理解するのに時間がかかるし、彼らの本業はソフトウェア開発ではないから、それを勉強してもらう、というのはおかしな話だ。また、仮にUMLを理解していても、ユーザとあいまいな要求を探索している場面、アイディアを出し合って仕様をこねている場面、対話をしながら合意を作っている場面では、UMLは使えない。矢印や四角の意味(ここは点線?ここは、白抜きの矢印?)に迷ったりしていたのでは、思考や会話のスピードについていくことはできない(Kent Beck 提唱の、GML ならまだしも)。
つまり、UMLはユーザとの対話の場面に向く図解方法ではない。それは、文法とセマンティクスが比較的きっちりしているために、やわらかな状態の概念を扱うのが苦手だからだ。
ぼくは、この曖昧な要求探索の場面に、もっと人間の思考にやさしく、速く描ける図法はないか、と探していた。マインドマップは、キーワードを線でつないでいくだけ。ツールを使えば、ショートカットキーを使って素早くその場で議事録のように描いていくことができる。マインドマップはすべての線が「連想」という広1つの意味しかない。曖昧であることが、逆にスピードと発想の柔軟性を活かすことができる。
そこで、考えたソリューションは、「要求を把握する」という活動を二つに分けて考えること。要求がまだ曖昧で、ユーザー自身もよく分かっていない状況ではマインドマップのような「柔らかい」記法を使って自由に記述するのがよい。インタビュー形式でもブレインストーミング形式でも、あるいは一人でアイディア出しをする場面でも、記法に縛られずにすばやく考えを書いていく。この段階を「要求収集」(要求のギャザリング)と呼ぶ。ユーザーが使っている単語や頭の中のアイディアを集めていく段階だ。そして、それを整理し、概念を定義したり概念間の関係を意味づけしたりする場面では、UMLのように文法とセマンティクスがしっかりした言語を使うのがよい。この段階を、「要求分析」(要求のモデリング)と呼ぶ。ここでは、集められた語彙を、より正確に定義し、概念間の関係を規定していくことで、よりはっきりと要求を分析することができるのだ。
- 要求収集(要求のギャザリング)=柔らかなものを集める、雲をつかむ。(ドメインボキャブラリ、ドメイン要求の収集)-Mind Map の得意領域
- 要求構築(要求のモデリング)=集めたものを定義、意味づけし、関連をはっきりさせる。(ドメインボキャブラリ、ドメイン要求の構築)-UMLの得意領域
この2つの「思考モード」には、それぞれ適した記法がある。それが、マインドマップとUMLだ、というわけだ。この考えは、自分の中では、一つの結論を与えることができた。このあたり、英語の論文にもしていて、近々発表できる機会を得た。
さて、今考えているのは、マインドマップを使って集めた概念集を、そのままUMLに持っていく、という考えにもう一工夫いるのではないか、ということ。
おそらく、ドメインボキャブラリとして、「用語辞書」のような第3の整理記法が必要で、それがマインドマップとUMLの間に「概念プール」として働くのではないか?
と考えている。このあたりの知見、参考文献を知っている方は、ぜひコメントやトラバください。
※ちなみに、Mind Map と UML を融合して双方向変換できるエディタは、現在 JUDE だけです、ぜひお試しを(^_^)。
http://jude.change-vision.com/jude-web/