Concept: Software Evolution and SPL
Two concepts are essential to the underestanding of this process definition. The first one is Software Product Line (SPL), and the second one is Software Evolution Management, more precisely, Evolution Management in the context of SPL.

Evolution Management can be expanded in the Core Areas of this process: Change, Release and Build Management, Configuration Identification, Version Control, SCM Support Activities and Product Configuration.
Main Description

Software evolution is widely recognized as the process by which programs change shape, adapt to the marketplace and inherit characteristics from preexisting programs.

In Software Engineering, the key area responsible for controlling the software evolution is software configuration management (SCM). SCM is the task of tracking and controlling changes in the software, in order to garantee the integrity of the whole software as it changes and evolves.

Evolution in traditional software engineering, where a single system is developed, occurs generally in the maintenance phase of software life cycle. A system is developed according to the initial customer requirements, and normally has limited possibilities to incorporate new requirements [15]. On the other hand, in the product-line approach, a set of software-intensive systems shares a common and managed set of features, satisfying the specifics needs of a particular market segment, and all products are developed from a common set of core assets in a prescribed way [1]. In this context, the overall scenario changes, since new challenges arises such as software assets variability, requirements management, architecture design to support all products and verification and validation of the products in the product line. Some of these challenges have a mature solution in the industry or academy. In terms of evolution, a product line is a continuously evolving organism, and for that, evolution should be managed properly to achieve all benefits of this approach. This makes configuration managementand other evolution techniques more challenging than in traditional single software development [15]. Evolution in a product line is complicated by the fact that an asset is shared among products, and any change in this asset may affect on several products [22].

Inside the evolution and maintenance of software product lines, different sub-areas or topics can be highlighted such as version control tools to support the development, processes, and planning issues.


Configuration Management and Software Product Lines

Configuration Management and Software Product Lines