Reactive Variability Realization with Test Driven Development and Refactoring.
Glauco Silva Neves, Patrícia Vilain · Software Engineering and Knowledge Engineering · 2014
Software product line is a practice that has proven its advantages since it can offer to a company the reduction of time to market, the decrease of development costs, the increase of productivity and the improvement of the final product quality. However, this practice requires a high initial investment and offers long-term risks to dynamic markets where changes are difficult to predict. One of these markets is the mobile application development, which presents a growing demand, with smartphone and tablets having already surpassed sales of PCs and notebooks. Currently, proposals bring the advantages of software product line for dynamic markets through the use of agile software development practices, which is called Agile Product Line Engineering (APLE). This paper investigates the use of test-driven development (TDD) and refactoring techniques for performing reactive variability in APLE. The variability mechanism chosen is the configuration file that allows achieving more than one platform, an important problem in mobile application development. In that manner, new products can be built as needed, without the high upfront investment, but with a code easier to maintain. KeywordsSoftware product line, test-driven development, refactoring, variability realization