2011年12月18日日曜日

メタ・モデリングの力



人間は、普段から現実を抽象化してモデルをつくって思考し行動していますよねぇ。

それで、卓越した人の使っているモデルを集めて「モデルのモデル」つまりメタ・モデルをつくると、卓越した人のモノの見方や行動を普通の人が身につけられるようになりますねぇ。たぶん・・・

独り言


今日は、「メタ・モデリングの力」と題して少し書いておきましょう。

モデリングとは?

まず、はじめにモデリングについて書いておきましょう。

私たちは色々な場面でモデリングを行なっています。


簡単なモデリングの例を考えましょう。1個 200円のりんごを3個、1個100円のオレンジを2個買いましたがいくらになるでしょうか?と質問されると

多くの人は、実際に存在するりんごやオレンジを頭の中や、あるいは紙に書いて、200x3+100x2 = 800(円)という具合に計算を行うと思います。

ここでは実際に存在するモノを抽象化し、それを記号化して、その記号を操作することを行なっています。ここでは、実際に存在するモノを抽象化して、記号で表記することをモデリングと定義しましょう。

Wikipediaを参照すると(科学的な)モデリングを「機構の分からない現象を、分かりやすい対象に置き換えて考えること。」と定義されていますので、上の定義はそう大きく外れてはいないでしょう。[1]これ以外に、心理学のほうのモデリングは「観察学習」と書かれています、身体の動きのような暗黙知を真似して身体で再現するということを行なっても、それから、記号に落として形式知化してモデルをつくると科学的なモデリングとほとんど同じ意味になると思います。

別の例を考えましょう、あなたは、ある人に道を聞かれます、そこであなたは紙に実際のランドマークや道順を書いて相手に渡してあげます。ここでも実際に存在するモノを抽象化して、記号で表記しています、つまりモデリングを行なっているというわけです。

モデルはモデリングされる対象のモノより必ず抽象度が高い位置にあります。つまり、Wikipediaの「メタ・モデル」を参照するとモデリングは「メタ」である、つまり「モデリング対象のモノ」に対しての「モデル」であることになります。[2]

では、「どうしてモデルを使うのか?」について考えてみましょう。

もし、上のりんごとオレンジの計算例で数式のモデルが使えないとしたら、合計いくらになるのか?計算することは非常に難しいでしょう。

また、モデルが使えないとしたら、道を教える時に、地図を使うことが出来ないため、いちいちその場所まで案内しなくてはならないでしょう。

要はモデルが使えないとわたしたちは、実物を実物としてしか取り扱うことしかできなくなるため、とてつもなく不便な生活を送ることになると思います。

もちろん先物取引に失敗して現引きで自宅に大豆が3トン届けられたなどということでも経験しなければこういうことを経験することは絶対にないので(笑)、モデルを使わないで生活するということは考えにくいと思います。

メタ・モデルについて考える

世の中には「モデルについてのモデル」つまりモデルより抽象度を一段上げた「メタ・モデル」というものが存在します。[3]

 例えば、地図を考えると、現実世界があり、それを抽象化したモデルとしての地図、そしてその地図を書くための体系である概念や表記法を含むメタ・モデルが提供されているというわけです。


追記:余談ですが、メタ・モデルを学んで、モデルをつくる、例えば、地図の書き方を学んで地図をつくるのは割りと簡単ですが、これとは反対に、モデルをつくって抽象度の高いメタ・モデル、つまり、地図から地図の書き方、をつくるのは結構骨の折れる作業です。


  また別の例として、ITでは、運搬されるモノの流れ、や業務に従事する人などをモデルで表記するために「メタ・モデル」が提供されています。

もちろん、ここで「メタ・モデル」といってしまうと「そんなのあったっけ?」と思われる方も居るかもしれませんが、例えば、業務のモデリングを行う「モデルについてのモデル」であるUMLやデータのモデリングを行う「モデルについてのモデル」であるERモデルなどがこのメタ・モデルにあたります。


http://www.kumikomi.net/archives/2003/03/03uml.php

余談ですが、個人的にはEAEnterprise Architecture)関係の仕事をした時には、これ以外のIT系のメタモデルであればIDEF[4]DFD[5]など、また、非IT系のメタ・モデルとしてTOC思考プロセスやTOC-CCPMを使ったことがあります。

 それで、ここでそもそも論としての疑問を考えてみましょう。「メタ・モデルを使えることで何か良いことがあるのでしょうか?」です。 

メタ・モデルにはフレーム/規則/制限/モデル/理論といったことが含まれているため、普段は意識することの難しいエキスパートの知恵を含むこのメタ・モデルを使って実体に即したモデルをつくるということが可能になるという具合です。

 もう少し分かりやすく説明すると、例えば、UMLの規則を理解した人達が実体を観察してUMLのメタ・モデルを使って、モデルをつくると後でコンピュータ・プログラムをつくるためにお互い理解可能なモデルが比較的簡単につくれるということになります。


 ある意味、前提やコンテクストとして共有しなければならない部分というのがメタ・モデルに含まれているため、土台の部分から逐一説明しなければお互いが理解しあえないということは防ぐことができるでしょう。

 それで、一般的にはモデル駆動[6]のアプローチを取る場合は、モデルをつくるためのモデル、つまりメタ・モデルで提供されることになるわけですが、このモデルの出来の良し悪しが方法論の良し悪しを決めることになるために、概念、見てくれ、表記法、シンボルとそれぞれの関係[3]を考えてよく練り上げる必要があるように思ってきます。

文献

記事の内容の正誤について、執筆者は一切保証いたしません。また、本書の内容、エクソサイズなどを実行した結果被った被害などについて著者は一切責任を負わないこととします。本ニュースレターの内容は、以下クリエイティブ・コモンズ・ライセンスに従うものとします。但し、引用元の著作権は引用元に所属します。ご意見、ご感想は次へ tritune'`@''gmail.com

0 件のコメント:

コメントを投稿