目次


実践!EclipseベースのMDDツール環境の開発

Rational Software Architect拡張プラグインの作成

Comments

第2回 「RSA 拡張によるMDDツール環境開発のサンプル事例」

今回は、システム開発にモデル駆動型アプローチを導入したACME社(架空の企業です)をとりあげ、このACME社が、プロジェクトの開発作業をサポートするために、Rational Software Architect(以下、RSA)を拡張してMDDツール環境を構築するまでの流れをサンプル事例として説明していきましょう。

背景

ACME社の業務システムはクライアント/サーバーアーキテクチャーのアプリケーションを中心としたものです。しかし昨今のユーザー環境の多様化によりクライアントアプリケーションの配布や管理が困難となってきており、ビジネスの変化へシステムを迅速に適応させることが難しくなっています。また同時にそれぞれのアプリケーションは異なる方法で作成されており一貫性が少なく保守も困難になっています。そこでACME社ではWebユーザーインターフェースを使用した3層アーキテクチャーへの全社的なシステム移行を検討しています。

新システムのアーキテクチャー

Java/J2EEによる3層アーキテクチャーはプレゼンテーション層、ビジネス層およびエンタープライズ情報システム(EIS)層としてレイヤー化されます。設計上の要所にはメカニズムが定義されます。たとえばWebユーザーインターフェースの設計や実装にはJSFやStrutsなどのフレームワークなどを使用することができます。トレードオフの検討によりACME社では図1のようなアーキテクチャーとフレームワークが選択されました。

図1:選択されたアーキテクチャーおよびメカニズムの例
図1:選択されたアーキテクチャーおよびメカニズムの例
図1:選択されたアーキテクチャーおよびメカニズムの例

モデル駆動型開発の導入とMDDツール環境の構築

機能ごとの設計を行う開発者はアーキテクチャーを意識して設計を行う必要があります。図1のアーキテクチャーではプレゼンテーション層に関してはStrutsフレームワークが採用されていますので、ACME社のシステムの各機能を開発する開発者はStrutsフレームワークの元でどのようにユーザーインターフェースを設計しビジネス層へと繋げるかを理解しなくてはなりません。しかしこの企業の大部分の開発者は従来のクライアント/サーバー型のシステム開発のスキルはありますがWebユーザーインターフェースやJava/J2EEによる開発のスキルを十分には持っていません。 従来の開発においてはアーキテクトが設計方法などを説明する設計ガイドなどを作成し、そのガイドを参照しながら開発者は個々の機能要件を設計していくことになります。それに加えてモデル駆動型開発では開発者は目的に合わせて定義されたモデルを用いることで容易に設計が行えるようになり、またトランスフォーメーションを使用することで、設計を満たす適切な実装を低いコストで作成することができるようになります。

モデル駆動型開発を行うためには自動化をサポートするMDDツール環境が必要です。しかしACME社で調査した限りではStrutsを使用したプレゼンテーション層の設計実装をサポートする既存MDDツール環境は見つかりませんでした。そのためモデル駆動型開発を導入するためにMDDツール環境を構築するかどうか決断しなくてはなりません。ACME社では以下のトレードオフを検討した結果、Webユーザーインターフェースの開発をサポートするMDDツール環境を開発することを決断しました。

コスト

  • アーキテクチャーチームの一部としてMDDフレームワーク開発の専任チームを作る必要性
  • MDDフレームワーク開発のコスト
  • MDDフレームワーク開発の進捗が、アプリケーション開発スケジュールのボトルネックとなる可能性

メリット

  • 開発者のStruts フレームワークへの学習コストの削減
  • 実装のコスト削減
  • 実装の品質の安定
  • UIプロトタイピングによるユーザーインターフェースの品質を向上
  • プレゼンテーション層のメカニズムの将来的な変化への対応

RSAの拡張

ACME社のアーキテクト達はMDDツール環境の要素として以下のものが必要であると判断しました。

  1. Webユーザーインターフェース要素をモデル化するためのUMLプロファイル定義
  2. ユーザーインターフェースモデルからStruts実装へのトランスフォーメーション
  3. ユーザーインターフェースモデルからプロトタイプへのトランスフォーメーション

図2にこのMDDツール環境の要素とそれらの関係を示します。

図2:ユーザーインターフェースの設計/実装をサポートするMDDフレームワークの構成要素
図2:ユーザーインターフェースの設計/実装をサポートするMDDフレームワークの構成要素
図2:ユーザーインターフェースの設計/実装をサポートするMDDフレームワークの構成要素

Webユーザーインターフェースのモデルを定義するために、既存のメタモデルを調査しました。しかしそのようなメタモデルは定義されておらず、新たに定義する必要があることが判明しました。モデル化にUMLを使用することが検討されましたが、UMLには標準で画面や入力項目などのユーザーインターフェース要素をモデル化するための要素は定義されていませんでした。メタモデルの定義について幾つかの案がでましたが、以下のメリットを考慮してUMLプロファイルによってUML仕様を拡張することにしました。

  • RSAやRational Software Modelerなどの既存のUMLツールを使用してモデリングできる
  • アイコンなどの図形表記を適切に使いモデルを理解しやすくすることで開発者がよりよいユーザーインターフェースを検討できるようになる
  • 制約を使うことでStrutsなどに不慣れな開発者でも適切なモデルを作成できるように支援できる

そのほか開発について以下のような決定がなされました。

  • トランスフォーメーションはRSAの提供するAPIを使用して作成する
  • 企業内の開発者が容易に利用できるように、作成したUMLプロファイルやトランスフォーメーションをReusable Asset Specification(RAS)の形式で公開する>

まとめ

今回は、システム開発にモデル駆動型アプローチを導入したACME社をとりあげ、RSAを拡張してMDDツール環境を構築する流れをサンプル事例として説明してきました。UMLプロファイル、トランスフォーメーションの位置づけが理解できましたでしょうか?次回も、どうぞお楽しみに!

第3回 「UMLプロファイルとは?」


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Rational
ArticleID=311649
ArticleTitle=実践!EclipseベースのMDDツール環境の開発
publish-date=05242006