An agile framework for variability management in software product line engineering [article]

Yaser Ghanam, University Of Calgary, University Of Calgary, Frank Maurer
2012
During the past few years, research in agile product line engineering has been gaining more popularity, driven by the much needed ability to combine the flexibility and high responsiveness of agile methods with the economic advantages of reuse and mass customization offered by software product lines. This dissertation presents a novel framework to manage variability in software product lines in an agile context. By leveraging agile practices such as iterative and incremental development,
more » ... iven development, and refactoring, this dissertation shows that a reactive approach to variability management is indeed feasible. The findings of this research demonstrate that acceptance tests can play an important role in variability elicitation; but they may not be sufficient to deduce implicit constraints from requirements. This issue is addressed by using executable acceptance tests alongside feature models in order to uncover implicit constraints and hidden dependencies. The dissertation also discusses the role of executable acceptance tests in supporting the evolution of variability by providing instantaneous feedback on the impact of adding or removing features or variants. For requirements that cannot be adequately described using acceptance tests such as usability and portability requirements, the dissertation demonstrates how such requirements can be treated using a lightweight and reactive approach. At the implementation level, the results of this research show that realizing variability can occur in a reactive manner provided that proper refactoring and testing practices are followed. The results also illustrate how the process can be made more systematic by using tests as a common starting point to inject variability on-demand. The efficiency of the process can be improved by providing automated tool support. Once variability has been realized in the system, the dissertation discusses how individual products can be built using the derivation technique or the instantiation technique. Finally, the dissertation [...]
doi:10.11575/prism/24810 fatcat:ynn6uzzjmnc65csta6y2s2wure