Variability Assessment for Evolving Software Product Families

Sybran Deelstra
Software Engineering and Architecture


The term software product families refer to engineering techniques for creating a collection of similar software systems from a reusable set of software assets. The widespread use of product family engineering in industry is driven by its potential increase in quality and productivity of software development. To achieve this potential, a software product family maintains a product family architecture and set of reusable components to exploit the similarities of its members. The product family supports product diversification through variability, i.e. the ability of a software system or artefact to be extended, changed, customized or configured for use in a specific context. The variability provided by a product family has to undergo continual and timely change, or the product family will risk using the ability to effectively exploit the similarities of its members. To be able to determine whether, when and how variability should evolve in response to changing markets, business needs, and advances in technology, i.e. variability assessment, we developed a technique called COSVAM (The COVAMOF Software Variability Assessment Method). In this talk I will explain the relation between software variability and assessment, present COVAMOF, and discuss each of the 5 steps of COSVAM. The talk is not intended as one-way traffic, however. I would like to reserve the last part of my talk for an informal discussion with respect to validation (of software engineering techniques in general, but COSVAM specifically), and future work (e.g. how to predict in case of incomplete information, an uncertain future, multiple possible evolution paths, or, which factors should be weighed in predicting and selecting a particular evolution strategy, etc).

back to the list of talks