Developing and Evolving Software Product Lines From Existing Software Systems
Software Product Lines, Extractive approach, Reengineering legacy applications into software product lines. Software evolution.
A software product line (SPL) represents a family of related systems that share commonalities and variabilities to meet the needs of a specific market or mission. The adoption of SPL has been applied in several areas in the software industry due to the benefits achieved, such as reduction of development costs, quality improvement and reduction of time to market. However, distinct scenarios can be found when developing a SPL, which lead to 3 approaches for adopting a SPL: (1) proactive approach: there areno software being developed and a SPLis developed from scratch; (2) reactive approach: there is a SPL which is evolved to address new features and products; (3) extractive approach: SPL is developed from the assets of a system or a set of related systems that are already in production. In the context of the extractive and reactive approaches, this dissertation aims to define a method to develop a SPL from existing systems implemented in the Java language. A practical study that extracts and evolves a SPL of the domain of space allocation management is used as a background to define the method.