Auflistung nach Autor:in "Bittner, Paul Maximilian"
1 - 6 von 6
Treffer pro Seite
Sortieroptionen
- KonferenzbeitragClassifying Edits to Variability in Source Code - Summary(Software Engineering 2023, 2023) Bittner, Paul Maximilian; Tinnes, Christof; Schultheiß, Alexander; Viegener, Sören; Kehrer, Timo; Thüm, ThomasWe report about recent research on edit classification in configurable software, originally published at the 30th Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) 2022 [Bi22]. For highly configurable software systems, such as the Linux kernel, maintaining and evolving variability information along changes to source code poses a major challenge. While source code itself may be edited, also feature-to-code mappings may be introduced, removed, or changed. In practice, such edits are often conducted ad-hoc and without proper documentation. To support the maintenance and evolution of variability, it is desirable to understand the impact of each edit on the variability. We propose the first complete and unambiguous classification of edits to variability in source code by means of a catalog of edit classes. This catalog is based on a scheme that can be used to build classifications that are complete and unambiguous by construction. To this end, we introduce a complete and sound model for edits to variability. In about 21.5 ms per commit, we validate the correctness, relevance, and suitability of our classification by classifying each edit in 1.7 million commits in the change histories of 44 open-source software systems automatically.
- KonferenzbeitragEvaluating State-of-the-Art #SAT Solvers on Industrial Configuration Spaces(Software Engineering 2024 (SE 2024), 2024) Sundermann, Chico; Heß, Tobias; Nieke, Michael; Bittner, Paul Maximilian; Young, Jeffrey M.; Thüm, Thomas; Schaefer, Ina
- KonferenzbeitragFeature Trace Recording - Summary(Software Engineering 2022, 2022) Bittner, Paul Maximilian; Schultheiß, Alexander; Thüm, Thomas; Kehrer, Timo; Young, Jeffrey M.; Linsbauer, LukasIn this work, we report about recent research on Feature Trace Recording, originally published at the Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) 2021. Tracing requirements to their implementation is crucial to all stakeholders of a software development process. When managing software variability, requirements are typically expressed in terms of features, a feature being a user-visible characteristic of the software. While feature traces are fully documented in software product lines, ad-hoc branching and forking, known as clone-and-own, is still the dominant way for developing multi-variant software systems in practice. Retroactive migration to product lines suffers from uncertainties and high effort because knowledge of feature traces must be recovered but is scattered across teams or even lost. We propose a semi-automated methodology for recording feature traces proactively, during software development when the necessary knowledge is present. To support the ongoing development of previously unmanaged clone-and-own projects, we explicitly deal with the absence of domain knowledge for both existing and new source code. We evaluate feature trace recording by replaying code edit patterns from the history of two real-world product lines. Our results show that feature trace recording reduces the manual effort to specify traces.
- KonferenzbeitragQuantifying the Potential to Automate the Synchronization of Variants in Clone-and-Own - Summary(Software Engineering 2023, 2023) Schultheiß, Alexander; Bittner, Paul Maximilian; Thüm, Thomas; Kehrer, TimoWe report about a recent empirical study on variant synchronization in clone-and-own, originally published at the 38th IEEE International Conference on Software Maintenance and Evolution (ICSME) 2022 [Sc22]. In clone-and-own, a new variant of a software system is created by copying and adapting an existing one. While it is flexible, clone-and-own causes high maintenance effort in the long run as cloned variants evolve in parallel; certain changes, such as bug fixes, need to be propagated between variants. A recent line of research proposes to automate such synchronization tasks when migration to a software product line is not feasible. However, it is yet unclear how far this synchronization can actually be pushed. We present an empirical study in which we quantify the potential to automate the synchronization of variants in clone-and-own. We simulate automated variant synchronization using the history of BusyBox, a real-world multi-variant software system. Our results indicate that existing patching techniques propagate changes with an accuracy of up to 85%, if applied consistently from the start of a project. This can be even further improved to 93% by exploiting lightweight domain knowledge about which features are affected by a change, and which variants implement affected features.
- KonferenzbeitragScalable N-Way Model Matching Using Multi-Dimensional Search Trees - Summary(Software Engineering 2022, 2022) Schultheiß, Alexander; Bittner, Paul Maximilian; Thüm, Thomas; Kehrer, TimoIn this work, we report about recent research on n-way model matching, originally published at the International Conference on Model Driven Engineering Languages and Systems (MODELS) 2021. Model matching algorithms are used to identify common elements in input models, which is a fundamental precondition for many software engineering tasks, such as merging software variants or views. If there are multiple input models, an n-way matching algorithm that simultaneously processes all models typically produces better results than the sequential application of two-way matching algorithms. However, existing algorithms for n-way matching do not scale well, as the computational effort grows fast in the number of models and their size. We propose a scalable n-way model matching algorithm, which uses multi-dimensional search trees for efficiently finding suitable match candidates through range queries. We implemented our generic algorithm named RaQuN (Range Queries on N input models) in Java, and empirically evaluate the matching quality and runtime performance on several datasets of different origin and model type. Compared to the state-of-the-art, our experimental results show a performance improvement by an order of magnitude, while delivering matching results of better quality.
- KonferenzbeitragVariational Satisfiability Solving: Efficiently Solving Lots of Related SAT Problems - Summary(Software Engineering 2023, 2023) Young, Jeffrey M.; Bittner, Paul Maximilian; Walkingshaw, Eric; Thüm, ThomasWe report about recent research on satisfiability solving for variational domains, originally published in 2022 in the Empirical Software Engineering Journal (EMSE) within the special issue on configurable systems[ Yo22]. Incremental SAT solving is an extension of classic SAT solving that enables solving a set of related SAT problems by identifying and exploiting shared terms. However, using incremental solvers effectively is hard since performance is sensitive to the input order of subterms and results must be tracked manually. This paper translates the ordering problem to an encoding problem and automates the use of incremental solving. We introduce variational SAT solving, which differs from incremental solving by accepting all related problems as a single variational input and returning all results as a single variational output. Variational SAT solving automates the interaction with the incremental solver and enables a method to automatically optimize sharing in the input. We formalize a variational SAT algorithm, construct a prototype variational solver, and perform an empirical analysis on two real-world datasets that applied incremental solvers to software evolution scenarios. We show that the prototype solver scales better for these problems than four off-the-shelf incremental solvers while also automatically tracking individual results.