目次


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

Comments

第6回 「RASアセットとは?」

はじめに

あけましておめでとうございます。暖冬かと油断していたところ、ここのところ、急に寒くなってきましたが、読者のみなさまはいかがお過ごしでしょうか? さて、前回の連載では、カスタマイズしたUMLプロファイルの公開手順についてご紹介しました。今回は、作成したUMLプロファイルを効果的に再利用するための「アセット化」についてご紹介します。組織の中で、成果物を共有し、検索し、再利用するためには、成果物の形式やリポジトリーの管理、といった共有するための仕組みについても、考慮する必要があります。アセット化は、成果物を効果的に共有するために、重要な概念なのです。

カスタムUMLプロファイルのアセット化概要

カスタムUMLプロファイルは、パターン同様にアセットとして再利用することが可能です。カスタムUMLプロファイルは、RAS形式(再利用可能アセット仕様 : Reusable Asset Specification)形式でアセット化することが可能で、使用用途や規模(範囲)により、アセット化の必要性を検討します。ローカルで使用するだけのものか?それとも、企業/プロジェクトにまたがって使用されるものなのか?業界レベルで再利用されていくものなのか?などを検討し、必要に応じてアセット化します。 カスタムUMLプロファイルをアセット化し再利用していくことで、モデリング開発を行う際の標準化を促進し、自動化へと発展させることができます。例えば、カスタム・トランスフォーメーションの充実化の基盤とすることができます。 アセット化され、広く再利用されているUML プロファイルの代表的なものとして以下のものがあります。

  • 業界レベルの標準的なステレオタイプ
    Rational Software Architect(以下、RSA)がデフォルトで提供
    • RUP分析
    • ビジネス・モデリング
    RSAのカスタム・プラグインとして提供
    • サービス・モデリング(SOA)
    • UXモデリング(本連載のサンプル)
  • 企業レベルの標準的なステレオタイプ
    カスタム作成
    • 企業固有の開発手法に必要なステレオタイプ
    • フレームワーク特有のステレオタイプ
  • プロジェクト・レベルのステレオタイプ
    プロジェクトでカスタム作成
    • アーキテクチャーに基づく一定の品質保証のため
    • ローカル・ルールのメンバー間の共有のため

RASアセット作成手順

ここでは、カスタムUMLプロファイルをRAS形式でアセット化する手順について説明します。カスタムUMLプロファイルのRAS化は、リリースされたプラグインの単位で行うことが推奨されます。ただし、ローカルでプロファイル使用者のみが使用する場合はプロファイル・ファイルのみのRAS化も考えられます。ここでは、UMLプロファイルのプロファイル・ファイルのみを用いて、RAS化する手順について説明します。リリースされたプラグインの単位でUMLプロファイルをRAS化する場合も、RAS化手順自体は同様になります。

  1. RAS化するUMLプロファイルを右クリックし、「エクスポート」をクリックし、エクスポート・ウィンドウを立ち上げます。
    図1:エクスポート
    エクスポート
    エクスポート
  2. エクスポート・ウィンドウで「RASアセット」を選択し、「次へ」をクリックします。
    図2:エクスポート・ウィンドウ
    エクスポート・ウィンドウ
    エクスポート・ウィンドウ
  3. RASアセットのエクスポート・ウィンドウで、「宛先」の「ファイル・システムの場所」にRASファイルの保管場所を指定するか、リポジトリーを指定し、「次へ」をクリックします。
    図3:RASアセットのエクスポート
    RASアセットのエクスポート
    RASアセットのエクスポート
  4. RASアセットの説明・ウィンドウで、RASアセットの名前、説明、バージョン、必要に応じてディスクリプターを記述し、「次へ」をクリックします。
    図4:RASアセット作成サンプル
    RASアセット作成サンプル
    RASアセット作成サンプル
  5. RASアセットの成果物・ウィンドウで、エクスポートしてアセット化するリソースにチェックを入れ選択し、「終了」ボタンをクリックします。
    ※リリースされたプラグインの単位でUMLプロファイルをRAS化する場合には、plugin.xmlも必要となります。
    図5:RAS化するリソースの選択
    RAS化するリソースの選択
    RAS化するリソースの選択
  6. ここでRASアセットが作成されます。作成処理には数分時間がかかる場合があります。エクスポートに成功すると、「エクスポートに成功しました」ウィンドウが出てくるので、「OK」をクリックします。また、警告がある場合には、この画面に警告が表示されます。
    図6:エクスポートの成功
    エクスポートの成功
    エクスポートの成功

アセット化したプロファイル、プラグインは他のRASアセットと同様の手順でリポジトリーからインポートして使用できます。 ここまでで、RAS化の手順説明は終わりです。

応用編

