NEWS AT SEI
This library item is related to the following area(s) of work:
This article was originally published in News at SEI on: April 1, 2008
Last Updated: August 6, 2009
Some of the most frequently asked questions about software product lines involve whether there will be a cost benefit to using the product-line approach. So researchers from the SEI, Siemens, the Fraunhofer Institute for Experimental Software Engineering, and Clemson University collaborated on a model that can be used to predict software product line costs and benefits under a variety of real-world situations and that can be used easily by product line decision-makers who may not be skilled in intricate economic theories.
SIMPLE is the Structured Intuitive Model of Product Line Economics, a general-purpose business model that supports the estimation of the costs and benefits in a product line development organization. SIMPLE helps in decisions such as whether to use a product line strategy in a specific situation, the specific strategy to apply, and the appropriateness of acquiring or building specific assets.
SIMPLE has several objectives:
SIMPLE approaches the question of how much a particular software product line strategy will cost an organization and how much it gains compared to alternatives. To express these quantities, SIMPLE introduces cost functions and benefit functions that describe these constituents of the overall economic question. Rather than rigorously defined mathematical functions, they should be thought of as an invitation to do a thought experiment to come up with a reasonable cost (or monetary benefit) estimate in each area. This divides otherwise-intractable questions about the costs and benefits of product line strategies into smaller questions that can each be attacked systematically. SIMPLE relies on four basic cost functions:
Other cost functions can be introduced as necessary. Each cost function takes a set of parameters that identify factors needed to calculate the cost. For instance, the time period under consideration can be a parameter. This lets us reflect that the cost of a core asset base is higher during product line set-up, and less during product line sustainment.
In addition to cost functions, SIMPLE introduces benefit functions as well. You can use Bi() to signify a particular benefit (such as decreased time to market or increased customer satisfaction) brought about by the approach being considered.
To use SIMPLE, you must carry out three steps:
For example, Equation 1 expresses the cost of setting up a product line.
Equation 1
SIMPLE was recently used by a large European telecommunications company after acquiring two other companies. The company’s managers wanted to know if they should merge all three product sets into a common product line. SIMPLE helped them predict that the work required would not pay off, because the architectures of the various product suites were so diverse and incompatible.
The SEI continues to expand SIMPLE by
We continue to seek organizations with whom we can work to apply SIMPLE. For more information, contact us using the link in the For More Information box at the bottom of this page.
[Clements 02]
Clements, Paul & Northrop, Linda. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2002.
Paul Clements is a senior member of the technical staff at the SEI, where he has worked for 10 years leading or co-leading projects in software product line engineering and software architecture design, documentation, and analysis. Clements is the co-author of three practitioner-oriented books about software architecture: Software Architecture in Practice (1998; second edition, 2003), Evaluating Software Architectures: Methods and Case Studies (2001), and Documenting Software Architectures: View and Beyond (2002). He also co-wrote Software Product Lines: Practices and Patterns (2001), and was co-author and editor of Constructing Superior Software (1999). In addition, Clements has also written dozens of papers in software engineering reflecting his long-standing interest in the design and specification of challenging software systems. He received a BS in mathematical sciences in 1977 and an MS in computer science in 1980, both from the University of North Carolina at Chapel Hill. He received a PhD in computer sciences from the University of Texas at Austin in 1994.
The views expressed in this article are the author's only and do not represent directly or imply any official position or view of the Software Engineering Institute or Carnegie Mellon University. This article is intended to stimulate further discussion about this topic.