すべては問題ありませんが、このツールにはモデルをコードと同期する機能が完全に欠けています。 つまり、モデルを変更した後、手動でクラスを変更する必要があります。 多数の小さな変更の場合、それは非常に不便であることが判明し、このため、彼らはしばしば本格的なモデリングを拒否します。
マイクロソフトは最近、Microsoft Visual Studio 2010 Feature Pack 2というアドオンをリリースしました。このツールは、モデルの変更をコードで同期する絶好の機会を提供します。 これの使用方法について簡単に説明します。
たとえば、原始的なブログがあるとします。 サブジェクト領域は、著者と記事の2つのクラスで表されます。 ソリューションに新しいモデリングプロジェクトを追加します。 その中で、UMLクラス図を作成します。

リバースエンジニアリングを活用してください。 Architecture Explorerからダイアグラムにクラスをドラッグします。 この場合、エンティティはダイアグラム上に属性とともに表示されます。 エンティティ間で定期的に関係が形成されます(接続のタイプも定期的に正しく表示されます)が、その場合はまだ判別できません。

ご存じのとおり、UML 2.0標準では、ブール、整数、文字列、およびUnlimitedNaturalの4つの標準データ型が定義されています。 残りのタイプは、.NET名前空間内の場所に応じてパッケージに自動的に作成されます。
そのため、モデルを適切な状態に「修復」し、同時に少し拡張します。 これを行うには、ダイアグラムに新しいクラスを作成し、UMLモデルエクスプローラーの目的のパッケージにドラッグして、C#Classステレオタイプを選択します(Microsoftはコード生成に使用されるいくつかの.NET固有のステレオタイプを追加しました)。

このクラスは、ドメインアセンブリにはまだ存在しないことに注意してください。 そこに登録し、同時にすべての変更を適用するには、以下を実行する必要があります。
モデルエクスプローラーで、ドメインアセンブリを選択し、[プロパティ]に移動して、[テキストテンプレートバインド]の[...]ボタンをクリックします。 新しい要素を追加し、[プロジェクトパス]フィールドでコードの生成先となるプロジェクトの名前を指定し、[ターゲットディレクトリ]フィールドでプロジェクトに関連するフォルダー(ルートで生成)を指定し、テンプレートのアドレスを指定します。 デフォルトでは、「C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Visualization and Modeling Feature Pack \ 2.0 \ Templates \ Text」フォルダーにあります。 すべての機会に複数のテンプレートを設定できます。 この例では、ClassTemplate.t4を選択します。

その後、ダイアグラムの空き領域を右クリックして、「コードを生成」アイテムを選択します。

そして-出来上がり! 新しいクラスがアセンブリに追加され、すべての変更がモデルに従って適用されます。

ところで、ステレオタイプの助けを借りて、ほとんどすべてを示すことができます:メンバーの可視性、名前空間を生成するときに接続される属性など。
したがって、M $は、アーキテクトと開発者の作業を容易にする優れたツールを提供します。 残念ながら、この非常に必要なパッケージは、MSDNサブスクライバーのみが使用でき、何らかの理由で、すべての正当なユーザーによる使用を許可していません。 そして、これは30万ルーブルのオーダーのVS Ultimateのコストです。 近い将来、この状況が変わることを期待しましょう。