2012年10月5日金曜日

MindmapModelingと集合知(4) - 関係

ここまでの議論では日本語、モデル、プログラムの共通部分をユビキタス言語で記述し、このユビキタス言語をハブにして、日本語、モデル、プログラムの独自部分をンクしていくというアプローチを紹介しました。

その実現手法の一つがマインドマップモデリングです。マインドマップモデリングに則ったマインドマップが日本語とモデルをつなぐユビキタス言語というわけです。

マインドマップモデリングの手法は「マインドマップではじめるモデリング講座」という書籍にまとめましたが、横浜モデリング勉強会で本書の購入を前提にしたくなかったのと、リファレンス的な資料も必要だったので、簡単なチュートリアルを作りました。

それが「MindmapModelingチュートリアル」です。



マインドマップモデリングの概要はこのチュートリアルをみていただければ簡単に把握することができると思います。

名詞の構造を考える

日本語をユビキタス言語化する際にまず考えないといけないのは文書中の名詞をオブジェクトのクラス化することです。

チュートリアルでは以下の節がこの作業に相当します。



このようにして抽出した名詞から構成される構造を記述するのがオブジェクト指向モデルのハイライトです。名詞間の関係をオブジェクト指向モデルの文脈で抽出するという点が重要になります。

チュートリアルでは以下の節がこの作業に相当します。



オブジェクト指向モデルの静的構造モデルは基本的にクラスとクラス間の関係(relationship)で構成されます。関係(relationship)の一種に関連(association)があり、関連のインスタンスがリンク(link)で、クラスのインスタンスであるオブジェクトは関連のインスタンスであるリンクで接続されます。関連はクラスの結合の強度によって集約(aggregation)、合成(composition)となっていきます。

オブジェクト指向モデルでは、関係(relationship)が基本モデル要素ですが、各種の関係の中でis-a(is-kind-of)関係、has-a(is-composed-of)関係を特別扱いしている点がポイントで、この2つの関係を軸に構造を記述していきます。

is-a関係は、UMLでは汎化(generalization)になります。通称的には継承(inheritance)でもよいでしょう。

has-a関係は、UMLでは集約(aggregation)、合成(composition)になります。

データベースに格納するデータ構造としての静的構造を構築するだけであれば、UMLが定めるオブジェクト指向モデルの基本モデル要素のみでも十分にモデルを記述することができます。

0 件のコメント:

コメントを投稿