Bitte benutzen Sie diese Referenz, um auf diese Ressource zu verweisen: doi:10.22028/D291-41941
Titel: Understanding variability in space and time : analyzing features and revisions in concert
VerfasserIn: Sattler, Florian Ferdinand
Sprache: Englisch
Erscheinungsjahr: 2023
DDC-Sachgruppe: 004 Informatik
500 Naturwissenschaften
600 Technik
Dokumenttyp: Dissertation
Abstract: The static or dynamic analysis of configurable software systems imposes significant challenges regarding complexity and computation time due to the software systems’ large configuration spaces. These are aggravated by the evolution of software systems: developers frequently produce new revisions, adapting and modifying the system. Thereby, analysis results can quickly become out of date or are difficult to interpret. For example, debugging configuration-specific performance bugs is difficult by itself, but it becomes even more challenging in an evolving system. A helpful analysis tool should provide not only accurate configuration-specific performance measurements but also put them into the development context of the project. Through the development context, results are attributed to a more specific scope or developer and, by that, can be easier interpreted. The key problem is that current analyses, even when specialized for configurable software systems, cannot contextualize their findings within the development context of the software project in question. To address this problem, we need to empower program analyses to incorporate variability information. That is, we enable them to integrate information about the configurability of the system as well as the evolutionary context. To achieve a better integration, we propose a unified abstraction of code regions that provides variability information to existing program analyses. That is, we map information about configuration variability as well as evolutionary variability onto a low-level intermediate program representation on which existing program analyses operate and provide variability information through a uniform interface. This has two main advantages: (1) by decoupling program analysis semantics from variability information, individual program analyses as well as the different types of variability information become reusable; (2) by mapping variability information onto the program representation used by existing program analyses, we make the analyses and their results extendable with variability information without requiring changes to the analysis. This way, we enable existing program analyses to relate and interpret their results in the context of variability. Through a product-line-based design, we make both variability information and analyses reusable and freely combinable, helping researchers to incorporate variability information into their work (e.g., to contextualize their analysis results with evolutionary information). In this thesis, we demonstrate the applicability of a uniform abstraction of code regions by addressing two novel research problems: First, we combine evolutionary information, mined from software repositories, with an inter-procedural data-flow analysis to determine how evolutionary changes interact within a software project, revealing new and interesting connections between changes and developers. Furthermore, our work shows that existing program analysis results can be contextualized in the socio-technical context of a software project through the provided evolutionary information. Second, we combine different automated localization approaches that detect configuration-specific code with \sota performance profilers to enable configuration-aware performance profiling. Our results show that this enables performance profilers to attribute performance regressions directly to configuration options without introducing unnecessary overhead.
Die statische oder dynamische Analyse von konfigurierbaren Softwaresystemen stellt durch die großen Konfigurationsräume von Softwaresystemen Herausforderungen im Bezug auf Komplexität und Rechenzeit dar. Durch die Evolution von Softwaresystemen wird dies noch verschärft: Die Entwickler erstellen ständig neue Revisionen, wodurch das System anpassen und modifizieren wird. Aufgrund dessen können Analyseergebnisse schnell veralten oder schwer zu interpretieren sein. Zum Beispiel ist das Debuggen von konfigurationsbezogenen Performanceregressionen an sich schon schwierig, wird aber in einem sich entwickelnden System noch schwieriger. Daher sollte ein hilfreiches Analysewerkzeug nicht nur genaue konfigurationsbezogene Performanceregressionen liefern, sondern diese auch in den Entwicklungskontext des Projekts einordnen. Durch den Entwicklungskontext werden die Ergebnisse einem spezifischeren Bereich oder einer Person zugeordnet und lassen sich so leichter interpretieren. Das Hauptproblem hierbei ist, dass gegenwärtige Analysen, selbst wenn sie auf konfigurierbare Softwaresysteme spezialisiert sind, ihre Ergebnisse nicht in den Entwicklungskontext des Softwareprojekts einordnen können. Um dieses Problem zu lösen, müssen wir Programmanalysen die Integration von Variabilitätsinformationen—das heißt Informationen über die Konfigurierbarkeit des Systems und den evolutionären Kontext—erleichtern. Um die Integration zu erleichtern, schlagen wir eine einheitliche Abstraktion durch Coderegionen vor, welche die Variabilitätsinformationen für bestehende Programmanalysen bereitstellt. Das heißt, wir bilden Informationen über Konfigurationsvariabilität sowie über evolutionäre Variabilität auf eine Low-Level-Zwischenprogrammrepräsentation ab, auf der bestehende Programmanalysen bereits arbeiten, und stellen Variabilitätsinformationen über eine einheitliche Schnittstelle bereit. Dadurch haben wir zwei Vorteile: (1) Durch die Entkopplung der Analysesemantik von der Variabilitätsinformation werden sowohl die Analysen als auch die verschiedenen Arten von Variabilitätsinformationen wiederverwendbar; (2) durch die Abbildung von Variabilitätsinformationen auf die Programmrepräsentation, die von bestehenden Programmanalysen verwendet wird, machen wir die Analysen und ihre Ergebnisse mit Variabilitätsinformationen erweiterbar, ohne dabei die Analyse verändern zu müssen. Das heißt, wir ermöglichen es Analyseergebnisse auch im Kontext von Variabilität mit dieser in Beziehung zu setzen und zu interpretieren. Durch ein produktlinienbasiertes Design sorgt unsere Abstraktion dafür, dass sowohl Variabilitätsinformationen als auch Analysen wiederverwendbar und frei kombinierbar werden. Auf diese Weise ermöglichen wir es Forschern, Variabilitätsinformationen in ihre Arbeit einzubeziehen (z. B. um ihre Analyseergebnisse mit evolutionären Informationen zu kontextualisieren). In dieser Arbeit demonstrieren wir die Anwendbarkeit unserer einheitlichen Coderegionen-Abstraktion, an zwei bisher ungelöste Forschungsproblemen. Erstens verwenden wir evolutionäre Informationen aus Software-Repositories zusammen mit einer inter-prozeduralen Datenflussanalyse, um festzustellen, wie evolutionäre Änderungen innerhalb eines Softwareprojekts interagieren, wodurch neue und interessante Verbindungen zwischen Änderungen und Entwicklern aufgedeckt werden. Unsere Arbeit zeigt außerdem, dass bestehende Analyseergebnisse durch das Bereitgestellen von evolutionären Informationen mithilfe des sozio-technischen Kontexts eines Softwareprojekts kontextualisiert werden können. Zweitens kombinieren wir verschiedene Lokalisierungsansätze, die konfigurationsspezifischen Code erkennen, mit aktuellen Performance-Profilern, um ein konfigurationsbezogenes Performance- Profiling zu ermöglichen. Unsere Ergebnisse zeigen, dass dies Performance-Profiler in die Lage versetzt, Performanceregressionen direkt den Konfigurationsoptionen zuzuordnen, ohne unnötigen Mehraufwand zu verursachen. Zusammenfassend lässt sich sagen, dass diese Arbeit die Lücke zwischen Variabilitätsinformationen und präziser Programmanalyse schließt. Durch die einheitliche Abstraktion mithilfe von Coderegionen ermöglichen wir die freie Kombination von Variabilitätsinformationen mit modernsten Programmanalysen und legen so den Grundstein für variabilitätsorientierte Programmanalysen und damit auch für ein besseres Verständnis der Entwicklung konfigurierbarer Softwaresysteme.
Link zu diesem Datensatz: urn:nbn:de:bsz:291--ds-419412
hdl:20.500.11880/37623
http://dx.doi.org/10.22028/D291-41941
Erstgutachter: Apel, Sven
Tag der mündlichen Prüfung: 15-Apr-2024
Datum des Eintrags: 10-Mai-2024
Drittmittel / Förderung: German Research Foundation (DFG): Project "Pervolution" and Collaborative Research Center TRR 248 “Perspicuous Computing”
Fördernummer: AP 206/11-1, AP 206/11-2, SI 2171/2-1, SI 2171/2-2, 389792660
Fakultät: MI - Fakultät für Mathematik und Informatik
Fachrichtung: MI - Informatik
Professur: MI - Prof. Dr. Sven Apel
Sammlung:SciDok - Der Wissenschaftsserver der Universität des Saarlandes

Dateien zu diesem Datensatz:
Datei Beschreibung GrößeFormat 
dissertation_sattler_florian.pdfDissertation4,43 MBAdobe PDFÖffnen/Anzeigen


Diese Ressource wurde unter folgender Copyright-Bestimmung veröffentlicht: Lizenz von Creative Commons Creative Commons