Part I | |
The Product Line Engineering Approach | p. 3 |
Motivation | p. 3 |
A Brief History of Software Product Line Engineering | p. 5 |
Fundamentals of the Software Product Line Engineering Approach | p. 6 |
Variability Management | p. 8 |
Types of Variability | p. 8 |
Variability Representation | p. 9 |
Application Engineering and Variability | p. 11 |
Business-Centric | p. 12 |
Architecture-Centric | p. 14 |
Two-Life-Cycle Approach | p. 14 |
The BAPO Model | p. 16 |
Summary | p. 19 |
Business | p. 21 |
Motivation | p. 21 |
Product Line Markets | p. 22 |
Product Definition Strategy | p. 22 |
Market Strategies | p. 23 |
The Product Line Life-Cycle | p. 24 |
The Relation of Strategy and Product Line Engineering | p. 26 |
Product Line Economics | p. 27 |
Economic Results of Product Line Engineering | p. 27 |
A Simple Model of Product Line Economics | p. 28 |
Advanced Aspects of Product Line Economics | p. 29 |
Product Management and Scoping | p. 31 |
Product Portfolio Management | p. 31 |
Domain Potential Analysis | p. 33 |
Asset Scoping | p. 34 |
Summary | p. 35 |
Architecture | p. 37 |
Motivation | p. 37 |
Architecture Concerns | p. 38 |
Architecturally Significant Requirements | p. 38 |
Conceptual Architecture | p. 39 |
Structure | p. 39 |
Texture | p. 39 |
Product Line Architecting | p. 40 |
Basic Variability Techniques | p. 40 |
Concrete Variation Mechanisms | p. 41 |
Evaluation | p. 42 |
Evolution | p. 43 |
End of Life | p. 44 |
Summary | p. 44 |
Process | p. 47 |
Motivation | p. 47 |
The Software Product Line Engineering Framework | p. 48 |
Domain Engineering | p. 49 |
Product Management | p. 49 |
Domain Requirements Engineering | p. 49 |
Domain Design | p. 51 |
Domain Realisation | p. 51 |
Domain Testing | p. 52 |
Application Engineering | p. 53 |
Application Requirements Engineering | p. 53 |
Application Design | p. 54 |
Application Realisation | p. 54 |
Application Testing | p. 54 |
Process Maturity: CMMI | p. 55 |
Maturity Levels | p. 55 |
Structure of CMMI Models | p. 56 |
Summary | p. 57 |
Organisation | p. 59 |
Motivation | p. 59 |
Roles and Responsibilities | p. 61 |
Product Manager | p. 61 |
Domain Requirements Engineer | p. 62 |
Domain Architect | p. 63 |
Domain Developer | p. 63 |
Domain Tester | p. 64 |
Domain Asset Manager | p. 64 |
Application Requirements Engineer | p. 64 |
Application Architect | p. 65 |
Application Developer | p. 65 |
Application Tester | p. 65 |
Organisational Structures | p. 66 |
Product-Oriented Organisation | p. 67 |
Process-Oriented Organisation | p. 69 |
Matrix Organisation | p. 70 |
Testing | p. 70 |
Asset Management | p. 72 |
Product Management | p. 74 |
Geographical Distribution | p. 76 |
Collaboration Schemes | p. 77 |
Summary | p. 78 |
The Family Evaluation Framework | p. 79 |
Motivation | p. 79 |
Structure | p. 80 |
Business Dimension | p. 82 |
Level 1: Project-Based | p. 82 |
Level 2: Aware | p. 83 |
Level3: Managed | p. 84 |
Level4: Measured | p. 85 |
Level 5: Optimised | p. 85 |
Architecture Dimension | p. 85 |
Level 1: Independent Development | p. 87 |
Level 2: Standardised Infrastructure | p. 87 |
Level 3: Software Platform | p. 87 |
Level4: Variant Products | p. 88 |
Level 5: Configuring | p. 88 |
Process Dimension | p. 88 |
Level1: Initial | p. 90 |
Level2: Managed | p. 90 |
Level 3: Defined | p. 91 |
Level 4: Quantitatively Managed | p. 93 |
Level 5: Optimising | p. 93 |
Organisation Dimension | p. 93 |
Level 1: Project | p. 95 |
Level2: Reuse | p. 95 |
Level 3: Weakly Connected | p. 95 |
Level 4: Synchronised | p. 96 |
Level 5: Domain-Oriented | p. 96 |
Applying the FEF | p. 97 |
Complex Organisations | p. 97 |
Example | p. 100 |
Connection to Other Approaches | p. 104 |
Summary | p. 105 |
Part II | |
Experiences in Product Line Engineering | p. 111 |
Experimental Software Engineering | p. 112 |
Experience Reports on Product Line Development | p. 114 |
Case Study Basics | p. 115 |
Setting Up Case Studies | p. 115 |
The Case Study Format | p. 116 |
Overview of the Case Studies | p. 118 |
AKVAsmart | p. 121 |
Introduction | p. 122 |
Motivation | p. 122 |
Case Description | p. 122 |
Market Drivers | p. 125 |
Approach | p. 125 |
Architecture | p. 126 |
The Framework | p. 127 |
Examples of Plug-ins | p. 128 |
Results and Impact Evaluation | p. 129 |
Lessons Learned | p. 131 |
Outlook | p. 131 |
Bosch Gasoline Systems | p. 133 |
Introduction | p. 134 |
Motivation | p. 134 |
Approach | p. 136 |
Business Strategy | p. 136 |
Work Products: Software Architecture | p. 137 |
Software Components | p. 140 |
Processes and Methods | p. 141 |
Tool Environment | p. 143 |
Organisation | p. 144 |
Lessons Learned | p. 144 |
Management Role | p. 144 |
Product and Process Excellence - Product Line Engineering and CMMI | p. 146 |
Summary | p. 147 |
DNV Software | p. 149 |
Introduction | p. 150 |
Motivation | p. 151 |
Approach | p. 152 |
First Generation Product Line Engineering | p. 152 |
Second Generation Product Line Engineering | p. 155 |
Results and Impact Evaluation | p. 162 |
Lessons Learned | p. 164 |
Outlook | p. 165 |
market maker Software AG | p. 167 |
Introduction | p. 168 |
Motivation | p. 168 |
Adoption Process | p. 172 |
Fast Time to Market | p. 172 |
New Team | p. 172 |
Early Focus on Applications | p. 172 |
No Separation of Domain and Application Engineering Teams | p. 173 |
Encapsulation of Legacy Systems | p. 173 |
Simple Architectural Style | p. 173 |
Effective Communication | p. 174 |
Immediate and Reliable Decisions | p. 174 |
Coaching | p. 174 |
Small Investments | p. 174 |
Current Process | p. 175 |
Business | p. 175 |
Architecture | p. 175 |
Process | p. 180 |
Organisation | p. 184 |
Results and Impact Evaluation | p. 186 |
Lessons Learned | p. 187 |
Summary | p. 189 |
Nokia Mobile Phones | p. 191 |
Introduction | p. 192 |
Motivation | p. 192 |
Approach | p. 193 |
Typing and Quality Characteristics | p. 195 |
Traceability | p. 195 |
The ART Environment | p. 197 |
Example: Security | p. 199 |
Lessons Learned | p. 204 |
Outlook | p. 205 |
Nokia Networks | p. 207 |
Introduction | p. 208 |
Motivation | p. 208 |
Approach | p. 211 |
Lessons Learned | p. 214 |
Outlook | p. 216 |
Philips Consumer Electronics Software for Televisions | p. 219 |
Introduction | p. 220 |
Motivation | p. 220 |
Approach | p. 223 |
Business Aspects | p. 224 |
Architecture | p. 224 |
Process | p. 227 |
Organisation | p. 229 |
Results | p. 229 |
Lessons Learned | p. 230 |
Philips Medical Systems | p. 233 |
Introduction | p. 234 |
Motivation | p. 234 |
Approach | p. 235 |
Adoption Approach | p. 235 |
Current Development Approach | p. 239 |
Results and Impact Evaluation | p. 245 |
Lessons Learned | p. 246 |
Outlook | p. 247 |
Siemens Medical Solutions | p. 249 |
Introduction | p. 250 |
Motivation | p. 251 |
Approach | p. 251 |
Adoption Process | p. 251 |
Current Process | p. 252 |
Results and Impact Evaluation | p. 261 |
Lessons Learned | p. 262 |
Summary | p. 263 |
Telvent | p. 265 |
Introduction | p. 266 |
Motivation | p. 266 |
Approach | p. 268 |
Organisation and Business | p. 269 |
Using the Abstract Factory Pattern | p. 269 |
Introducing the Dynamic Abstract Factory Pattern | p. 270 |
Reusing the Dynamic Abstract Factory Pattern | p. 272 |
Lessons Learned | p. 274 |
Conclusions | |
Analysis | p. 277 |
Motivation | p. 277 |
Complexity | p. 277 |
Variability and Commonality | p. 278 |
Efficiency and Costs | p. 279 |
Reuse and Architecture | p. 279 |
Quality | p. 279 |
Business | p. 280 |
FEF Evaluations | p. 281 |
Architecture | p. 281 |
FEF Evaluations | p. 282 |
Process | p. 283 |
Evaluations | p. 283 |
Organisation | p. 284 |
FEF Evaluations | p. 284 |
Summary | p. 285 |
How to Do It | p. 285 |
Guidelines | p. 286 |
Benefits | p. 287 |
Concerns | p. 287 |
Evaluations | p. 288 |
Starting with Software Product Line Engineering | p. 289 |
Decide | p. 290 |
Define Business Strategy and Vision | p. 290 |
Learn About Software Product Line Engineering | p. 291 |
Perform a Risk Analysis | p. 291 |
Prepare | p. 294 |
Gain Support | p. 294 |
Set Concrete Goals | p. 295 |
Scope the Product Line | p. 296 |
Evaluate the Organisation | p. 298 |
Plan the Transition | p. 299 |
Transition | p. 300 |
Roll Out and Institutionalise | p. 300 |
Evolving the Product Line | p. 302 |
Conclusion | p. 303 |
Outlook | p. 305 |
Where We Are | p. 305 |
Current Shortcomings of Product Line Engineering | p. 306 |
Methodological Shortcomings | p. 307 |
Technology and Tools | p. 309 |
Going Beyond Product Lines | p. 310 |
Product Line Engineering for Practitioners | p. 311 |
Glossary | p. 313 |
References | p. 317 |
About the Authors | p. 327 |
Index | p. 329 |
Table of Contents provided by Publisher. All Rights Reserved. |