Research
Overview
Our research focuses on methods, tools, and theories for the construction of manageable, reliable, adaptable, and evolvable software systems, ranging from embedded systems to large-scale systems. In our research projects, we concentrate on software product lines, but aim at applying our results also to other fields.
In particular, we are interested in:
- Programming methods (feature orientation, generative techniques, modularity)
- Software engineering (variability, feature interactions, domain-specific optimization)
- Empirical methods (program comprehension, the human factor, neuro imaging)
- Formal methods (program algebra, type systems, program analysis)
In our work, we combine formal and empirical methods. Furthermore, we develop tools to demonstrate the practicality of our research results.
Projects
Ongoing
-
Brains On Code – A Neuroscientific Foundation of Program Comprehension
(European Research Council) -
Congruence – Foundations and Implications of Socio-Technical Congruence in Large-Scale, Decentralized, and Distributed Software Projects
(German Research Foundation) -
Pervolution – Performance Evolution of Highly Configurable Software Systems
(German Research Foundation)
Completed
-
ExaStencils – Advanced Stencil-Code Engineering
(German Research Foundation) -
Software Intelligence
(Siemens AG) -
FeatureOpt – Taming and Optimizing Feature Interactions in Software-intensive Automotive Systems
(Austrian Research Promotion Agency) -
Pythia – Techniques and Prediction Models for Sustainable Product-Line Engineering
(German Research Foundation) -
SafeSPL++ – Generation of Correct and Efficient Software based on Product-Line Technology
(Heisenberg Programme, German Research Foundation) -
SafeSPL – Safe and Efficient Software Product Lines
(Emmy-Noether Programme, German Research Foundation) -
FeatureFoundation – Algebra-Based Feature-Oriented Program Synthesis
(German Research Foundation) -
MapReduceFoundation – Typing and Scaling MapReduce
(German Research Foundation)
Tools
- CIDE – Virtual Separation of Concerns
- Codeface – Project Analysis and Dashboard Framework
- coronet – Network Library to Build and Analyze Socio-Technical Developer Networks
- cppstats – Analyzing C Preprocessor Directives
- FeatureHouse – Language-Independent Feature Composition
- FeatureIDE – Feature-Oriented Software Development
- FeatureVisu – Layout-Based Feature Clustering
- Fuji – Feature-Oriented Programming in Java
- JDime – Structured Merge of Software Versions
- SPL Conqueror – Performance Prediction of Software Variants
- SPLverifier – Variability-Aware Model Checking
- TypeChef – Variability-Aware Static Analysis