Publication: Research › Ph.D. thesis – Annual report year: 2011
Design decisions are continuously made during the development of software systems and are important artifacts for design documentation. Dedicated decision management systems are often used to capture such design knowledge. Most such systems are, however, separated from the design artifacts of the system. In model-based software development, where design models are used to develop a software system, outcomes of many design decisions have big impact on design models. The realization of design decisions is often manual and tedious work on design models. Moreover, keeping design models consistent with all made decisions is a time-consuming manual task that is often performed in peer reviews. In this thesis, a generic technology has been developed for extracting model differences from models and transferring them to other models. These concepts, called model-independent differences, can be used to specify realizations of decisions in design models. This way, recurring realization work of design decisions can be automated. Since the concepts are generic and not bound to design decisions, other recurring work on models can be automated as well, for instance, design patterns and refactorings. With such a technology at hand, design decision realizations can easily be specified and parts of the realization work can be automated. A binding is produced as a by-product that links documented decision outcomes to design model elements which are affected by the respective decisions. With a set of constraints, such a binding can be used to validate the consistency between the design and made design decisions. Whenever the evolving design models become inconsistent with realized decisions, developers are notified about the violations. The violations can be fixed by correcting the design, adjusting the binding, or by ignoring the causes. This substitutes manual reviews to some extent. The concepts, implemented in a tool, have been validated with design patterns, refactorings, and domain level tests that comprise a replay of a real project. This proves the applicability of the solution to realistic examples. The implementation of model-independent differences, called MPatch, is further contributed to the Eclipse open source project.
|Place of publication||Kgs. Lyngby, Denmark|
|Publisher||Technical University of Denmark (DTU)|
No data available