変換構成を作成または編集するときに、C# コードに変換するモデル要素を指定できます。 この変換では、コンテナーおよびそのモデル要素を両方選択した場合、または同一のモデル要素を 2 回選択した場合にエラー・メッセージが生成されます。
UML ソースの各要素の名前は、小文字、大文字、または下線 (_) で開始できます。 後続の文字には、小文字、大文字、または数値を使用できます。 変換では、数値または無効文字で開始される名前に対して、下線 (_) を前につけます。
生成されたコードの読みやすさを改善し、UML モデルと生成されたコード間の差異を最小限にするには、ソースの UML モデルにある無効な名前を訂正してから変換を適用する必要があります。
有効な変換ターゲットは、インポートされた Visual Studio C# プロジェクトです。 新しいターゲット・コンテナーを作成する場合は、.NET ソリューションのインポートを開始します。 .NET ソリューションは、インポートされる Visual Studio で開く必要があります。
以下の表には、UML から C# への変換により、どのように UML モデル要素が C# コードに変換されるかがリストされています。 一部の UML 要素は、正しいステレオタイプが適用された複数のコード要素に変換できます。
| UML モデル要素 | C# コード要素 |
|---|---|
| 関連 | クラス属性 |
| クラス | クラス、構造体、または委譲 |
| 列挙 | 列挙型 |
| 汎化関係 | クラス継承 |
| 操作 | メソッドまたはインデクサー |
| パッケージ | 名前空間 |
| パラメーター | メソッド引数 |
| プロパティー | クラス属性、C# プロパティー、またはイベント |
名前にピリオドまたはスペースが含まれている UML モデル内の UML パッケージは、名前に下線が含まれた C# の名前空間に変換されます。 この変換の動作により、包含する要素に対して単一の名前空間が保持されます。 例えば、UML パッケージ com.ibm.samples に C1 という名前のクラスが含まれているとします。 UML から C# への変換を適用すると、UML クラス C1 を表す C# の成果物は、以下の名前空間で宣言されます。
namespace com_ibm_samples
この例で 3 つの名前空間を作成したい場合は、UML モデル内に 3 つの別々のパッケージを作成する必要があります (例: com、ibm および samples)。 上記の場合、com は ibm フォルダーを収容する親フォルダーであり、ibm には samples フォルダーが収容されます。 変換後の結果として、コード内に一連のネストされた名前空間ができます。
マッピング・モデルを使用すると、UML パッケージからフォルダーを生成し、クラスやその他の成果物の出力を制御できます。 例えば、マッピング・モデルを使用して、複数の C# クラスを単一のファイルに生成できます。
変換では、変換のターゲットとして指定した C# プロジェクトおよび C# プロジェクト・フォルダー内に C# コード・ファイルを生成します。