Operation realization
Here we discuss logical system elements and the use of context diagrams.
MDSD Step 9: Operation realization
The question we must answer now is, how are the operations we have uncovered accomplished using a collaboration of elements at the next level of decomposition? So far, we have treated the system under consideration as a single black box, and avoided any mention of elements inside. Now, we will determine the logical system elements within the entity and map out how they collaborate to accomplish each of the system operations. Indirectly of course, this also shows us how they collaborate to fulfill the system use cases.
The logical viewpoint
When thinking about what would make good elements at the next level, it is tempting to move toward a physical decomposition of the system under consideration and use these as our logical elements. If we have been considering a car, we might be tempted to put physical subsystems such as the drivetrain, suspension, electrical and fuel systems as our next level elements. In some cases, where the physical constraints on the system might in fact determine how much functionality we can provide, we will need to proceed in this way. However, in cases where the physical constraints are not as important, starting with the physical, while perhaps a familiar method, has the potential disadvantage of stifling innovation by
Creating a logical, rather than physical architecture first, allows more creative reasoning about the overall architecture of the system. In thinking this way, similar elements can be grouped together, while disparate concerns can be separated, increasing modularity.
The creation of any particular logical architecture requires real domain expertise and experience and involves many factors beyond the scope of this book. While there are architectural principles that can be applied, MDSD does not automatically create these elements. It does, however, provide frameworks for reasoning explicitly about the kinds of issues that directly influence the architecture. The process of designing the architecture is an interactive one, involving initial formulations and revisions. The practical approach is to make an initial draft of a set of elements, perform the next steps in the flowdown, and use this to either validate or refine the element choices.