Design-time product line architectures for any-time variability

  • Authors:
  • André van der Hoek

  • Affiliations:
  • Department of Informatics, Donald Bren School of Information and Computer Sciences, University of California, Irvine, CA

  • Venue:
  • Science of Computer Programming - Special issue: Software variability management
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most solutions for introducing variability in a software system are singular: they support one particular point in the software life cycle at which variability can be resolved to select a specific instance of the system. The presence of significantly increased and dissimilar levels of variability in today's software systems requires a flexible approach that supports selection of a system instance at any point in the life cycle--from statically at design time to dynamically at run time. This paper introduces our approach to supporting any-time variability, an approach based on the ubiquitous use of a product line architecture as the organizing abstraction throughout the lifetime of a software system. The product line architecture specifies the variabilities in a system, both in terms of space (captured as explicit variation points) and time (captured as explicit versions of architectural elements). A system instance can be selected at any point in time by providing a set of desired features, expressed as name-value pairs, to an automated selector tool. We introduce our overall approach, discuss our representation and tools for expressing and managing variability, and demonstrate their use with three representative examples of any-time variability.