DescriptionSoftware reuse and reusability range from operational, ad-hoc and short-term to strategic, planned and long-term. Often the focus of attention is just on code or low-level design. In contrast, this tutorial focuses attention on require-ments-led reuse. It presents and compares two requirements-led approaches to strengthen product line engineering and case-based reasoning, and introduces the notion of a feature-similarity Model for combining these approaches. The first approach deals with requirements reuse and reusability in the context of product line engineering and plat-form eco-system development. It makes the relationships between product line requirements explicit, and addresses the key issue of managing requirements commonality and variability across different products. Requirements for a product line can then be modelled, selected and reused to engineer consistently the requirements for innovative new products. The second approach deals with requirements reuse and reusability in the context of case-based reasoning. Instead of making the relationships between case requirements (or other artefacts) explicit, similarity metrics are employed for finding the most similar software case in a repository for a given set of requirements. This works even when only a single envisioned usage scenario is specified. The goal is to facilitate reusing software design (including architecture) and code from similar software cases. Both approaches have different key properties and trade-offs between the costs of making software artefacts reusable and the benefits of reusing them. This will be emphasized in this tutorial. We have proposed a Feature-Similarity Model, which draws on both approaches to facilitate discovering requirements relationships within a product line representation using similarity metrics from case-based approaches. A Feature-Similarity Model also helps with the evolution of a product line, since new requirements can be introduced first into a case base and then gradually included into a product line representation. All this becomes important when working with very large scale product lines.
|Period||19 Sep 2016|