Design for change is a well-known adagium in software engineering. We separate concerns, employ well-designed interfaces, and the like to ease evolution of the systems we build. W...
Variability modeling techniques are used to specify variable aspects of members of a family of related software artifacts. Instances of variability models are then used to effici...
In the lifecycle of a software product line (SPL), incremental generalization is usually required to extend the variability of existing core assets to support the new or changed ap...