Understanding the Re-Engineering of Variant-Rich Systems: An Empirical Work on Economics, Knowledge, Traceability, and Practices

Onderzoeksoutput: ScriptieDissertatie 4 (Onderzoek NIET TU/e / Promotie NIET TU/e)

Samenvatting

Context: Most modern software systems exist in different variants to address a variety of requirements, such as customer requests, regulations, or hardware restrictions. To benefit from the high commonality between variants, such variant-rich systems (e.g., Linux kernel, automotive software, webservers) usually reuse existing artifacts (which implement so-called features). In fact, in many organizations, a variant-rich system establishes itself over time through developers using clone & own (i.e., copying and adapting a variant) as a reuse strategy. Typically, the maintenance burden of having numerous separated variants forces an organization to re-engineer its cloned variants into a reusable platform by adopting concepts of software product-line engineering. Despite the practical prevalence of this re-engineering scenario, most research on decision support has focused on the proactive adoption (i.e., starting from scratch) of platform engineering.

Objective: In this dissertation, we empirically study four closely related properties in the context of variant-rich systems, namely economics, knowledge, traceability, and practices. Note that, while we focus on the re-engineering of cloned variants into a platform, many of our findings are relevant for engineering any (variant-rich) software system. More precisely, we aim to contribute an empirics-based body-of-knowledge that can guide organizations in planning and monitoring their (re-)engineering projects. In parallel, our studies advance on educated guesses, which are widely used to reason on variant-rich systems. To this end, we aim to provide economical data that allows to compare and understand the differences between clone & own and platform engineering. Since our findings highlight the economical impact and close relation of knowledge and feature traceability, we further aim to provide a detailed understanding of these two properties in the context of re-engineering projects. Finally, we aim to synthesize all of our findings and connect them to contemporary software-engineering practices to derive processes and recommendations for planning, initiating,
steering, and monitoring platform engineering.

Method: To address our objectives, we relied on a number of empirical research methods to collect data from various sources. In most cases, we built on eliciting qualitative data from the literature, which we identified through systematic literature reviews. To enrich that data, we conducted interview and online surveys, measurement and multi-case studies, as well as experiments; which we selected and employed based on their feasibility to address a certain objective. By synthesizing from different sources, we aimed to improve the validity of our data to provide reliable insights for researchers and practitioners.

Results: On an abstract level, we can summarize four key contributions. First, we contribute a rich dataset on the economics of (re-)engineering variant-rich systems, from which we derive the core insight that moving towards platform engineering (e.g., more systematic clone management) is economically promising. Second, we contribute an understanding of developers’ memory and how to support their knowledge needs, leading to the core insight that expensive recovery activities can be mitigated by enforcing suitable documentation techniques (e.g., feature traceability). Third, we contribute insights on how different feature traces impact developers’ program comprehension, based on which our core insight is that feature traceability should ideally be independent of configurability. Finally, we contribute a process model and recommendations on how to (re-)engineer variant-rich systems, with our core insight being that carefully planning and periodically assessing a variant-rich system helps to exploit its full potential (e.g., in terms of cost savings).

Conclusion: Overall, we provide detailed insights into four important properties that help organizations as well as researchers understand and guide (re-)engineering projects for variant-rich systems. We discuss these insights and their connections to each other as well as to contemporary software-engineering practices, enabling others to adopt them to different scenarios. So, our contributions involve the synthesis and considerable extension of the existing body-of-knowledge on (re-)engineering variant-rich systems.
Originele taal-2Engels
KwalificatieDoctor in de Filosofie
Toekennende instantie
  • Otto-von-Guericke University Magdeburg
Begeleider(s)/adviseur
  • Leich, Thomas, Begeleider, Externe Persoon
  • Saake, Gunter, Begeleider, Externe Persoon
  • Bosch, Jan, Commissielid
  • Rabiser, Rick, Commissielid, Externe Persoon
Datum van toekenning10 sep. 2021
DOI's
StatusGepubliceerd - 10 sep. 2021
Extern gepubliceerdJa

Vingerafdruk

Duik in de onderzoeksthema's van 'Understanding the Re-Engineering of Variant-Rich Systems: An Empirical Work on Economics, Knowledge, Traceability, and Practices'. Samen vormen ze een unieke vingerafdruk.

Citeer dit