The authors provide the reader with an approach to managing large-scale software initiatives that cross several markets with differing requirements. Their work is part of the Carnegie Mellon Software Engineering Institute’s series in Software Engineering.
A software product line is defined as 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. Product lines are common in many ventures, for example automobile and aircraft development. This work extends the activities in such ventures to developing and managing software product lines.
The book is divided into three parts. Part 1 provides the conceptual framework for software product lines, with an emphasis on practice areas. It provides the reader with basic ideas, explains the benefits of product lines, and describes the essential activities in developing and managing a reusable base of core assets.
Part 2 describes software product lines practice areas. It details the practice and skill areas that organizations must acquire or develop to achieve a software product line capability. This information is presented as an organized and easy to follow set of requirements. Twenty-nine areas are considered, presented as software engineering practice areas, technical management practice areas, and organizational management areas.
Part 3 provides insight into the implementation of practice and skill areas in ways that will be beneficial to a specific organizational context. This is the important section of the text, as it provides the reader with a view of how software product lines can be implemented successfully in an organization. Case studies are included, and the text provides an organization with a satisfactory blueprint for implementation.
This book could be useful to a number of audiences. It can provide persuasive information for upper management in considering software product lines. It also provides managers or developers in software product line environments with the background to see the big picture. Finally, it provides an organization with a map that may guide it in developing a software product line environment, from planning to implementation.