Abstract

Understanding variability is essential to allow the configuration of software systems to diverse requirements. Variability-aware program analysis techniques have been proposed for analyzing the space of program variants. Such techniques are highly beneficial, e.g., to determine the potential impact of changes during maintenance. This article presents an interprocedural and configuration-aware change impact analysis (CIA) approach for determining the possibly impacted source code elements when changing the source code of a product family. The approach also supports engineers, who are adapting the code of specific product variants after an initial pre-configuration. The approach can be adapted to work with different variability mechanisms, it is more precise than existing CIA approaches, and it can be implemented using standard control flow and data flow analysis. We report evaluation results on the benefit and performance of the approach using industrial product lines.

Highlights

  • Variability is a property of software systems allowing their customization to different application scenarios

  • The approach and application focuses on load-time variability mechanisms, we have shown in Angerer et al (2017) that it can handle annotation-based variability. (ii) The approach provides more precise results than existing change impact analysis (CIA)

  • Our evaluation investigates the benefits regarding complexity reduction and the performance of the configuration-aware CIA approach in two use cases: (i) development and maintenance in domain engineering, i.e., for determining the different product variants affected by a change; and (ii) development and maintenance in application engineering, i.e., for determining code affected by a change made to a specific product variant

Read more

Summary

Introduction

Variability is a property of software systems allowing their customization to different application scenarios. Research on variable software systems has progressed significantly: for instance, researchers in software product lines and feature-oriented software development have developed family approaches (Thüm et al 2014) that allow analyzing the whole space of software variants by exploiting commonalities between variants. Such approaches have been shown to be very effective, for program analysis (Liebig et al 2013). Developers use preprocessor directives (Liebig et al 2010), custom-developed configurators (Lettner et al 2013), aspect-oriented programming (Kiczales et al 1997), delta-oriented programming (Schaefer et al 2010), feature-oriented programming (Apel and Kästner 2009), or load-time configuration options (Lillack et al 2017) to name but a few

Objectives
Methods
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call