Software Product Lines: Practices and Patterns(Hardcover)

Paul Clements, Linda Northrop

  • 出版商: Addison Wesley
  • 出版日期: 2001-08-30
  • 售價: $2,830
  • 貴賓價: 9.5$2,689
  • 語言: 英文
  • 頁數: 608
  • 裝訂: Hardcover
  • ISBN: 0201703327
  • ISBN-13: 9780201703320
  • 已絕版

買這商品的人也買了...

商品描述

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 Lines is 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 stories
  • Methods to develop a reusable base of core assets and to develop products that utilize that core
  • Common problems paired with concrete solutions in the form of reusable software product pine patterns
  • Twenty-nine practice areas for successful implementation, including architecture definition,component development, configuration management, market analysis, and training
  • The product line technical probe for identifying technical and organizational weaknesses that could impede success

Three 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.


Table of Contents

Foreword.
Preface.
Acknowledgements.
Dedication.
Reader's Guide.

I. SOFTWARE PRODUCT LINE FUNDAMENTALS.

1. Basic Ideas and Terms.

What Is a Software Product Line?
What Software Product Lines Are Not.
Fortuitous Small-Grained Reuse.
Single-System Development with Reuse.
Just Component-Based Development.
Just a Reconfigurable Architecture.
Releases and Versions of Single Products.
Just a Set of Technical Standards.
A Note on Terminology.
For Further Reading.
Discussion Questions.


2. Benefits.

Organizational Benefits.
Individual Benefits.
Benefits versus Costs.
For Further Reading.
Discussion Questions.


3. The Three Essential Activities.

What Are the Essential Activities?
Core Asset Development.
Product Development.
Management.
All Three Together.
For Further Reading.
Discussion Questions.

II. SOFTWARE PRODUCT LINE PRACTICE AREAS.

Describing the Practice Areas.
Starting versus Running a Product Line.
Organizing the Practice Areas.


4. Software Engineering Practice Areas.

Architecture Definition.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Architecture Evaluation.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Component Development.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

COTS Utilization.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Mining Existing Assets.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Requirements Engineering.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Software System Integration.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Testing.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Understanding Relevant Domains.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.


5. Technical Management Practice Areas.

Configuration Management.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Data Collection, Metrics, and Tracking.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Make/Buy/Mine/Commission Analysis.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Process Definition.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Scoping.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Technical Planning.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Technical Risk Management.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Tool Support.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.


6. Organizational Management Practice Areas.

Building a Business Case.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Customer Interface Management.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Developing an Acquisition Strategy.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Funding.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Launching and Institutionalizing.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Market Analysis.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Operations.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Organizational Planning.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Organizational Risk Management.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Structuring the Organization.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.

Technology Forecasting.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

Training.
Aspects Peculiar to Product Lines.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.

III. PUTTING THE PRACTICE AREAS INTO ACTION.



7. Software Product Line Practice Patterns.

The Value of Patterns.
Software Product Line Practice Pattern Descriptions.
The Curriculum Pattern.
The Essentials Coverage Pattern.
Each Asset Pattern.
What to Build Pattern.
Product Parts Pattern.
Assembly Line Pattern.
Monitor Pattern.
Product Builder Pattern.
Cold Start Pattern.
In Motion Pattern.
Process Pattern.
Factory Pattern.
Other Patterns.
Practice Area Coverage.
Discussion Questions.


8. Product Line Technical Probe.

What Is the Product Line Technical Probe?
Probe Interview Questions.
Probe Participants.
Probe Process.
Using the Probe Results.
Conducting a Mini Self-Probe.
Discussion Questions.


9. Cummins Engine Company: Embracing the Future.

Prologue.
Company History.
A Product Line of Engine Software.
Getting off the Ground.
An Organization Structured for Cooperation.
Running the Product Line.
Results.
Lessons Learned.
Epilogue.
Practice Area Compendium.
For Further Reading.
Discussion Questions.


10. Control Channel Toolkit: A Software Product Line that Controls Satellites.

Contextual Background.
Organizational Profiles.
Project History.
Control Channels.
Launching CCT.
Developing a Business Case for CCT.
Developing the Acquisition Strategy and Funding CCT.
Structuring the CCT Organization.
Organizational and Technical Planning.
Operations.
Engineering the CCT Core Assets.
Domain Analysis.
Architecture.
Component Engineering.
Testing: Application and Test Engineering.
Sustainment Engineering: Product Line Evolution.
Documentation.

Managing the CCT Effort.
Early Benefits from CCT.
First CCT Product.
Benefits beyond CCT Products.

Lessons and Issues.
Tool Support Is Inadequate.
Domain Analysis Documentation Is Important.
An Early Architecture Focus Is Best.
Product Builders Need More Support.
CCT Users Need Reuse Metrics.
It Pays to Be Flexible, and Cross-Unit Teams Work.
A Real Product Is a Benefit.

Summary.
For Further Reading.
Discussion Questions.


11. Successful Software product Line Development in Small Organization.

Introduction.
The Early Years.
The MERGER Software Product Line.
Market Maker Software Product Line Practices.
Architecture Definition.
Component Development.
Structuring (and Staffing) the Organization.
Testing.
Data Collection and Metrics.
Launching and Institutionalizing the Product Line.
Understanding the Market.
Technology Forecasting.

A Few Observations.
Effects of Company Culture.
Cost Issues.
The Customer Paradox.
Tool Support.

Lessons Learned.
Drawbacks.

Conclusions: Software Product Lines in Small Organizations.
For Further Reading.
Discussion Questions.


12. Conclusions: Practices, Patterns and Payoffs.

The Practices.
The Patterns.
The Success Factors.
The Payoff.
Finale.


Glossary.
Bibliography.
Index.