1月11日に浅海智晴さん主催のSimple Modeling勉強会 に参加させていただきました。
■マインドマップモデリングとは
自然言語から、モデル(クラス)を抽出するための方法論としては、自然言語のシナリオから用語を切り出し、そこからクラスに落とし込むという流れで説明されることがほとんどです。しかし、それらの説明において、自然言語からクラスに落とし込むまでの手法・思考過程・考え方に関しては、説明がされていることはほとんどありません。そのため、実際には個人のスキルや考え方に大きく依存することになり、モデリング結果にばらつきがでてしまいます。
マインドマップモデリングはこのような問題を解決するために浅海智晴さんによって考案されたモデリング手法です。マインドマップモデリングは、その名前のとおりマインドマップを使ってモデリングします。
マインドマップモデリングで作成されるモデルは、自然言語からオブジェクトやモデルを導き出すまでの橋渡し役となるモデル(準備モデル)です。
■勉強会の形式・内容
配布された新聞記事をもとに、各自でモデリングし(マインドマップモデリング)、それぞれ成果を発表するという形でした。
マインドマップモデリングの基本的な部分の流れは以下のように進めます。
○ステップ1
新聞記事から用語を切り出す→「メモ」というノード配下に分類する
○ステップ2
メモ配下の用語を「登場人物」「道具」「出来事」という各ノードに分類していく
※登場人物=アクター、道具=リソースエンティティ、出来事=イベントエンティティにマッピングする
○ステップ3
「登場人物」「道具」「出来事」をそれぞれモデリングする
配布された新聞記事の内容は「切り干し大根」でした。
勉強会の冒頭に浅海先生から「システムとは関係のない内容をシステムとしてモデリングするということに意味がある」との話があり、実際やってみたところ、最初はかなり戸惑い、頭をめいっぱい使いました(汗)。また、各自の発表の際、皆さん想像力を駆使してモデリングした成果物をみれたのも楽しかったです。
■マインドマップモデリングのメリット(私が感じたこと)
クラスモデル(エンティティ)を「リソース」「イベント」というステレオタイプに分類することで、クラスのそれぞれの責務が明確になります。クラスの責務が明確になると適切なクラス設計ができるようになり、バランスの良いシステム設計へとつながっていきます。そのように意義があることにも関わらず、リソースや、イベントの分類は、実際のシステム開発ではおざなりにしがちなことですが、マインドマップモデリングはその分類手法が組み込まれているので、それに従っていれば、自然に分類ができているということもメリットだと思いました。
Simple Modelingは、自然言語レベルの要求から、システムを実装に落とし込むまでの考え方、手法が名前の通り非常にシンプルに体系化されているので、エンジニアが身につければ、プロジェクト/システム全体を体系立てて考え、バランスが良くセンスのある開発ができるようになると思います。私も引き続きSimple Modelingを勉強していきたいとおもいます。
今年の目標101エントリーまであと97