Contributors |
|
ix | |
|
Section I Organizational and Managerial Issues |
|
|
|
Software Product Line Engineering: Overview and Future Directions |
|
|
3 | (12) |
|
|
|
|
|
4 | (1) |
|
|
4 | (2) |
|
Organizational, Process, and Technical Issues |
|
|
6 | (3) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
Future Research Directions |
|
|
9 | (1) |
|
|
10 | (5) |
|
|
13 | (2) |
|
A Roadmap for Software Product Line Adoption |
|
|
15 | (24) |
|
|
|
|
|
|
16 | (1) |
|
Product Line Practice Patterns |
|
|
17 | (10) |
|
A Pattern for the Entire Product Line Organization |
|
|
18 | (2) |
|
Making the Factory Pattern into a Roadmap: The Adoption Factory Pattern |
|
|
20 | (1) |
|
Four Views of the Adoption Factory Pattern |
|
|
21 | (1) |
|
|
21 | (1) |
|
|
22 | (1) |
|
Phases and Focus Areas View |
|
|
22 | (1) |
|
|
23 | (1) |
|
Mastering the Practice Areas in a Continuous Way |
|
|
23 | (2) |
|
Adoption Factory Pattern and Technology Change |
|
|
25 | (2) |
|
|
27 | (9) |
|
|
27 | (5) |
|
Case Study 2: An Iterative Rollout |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
36 | (3) |
|
|
36 | (1) |
|
|
36 | (3) |
|
New Methods behind a New Generation of Software Product Line Successes |
|
|
39 | (22) |
|
|
|
40 | (1) |
|
Software Mass Customization |
|
|
41 | (7) |
|
Sans Application Engineering |
|
|
41 | (2) |
|
Software Product Line Configurators |
|
|
43 | (3) |
|
Developing the Intangible Product |
|
|
46 | (1) |
|
Variation Management in Time and Space |
|
|
47 | (1) |
|
Impact of the Software Mass Customization Methodology |
|
|
48 | (1) |
|
Minimally Invasive Transitions |
|
|
48 | (5) |
|
Minimize the Distance to a Better Product Line Practice |
|
|
50 | (1) |
|
It's Just Like Single-System Development, Except |
|
|
51 | (1) |
|
|
52 | (1) |
|
Incremental Return on Incremental Investment |
|
|
52 | (1) |
|
Impact of Minimally Invasive Transition Methodology |
|
|
53 | (1) |
|
|
53 | (6) |
|
Modularity, Encapsulation, and Aspects |
|
|
54 | (1) |
|
Composition and Hierarchy |
|
|
55 | (2) |
|
Controlling the Product Line Scope |
|
|
57 | (1) |
|
|
58 | (1) |
|
Impact of Bounded Combinatorics Methodology |
|
|
58 | (1) |
|
|
59 | (2) |
|
|
60 | (1) |
|
Evaluating Product Family Development Using the Balanced Scorecard Approach |
|
|
61 | (18) |
|
|
|
|
|
62 | (1) |
|
|
63 | (4) |
|
Product Family Engineering |
|
|
63 | (3) |
|
|
66 | (1) |
|
Balanced Scorecard Approach: Aligning Product Family Engineering Approach with Business Strategy |
|
|
67 | (5) |
|
Learning and Growth (Innovation) Perspective |
|
|
67 | (2) |
|
Internal Business Perspective |
|
|
69 | (1) |
|
|
69 | (1) |
|
|
70 | (1) |
|
Cause-and-Effect Relationships across Four Perspectives |
|
|
71 | (1) |
|
|
72 | (4) |
|
|
73 | (1) |
|
Understand the Vision and the Strategy |
|
|
73 | (1) |
|
Identify the Strategic Priorities and Objectives |
|
|
73 | (2) |
|
Select Performance Measures |
|
|
75 | (1) |
|
Operationalize the Project |
|
|
75 | (1) |
|
Implement and Roll Out the Project |
|
|
76 | (1) |
|
|
76 | (3) |
|
|
77 | (2) |
|
Product Management for Software Product Lines: An Overview |
|
|
79 | (30) |
|
|
|
|
Section II Methodologies and Processes |
|
|
|
A Systems Product Line Approach |
|
|
109 | (32) |
|
|
|
|
|
80 | (1) |
|
Two Perspectives on Software Product Lines |
|
|
80 | (3) |
|
The Marketing Perspective |
|
|
80 | (1) |
|
The Engineering Perspective |
|
|
81 | (1) |
|
Relationship between Both Perspectives |
|
|
81 | (2) |
|
Software Product Management in the Literature |
|
|
83 | (7) |
|
A Toolbox for Product Management for Software Product Lines |
|
|
90 | (12) |
|
Strategic Planning and Strategic Marketing Methods |
|
|
92 | (1) |
|
Tactical Marketing Methods |
|
|
93 | (2) |
|
Market-Oriented Scoping: Quality Function Deployment- Product Portfolio Planning (QFD-PPP) |
|
|
95 | (2) |
|
Technical Product line Scoping: PuLSE-Eco |
|
|
97 | (3) |
|
Economic Models for Cost Estimation and Investment Analysis |
|
|
100 | (1) |
|
Heuristic Models for Product Line Selection and Benefit Estimation |
|
|
101 | (1) |
|
|
102 | (39) |
|
|
103 | (38) |
|
Adoption of Software Product Lines to Develop Autonomic Pervasive Systems |
|
|
141 | (32) |
|
|
|
|
|
110 | (1) |
|
|
111 | (1) |
|
Systems Product Line Engineering with PLUSS+ |
|
|
112 | (2) |
|
|
114 | (6) |
|
|
114 | (1) |
|
Natural-Language Requirements |
|
|
115 | (1) |
|
Use Cases and Use Case Scenarios |
|
|
116 | (2) |
|
|
118 | (1) |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
120 | (11) |
|
Analyze Commonality and Variability |
|
|
122 | (1) |
|
Analyze Domain Requirements |
|
|
123 | (3) |
|
Analyze Domain Functionality |
|
|
126 | (2) |
|
Perform Domain Allocation |
|
|
128 | (2) |
|
Flowdown Domain Requirements |
|
|
130 | (1) |
|
|
131 | (5) |
|
Analyze System Requirements |
|
|
132 | (1) |
|
Analyze System Functionality |
|
|
133 | (2) |
|
|
135 | (1) |
|
Perform System Requirements Flowdown |
|
|
135 | (1) |
|
|
136 | (37) |
|
The Feature Model Is a Useful and Well-Used System Reference |
|
|
137 | (1) |
|
Use Case Realizations on System Level Might Confuse Experts |
|
|
137 | (1) |
|
Simple Notations Support Communication |
|
|
137 | (1) |
|
Simple Notations Might Not Be Sufficient in All Cases |
|
|
137 | (1) |
|
Strong Configuration Management and Product Planning Functions Are Important |
|
|
138 | (1) |
|
Don't Underestimate the Need for Tool Support |
|
|
138 | (1) |
|
|
138 | (35) |
|
Development of a Software Product Line for Validation Environments |
|
|
173 | (28) |
|
|
|
|
|
142 | (1) |
|
|
143 | (3) |
|
|
143 | (2) |
|
|
145 | (1) |
|
Dynamic Software Product Lines (DSPL) |
|
|
146 | (5) |
|
|
147 | (2) |
|
|
149 | (2) |
|
|
151 | (1) |
|
Evolution and Involution Scenarios for Autonomic Pervasive Systems |
|
|
151 | (2) |
|
Applying SPLs to Build Autonomic Pervasive Systems |
|
|
153 | (5) |
|
Reusing the SPL Reconfiguration Knowledge |
|
|
154 | (1) |
|
|
155 | (2) |
|
|
157 | (1) |
|
|
157 | (1) |
|
|
158 | (3) |
|
|
158 | (1) |
|
|
159 | (1) |
|
The Code Generation Phase |
|
|
159 | (1) |
|
Introducing the Autonomic Reconfigurator Component |
|
|
159 | (2) |
|
Case Study: An Autonomic Smart Home |
|
|
161 | (5) |
|
|
161 | (2) |
|
|
163 | (1) |
|
Smart-Home Reconfiguration |
|
|
164 | (2) |
|
|
166 | (2) |
|
Conclusions and Future Work |
|
|
168 | (33) |
|
|
168 | (33) |
|
Building a Family of Compilers |
|
|
201 | (30) |
|
|
|
|
174 | (2) |
|
|
176 | (1) |
|
|
177 | (13) |
|
|
177 | (7) |
|
A Product Line for Validation Environments |
|
|
184 | (6) |
|
|
190 | (5) |
|
Networked Slot Machine System |
|
|
190 | (1) |
|
Digital Television Decoder Systems |
|
|
191 | (4) |
|
|
195 | (1) |
|
|
196 | (35) |
|
|
196 | (1) |
|
|
196 | (35) |
|
Formal Verification and Software Product Lines |
|
|
231 | (18) |
|
|
|
|
202 | (1) |
|
The MLPolyR Compiler Family History |
|
|
203 | (2) |
|
Product Line Engineering as the Family Doctor |
|
|
205 | (13) |
|
Product Line Engineering for a Family of the MLPolyR Compilers |
|
|
207 | (1) |
|
|
207 | (2) |
|
Product Line Archirecture Design |
|
|
209 | (2) |
|
Product Line Component Design |
|
|
211 | (1) |
|
|
212 | (1) |
|
Generic Components with Structure Abbreviation |
|
|
213 | (1) |
|
Generic Components with Parameterization over Components |
|
|
214 | (1) |
|
Generic Components with Parameterization over Types |
|
|
215 | (3) |
|
Product Engineering of a Family |
|
|
218 | (1) |
|
|
218 | (3) |
|
|
218 | (1) |
|
|
219 | (2) |
|
|
221 | (1) |
|
|
221 | (4) |
|
|
221 | (1) |
|
|
221 | (2) |
|
|
223 | (2) |
|
|
225 | (2) |
|
|
225 | (1) |
|
Product line Implementation |
|
|
226 | (1) |
|
Product Line-Based Reengineering |
|
|
226 | (1) |
|
|
227 | (1) |
|
|
227 | (22) |
|
|
227 | (22) |
|
Section III Technical Issues |
|
|
|
Multiple-View Requirements Models for Software Product Line Engineering |
|
|
249 | (20) |
|
|
|
|
232 | (1) |
|
|
233 | (2) |
|
Design Verification Based on Test Scenario |
|
|
233 | (1) |
|
Applying Model Checking Techniques |
|
|
233 | (2) |
|
|
235 | (6) |
|
|
235 | (1) |
|
Variation Points in a Verification Model |
|
|
235 | (3) |
|
|
238 | (1) |
|
Feature Model and Extended Design Model |
|
|
238 | (2) |
|
|
240 | (1) |
|
|
241 | (2) |
|
|
241 | (1) |
|
|
241 | (1) |
|
|
242 | (1) |
|
|
243 | (2) |
|
|
245 | (24) |
|
|
245 | (24) |
|
Managing Flexibility and Variability: A Road to Competitive Advantage |
|
|
269 | (46) |
|
|
|
|
|
|
|
|
250 | (1) |
|
Reusable Software Requirements Models |
|
|
251 | (1) |
|
Multiple-View Requirements Models for Single Applications |
|
|
251 | (1) |
|
Multiple-View Requirements Models for Software Product Lines |
|
|
252 | (1) |
|
|
252 | (1) |
|
Example of Use Case Model and Feature to Use Case Relationship Table |
|
|
253 | (1) |
|
|
253 | (2) |
|
|
254 | (1) |
|
|
255 | (4) |
|
Example of Activity Diagram |
|
|
258 | (1) |
|
|
259 | (7) |
|
Model-Based Test Design for Software Product Lines |
|
|
259 | (2) |
|
Meta-Modeling for Reusable Requirement Models |
|
|
261 | (1) |
|
|
262 | (1) |
|
Example of Decision Table |
|
|
263 | (1) |
|
A Variability Mechanism to Customize Decision Tables |
|
|
263 | (3) |
|
Configuring Reusable Test Models |
|
|
266 | (1) |
|
|
266 | (49) |
|
|
266 | (1) |
|
|
267 | (48) |
|
Feature Oriented Analysis and Design for Dynamically Reconfigurable Product Lines |
|
|
315 | (22) |
|
|
|
|
271 | (2) |
|
Software-Intensive Product Development |
|
|
273 | (1) |
|
Software Product Development Models |
|
|
274 | (3) |
|
Flexibility and Variability in Software-Intensive Product Development |
|
|
277 | (5) |
|
Product Variability: The Consequence of Embracing Customer Intimacy |
|
|
277 | (1) |
|
Flexible Development: The Consequence of Embracing Innovation |
|
|
278 | (1) |
|
Flexibility and Variability Are Different |
|
|
279 | (1) |
|
State of the Art in Product Variability |
|
|
279 | (2) |
|
State of the Art in Flexible Development |
|
|
281 | (1) |
|
A Static View on Flexible Development and Product Variability |
|
|
282 | (1) |
|
A Dynamic View on Flexible Development and Product Variability |
|
|
282 | (9) |
|
Increasing Need for Customer Intimacy (Variability) |
|
|
286 | (1) |
|
Increasing Need for Bringing Innovations Faster to the Markets (Flexibility) |
|
|
286 | (1) |
|
Other Transitions Caused by Innovation |
|
|
286 | (1) |
|
Toward Hybrid Products: Not Too Much Product, Not Too Much Service |
|
|
287 | (1) |
|
Transitions Induced by Technological Evolutions |
|
|
288 | (2) |
|
Transitions Induced by the Desire of Suppliers to Create Vendor Lock-In |
|
|
290 | (1) |
|
A Decision Framework to Improve Flexibility and Variability |
|
|
291 | (4) |
|
Trade-Off Analysis: Choosing an Optimal Model for Variability |
|
|
292 | (1) |
|
Trade-Off Analysis: Choosing an Optimal Model for Flexibility |
|
|
293 | (1) |
|
Improving Flexibility and Variability within a Software Product Development Model |
|
|
294 | (1) |
|
Flexibility and Variability in the Project-Based Development Model |
|
|
295 | (2) |
|
|
295 | (1) |
|
Flexibility in Product Delivery |
|
|
295 | (1) |
|
Flexibility in Product Maintenance |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
297 | (1) |
|
|
297 | (1) |
|
Flexibility and Variability in the Out-of-the-Box Product Development Model |
|
|
297 | (5) |
|
|
299 | (1) |
|
Flexibility in Product Evolution |
|
|
299 | (1) |
|
Flexibility in Product Maintenance |
|
|
300 | (1) |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
301 | (1) |
|
Flexibility and Variability in the Customized Product Development Model |
|
|
302 | (4) |
|
|
302 | (1) |
|
Flexibility in Product Base Evolution and Maintenance |
|
|
302 | (1) |
|
Flexibility in Derivation |
|
|
303 | (1) |
|
|
304 | (1) |
|
Flexibility in Harvesting |
|
|
304 | (2) |
|
|
306 | (1) |
|
|
306 | (1) |
|
|
306 | (1) |
|
Flexibility and Variability in the Technology Platform Development Model |
|
|
306 | (3) |
|
|
306 | (1) |
|
Flexibility in Platform Evolution and Maintenance |
|
|
306 | (2) |
|
Flexibility in Encapsulation |
|
|
308 | (1) |
|
|
308 | (1) |
|
|
308 | (1) |
|
|
309 | (1) |
|
|
309 | (1) |
|
|
309 | (28) |
|
|
310 | (1) |
|
|
310 | (27) |
|
Separating Application and Security Concerns in Modeling Software Product Lines |
|
|
337 | (30) |
|
|
|
|
316 | (1) |
|
|
317 | (3) |
|
Feature Oriented Analysis for Dynamic Reconfiguration |
|
|
320 | (10) |
|
|
320 | (3) |
|
Behavior and Data Flow Specifications of FBUs |
|
|
323 | (1) |
|
Context Analysis and Specification |
|
|
324 | (1) |
|
Specification of Reconfiguration Strategies |
|
|
325 | (4) |
|
Confirmation of Consistency Rules |
|
|
329 | (1) |
|
Architecture Design for Dynamic Reconfiguration |
|
|
330 | (4) |
|
Guidelines for Designing Dynamically Reconfigurable Architectures |
|
|
331 | (1) |
|
Example: VOF Architecture |
|
|
332 | (2) |
|
|
334 | (33) |
|
|
335 | (32) |
|
|
367 | (32) |
|
|
|
338 | (2) |
|
Security Services for Application Systems |
|
|
340 | (1) |
|
Security Requirements Modeling of Software Product Lines |
|
|
341 | (9) |
|
Use Case Modeling for Software Product Lines |
|
|
341 | (1) |
|
Separation of Concerns in Use Case Modeling |
|
|
342 | (1) |
|
Examples of Separation of Concerns in Use Case Modeling |
|
|
343 | (7) |
|
Static Modeling of Software Product Line Application and Security Concerns |
|
|
350 | (3) |
|
Separation of Concerns in Static Modeling |
|
|
352 | (1) |
|
Dynamic Modeling of Secure Software Product Lines |
|
|
353 | (4) |
|
Separation of Concerns in Collaboration Modeling |
|
|
354 | (3) |
|
Separation of Concerns in Statechart Modeling |
|
|
357 | (1) |
|
Component-Based Software Architecture for Secure Software Product Lines |
|
|
357 | (7) |
|
Separation of Concerns in Component-Based Software Architecture Modeling |
|
|
360 | (4) |
|
|
364 | (35) |
|
|
365 | (34) |
|
Section IV Industry Experiences and Case Studies |
|
|
|
Management and Financial Controls of a Software Product Line Adoption |
|
|
399 | (22) |
|
|
|
368 | (1) |
|
|
369 | (9) |
|
|
369 | (1) |
|
|
369 | (1) |
|
Background: What Is a Language? |
|
|
370 | (1) |
|
Developing a Language for Describing Architecture |
|
|
370 | (1) |
|
|
371 | (1) |
|
|
371 | (1) |
|
|
372 | (2) |
|
|
374 | (2) |
|
|
376 | (1) |
|
Are They Really Messages? |
|
|
376 | (2) |
|
|
378 | (3) |
|
Background: Variability with Feature Models |
|
|
378 | (1) |
|
Negative Variability in the Models |
|
|
379 | (1) |
|
Positive Variability in the Models |
|
|
380 | (1) |
|
Variability in Manually Written Code |
|
|
381 | (1) |
|
|
381 | (14) |
|
What We Did in a Nutshell |
|
|
381 | (1) |
|
Domain-Specific Languages |
|
|
382 | (1) |
|
The Importance of Viewpoints |
|
|
382 | (1) |
|
|
383 | (1) |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
384 | (1) |
|
Describing Feature Models and Configurations |
|
|
385 | (1) |
|
Feature Model Integration |
|
|
386 | (1) |
|
|
387 | (1) |
|
|
387 | (1) |
|
|
387 | (1) |
|
|
388 | (1) |
|
Variability in the Transformations and Code Generators |
|
|
389 | (1) |
|
|
389 | (1) |
|
|
390 | (1) |
|
Why Not Simply Use a Programming Language? |
|
|
391 | (1) |
|
|
391 | (1) |
|
|
392 | (1) |
|
|
393 | (1) |
|
What Needs to Be Documented? |
|
|
394 | (1) |
|
|
395 | (26) |
|
|
395 | (1) |
|
|
395 | (26) |
|
Efficient Scoping with CaVE: A Case Study |
|
|
421 | (26) |
|
|
|
|
|
422 | (1) |
|
|
423 | (7) |
|
|
424 | (1) |
|
|
425 | (1) |
|
Domain Potential Assessment |
|
|
426 | (1) |
|
Information Need in Scoping |
|
|
427 | (3) |
|
|
430 | (4) |
|
|
431 | (1) |
|
|
432 | (1) |
|
|
432 | (1) |
|
|
433 | (1) |
|
|
434 | (9) |
|
Case Study Context and Goals |
|
|
434 | (2) |
|
|
436 | (1) |
|
|
437 | (3) |
|
|
440 | (2) |
|
|
442 | (1) |
|
Comparison to Other Studies |
|
|
443 | (1) |
|
|
443 | (4) |
|
|
444 | (1) |
|
|
444 | (3) |
|
Model-Driven, Aspect-Oriented Product Line Engineering: An Industrial Case Study |
|
|
447 | (30) |
|
|
|
|
Introduction and Motivation |
|
|
448 | (2) |
|
Integrating Models and Aspects into Product Line Engineering |
|
|
450 | (5) |
|
|
455 | (13) |
|
|
455 | (1) |
|
|
456 | (2) |
|
|
458 | (1) |
|
Solution-Space Implementation |
|
|
459 | (1) |
|
Mapping from Problem Space to Solution Space |
|
|
460 | (1) |
|
Smart Home Component Library |
|
|
461 | (1) |
|
|
462 | (1) |
|
|
462 | (3) |
|
Reflective Data Structures |
|
|
465 | (1) |
|
|
466 | (1) |
|
|
467 | (1) |
|
|
468 | (3) |
|
|
468 | (2) |
|
|
470 | (1) |
|
|
471 | (2) |
|
Aspects on the Model Level |
|
|
471 | (1) |
|
Aspects on Transformator Level |
|
|
472 | (1) |
|
Aspects on Generator Level |
|
|
472 | (1) |
|
|
473 | (4) |
|
|
474 | (3) |
|
Evaluation of Design Options in Embedded Automotive Product Lines |
|
|
477 | (20) |
|
|
|
|
478 | (1) |
|
Automotive Embedded Systems |
|
|
479 | (3) |
|
|
480 | (1) |
|
|
481 | (1) |
|
|
482 | (3) |
|
|
482 | (1) |
|
|
482 | (1) |
|
|
482 | (1) |
|
|
483 | (1) |
|
Black-Scholes-Merton Model |
|
|
483 | (1) |
|
|
484 | (1) |
|
Real Options in Embedded System Design |
|
|
485 | (1) |
|
Suitability of Real Options |
|
|
485 | (1) |
|
Real Options in Automotive Systems |
|
|
486 | (1) |
|
|
486 | (3) |
|
Case Study: Network Usage |
|
|
489 | (3) |
|
|
492 | (1) |
|
|
492 | (2) |
|
|
494 | (3) |
|
|
494 | (3) |
|
Product Line in the Business Process Management Domain |
|
|
497 | (34) |
|
|
Itana Maria De Souza Gimenes |
|
|
Maria Beatriz Felgar De Toledo |
|
|
|
498 | (1) |
|
|
499 | (3) |
|
|
502 | (4) |
|
The BPM Execution Environment |
|
|
502 | (2) |
|
The PL for BPM Development Process |
|
|
504 | (2) |
|
The WS-Contract Establishment Process |
|
|
506 | (13) |
|
E-Services Feature Model Elaboration |
|
|
509 | (2) |
|
WS-Contract Template Creation |
|
|
511 | (4) |
|
E-Services Feature Model Configuration |
|
|
515 | (1) |
|
WS-Contract Establishment |
|
|
516 | (3) |
|
An Application of the WS-Contract Establishment Process in Telecom Context |
|
|
519 | (6) |
|
|
520 | (1) |
|
|
520 | (4) |
|
Variability Degree Analysis |
|
|
524 | (1) |
|
|
525 | (2) |
|
|
527 | (1) |
|
|
528 | (3) |
|
|
528 | (3) |
Index |
|
531 | |