2.1. Software Product Lines
A software product line is a set of products sharing a common, managed set of reusable components (Pohl, Böckle, & Van Der Linden, 2005). SPLE is largely divided into the domain engineering process and application engineering process. In the domain engineering process, commonality and variability between products are derived in order to establish reusable core assets, leading to effective production in application engineering. SPLE provides methods for selective assembly of required components to produce a system that matches market requirements. Existing commonality and variability elements should be managed with pre-planned methods to respond immediately to specific market requirements and business strategies, and to reduce time-to-market.
Even though the management of variability has a major role in successful software product line engineering (Pohl & Metzger, 2006), variability management during development of a product line was shortly considered. The product line is developed in the domain engineering and specific products are developed in the application engineering. Variability management focuses on the different phases of the domain engineering. Through variability modeling, it is possible to trace changes on variability between developed artifacts at different phases. To resolve this issue, the development team proposed a variability traceability approach, which is presented in Section 3.