SIMPLE is a straightforward but comprehensive cost model for software product lines.
Although software product line engineering is emerging as an important software development paradigm, most of the economic arguments are based on singular data points derived from case studies or convincing arguments based on reasonableness and simplistic cost curves. Existing models of development costs in the context of reuse can only be applied in a restricted way as product line development involves some fundamental assumptions that are not reflected in these models. Currently only a few economic models exist specifically for product line engineering, and these usually do not address effects of maintenance and evolution over time.
Decision-makers need to know when the software product line approach makes economic sense, and what return they can expect on the investment of setting up the core asset base and aligning the organization to best carry out the product line practices.
Based on the SIMPLE model, we can calculate the costs and benefits (and hence the ROI) that we can expect to accrue from various product line development situations. Many of these situations can be characterized as special cases of the following general scenario:
An organization has n product lines, each comprising a set of products, and also has s1 stand-alone products. The organization wishes to transition to the state in which it has m product lines, each comprising a (perhaps different) set of products, and also s2 stand-alone products. Along the way, the organization intends to add k products or delete d products.
When instantiated, this general scenario covers the creation, merging, and retirement of product lines, as well as the coming and going of individual products. Our cost model addresses the general scenario and is based on the observation that establishing and then using a product line engineering capability involves the following four costs:
Corg: The cost to an organization of adopting the product line approach for its products. Such costs can include reorganization, process improvement, training, and whatever other organizational remedies are necessary.
Ccab: The development cost to develop a core asset base suited to support the product line being built. This includes costs such as commonality/variability analysis, a generic software architecture, and the cost of developing the software and its supporting designs, documentation, and test infrastructure. The core asset base may be assembled proactively all at once, or incrementally over time using a reactive strategy as more products are introduced.
Cunique: The development cost to develop unique software that is not based on a product line platform. Usually this will be a small portion of a product but in the extreme it could be a complete product.
Creuse: The development cost to reuse core assets in a core asset base. This includes the cost of locating and checking out a core asset, tailoring it for use in the intended application (if necessary), and performing the extra integration tests associated with reusing core assets.
For example, the cost of establishing a product line consisting of n1 products, then, can be written as
where Corg, Ccab, Cunique, and Creuse are cost functions that, given the appropriate parameters, return the corresponding costs. Predictive formulas for other scenarios are also available. We are currently working to expand the model to accommodate other economic dimensions beyond simple cost.
"Calculating ROI for Software Product Lines"
Günter Böckle; Paul Clements, John D. McGregor, Dirk Muthig, & Klaus Schmid. IEEE Software, Volume 21, Issue 3, May-June 2004, pages 23-31.
"A Cost Model for Software Product Lines"
Günter Böckle; Paul Clements, John D. McGregor, Dirk Muthig, & Klaus Schmid. Fifth International Workshop on Product Family Engineering (PFE-5), Siena, Italy, November 4-6, 2003.
The Structured Intuitive Model for Product Line Economics (SIMPLE)
Paul C. Clements, John D. McGregor, & Sholom G. Cohen
A Cost Model for Software System Families
Günter Böckle & Klaus Schmid
From Projects to Product Lines: A Product Line Economics Case Study
Kai Vuolajärvi, Rauli Käppi & Jukka Heikkilä