この技法では、概念要素を同じモデル内の具象要素に変換するように設計された変換、および同じモデル・ダイアグラム上に表現される変換を使用することが必要になります。 このシナリオでは、コード生成変換への直接入力として使用される、UML クラスなどの任意の設計レベル・モデル要素を使用して、対応するコード・レベル・エンティティーを生成します。 元の概念モデル要素は削除され、ダイアグラム内でのその表記は、生成される具象モデル要素への参照に置き換えられます。 コード・モデル要素と、変換によって同様に置き換えられることのなかった他の概念モデル要素の間の関係は、引き続きダイアグラム内に表示することができます。
この技法を使用すると、Java™ または C++ のコードなど、具象モデルの要素を、UML モデル内に格納されている UML 概念ダイアグラムにドラッグすることもできます。その後、モデル内の概念要素と具象要素の間に、特定のタイプの関係をドローすることができます。 この方式では、このインプレース意味置換を実行する変換を繰り返し使用する反復プロセスをサポートしています。これは、アーキテクトが概念モデルを使用して最初の設計反復を指定し、その後、モデルのレビューおよび承認済みの部分からコードを生成できるということです。
アーキテクトはその後も引き続き以降の反復で設計を開発できます。 設計の他の要素が承認され次第、アーキテクトはそれらを同様に変換することができます。結果として作成される混合ダイアグラムには、以前にコードにコミットされた設計部分が、まだコミットされていない設計部分と並べて表記されます。 コミットされた要素は、常に開発中の実装の現在の状態を反映しています。これは、それらの要素が単にコード自体をダイアグラム上に反映したものであるためです。
混合モデリングは、反復型設計手法によく適しています。 通常は設計と実装を別の個人が実行し、アーキテクトには、実装の開発に関するはっきりとした見とおしだけがあればよく、厳密な管理を維持する必要はありません。 現在の状態の実装と並べて表記可能なよりおおまかなレベルの抽象化において、意図の継続的な記録を維持できるという付加的な利点が、概念モデルを維持する追加の負荷を受け入れるだけの価値があると判断される場合には、この手法を採用してください。
混合モデリングでは、1 つの反復型設計手法の中で、具象モデリング手法と概念シード・モデリングの両方の利点が得られます。 また、混合モデリングでは、アーキテクトが可視性ベースの制御レベルを使用することもできます。結果として、混合モデリングでは、具象モデリングまたは概念シード・モデリングをそれぞれ単独で 使用するよりも高度なガバナンスが実現します。 この手法により、アーキテクトおよび開発者が、混合のモデルおよび実装を反復的かつ同時に更新することができます。 混合モデルのダイアグラムには、両方の変更が自動的かつ即時に反映されます。
混合モデリングでは、具象モデルと概念モデルの利点が得られますが、 ダイアグラムと実装コードの両方については、計画や保守の負荷は比較的多くなります。 各反復で変換が必要になるため、プロジェクトに時間が追加される場合があります。
混合モデリングでは最初に概念モデルを使用し、それから概念モデル・シード具象モデルの手法で説明されているコード生成のポイントに進みます。ただし、混合モデリング・プロトコルでは、コード要素の基礎となる UML 要素を、生成されたコード要素への直接参照に置き換えるよう、モデルからコードへの変換に指示します。 その結果、混合モデル になります。混合モデリングでは、UML モデル内で維持され、インテントの進化型表現として継続的に発展する、より抽象的な概念コンテンツが提供される一方、 その中のダイアグラムには、対応する実装コードへの洗練関係が表示されます。 これにより、概念モデルを管理するアーキテクトは、開発者が 3GL のビジュアル編集でコードを処理する際に行った決定をすぐに確認することができます。