Software Product Lines
Practices and Patterns
Résumé
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 areasfor 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.
Contents
Foreword.
Preface.
Acknowledgements.
Dedication.
Reader's Guide.
I. SOFTWARE PRODUCT LINE FUNDAMENTALS.
1. Basic Ideas and Terms.What Software Product Lines Are Not.
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.
Individual Benefits.
Benefits versus Costs.
For Further Reading.
Discussion Questions.
3. The Three 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.
Application to CoreAsset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Architecture Evaluation.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Component Development.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
COTS Utilization.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Mining Existing Assets.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Requirements Engineering.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Software System Integration.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Testing.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Understanding Relevant Domains.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
5. Technical Management Practice Areas.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Data Collection, Metrics, and Tracking.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Make/Buy/Mine/Commission Analysis.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Process Definition.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Scoping.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Technical Planning.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Technical Risk Management.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Tool Support.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
6. Organizational Management Practice Areas.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Customer Interface Management.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Developing an Acquisition Strategy.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Funding.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Launching and Institutionalizing.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Market Analysis.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Operations.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Organizational Planning.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Organizational Risk Management.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Structuring the Organization.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
Discussion Questions.
Technology Forecasting.
Application to Core Asset Development.
Application to Product Development.
Specific Practices.
Practice Risks.
For Further Reading.
Discussion Questions.
Training.
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.
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.
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.
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.
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.
Benefits beyond CCT Products.
Lessons and Issues.
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.
The Early Years.
The MERGER Software Product Line.
Market Maker Software Product Line Practices.
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.
Cost Issues.
The Customer Paradox.
Tool Support.
Lessons Learned.
Conclusions: Software Product Lines in Small Organizations.
For Further Reading.
Discussion Questions.
12. Conclusions: Practices, Patterns and Payoffs.
The Patterns.
The Success Factors.
The Payoff.
Finale.
Glossary.
Bibliography.
Index.
L'auteur - Paul Clements
Paul Clements is a senior member of the technical staff at the SEI, where he works on software architecture and product line engineering. He is the author of five books and more than three dozen papers on these and other topics.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Addison Wesley |
Auteur(s) | Paul Clements, Linda Northrop |
Parution | 01/10/2001 |
Nb. de pages | 560 |
Format | 16 x 24 |
Couverture | Relié |
Poids | 958g |
Intérieur | Noir et Blanc |
EAN13 | 9780201703320 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse