メタモデリングに関するいくつかのテキストを読んだ後、私はまだ実際的な利益を得ていません。時々、それは面白いマインドゲームにすぎないと思いますが、便利なツールではありません。確かに、モデリングの語彙を明確にするのが賢明です。classと言う人もいれば、entityまたはと言う人もいます。概念ですが、これはモデリング用語の簡単なドキュメントです。私が理解しているように、メタモデリングは、モデリングを形式化して抽象化しようとするため、より複雑です。いくつかの良い例は、Keetの 概念データモデリング言語の正式な比較 (UML、ERM、およびORM)であり、産業界ではMeta Object Facility(MOF)です。私にとってMOFは、同じくOMGによって作成されたCORBAと同じくらい非現実的です。理論的には、メタモデリングを使用して、異なるモデリング言語でモデルを変換および統合できますが、実際にこれを行っている人はいますか?
メタモデリングが私の職場で役立ったときの例をあげることができます。 1990年代、私が働いていた会社は買収によって急速に成長しました。買収のたびに、新しいスタッフ、システム、データベース、データが追加されました。 2004年までに、IT部門は約5,000人を雇用し、年間予算は10 ^ 9米ドルでした。私たちが合併した中小企業の多くは、MS Access、MS Excel、Fox Proにデータを持っていました。大企業の多くは、メインフレームにフラットファイル、階層型データベース、OS/2で実行されている巨大なDB2インストール、その他すべてをSunの下に置いていました。総勘定元帳以外に、このデータを統合する真剣な試みは行われませんでした。
ある時点で、誰かが目を覚まし、企業データの管理がほとんどなく、管理の欠如が会社にとって大きなリスクであることに気づきました。家を掃除する時が来ました!しかし、どこから始めましょうか? 「顧客」のような単純なアイデアでさえ、すべてのグループに異なる何かを意味しました。法務部門が使用する「顧客」エンティティは、営業所が使用する「顧客」とほとんど重複せず、それらの「顧客」は財務が使用する「顧客」とは何の関係もありませんでした。そのような混乱をどのように整理しますか?
私たちが採用したアプローチは、ステップをバックアップすることから始まりました。 30人を部屋に入れて、彼らが「顧客」の意味を自分で定義するために戦うのを見るのではなく、メタモデリングから始めました。 「セマンティック属性とは」などの質問に取り組みました。または「エンティティとは何ですか。また、それらの名前はどのようにフォーマットする必要がありますか?」.
実際の運用データよりも、「クラス」や「関係」などの抽象化についてコンセンサスを得る方が簡単でした。しかし、利害関係者が基本的な用語についてコンセンサスを得ると、抽象化の後者を下げて、徐々に具体的にすることができます。最終的には、企業データを記述するための共通のフレームワークがあり、共通のデータディクショナリに向けて取り組んでいました。
抽象化のさまざまなレイヤーがあります。 MOFが最も高く、次に変換を使用してUMLまたはBPMモデルを取得し、次にビューを取得します。モデラーは通常、M0、M1..M3について話します。新しいテクノロジーによって、メタモデリングとモデリングの間の従来の障壁はなくなりつつあると思います。 EMF(Eclipseモデリングテクノロジー)を考えてみましょう。Ecoreは一種のMOFであり、EMFシリアル化を使用してUMLモデルを取得し、GMFを使用してグラフィカル表現を取得します。 。