以降は、UMLプロファイルを拡張した応用が可能な「トランスフォーメーションとの連携」、および「プログラムからUMLプロファイルへのアクセス」について説明します。

  • トランスフォーメーションとの連携
    UMLプロファイルは、RSAの特徴的機能の1つであるトランスフォーメーションと連携させることができます。トランスフォーメーションでは、ソース、およびターゲットにUMLモデル要素を指定することができます。UMLプロファイルとトランスフォーメーションを連携させ、カスタマイズさせることで、トランスフォーメーションにステレオタイプなどのUMLプロファイルで定義した要素を取り入れることができます。これにより、UMLプロファイルで定義した独自の情報を振る舞いに取り入れたカスタム・トランスフォーメーションの開発が可能となります。 カスタム UML プロファイルとトランスフォーメーションを連携させることで、例えば、以下のようなトランスフォーメーションが可能となります。
    • モデル・テンプレートを適用したモデル間のトランスフォーメーション
      RSAでモデル・テンプレートを適用すると、ブランク状態のモデルに予め必要なUMLプロファイルが適用されたモデルを生成することができます。例えば、分析モデル・テンプレートを適用し、UMLモデルを生成した場合は、「分析プロファイル(RUPAnalysis)」が適用されたモデルが生成されます。UMLプロファイルとトランスフォーメーションを連携させると、「テンプレートを適用した状態と同様のプロファイルが適用されたモデル」をトランスフォーメーションにより生成したり、こういったテンプレートを適用した状態のモデル間でのトランスフォームを実行したりすることが可能となります。こういったトランスフォーメーションの参考例として、「ユースケース/分析間」や「分析/設計間」のトランスフォーメーション・サンプルがdeveloperWorksより提供されています。これらは、RASファイル形式で提供されており、developerWorksリポジトリーより入手可能です。使用する場合には、v6.0.1以降のRSAで、developerWorksリポジトリーよりRASファイルをインポートしてください。
    • ステレオタイプにより振る舞いを制御するトランスフォーメーション
      UMLプロファイルを使用すると、アーキテクチャーやフレームワーク、また開発標準独自のステレオタイプを作成することも可能です。UMLプロファイルにより、アーキテクチャル・レイヤーやフレームワークにより規定されたステレオタイプを作成します。そして、このUMLプロファイルを読み込むトランスフォーメーションを開発し、アーキテクチャーやフレームワークにマッピングさせる形で要素をトランスフォームさせます。

    これらはほんの一例ですが、UMLプロファイルとトランスフォーメーションとの連携により、トランスフォーメーションを拡張することが可能です。
  • プログラムからUMLプロファイルへのアクセス
    UMLモデルの内容やモデルに適用されているステレオタイプの情報へは、RSAが提供するAPIを通じてプログラムからアクセスすることができます。具体的には以下のような情報が取得/設定できます。
    • モデル要素に適用されているステレオタイプの取得/設定
    • ステレオタイプ・プロパティーの値の取得/設定

UMLモデルの要素にプログラムからアクセスするためには、org.eclipse.uml2プラグインが提供するUMLメタモデル実装(org.eclipse.uml2 API)と、UMLモデル・ファイル(.emxファイル)にアクセスするためのRSA拡張API(com.ibm.xtools.modeler API)を使用します。これらのAPIはトランスフォーメーションやパターンの開発において利用されます。またRSAの提供するPluglet機能を使用してカスタムPlugletを作成することで、モデル開発時に繰り返し行われる単純作業を自動化することもできます。 以下では、これらのAPIを使用してモデルの情報へとアクセスする具体的な例として、RSAの提供するサンプルのPlugletを紹介し、APIを通じてプログラムからUMLプロファイルの情報へアクセスする方法を説明します。

  1. RSAのメニューから「ファイル」 → 「新規」 → 「Pluglet」を選択してPluglet作成ウィザードを開き、「UML Modeler」カテゴリーの「モデル列挙」テンプレートを選択してUMLモデルの情報を参照するサンプル・プラグレットを作成します。
    図7:モデルへアクセスするPlugletの作成
    モデルへアクセスするPlugletの作成
    モデルへアクセスするPlugletの作成
  2. Plugletのコードを編集します。
    モデルに適用されているUML プロファイルの情報にはorg.eclipse.uml2 API のProfileインターフェースやStereotypeインターフェースを通じてアクセスします。図6.2-2 にサンプルのPluglet のlogObject()メソッドの中でステレオタイプの情報へとアクセスするように変更した例を示します。
    ※このほかにimport org.eclipse.uml2.*;を追加する必要があります。
    図8:ステレオタイプの情報へアクセスするPlugletの例
    ステレオタイプの情報へアクセスするPlugletの例
    ステレオタイプの情報へアクセスするPlugletの例

    この例のようにElementクラスのgetAppliedStereotype()メソッドやgetValue()メソッドを使用することで、モデル要素に適用されたプロファイルの情報を取得することができます。これをトランスフォーメーションで応用することで、取得したステレオタイプの種類やステレオタイプ・プロパティーの値に応じて、生成する構成ファイルの項目の値や、Javaコードの振る舞いなどを変えるようなことができます。

  3. モデルを選択し、メニューの「実行」→「内部ツール」→「ProfileSamplePluglet」を指定してPlugletを実行します。実行結果はコンソールに表示されます。(図9)
    図9:Plugletの実行例
    Plugletの実行例
    Plugletの実行例

プログラムからプロファイルの情報へアクセスする方法の解説は以上です。

最後に

昨年から連載を開始した本記事「MDDツール環境の構築」では、UMLプロファイルのカスタマイズを例に、カスタマイズの方法、公開・共有の手順について具体的にご紹介して参りましたが、今回の第6回を持ちまして、この一連のカスタマイズ・シナリオに関しては、最終回となります。ご愛読いただいた読者のみなさま、ありがとうございます。 本連載は、Rational Software Architect V6をベースの連載でしたが、昨年12月に発表された、Rational Software Architect V7ベースの連載についても企画しております。今後のRDD(Rational Developer Domain)の記事についても、ご期待下さい。(「こんな記事があるといい!」というリクエストがありましたら、アンケートにインプットをお願いします。)


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


関連トピック


コメント

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

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