Making SIMPLE Decisions about Software Product Lines

NEWS AT SEI

Author

Paul C. Clements

This library item is related to the following area(s) of work:

Software Product Lines

This article was originally published in News at SEI on: April 1, 2008

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:

  • It must model real situations completely and correctly so that it can give high-fidelity answers to the real problems of organizations.
  • It must be sufficiently intuitive for product line personnel to easily produce answers whose derivation can be shown to and understood by others.
  • It should be understandable by managers and technicians alike.
  • It should be flexible enough to help answer a wide range of questions. In fact, our model is structured in parts to allow the modeler to select the appropriate levels of detail and model elements to answer a specific question.
  • It should not assume any particular approach to software product line engineering beyond the basic tenets implied by the definition of a software product line: “a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.” [Clements 02]

SIMPLE Functions

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:

  1. Corg()—how much it costs an organization to adopt the product line approach for its products. Such costs can include reorganization, process improvement, training, and whatever other organizational remedies are necessary.
  2. Ccab()—how much it costs to develop a core asset base to satisfy a particular scope.
  3. Cunique()—how much it costs to develop the unique parts (both software and non-software) of a product that are not based on assets in the core asset base.
  4. Creuse()—how much it costs to build a product reusing core assets from a core asset base.

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.

How to use SIMPLE

To use SIMPLE, you must carry out three steps:

  1. Create a scenario that you wish to model. The scenario will likely describe two alternative strategies or options that you would like to choose between. An example of a scenario is “An organization has a set of existing stand-alone products undergoing periodic evolutionary updates. Its managers wish to know which is cheaper: (a) converting them to a product line and continuing their evolution in that form, or (b) continuing to evolve them separately and foregoing the cost of setting up the product line.” The SIMPLE website has nine pre-defined scenarios that represent typical product line situations. In the future, you will be able to define your own scenarios.
  2. Construct a SIMPLE formula that expresses the scenario. Usually, this formula will be of the form (benefit of option 1 - cost of option 1) - (benefit of option 2 - cost of option 2) using the cost and benefit functions to express each term. (For the pre-defined scenarios, the corresponding equations are already constructed on the website).
  3. Enter data values for the cost and benefit functions and see the result.

For example, Equation 1 expresses the cost of setting up a product line.
Equation 1

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

  • pre-defining formulas for more scenarios
  • handling uncertainty by, for example, taking a range of inputs rather than a single number, or by accepting a confidence level associated with input data, or by providing Monte Carlo simulation to produce the most likely outcomes given uncertain data
  • working to quantify the benefit functions by, for example, appealing to business models for the cost benefit of increased market share or customer satisfaction
  • taking into account qualitative relationships among the parameters such as, for example, noting that a large product portfolio usually suggests more complex core assets which in turn suggests higher core asset maintenance costs.

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.

Reference

[Clements 02]
Clements, Paul & Northrop, Linda. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2002.

About the Author

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.

Find Us Here

Find us on Youtube  Find us on LinkedIn  Find us on twitter  Find us on Facebook

Share This Page

Share on Facebook  Send to your Twitter page  Save to del.ico.us  Save to LinkedIn  Digg this  Stumble this page.  Add to Technorati favorites  Save this page on your Google Home Page 

For more information

Contact Us

info@sei.cmu.edu

412-268-5800

Help us improve

Visitor feedback helps us continually improve our site.

Please tell us what you
think with this short
(< 5 minute) survey.