2012-03-18 12 views
0

私は、いくつかのクラスのコードを生成するシステムを書いており、UMLダイアグラムでそれを文書化する必要があります。クラスは同じ構造に従いますが、ユーザーによって設定された名前を持ちます。 CCodeGeneratorがこれらのクラスのコードを生成するように指定する方法はありますか?クラスが別のクラスのコードを生成する関係を指定する方法はありますか? UML

また、私は現在、私のCDataDefinitionクラス間の関係(生成されたクラスのそれぞれに含まれるべきかを定義する)とCCodeGeneratorを持って、意味する方法があり、その生成されたクラスとの間の関係の多重度ジェネレータは、CDataDefinitionインスタンスの数に正確に等しいですか?

これらのクラスは、UMLクラス図が必要な別のシステムで使用されます。このプロジェクトのクラス(CEditior)がそれらを使用していることを示す方法はありますか?操作の

例:

私は3つのCDataDefinitionクラスXを定義するオブジェクト、Y、およびZのマイCCodeGeneratorインスタンスは、これらの3つのクラス(.csファイルファイル内のC#コード)を作成します持っています。

CEditorは、これらの3つのクラスとインターフェイスします。

答えて

0

MOFの導入情報の一部を読んだ場合、UMLファミリでは、ある層のメタクラスのインスタンスが次の層の分類子であることがわかります。

あなたの場合、出力のクラスを記述するコードジェネレータのクラスは、メタクラス(CDataGenerator)と、メタクラスのインスタンスによって表される出力のクラスになります。

層の間を横断する「XはY型」以外の関連付けのためのプレーンなUMLの方法はありません。

MOV QVT(クエリ、ビュー、トランスフォーム、つまりあるモデルを別のモデルにマッピングするための言語)を使用してそのような関係をモデル化することは可能かもしれませんが、私はツールサポートの現在の状態を知らず、おそらくコードジェネレーターを書く必要はないQVTツールがありました。

0

CCodeGeneratorで作成できるクラスの構造を表すテンプレートクラス(CDataDefinition)をビルドする必要があります。実際にクラスを作成するときは、CCodeGeneratorにはclassGenerator(name:String)を操作して(この例では)、このメソッドがCDataDefinitionの適切なバインディングとしてクラスを作成することを示すことができます。

関連する問題