Page Areas:

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:


Report on the scientific work

This project made significant impact in terms of scientific results achieved, publications, awards, visibility in the community, industrial-disciplinary collaborations and other criteria.

Information on the development of the research work

Overall scientific concept and goals
Resolving inconsistencies in software models is a complex task because the number of repair actions grows exponentially. The most significant contribution of this project was that it copes with the large number of repair alternatives by focusing on what caused an inconsistency and presenting repairs in a generic repair tree that is neutral to how and why the inconsistency was caused. The cause is computed by examining the run-time evaluation of the inconsistency to understand where and why it failed. The individual changes that make up repairs are then modelled in a repair tree as alternatives and sequences reflecting the syntactic structure of the inconsistent design rule. Repairing inconsistencies is then a decision making process that uses the repair tree as its main input. We evaluated the approach (correctness, scalability) on many, large UML models and design rules as well as other domains as discussed below. This project extended the state of the art.

Was there a change of direction in the field between the start and the end of the project?
All activities identified in the proposal have been investigated. The timings of these activities varied slightly and, at times, were adjusted to coordinate them with collaborations and visits. Indeed, the project exceeded expectations in that we managed to evaluate our technology on multiple domains in addition to UML (only one was promised): inconsistencies in 1) product line engineering, 2) mechatronics engineering, 3) decision-making, 4) meta model/model co-evolution, and others.

Results and their significance

Repair Tree
Our proposal combined the structure of design rules (as in xLinkit) with the design rule’s expected and observed validation results (in part through observing the rule’s validation), and basic facts about the meta model (types of fields, non-changeable model elements) to filter impossible changes. The structure is important for understanding the inconsistency and enumerating repair alternatives. For example, if an inconsistent rule’s structure requires A and B=true then there are three repair alternatives (as generated by xLinkit): repair A, repair B, or repair A and B. This list appears reasonable; however, it may contain incorrect repair alternatives and non-minimal repair actions. For example, if B is already true then 1) repair B is unnecessary because it would repair something that is not broken and 2) repair A and B is non-minimal because it would repair more than necessary. Of course, repair A may inadvertently break B, which is a side effect. By eliminating unnecessary and non-minimal repairs, the approach vastly reduces the number of repair alternatives; however, not necessarily the exponential growth. This work thus also introduced repair trees. A repair tree organizes the repair actions in a hierarchical manner that reflects the structure of the design rule. The repair tree is thus intuitive to understand and, more significantly, the repair tree (repair actions) grows linearly with design rule complexity.

Contribution to the progress of the field
Existing approaches either ignored the exponential growth of repair alternatives or emphasized on selected repairs only. Other approaches posed limitations on the consistency language used or focused on individual inconsistencies. All these limitations are problematic because the designer must ultimately choose and the generated repairs either overwhelm the designer or may fail to include the one the designer wants. Since the repair of inconsistencies goes hand in hand with the creative process of modelling, we strongly advocate against heuristics that replace the role of the human designer. For example, a repair that favours the fewest model changes is frequently the same as an undo and in the course of a design process an undo is often not the desired option. This project removed these limitations. It is now possible to compute detect and repair inconsistencies, either immediately or at a later time. The method developed is not limited to a particular domain or language. Furthermore, the method computes a complete set of repair alternatives rather than relying on heuristics. To deal with the inherently unscalable number of alternatives, the project proposed a novel data structure (the repair tree).

Industrial Adoption
In 2010, IBM awarded the PI the CAS Research Faculty Fellowship since his work “has contributed high business impact to IBM Software with great potential for commercialization.” In particular, they are referring to the work done in this project. IBM recognized that the consistency technology pioneered under this project is the most scalable and most flexible consistency checking technology available to date. IBM is now incorporating this technology into the JAZZ platform to support the consistency checking of collaborating software engineers. The adoption by IBM is not merely an academic exercise. Currently, IBM involves two programmers of the commercial production team in incorporating this technology into their platform. FWF projects are meant to be basic research projects and industrial transfer is not a direct product of this work. However, this adoption by IBM demonstrates that our work has direct applicability in practice. IBM independently funds this industrial transfer in form of a separate agreement.

Proof of Concept Tool
Per FWF rules, tool development and industrial transition are not allowed to be a focus of this kind of project. Nonetheless, we built a proof-of-concept tool as it is the only means for large-scale, empirical validation of our methodology. Without the tool, we would have been unable to publish this work as successfully and extensively as we did. The tool is a research tool and not of industrial quality; however, it is quite useable and actually is used in quite many research institutions worldwide. The tool, integrated with IBM Rational Software Modeler/Architect, can be downloaded from:

PhD Dissertations and Master’s Thesis
Altogether two PhD dissertations were completed and a third one is nearly completed. Furthermore, four Master’s theses were completed and several are near completion.

Relevance for other (related) areas of science
In form of various cooperations, we demonstrated that the method is applicable beyond the narrow focus of the original proposal and even beyond software engineering (the area of expertise of the PI). The project proposal promised to investigate consistency and inconsistency repairs primarily in context of the Unified Modeling Language (UML). However, we also suggested that the technology has more general applicability and promised to also investigate other domains. Indeed, we ended up applying this work to nearly half a dozen domains, including the Mechatronics domain outside of software engineering. In total, we collaborated with a wide range of research institutions internationally. The result of this collaboration contributed significantly to the publications (see below). Indeed, the best paper award in COMPSAC was the direct result of one such collaboration. Later, we list other institutions we collaborated with.