Linking Design Decisions to Design Models in Model-Based Software Development [chapter]

Patrick Könemann, Olaf Zimmermann
2010 Lecture Notes in Computer Science  
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
more » ... sions 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 ii 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. Resumé Ved udviklingen af software systemer er der taget design beslutninger, som er vigtige artefakter til design dokumentation. Dedikeret beslutningsmanagementsystemer bruges ofte til at dokumentere design viden. De fleste vaerktøjer er dog adskilt fra designet af systemet. I model-baseret software udvikling har resultaterne af mange design beslutninger stor indflydelse på design modellerne. Normalt kraever det manuelt og besvaerligt arbejde at realisere design beslutninger i design modellerne. Desuden er det en tidskraevende manuel opgave, at holde design modeller i overensstemmelse med alle trufne beslutninger, som ofte foretages i peer reviews. I denne afhandling blev der udviklet en teknologi til specifikation af realiseringer af design beslutninger. De koncepter, der kaldes model-independent differences, omfatter en generisk teknologi til udvinding af forskelle fra modeller og overføre dem til andre modeller. På denne måde kan gentagne realiseringer af design beslutninger automatiseres. Da koncepterne er generiske og ikke bundet til design beslutninger, kan også andet gentagende arbejde på modeller automatiseres, for eksempel design patterns og refactorings. Med sådan en teknologi ved hånden kan realiseringer af design beslutninger nemt specificeres og noget af realiserings arbejdet kan automatiseres. En binding fremstilles som et biprodukt, som forbinder dokumenterede beslutninger med model elementer, der er berørt af de respektive beslutninger. Med et saet af begraensninger kan sådan en binding bruges til at validere sammenhaengen mellem design og realiserede beslutninger. Når design under udvikling bliver uforeneligt med trufne design beslutninger, bliver udviklerne underrettet herom. Uoverensstemmelser kan rettes ved at korrigere design, tilpasse binding eller ignorereårsagerne. Denne metode erstatter manuelle reviewes i vid udstraekning. iv Disse koncepter, som er blevet implementeret i et vaerktøj, blev valideret med design patterns, refactorings og domain level tests, som omfatter en replay af et reelt projekt. Dette beviser anvendeligheden af løsningen til realistiske eksempler. Implementeringen af model-independent differences, kaldet MPatch, er yderligere bidraget til open-source projektet Eclipse.
doi:10.1007/978-3-642-15114-9_19 fatcat:5owtl7hvezbjvorgjmffydreiy