Page Areas:

Current Submenu:

Additional Information:


Science Park 3

We are located on the second floor of the Computer Science Building (Science Park 3) ...  more of Location (Titel)

Position Indication:


ModelAnalyzer: Consistency Management Framework

Design models describe different aspects of a software-intensive system – separating functionality, from structure, behavior, or usage. While these models are meant to be separate in their description, they are nonetheless related by manifold dependencies. It is necessary to understand this network of dependencies to understand how the various models are connected. Yet, this network of dependencies is also the most significant reason for failure during software and systems modeling. It is at the root of the inability to propagate changes correctly and completely. Although change propagation as a whole is a daunting challenge to tackle, this proposed work suggests an approach for solving this problem in context of multi-disciplinary software and systems models. In context of such models, incorrect or incomplete changes are detectable if these changes cause inconsistencies among the models involved – whether they be directly or indirectly related.



For general information or cooperation suggestions contact either:

- Alexander Egyed
- Alexander Reder



Getting started

- Design rules can be loaded from or saved to a file using the Model Analyzer Controls menu (2).
- The model analyzer will be started or stopped in the Model Analyzer Controls menu (2).
- In the view for the design rules (3) new design rules can be added (context menu of the view), removed or modified (context menu of the design rules node).
- Under the design rules node the details for this design rule are shown, the instantiations and the scope of the the instantiations is shown.
- The validation result of the design rule instances is visualized by the color of the flag (green - consistent, yellow - warning, red - error) and in the details of the design rules instance.
- All the design rule instances are shown in the design rule instance view (4).
- All scope elements are shown in the scope elements view (5).

Adding, modifying and removing a Design Rule

- A design rule can be added using the add button (6) or from the context of the design rule view. An empty design rule definition dialog (8) is opened.
- A design rule can be modified using the context menu (7) of the design rule. The design rule definition dialog (8) is filled with the information of the design rule.
- A design rule can be remove using the context menu (7) of the design rule.
- The condition for the design rule is expressed as an OCL statement. Make sure that the right context element is defined. If the OCL statement can not be parsed, an error message is shown and the design rule can not be added to the list until this error is fixed.
- After a design rule is defined, make sure the ARL is enabled in the details of the design rule. If not, no scope elements can be build and the instances for this design rules won't be reevaluated. ARL can be disabled even though it is enabled in the design rule definition dialog, because if some OCL constructs can not be mapped to ARL.
- ARL is an Abstract Rule Language that is used internally in the model analyzer framework. In the implementation for the IBM Rational Software Analyzer the basic OCL expressions are implemented but not the complete set (but can and will be extended in the future).

Related Publications

Alexander Reder, Alexander Egyed, Model/Analyzer: A Tool for Detecting, Visualizing and Fixing Design Errors in UML, 25th IEEE/ACM International Conference on Automated Software Engineering 2010, Antwerpen, Belgium. DOI


Tool and Framework

application/zipUMLModelAnalyzer (2.8 MB, Plugin for the IBM Rational Software Analyzer (includes the ModelAnalyzerFramework))


Installation Instructions

- IBM Rational Architect 8.5
- Download and extract the UMLModelAnalyzer Plugin
- Add a local update site in the IBM RSM that points to the extracted UMLModelAnalyzer Plugin
- Install the UMLModelAnalyzer and restart the RSA