1.3 Modeling Maturity Levels


Within the MDA process, the focus of software development will be on producing a high level model of the system. Currently, many people use UML or another modeling language during software development. However, they all use this standard language in very different ways. To create some order and transparency in working with models, we introduce the modeling maturity levels (MMLs). These levels can be compared to the CMM levels [CMM95]. They indicate what role models play in your software development process, and the direction you need to take to improve this process.

Traditionally, there has been a gap between the model and the system. The model is used as a plan, as brainstorm material, or as documentation, but the system is the real thing. Often, the detailed software code strays a long way from the original model. On every modeling maturity level, this gap is reduced, as shown in Figure 1-3, where the right side represents the actual system and the left side represents the model of the system.

Figure 1-3. The Modeling Maturity Levels bridging the model-code gap

graphics/01fig03.jpg

As one climbs to a higher maturity level, the term programming gets a new meaning. At a higher maturity level, modeling and programming become almost the same. To be clear in the descriptions of each level, we use the word coding to mean the final transformation of all knowledge and decisions about the application ”in whatever form that may be ”to executable programming language code. Correspondingly, we speak of the coder instead of the programmer .

1.3.1 Level 0: No Specification

At the lowest level, the specification of the software is in the heads of the developers only. This level is common among nonprofessional software developers. One simply gets an idea about what to develop, and talks about it without ever writing anything down. The characteristics of this level are as follows :

  • There are often conflicting views among developers, and between developers and users.

  • This manner of working is suitable for small applications; larger and more complex applications need some form of design before coding.

  • It is impossible to understand the code if the coders leave (and they always do).

  • Many choices are made by the coders in an ad hoc fashion.

1.3.2 Level 1: Textual

At modeling maturity level 1, the specification of the software is written down in one or more natural language documents. These may be more or less formal, using numbering for every requirement or every system function or not, large or small, an overview or very detailed, depending on taste. This is the lowest level of professional software development. The characteristics of this level are as follows:

  • The specification is ambiguous, because natural language inherently is.

  • The coder makes business decisions based on his or her personal interpretation of the text(s).

  • It is impossible to keep the specification up to date after changing the code.

1.3.3 Level 2: Text with Diagrams

At modeling maturity level 2, the specification of the software is provided by one or more natural language documents augmented with several high-level diagrams to explain the overall architecture and/or some complex details. The characteristics of this level are as follows:

  • The text still specifies the system, but it is easier to understand because of the diagrams.

  • All characteristics of level 1 are still present.

1.3.4 Level 3: Models with Text

A set of models, i.e., either diagrams or text with a very specific and well-defined meaning, forms the specification of the software at modeling maturity level 3. Additional natural language text explains the background and motivation of the models, and fills in many details, but the models are the most important part of the design/analysis deliverables. The characteristics of this level are as follows:

  • The diagrams or formal texts are real representations of the software.

  • The transition of model to code is mostly manual.

  • It is still impossible (or very difficult) to keep the specification up to date after changing the code.

  • The coder still makes business decisions, but these have less influence on the architecture of the system.

1.3.5 Level 4: Precise Models

A model, meaning a consistent and coherent set of texts and/or diagrams with a very specific and well-defined meaning, specifies the software at modeling maturity level 4. Here, too, natural language text is used to add comments that explain the background and motivation of the model. The models at this level are precise enough to have a direct link with the actual code. However, they have a different level of abstraction. A model is more than the concepts of some programming language depicted in diagrams. Level 4 is the level at which the Model Driven Architecture is targeted . At this level:

  • Coders do not make business decisions anymore.

  • Keeping models and code up to date is essential and easy.

  • Iterative and incremental development are facilitated by the direct transformation from model to code.

1.3.6 Level 5: Models Only

A level 5 model is a complete, consistent, detailed, and precise description of the system. At level 5, the models are good enough to enable complete code-generation. No adjustments need to be made to the resulting code. Software developers can rely on the model-to-code generation in the same way coders today rely on their compilers. The generated code will be invisible to the developer; there is no need to look into it. The language in which the models are written has become the next -generation programming language. Certainly, some text is still present in the model, but its function is equal to comments in source code.

Note that this level has not been realized yet anywhere in the world. This is future technology, unfortunately . Still, it is good to recognize what our ultimate goal is.



Object Constraint Language, The. Getting Your Models Ready for MDA
The Object Constraint Language: Getting Your Models Ready for MDA (2nd Edition)
ISBN: 0321179366
EAN: 2147483647
Year: 2003
Pages: 137

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net