Product Line Requirements Reuse Based on Variability Management

As organizations respond to changing environments new software products emerge as a compromise between customer requirements, extensions of existing products and commercial needs. Success emanates from the processes and technology used to capture, adapt and manage the deep knowledge of existing products or services. In this tutorial we describe how requirements for a product line can be captured, managed and reused to generate the requirements for innovative new products, and how requirements selections for new products are often constrained by the design of the existing product line architecture. A key technical issue is the efficient management of the commonality and variability of requirements between products. One approach is to establish a pool of reusable requirements and to construct the requirements for a new product by making a selection from the pool. A concern of this approach is the efficient and clean selection of a consistent combination of requirements. A consistent combination is one in which the requirements selected satisfy all constraints imposed by the pool of reusable requirements. Critical issues are the management of requirements variability across different products, the management of inter-dependencies between selection decisions from the pool, the constraints placed upon these selections by existing architectures and being able to manage each of these issues when the number of requirements is very large. We address these concerns, present results of using these techniques for real-world applications, and describe some software tools that can be used to support them.