Aspects of Software Product Line Engineering |
The Product Line Engineering Approach / 1: |
Motivation / 1.1: |
A Brief History of Software Product Line Engineering / 1.2: |
Fundamentals of the Software Product Line Engineering Approach / 1.3: |
Variability Management / 1.4: |
Types of Variability / 1.4.1: |
Variability Representation / 1.4.2: |
Application Engineering and Variability / 1.4.3: |
Business-Centric / 1.5: |
Architecture-Centric / 1.6: |
Two-Life-Cycle Approach / 1.7: |
The BAPO Model / 1.8: |
Summary / 1.9: |
Business / 2: |
Product Line Markets / 2.1: |
Product Definition Strategy / 2.2.1: |
Market Strategies / 2.2.2: |
The Product Line Life-Cycle / 2.2.3: |
The Relation of Strategy and Product Line Engineering / 2.2.4: |
Product Line Economics / 2.3: |
Economic Results of Product Line Engineering / 2.3.1: |
A Simple Model of Product Line Economics / 2.3.2: |
Advanced Aspects of Product Line Economics / 2.3.3: |
Product Management and Scoping / 2.4: |
Product Portfolio Management / 2.4.1: |
Domain Potential Analysis / 2.4.2: |
Asset Scoping / 2.4.3: |
Architecture / 2.5: |
Architecture Concerns / 3.1: |
Architecturally Significant Requirements / 3.2.1: |
Conceptual Architecture / 3.2.2: |
Structure / 3.2.3: |
Texture / 3.2.4: |
Product Line Architecting / 3.3: |
Basic Variability Techniques / 3.3.1: |
Concrete Variation Mechanisms / 3.3.2: |
Evaluation / 3.4: |
Evolution / 3.5: |
End of Life / 3.5.1: |
Process / 3.6: |
The Software Product Line Engineering Framework / 4.1: |
Domain Engineering / 4.3: |
Product Management / 4.3.1: |
Domain Requirements Engineering / 4.3.2: |
Domain Design / 4.3.3: |
Domain Realisation / 4.3.4: |
Domain Testing / 4.3.5: |
Application Engineering / 4.4: |
Application Requirements Engineering / 4.4.1: |
Application Design / 4.4.2: |
Application Realisation / 4.4.3: |
Application Testing / 4.4.4: |
Process Maturity: CMMI / 4.5: |
Maturity Levels / 4.5.1: |
Structure of CMMI Models / 4.5.2: |
Organisation / 4.6: |
Roles and Responsibilities / 5.1: |
Product Manager / 5.2.1: |
Domain Requirements Engineer / 5.2.2: |
Domain Architect / 5.2.3: |
Domain Developer / 5.2.4: |
Domain Tester / 5.2.5: |
Domain Asset Manager / 5.2.6: |
Application Requirements Engineer / 5.2.7: |
Application Architect / 5.2.8: |
Application Developer / 5.2.9: |
Application Tester / 5.2.10: |
Organisational Structures / 5.3: |
Product-Oriented Organisation / 5.3.1: |
Process-Oriented Organisation / 5.3.2: |
Matrix Organisation / 5.3.3: |
Testing / 5.3.4: |
Asset Management / 5.3.5: |
Geographical Distribution / 5.3.6: |
Collaboration Schemes / 5.5: |
The Family Evaluation Framework / 5.6: |
Business Dimension / 6.1: |
Level 1: Project-Based / 6.3.1: |
Level 2: Aware / 6.3.2: |
Level3: Managed / 6.3.3: |
Level4: Measured / 6.3.4: |
Level 5: Optimised / 6.3.5: |
Architecture Dimension / 6.4: |
Level 1: Independent Development / 6.4.1: |
Level 2: Standardised Infrastructure / 6.4.2: |
Level 3: Software Platform / 6.4.3: |
Level4: Variant Products / 6.4.4: |
Level 5: Configuring / 6.4.5: |
Process Dimension / 6.5: |
Level1: Initial / 6.5.1: |
Level2: Managed / 6.5.2: |
Level 3: Defined / 6.5.3: |
Level 4: Quantitatively Managed / 6.5.4: |
Level 5: Optimising / 6.5.5: |
Organisation Dimension / 6.6: |
Level 1: Project / 6.6.1: |
Level2: Reuse / 6.6.2: |
Level 3: Weakly Connected / 6.6.3: |
Level 4: Synchronised / 6.6.4: |
Level 5: Domain-Oriented / 6.6.5: |
Applying the FEF / 6.7: |
Complex Organisations / 6.7.1: |
Example / 6.7.2: |
Connection to Other Approaches / 6.8: |
Experience Reports / 6.9: |
Experiences in Product Line Engineering / 7: |
Experimental Software Engineering / 7.1: |
Experience Reports on Product Line Development / 7.2: |
Case Study Basics / 7.3: |
Setting Up Case Studies / 7.3.1: |
The Case Study Format / 7.3.2: |
Overview of the Case Studies / 7.4: |
AKVAsmart / 8: |
Introduction / 8.1: |
Case Description / 8.2: |
Market Drivers / 8.2.2: |
Approach / 8.3: |
The Framework / 8.4: |
Examples of Plug-ins / 8.4.2: |
Results and Impact Evaluation / 8.5: |
Lessons Learned / 8.6: |
Outlook / 8.7: |
Bosch Gasoline Systems / 9: |
Business Strategy / 9.1: |
Work Products: Software Architecture / 9.3.2: |
Software Components / 9.3.3: |
Processes and Methods / 9.3.4: |
Tool Environment / 9.3.5: |
Management Role / 9.3.6: |
Product and Process Excellence - Product Line Engineering and CMMI / 9.4.2: |
DNV Software / 9.5: |
First Generation Product Line Engineering / 10.1: |
Second Generation Product Line Engineering / 10.3.2: |
market maker Software AG / 10.4: |
Adoption Process / 11.1: |
Fast Time to Market / 11.3.1: |
New Team / 11.3.2: |
Early Focus on Applications / 11.3.3: |
No Separation of Domain and Application Engineering Teams / 11.3.4: |
Encapsulation of Legacy Systems / 11.3.5: |
Simple Architectural Style / 11.3.6: |
Effective Communication / 11.3.7: |
Immediate and Reliable Decisions / 11.3.8: |
Coaching / 11.3.9: |
Small Investments / 11.3.10: |
Current Process / 11.4: |
Nokia Mobile Phones / 11.4.1: |
Typing and Quality Characteristics / 12.1: |
Traceability / 12.3.2: |
The ART Environment / 12.3.3: |
Example: Security / 12.4: |
Nokia Networks / 12.5: |
Philips Consumer Electronics Software for Televisions / 13.1: |
Business Aspects / 14.1: |
Results / 14.5: |
Philips Medical Systems / 14.9: |
Adoption Approach / 15.1: |
Current Development Approach / 15.3.2: |
Siemens Medical Solutions / 15.4: |
Telvent / 16.1: |
Organisation and Business / 17.1: |
Using the Abstract Factory Pattern / 17.3.2: |
Introducing the Dynamic Abstract Factory Pattern / 17.3.3: |
Reusing the Dynamic Abstract Factory Pattern / 17.3.4: |
Conclusions / 17.4: |
Analysis / 18: |
Complexity / 18.1: |
Variability and Commonality / 18.1.2: |
Efficiency and Costs / 18.1.3: |
Reuse and Architecture / 18.1.4: |
Quality / 18.1.5: |
FEF Evaluations / 18.2: |
Evaluations / 18.3: |
How to Do It / 18.5: |
Guidelines / 18.6.2: |
Benefits / 18.6.3: |
Concerns / 18.6.4: |
Starting with Software Product Line Engineering / 18.6.5: |
Decide / 19.1: |
Define Business Strategy and Vision / 19.1.1: |
Learn About Software Product Line Engineering / 19.1.2: |
Perform a Risk Analysis / 19.1.3: |
Prepare / 19.2: |
Gain Support / 19.2.1: |
Set Concrete Goals / 19.2.2: |
Scope the Product Line / 19.2.3: |
Evaluate the Organisation / 19.2.4: |
Plan the Transition / 19.2.5: |
Transition / 19.3: |
Roll Out and Institutionalise / 19.3.1: |
Evolving the Product Line / 19.3.2: |
Conclusion / 19.4: |
Where We Are / 20: |
Current Shortcomings of Product Line Engineering / 20.2: |
Methodological Shortcomings / 20.2.1: |
Technology and Tools / 20.2.2: |
Going Beyond Product Lines / 20.3: |
Product Line Engineering for Practitioners / 20.4: |
Glossary |
References |
About the Authors |
Index |
Aspects of Software Product Line Engineering |
The Product Line Engineering Approach / 1: |
Motivation / 1.1: |