The mixed modeling technique involves using transformations that are designed to convert conceptual elements into concrete elements within the same model and depicted on the same model diagram. In this scenario, any design-level model element, such as a UML class, that is a direct input to the code-generating transformation generates a corresponding code-level entity. The original conceptual model element is deleted and its notation in the diagram is replaced with a reference to the generated concrete model element. The diagram can still show relationships between the code model element and other conceptual model elements that were not similarly replaced by the transformation.
With this technique, you can also drag elements from a concrete model, such as Java or C++ code, onto a UML conceptual diagram that is stored in a UML model. You can then draw certain types of relationships between the conceptual elements and the concrete elements in the model.
This method supports an iterative process, in which you repeatedly use the transformations that perform this in-place semantic substitution. An architect can specify the first design iteration using conceptual models and then generate code from those portions of the model that are reviewed and approved. The architect can then continue to evolve the design in following iterations and, as more aspects of the design are approved, transform them in the same way. Portions of the design that were previously committed to code are depicted in the resulting mixed diagrams beside those portions that are not yet committed. The committed elements always reflect the current state of the implementation as it evolves because they are only diagrammatic reflections of the code.