- Software Engineering Research
- Advanced Software Engineering Methodologies
- Software System Performance and Reliability
- Service-Oriented Architecture and Web Services
- Software Reliability and Analysis Research
- Software Engineering Techniques and Practices
- Software Testing and Debugging Techniques
- Model-Driven Software Engineering Techniques
- Open Source Software Innovations
- Logic, programming, and type systems
- Formal Methods in Verification
- X-ray Diffraction in Crystallography
- Crystallization and Solubility Studies
- Real-Time Systems Scheduling
- Parallel Computing and Optimization Techniques
- Distributed systems and fault tolerance
- Crystallography and molecular interactions
- EEG and Brain-Computer Interfaces
- Distributed and Parallel Computing Systems
- Scientific Computing and Data Management
- Advanced Malware Detection Techniques
- Cloud Computing and Resource Management
- Attention Deficit Hyperactivity Disorder
- Complex Network Analysis Techniques
- Business Process Modeling and Analysis
Saarland University
2019-2025
Siemens (Germany)
2023
University of Maroua
2021
University of Passau
2011-2020
Otto-von-Guericke University Magdeburg
2005-2010
TU Dresden
2009
University Hospital Magdeburg
2006-2007
Building software product lines (SPLs) with features is a challenging task. Many SPL implementations support coarse granularity - e.g., the ability to add and wrap entire methods. However, fine-grained extensions, like adding statement in middle of method, either require intricate workarounds or obfuscate base code annotations. Though many SPLs can have been implemented existing approaches, extensions are essential when extracting from legacy applications. Furthermore, also some could...
Feature-oriented software development (FOSD) is a paradigm for the construction, customization, and synthesis of large-scale systems. In this survey, we give an overview personal perspective on roots FOSD, connections to other paradigms, recent developments in field. Our aim point between different lines research identify open issues.
Over 30 years ago, the preprocessor cpp was developed to extend programming language C by lightweight metaprogramming capabilities. Despite its error-proneness and low abstraction level, is still widely used in present-day software projects implement variable software. However, not much known about how employed variability. To address this issue, we have analyzed forty open-source written C. Specifically, answer following questions: How does program size influence variability? complex are...
Almost every complex software system today is configurable. While configurability has many benefits, it challenges performance prediction, optimization, and debugging. Often, the influences of individual configuration options on are unknown. Worse, may interact, giving rise to a space possibly exponential size. Addressing this challenge, we propose an approach that derives performance-influence model for given configurable system, describing all relevant their interactions. Our combines...
Program comprehension is an important cognitive process that inherently eludes direct measurement. Thus, researchers are struggling with providing suitable programming languages, tools, or coding conventions to support developers in their everyday work. In this paper, we explore whether functional magnetic resonance imaging (fMRI), which well established neuroscience, feasible soundly measure program comprehension. a controlled experiment, observed 17 participants inside fMRI scanner while...
Tools support is crucial for the acceptance of a new programming language. However, providing such tool huge investment that can usually not be provided research With FeatureIDE, we have built an IDE AHEAD integrates all phases feature-oriented software development. To reuse this other tools and languages, refactored FeatureIDE into open source framework encapsulates common ideas development reused extended beyond AHEAD. Among others, implemented extensions FeatureC++ FeatureHouse, but in...
Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition general-purpose concept, it (re)invented and implemented individually for various kinds artifacts. We unify languages tools rely on by using the language-independent model feature structure trees (FSTs). On basis FST model, we propose general approach to artifacts written different languages, Furthermore, offer supporting framework tool chain, called...
Software product line engineering is an efficient means of generating a family program variants for domain from single code base. However, because the potentially high number possible variants, it difficult to test them all and ensure properties like type safety entire line. We present product-line-aware system that can check software without each variant in isolation. Specifically, we extend Featherweight Java calculus with feature annotations product-line development prove formally...
Configurable software systems allow stakeholders to derive program variants by selecting features. Understanding the correlation between feature selections and performance is important for be able a variant that meets their requirements. A major challenge in practice accurately predict based on small sample of measured variants, especially when features interact. We propose variability-aware approach prediction via statistical learning. The works progressively with random samples, without...
Two programming paradigms are gaining attention in the overlapping fields of software product lines (SPLs) and incremental development (ISD). Feature-oriented (FOP) aims at large-scale compositional feature modularity SPLs using ISD. Aspect-oriented (AOP) focuses on modularization crosscutting concerns complex software. Although modules, main abstraction mechanisms FOP, perform well implementing building blocks, they incapable modularizing certain kinds concerns. This weakness is exactly...
Software product lines aim to create highly configurable programs from a set of features. Common belief and recent studies suggest that aspects are well-suited for implementing We evaluate the suitability AspectJ with respect this task by case study refactors embedded database system Berkeley DB into 38 Contrary our initial expectations, results were not encouraging. As number in feature grows, there is noticeable decrease code readability maintainability. Most unique powerful features...
Customizable programs and program families provide user-selectable features to allow users tailor a an application scenario. Knowing in advance which feature selection yields the best performance is difficult because direct measurement of all possible combinations infeasible. Our work aims at predicting based on selected features. However, when interact, accurate predictions are challenging. An interaction occurs particular combination has unexpected influence performance. We present method...
The advent of variability management and generator technology enables users to derive individual variants from a variable code base based on selection desired configuration options. This approach gives rise the generation possibly billions that, however, cannot be efficiently analyzed for errors with classic analysis techniques. To address this issue, researchers practitioners usually apply sampling heuristics. While reduces effort significantly, information obtained is necessarily...
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping which called, but also where or when—under invocation with announcement, the call site contains no signs of that, what it calls. Recently, aspect-oriented programming has popularized as a possibility separate concerns that lead interwoven code if conventional techniques used. However, been noted elsewhere, currently implemented...
Almost every software system provides configuration options to tailor the target platform and application scenario. Often, this configurability renders analysis of individual infeasible. To address problem, researchers have proposed a diverse set sampling algorithms. We present comparative study 10 state-of-the-art algorithms regarding their fault-detection capability size sample sets. The former is important improve quality latter reduce time analysis. In nutshell, we found that with larger...
Product-line technology is increasingly used in mission-critical and safety-critical applications. Hence, researchers are developing verification approaches that follow different strategies to cope with the specific properties of product lines. While research community discussing mutual strengths weaknesses - mostly at a conceptual level there lack evidence terms case studies, tool implementations, experiments. We have collected prepared six lines as subject systems for experimentation....
Customizable programs and program families provide user-selectable features to allow users tailor a an application scenario. Knowing in advance which feature selection yields the best performance is difficult because direct measurement of all possible combinations infeasible. Our work aims at predicting based on selected features. However, when interact, accurate predictions are challenging. An interaction occurs particular combination has unexpected influence performance. We present method...
Empirical methods have grown common in software engineering, but there is no consensus on how to apply them properly. Is practical relevance key? Do internally valid studies any value? Should we replicate more address the tradeoff between internal and external validity? We asked community empirical research should take place with a focus validity replication, complemented literature review about status of engineering. found that opinions differ considerably, when or conduct replications.
A software product line is a set of products that are distinguished in terms features (i.e., end-user-visible units behavior). Feature interactions —situations which the combination leads to emergent and possibly critical behavior— major source failures lines. We explore how feature-aware verification can improve automatic detection feature Feature-aware uses product-line-verification techniques supports specification properties along with separate composable units. It integrates technique...