Prosperity Heights Software

Experience with Product Lines

In 1996, I established Prosperity Heights Software to develop and promote the Domain-specific Engineering methodology. DsE is a refinement and generalization of the Reuse-driven Software Processes (RSP, aka Synthesis) methodology which I conceived and designed at the Software Productivity Consortium (1990-93). RSP was based on insights from the Software Cost Reduction project (1981-82) at the Naval Research Laboratory, the development at Software A&E of the Spectrum application generation environment (1984-88), and extensive and diverse practical software development experiences. Many people have contributed significantly over the years to realizing the DsE methodology, including a dozen plus people who worked directly on developing each of Spectrum and Synthesis. I am particularly indebted to Mr. Andrew B. Ferrentino and Dr. David L. Parnas for their ideas and vision of disciplined software engineering.

Grady Campbell

A Personal History of the Origins of the Product Line Concept

The product line concept, like many innovative ideas, did not come forth from any single person nor are there any published papers that can be definitively referenced. Although precedent for this idea existed in manufacturing (described in 1954 by Drucker as a form of mass production and characterized later by Davis as mass customization), how this could be applied practically to software was not particularly obvious. Initial attempts were first noted in reports of industrial experience, the best known being Toshiba (cited in Cusamano's 1991 book on Japanese software factories), the Navy FCDSSA restructured tactical data system (RNTDS) (in CrossTalk from Feb 1992), and CelsiusTech (1986+ described in 1993 in the SPC Reuse Adoption Guidebook and in a 1996 technical report from the Software Engineering Institute). There are probably others, including some that were never publicly reported. These experiences did not occur as a result of someone having developed and documented a theory of product lines but as a narrow solution to specific business problems.

There were papers that did precede or parallel these developments in industry. The original characterizations of a program family, by Dijkstra and Parnas, are primary sources for the essential idea. Dijkstra described the basic principles of a product line approach in barely two pages. Papers by Goguen, Dershowitz, Cleaveland (IEEE Software 7/88), and Levy offered various fundamental insights.

The Spectrum application generation environment, developed at Software A&E in 1984-88, was the prototype of what I imagine a product line environment to be. A key elemental mechanism of Spectrum was the notion of Adaptable Components as a medium for software developers to express and choose among alternative solutions to a problem, both for ease of change and for creating solutions to multiple similar problems. Spectrum was a direct antecedent to Synthesis, only lacking as we observed then a needed focus on an explicit domain-specific scope. A paper I wrote in 1988 defining the concept of an "abstraction-based environment" describes Spectrum in overview.

Note that the product line idea took shape in an attempt to characterize good (and still rare even today) industrial practice. However, I believe it is accurate to say that the RSP Guidebook, as a representation of Synthesis, was the first comprehensive, generally practicable definition of a product line methodology. We started with the experience on Spectrum as a practical model for how to develop and instantiate a product family. The concept of a "decision model" existed informally in Spectrum but in Synthesis became an explicit formalization of the variability in a product family. Mark Simos helped point us toward giving a business and organizational orientation to product line scoping in defining a domain. The Introduction to Synthesis paper that I wrote with Dr. David Weiss and Dr. Stuart Faulk in 1990 more precisely defined the elements of the initial product line approach; by 1993, the RSP Guidebook described everything required of a general product line approach (including use of the term, borrowed from marketing). I later came across the concept of mass customization and saw at once that the product line approach is properly a realization of that, particularly but not exclusively applicable to building software-based products.

Organizations That Have Reported Use of Synthesis (RSP or DsE)

Past PHS Events