Software Product Lines: Practices and Patterns
Long a standard practice in traditional manufacturing, the concept of product lines is relatively new to the software industry. A software product line is a family of systems that share a common set of core technical assets, with preplanned extensions and variations to address the needs of specific customers or market segments. Software organizations of all types and sizes are discovering that when skillfully implemented, a product line strategy can yield enormous gains in productivity, quality, and time-to-market.Software Product Linesis the culmination of an intensive investigation, undertaken by the Software Engineering Institute (SEI) at Carnegie Mellon, into how leading-edge software development organizations have "retooled" for product lines. With explanations of fundamental concepts further illuminated by real-world experience, this book spells out the technical issues involved in adopting a product line strategy, as well as the organizational and management issues that are so critical for success. In providing a comprehensive set of practices and patterns, this book defines and explores the key activities for software product line development and explains specific practice areas in engineering, technical management, and organizational management.Highlights include:The benefits of a software product line approach, including actual improvement data from industrial success storiesMethods to develop a reusable base of core assets and to develop products that utilize that coreCommon problems paired with concrete solutions in the form of reusable software product line patternsTwenty-nine practice areas for successful implementation, including architecture definition,component development, configuration management, market analysis, and trainingThe product line technical probe for identifying technical and organizational weaknesses that could impede successThree detailed case studies from the industry lead you step by step through the process of developing and managing software product lines, illustrating potential pitfalls, creative solutions, and the ultimate rewards. Discussion questions, sidebars, and real-world anecdotes  from the trenches reveal the collective wisdom of those on the front line of software product line ventures.