Figure 1. There is percent reuse at the time of cloning, but similar to clone-and-own of conventional source code, the duplication leads to divergence over time and requires merging or replicated development among the different models, adding to the time and cost of maintenance and evolution.
Some organizations adopt the one-size-fits-all approach to avoid the overhead of clone-and-own, as shown in Figure 2. With the one-size-fits-all approach, the product diversity for an entire product line portfolio is implemented in a single model, shown as the same diamond, star, and triangle from Figure 1, in a single model. Conditional constructs in the model, shown as question marks, express decisions about which optional features to include or exclude in any particular product. Similar to one-size-fits-all in conventional source code, this approach can lead to models that continue to grow larger and more complex over time as more and more products and features are added to the portfolio.
Figure 2. The software product line problem can be characterized as a mismatch problem. Customer demand requires most companies to create a product line portfolio of similar products rather than just a single product.
The software for these products must be developed to support the feature and function diversity within the product line. However, most of the software development methods, tools, and techniques in the industry today take a product-centric approach. The product-centric approach focuses on how to take a single product through the development life cycle - from requirements through design, implementation, and test - and does not provide explicit and effective support for developing a product line portfolio.
Software product line engineering and variability management: achievements and challenges
Case studies show that using product-centric tools and methods for SPL engineering can account for 50 to 90 percent of the total software development cost and effort. SPL approaches provide new capabilities for eliminating this overhead waste. With SPL engineering, specialized tools and methods are provided for efficiently creating, maintaining, and evolving software assets for a product line portfolio of similar products. A high degree of software reuse is possible within the well-defined architecture of a product line. Figure 3 illustrates the SPL approach.
The SPL product configurator takes two types of inputs - reusable software assets and product feature profiles - to automatically create the individual products within a product line portfolio.
CiteSeerX — 25 Variability Modeling in Model-Driven Software Product Line Engineering
The reusable software assets contain variation points to encapsulate implementation-level diversity needed for the product line. The product feature profiles characterize feature differences and selections for the different product instances in the product line portfolio, analogous to an options list for optional and alternate features that are available on a new car. See the Fall issue of Military Embedded Systems, page 39, for a more detailed introduction to The emerging practice of software product line development.
- Côte d‘Azur Meditationen (German Edition).
- Higher Level Language Processes in the Brain: Inference and Comprehension Processes.
- La Batalo de l Vivo!
- Neurología Clínica, 2 vols. + e-dition: Vol 1. Diagnóstico y tratamiento. Vol 2. Trastornos neurológicos (Spanish Edition).
Figure 3. In the past, SPL tools and methods have primarily focused on conventional source code, requirements, and test cases. With the increased adoption of SPL and MDD technology throughout the software industry, the need for these approaches to interoperate has likewise grown.
Traceability for Model Driven, Software Product Line Engineering
Referring back to Figure 3, these model assets can now be interspersed with other types of reusable software assets such as requirements, source code, and test cases. The SPL variation point concept is extended to include MDD model elements to express model diversity in the model elements.
Usually, more than a million different products can be derived from one Software Product Line. Miscellaneous approaches exist dedicated to Software Product Line testing. The challenging problem is that it is not feasible to test all products individually neither during nor after the development process.
To cope with this problem we currently research on several strategies for testing software product lines.
We aim to automatically generate a test suite from this implementation that tests all products. Sample-based: Generating a representative set of products.
Bloggat om Model-Driven and Software Product Line En...
Instead of testing each product individually only this set needs to be tested to reveal faults within a Software Product Line. We currently work on different strategies to find a minimal set, which is an NP-complete problem. Here also the question what is a good test order arises.
Related Model-Driven and Software Product Line Engineering
Copyright 2019 - All Right Reserved