Design is the process of building a model of a Model Compiler. The output of the design process is a Matrix analysis model.
This may involve for example, modeling the Software Architecture and Template Language realms which define the architecture and language of all applications that are to be compiled by the Model Compiler.
In other words, the application’s design is formed from the model held within the Model Compiler that compiled it.
The application’s Matrix analysis model is totally independent and separate from its design which is embodied in the Model Compiler. Obviously, this confers a number of advantages.
It’s common to hear the phrase “levels of abstraction”. This usually refers to levels of design abstraction which typically starts at programming and goes through to design. The Analysis Design Matrix extends this idea to more levels. Levels of design abstraction can also be found within the realms of the Model Compiler.
Domains are shown on the Domain Bridges Diagram with the most abstract client domain at the top, implying that these domains rely on services supplied by lower service domains.
For example, the Analysis of Design realm contains a Software Architecture client domain that may depend on several server domains such as Database, Network, Devices and Operating System. These were called implementation domains in the Shlaer-Mellor method.
In its turn, a server domain may also play the role of a client domain if it uses the services of another server domain; the Network may communicate with the Operating System directly.
It’s worth reiterating that design abstraction is only applicable to a Model Compiler and the design is applied to all applications it will compile. It’s also interesting to note that design abstraction is merely analysis abstraction when applied to Model Compilers. This follows from the realisation that design models are analysis models.
The word “design” may be informally used in the context of the analysis process. For example, during the analysis of an application it would be acceptable to say that a solution using a specific arrangement of entities to a particular requirement has been “designed”.