Please use this identifier to cite or link to this item:
http://dx.doi.org/10.25673/14010
Title: | Analysis techniques to support the evolution of variant-rich software systems |
Author(s): | Schulze, Sandro |
Referee(s): | Saake, Gunter |
Granting Institution: | Otto-von-Guericke-Universität Magdeburg, Fakultät für Informatik |
Issue Date: | 2019 |
Extent: | xvi, 70 Seiten |
Type: | Hochschulschrift |
Type: | Habilitation |
Exam Date: | 2019 |
Language: | English |
URN: | urn:nbn:de:gbv:ma9:1-1981185920-141417 |
Subjects: | Software engineering |
Abstract: | Software is eating the world is a common saying nowadays, paraphrasing the fact that
software influences almost all parts of industry or our daily life. This makes software
subject to mass production while at the same time, there is an increasing demand for
customization of software systems to adhere to specific requirements of users or environments.
As a result, a software system is developed in many similar, yet di↵erent
variants, thus, constituting a variant-rich software system. To enable development of
such variant-rich systems, two approaches are commonly used: First, structured reuse
by means of integrated variability allows to specify the di↵erences between variants
on domain and implementation level. Second, adhoc reuse by means of clone-and-own,
which reuses existing variants by copying them and afterwards, apply the required modifications
(e.g., code changes) to achieve the desired variant. While both are commonly
used, they raise challenges to the evolution of variant-rich system for aspects such as
maintainability, testability, extensibility or reliability.
In my research, I have developed techniques that allow to understand the reasons behind
evolutionary challenges and how to identify and mitigate them. In this thesis, I
summarize this research, mainly conducted within the last 4 years. In particular, I will
present empirical as well as evolutionary analysis techniques to better understand the
problems that integrated variability cause for developers and system quality. For cloneand-
own systems, I will present reverse engineering techniques for di↵erent artefact
types (models, requirements) that aim to extract the variability information, and thus,
provide developers with a global and unified view of all variants under development. Software ist auf dem Vormarsch. Ob durch voranschreitende Technologien, eine zunehmende Automatisierung oder die vielbeschworene Digitalisierung; Software beeinflusst mittlerweile fast alle Bereiche der Industrie oder unseres täglichen Lebens. Dies macht Software zu einem Gegenstand der Massenproduktion, während gleichzeitig die Nachfrage nach Anpassungen von Softwaresystemen an spezifische Anforderungen von Benutzern oder Umgebungen zunimmt. Infolgedessen wird ein Softwaresystem in vielen ähnlichen, aber unterschiedlichen Varianten entwickelt und bildet somit ein variantenreiches Softwaresystem. Um die Entwicklung derartiger variantenreicher Systeme zu ermöglichen, werden im Allgemeinen zwei Ansätze verwendet: Erstens ermöglicht die strukturierte Wiederverwendung mittels integrierter Variabilität, die Unterschiede zwischen Varianten auf Domänen- und Implementierungsebene zu definieren. Zweitens, Ad-hoc Wiederverwendung mittels clone-and-own, wobei vorhandene Varianten durch Kopieren wiederverwendet werden und anschließend die erforderlichen Modifikationen (z.B. Codeänderungen) auf der kopierten Variante durchgeführt werden, um das gewünschte Ergebnis zu erreichen. Obwohl beide häufig verwendet werden, stellen sie hinsichtlich der Wartbarkeit, Testbarkeit, Erweiterbarkeit oder Zuverlässigkeit die Entwicklung variantenreicher Systeme vor große Herausforderungen. In meiner Forschung habe ich Techniken entwickelt, die es ermöglichen, die Gründe für diese evolution¨aren Herausforderungen zu verstehen, zu erkennen und zu begrenzen. In dieser Arbeit fasse ich diese Forschung zusammen, die hauptsächlich in den letzten 4 Jahren durchgeführt wurde. Insbesondere werde ich sowohl empirische als auch evolutionäre Analysetechniken vorstellen, um die Probleme, die die integrierte Variabilität für Entwickler und die Systemqualität verursacht, besser zu verstehen. Für clone-andown Systeme werde ich Reverse Engineering Techniken für verschiedene Artefakttypen (Modelle, Anforderungen) vorstellen, die darauf abzielen, die Informationen zur Variabilität zu extrahieren, und so Entwicklern eine globale und einheitliche Ansicht aller in der Entwicklung befindlichen Varianten bieten. |
URI: | https://opendata.uni-halle.de//handle/1981185920/14141 http://dx.doi.org/10.25673/14010 |
Open Access: | Open access publication |
License: | (CC BY-SA 4.0) Creative Commons Attribution ShareAlike 4.0 |
Appears in Collections: | Fakultät für Informatik |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Schulze_Sandro_Habil_2019.pdf | Habilitation | 14.07 MB | Adobe PDF | View/Open |