Tool-Aided Use of Software Design Patterns in Model-Driven Software Development

When developing complex, long-living software systems, approved design solutions in form of design patterns are applied to achieve desired software properties like adaptability and extendability. Due to missing or obsolete documentation, developers often loose sight of such design pattern applications when further developing the software systems. This leads to loss of the originally intended software properties and to design erosion. In addition, with increasing software age and its degree of complexity the effort for maintenance and the software system's further development is rising.

In this Ph.D. project, languages and methods are developed that aid software developers with applying, documenting, and validating software design patterns in model-driven software development. For that purpose, languages for the formal description of object-oriented design patterns and their applications are defined, an approach for the semi-automatic pattern application in a software design model and for modelling the pattern applications for documentation purposes are developed, and methods for automatically validating pattern applications in case of design changes are explored. The concepts are prototypically implemented in a development environment and exemplarily proven by means of EMF-based models and a selection of design patterns.

Contact: Dietrich Travkin