GENEDA
Generation and Evaluation of Design Alternatives for Software Architectures (DFG 2009)

The aim of GenEDA (Generation and Evaluation of Design Alternatives for Software Architectures) is to examine how non-functional requirements can be used for systematic generation of design alternatives for software system architectures. In particular, the project focuses on performance, scalability, security, and reliability in this context. Methods shall be developed not just for generating but also for evaluating design alternatives based on those non-functional requirements. These methods respect the deployment environment (domain knowledge) and are based on patterns, i.e. on problem patterns as well as solution patterns. A case study is used for evaluating the results.
In the successor project, we aim at deepening and broadening our current methodology by taking into account two new dimensions, namely evolvability and variability, and two new methodical extensions, namely interaction and trade-off analysis as well as optimization.
Since most software projects do not develop new software from scratch but are based on existing software, evolvability is highly important in practice. Therefore, one of the goals of the successor project is to additionally consider evolvability as a quality attribute and integrate it into our methodology from the predecessor project.
As many software products do not exist in only one variant but in several variants, software product lines (SPLs) are of great practical relevance. SPLs mostly focus on functional or technical variability. In the context of investigating quality requirements and their interplay with software architecture, we aim at integrating quality considerations into software product line engineering.
Generating valid architecture alternatives requires a set of conflict-free functional and quality requirements. Therefore, we plan to extend our methodology from the predecessor project by providing support for finding and resolving undesirable interactions between quality requirements or between quality requirements and functional requirements.
We want to provide better decision support for software engineers when choosing among different design alternatives. For this purpose, we want to set up optimization problems and use state-of-the-art techniques to automatically generate architectures, which are optimal with respect to a certain fitness function.
Finally, the GenEDA approach will be consolidated to an overall method with tool support. The validation of the method will be conducted by applying it to real-life case studies.