Conceptual Models Drive Development

The protocol that states that Conceptual Models Drive Development provides the most strict design control of the design contract management protocols. Architectural changes are implemented in the conceptual model , which is then transformed into the code implementation. This provides strict control and governance, where the architect maintains a high degree of control and the system developers role changes from application developer to tooling developer.

This technique involves using the conceptual model on an ongoing basis to drive the development of an application and supports the notion of round-trip engineering. After an architect has created a detailed class-level model using UML, this model becomes the seed for a 3GL code model. The architect applies a transformation directly to the model to generate the structure, or in many cases the actual compiling code, for the application.

The developer is free to develop the code model while the architect continues to design the high-level UML model. This parallel workflow causes the UML model and the code model to diverge, making collaboration difficult, but the initial transformation configuration supports model reconciliation as well as forward and reverse transformations.

To minimize risk, which increases as the models diverge, the architect performs a reverse transformation on the code model, creating a temporary snapshot that the architect uses in a reconciliation operation to selectively merge changes into the conceptual model. After the models are merged, a transformation can then be applied to update the implementation-level code, thereby driving the architect's conceptual model changes back into the code model. This process can be repeated as often as necessary throughout the development process. Both models continue to evolve in parallel and are reconciled at predefined checkpoints.

Applications

The protocol in which Conceptual Models Drive Development is best utilized when in these circumstances:

  • Application code will be used in similar applications multiple times
  • Very strong control over conformance to design contracts is required
  • Repetition code that provides a framework that leaves only the business logic to be completed by developers
  • Agile development processes are used. Conceptual Models Drive Development provide value at the early phase of project development
Note: Conceptual Models Drive Development is suited to both agile and iterative development approaches.

This method can be used by the whole team, from architect to developer.

Advantages

Conceptual Models Drive Development approach provides strict governance. The code implementation reflects at all times the architectural specification. The approach also results in less hand-coding, greater repeatability, higher quality, fewer defects, and the ability to make changes to the design at any phase of development, which makes this approach very agile.

Considerations

Conceptual Models Drive Development approach provides strict governance and the ability to make a fix and have it corrected throughout the application; little changes can be hard to implement hard to avoid having the transformation process affect those small changes.


Feedback