0

Acceleo初心者です。IBM RSA (8.5.1) を使用しています。カスタム UML プロファイルを作成しました (デフォルトのメタクラスを拡張するステレオタイプがいくつかありますが、これはごく普通のことです)。UML プロファイルは .epx ファイルです。さらに、カスタム UML プロファイルを適用した単純なモデルを作成し、いくつかのクラスにカスタム ステレオタイプを「タグ付け」しました。

私の質問(些細なことで申し訳ありませんが、正直な答えが見つかりませんでした...):

  • カスタム UML プロファイルを Acceleo のメタモデルとして使用できますか? 簡単に言うと、モジュール ファイルに次のように書く代わりに、[module main(' http://www.eclipse.org/uml2/3.0.0/UML ')] (これは正常に動作します) このようなものを書くことができますか? : [モジュール main('platform:/resource/MyProfileProject/MyProfile.epx')]? これを試してみると、「メタモデルを解決できませんでした」というエラー メッセージが表示されます。UML プロファイルを .epx 形式から .xmi および .uml に変換しようとしました。それらのどれも機能しません。

  • これが何らかの形で機能する場合、カスタム ステレオタイプを Acceleo テンプレート (「for」サイクルなど) の型修飾子として使用できますか?

どんな助けでも大歓迎です。前もって感謝します。マルセル

4

2 に答える 2

1

私はあなたができるとは思わない。

私の知る限り、サービスを使用して UML 要素 (ステレオタイプなど) からプロファイル データを取得することになっていますが、メタモデルは UML のままであり、これは Acceleo では変更できません。

ただし、ステレオタイプ情報に従ってフィルタリングされた要素のリストで、UML 要素を反復処理できます。

于 2013-12-26T18:43:32.330 に答える
0

それはできます。プロファイルのステレオタイプを取得するのにかなりの時間がかかったので、その方法を示す例を追加します。将来の参照用に追加します(必要な人へ)。

[comment encoding = UTF-8 /]
[module generate('http://www.eclipse.org/uml2/4.0.0/UML')]

[template public generateElement(p : Class)]
[comment @main /]
[file (p.name.concat('.php'), false)]
  [if (hasStereotype(p, 'Soa Logic Profile::bOperation'))]
    code for bOperation stereotype  
  [/if]
  [if (hasStereotype(p, 'UML Standard Profile::entity'))]
    code for entity stereotype
  [/if]

  [p._package.member.getApplicableStereotypes().qualifiedName/]
  [hasStereotype(p, 'Soa Logic Profile::bOperation')/]

[/file]
[/template]

上記のコードでは、修飾名がで定義されSoa Logic Profile::bOperationたステレオタイプに対応していることに注意してください。で定義されているステレオタイプです。とはどちらも修飾名です。bOperationSoa Logic ProfileentityUML Standard ProfileSoa Logic Profile::bOperationUML Standard Profile::entity

注: UML メタモデルのみを使用する必要があります。このモデル ( .uml file) には、適用されたプロファイルに関する情報が既に含まれています。これは、 .umlファイルを調べることで確認できます。また、私が理解している限り、* .profile.uml ファイルは.umlモデル ファイルと同じフォルダーにある必要があります。

パラグアイからこんにちは!

于 2014-11-16T22:18:31.587 に答える