最新技術トレンド
はじめに
1980年代後半にかけてシステム開発作業の効率化を目的としたCASE(Computer Aided Software Environment)ツールがもてはやされた。しかし、一般にOSやミドルウェア等を指し示すプラットフォームがメインフレームからC/Sに変化したときに、そのブームは過ぎ去ってしまった。その原因の一つは、開発方法論がプラットフォームやプログラミング言語の進化に対応できなかったことである。この教訓を踏まえて、オブジェクト指向技術に関する標準化団体であるOMG(Object Management Group)が"20年持続するソフトウェアアーキテクチャ"を目標として提唱したシステムの構築方法がMDA(Model Driven Architecture:*1)である。
■MDAとは
MDAは、「モデリング駆動型アーキテクチャ」と訳され、標準技術仕様そのものではなく、いくつかの標準技術仕様("MDAに関連する技術"で後述)を体系化したアーキテクチャである。MDAでは、プラットフォームに独立なモデルPIM(Platform Independent Model)と、J2EE, Webサービス, CORBA等のプラットフォームに依存したモデルPSM(Platform Specific Model)を定義する。また、それぞれのモデル間、及びプログラミング言語とのマッピングルールを定義することにより、モデルの変換とソースコードの自動/半自動生成を可能にする。システム開発者はMDAツールを利用した場合、PIMをUML(Unified Modeling Language)で記述し、ツールがPIMからPSMへの変換、あるいはPSMからソースコードへの変換を自動/半自動で行う。つまり、MDAツールはウォータフォール型システム開発工程の"システム設計"と"製造"部分をサポートする(図1を参照)。
図1. システム開発者の視点から見たMDA
さらに、MDAではモデル同士の変換も可能なことからモデルの検証やトレーサビリティ(モデルの追跡)、バージョン管理も可能となる。
■MDAに関連する技術
MDAを支える主要な標準技術仕様を以下に列挙する(図2を参照)。
- UML
オブジェクト指向分析/設計における標準的モデリング言語である。UMLでは、現在、9つの図(クラス図、オブジェクト図、ユースケース図、シーケンス図、コラボレーション図、ステートチャート図、アクティビティ図、コンポーネント図、デプロイメント図)を定義しており、アプリケーション開発者はこれらの図を利用して、システム設計/開発を行う。
- MOF(Meta Object Facility)
メタモデルを記述するための構成要素を定義し、メタモデルを管理するための技術仕様である。メタモデルとはモデルを定義するためのモデルである。例えば、XML(eXtensible Markup Language)ではタグの意味を定義するDTD(Data Type Definition)という言語があるが、XMLがモデルを表現するものと仮定すると、DTDはメタモデルを表現するものと考えることができ、DTDの構成要素である"ELEMENT"や"ENTITY"の定義に対応するものがMOFである。UMLを定義しているUMLメタモデルもこのMOFをベースに定義されている。
- CWM(Common Warehose MetaModel)
データウェアハウス用のメタモデルを定義した技術仕様である。CWMもUMLで記述されているため、MOFがベースとなっている。
- XMI(XML Metadata Interchange)
MOFを基盤としたモデル情報をXML形式に変換し、ツール間でモデルを交換可能にするための技術仕様である。
図2. MDAを支える標準技術
■MDAに関連する標準化動向
現在、MDAに関連する技術仕様の標準化は、OMGを中心に策定されているが、一部Java言語の標準化団体であるJCP(Java Community Process:*2)でも標準化の策定作業が進んでいる。
- UML
最新バージョンは1.5であるが、現在、OMGでUML2.0の標準化作業を実施しており、正式な仕様のリリースは2004年中〜後半にかけての予定である。このUML2.0では、モデルの厳密性と拡張性を高めて、MDAをより強力にサポートする技術としてさらに重要な位置を占めることになる。
- MOF
最新バージョンは1.4で、現在、OMGでMOF2.0の標準化を策定中である。
- CWM
最新バージョンは1.1で、現在、OMGでCWM2.0の標準化を策定中である。
- XMI
最新バージョンは1.4で、現在、OMGでXMI2.0の標準化を策定中である。
- JMI(Java Metadata Interface)
MOFとJava言語とのマッピング仕様である。これを定義することにより、モデルとJava言語ソースコード間の変換がより容易に実現される。JCPが策定しており、現在、JSR(Java Specification Request)040としてファイナルリリースが出ている。
■MDAによる恩恵
MDAは、上記記述から分かるように、エンドユーザではなく、システム開発に関わる分析者、設計者、プログラマに対して開発効率を向上させる。具体的な恩恵としては、やはりソースコードの自動/半自動生成であろう。しかし、ソースコードの自動/半自動生成は短期的な目標であり、その先の目標としてモデル管理によるモデルの再利用、モデル同士の統合によるシステムインテグレーションを目指している。
■MDAの今後
UML2.0をはじめとするMDAを取り巻く技術仕様は、徐々に固まりつつある。よって、次なるステップはそのMDAをきちんとサポートするツールの出現、及びそれを利用してシステム開発を実施し、実績を積み上げていくことであろう。NTTデータでもMDAの普及を踏まえ、MDAによるシステム開発確立に向けての研究・開発を進めている。それらの取り組みの1つであるドイツFraunhofer Institute FOKUS(*3)との共同研究では、OMGの「Object Application Awards 2003 最優秀賞」(*4)を受賞し、MDAに対する当社の取り組みの先進性を高く評価していただいた。これを機に、MDAに対する当社の研究・開発をさらに加速させていく予定である。
■お問い合わせ先
*1 OMGのMDA関連のサイト:
http://www.omg.org/mda/
*2 JCPサイト:
http://jcp.org/en/home/index
*3 Fraunhofer Institute FOKUSのサイト:
http://www.fokus.fraunhofer.de/
*4 OMG Application Awards 2003受賞模様サイト:
http://www.ltt.de/omg-days.2003/awards/winners.shtml
|