Atnaujinkite slapukų nuostatas

Applied Software Product Line Engineering [Kietas viršelis]

Edited by , Edited by , Edited by
  • Formatas: Hardback, 562 pages, aukštis x plotis: 234x156 mm, weight: 929 g
  • Išleidimo metai: 22-Dec-2009
  • Leidėjas: Auerbach
  • ISBN-10: 1420068415
  • ISBN-13: 9781420068412
Kitos knygos pagal šią temą:
  • Formatas: Hardback, 562 pages, aukštis x plotis: 234x156 mm, weight: 929 g
  • Išleidimo metai: 22-Dec-2009
  • Leidėjas: Auerbach
  • ISBN-10: 1420068415
  • ISBN-13: 9781420068412
Kitos knygos pagal šią temą:
Over the last decade, software product line engineering (SPLE) has emerged as one of the most promising software development paradigms for increasing productivity in IT-related industries. Detailing the various aspects of SPLE implementation in different domains, Applied Software Product Line Engineering documents best practices with regard to system development.







Expert contributors from academia and industry come together and focus on core asset development, product development, and management, addressing the process, technical, and organizational issues needed to meet the growing demand for information. They detail the adoption and diffusion of SPLE as a primary software development paradigm and also address technical and managerial issues in software product line engineering. Providing an authoritative perspective of the latest research and practice in SLPE, the text:



















Presents in-depth discussions and many industry / case studies













Covers applications in various domains including automotive, business process management, and defense













Organized according to the organizational, process, and technical aspects of software product lines within an organization













Provides the expertise of a distinguished panel of global contributors











Ever-increasing global competition coupled with a fragile world economy means that the pressure is on for software engineers and software process improvement professionals to find ways to meet the needs of expanding marketswith greater efficiency and effectiveness. This book arms readers with the insight needed to harness the power of SPLE to increase productivity, reduce time to market, and to handle the growing diversity in the quickly evolving global marketplace.

Recenzijos

The book contains a number of chapters on organizational and managerial issues followed by methodologies and processes, technical issues, and industry experiences and case studies. ...Significant research went into the creation of this book. ... . Specific areas I found useful and applicable in my role of project, product, and program management include: *The IDEAL model for managing change *The balanced scorecard *The product management pyramid *The out-of-the-box development model *Security Services for application systems *Discussions on business process management Applied Software Product Line Engineering offers best practices and productivity improvement tips for designing software products. -Ann E. Drinkwater, on StickyMinds.com, October 2010

Contributors ix
Section I Organizational and Managerial Issues
Software Product Line Engineering: Overview and Future Directions
3(12)
Kyo C. Kang
Vijayan Sugumaran
Sooyong Park
Introduction
4(1)
History
4(2)
Organizational, Process, and Technical Issues
6(3)
Organizational Aspects
7(1)
Process Aspects
7(1)
Technical Aspects
8(1)
Future Research Directions
9(1)
Organization of the Book
10(5)
References
13(2)
A Roadmap for Software Product Line Adoption
15(24)
Lawrence G. Jones
Linda M. Northrop
Paul C. Clements
John D. Mcgregor
Introduction
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)
Phases View
21(1)
Focus Areas View
22(1)
Phases and Focus Areas View
22(1)
Practice Areas View
23(1)
Mastering the Practice Areas in a Continuous Way
23(2)
Adoption Factory Pattern and Technology Change
25(2)
Two Case Studies
27(9)
Case Study 1
27(5)
Case Study 2: An Iterative Rollout
32(1)
Iteration 1: Overview
33(1)
Iteration 1: Results
34(1)
Subsequent Iterations
35(1)
Summary
36(3)
Note
36(1)
References
36(3)
New Methods behind a New Generation of Software Product Line Successes
39(22)
Charles W. Krueger
Introduction
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)
Regression Red Flags
52(1)
Incremental Return on Incremental Investment
52(1)
Impact of Minimally Invasive Transition Methodology
53(1)
Bounded Combinatorics
53(6)
Modularity, Encapsulation, and Aspects
54(1)
Composition and Hierarchy
55(2)
Controlling the Product Line Scope
57(1)
Controlling Entropy
58(1)
Impact of Bounded Combinatorics Methodology
58(1)
Conclusions
59(2)
References
60(1)
Evaluating Product Family Development Using the Balanced Scorecard Approach
61(18)
Jong Woo Kim
Kannan Mohan
Balasubramaniam Ramesh
Introduction
62(1)
Background
63(4)
Product Family Engineering
63(3)
Balanced Scorecard
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)
Customer Perspective
69(1)
Financial Perspective
70(1)
Cause-and-Effect Relationships across Four Perspectives
71(1)
Discussion
72(4)
Prepare the Project
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)
Conclusion
76(3)
References
77(2)
Product Management for Software Product Lines: An Overview
79(30)
Andreas Helferich
Klaus Schmid
Georg Herzwurm
Section II Methodologies and Processes
A Systems Product Line Approach
109(32)
Magnus Eriksson
Jurgen Borstler
Kjell Borg
Introduction
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)
Conclusion/Outlook
102(39)
References
103(38)
Adoption of Software Product Lines to Develop Autonomic Pervasive Systems
141(32)
Carlos Cetina
Joan Fons
Vicente Pelechano
Introduction
110(1)
Systems Engineering
111(1)
Systems Product Line Engineering with PLUSS+
112(2)
Underlying Models
114(6)
System Context Diagram
114(1)
Natural-Language Requirements
115(1)
Use Cases and Use Case Scenarios
116(2)
Change Cases
118(1)
Use Case Realizations
119(1)
Feature Models
120(1)
Engineer Domain
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)
Engineer System
131(5)
Analyze System Requirements
132(1)
Analyze System Functionality
133(2)
Perform Allocation
135(1)
Perform System Requirements Flowdown
135(1)
Lessons Learned
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)
References
138(35)
Development of a Software Product Line for Validation Environments
173(28)
Belen Magro
Juan Garbajosa
Jennifer Perez
Introduction
142(1)
Background
143(3)
Autonomic Computing
143(2)
Pervasive Computing
145(1)
Dynamic Software Product Lines (DSPL)
146(5)
Connected DSPL
147(2)
Disconnected DSPL
149(2)
Conclusions
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)
The PervML Model
155(2)
The FAMA Feature Model
157(1)
The Realization Model
157(1)
Extending the SPL
158(3)
The Pruning Phase
158(1)
The Wrapping Phase
159(1)
The Code Generation Phase
159(1)
Introducing the Autonomic Reconfigurator Component
159(2)
Case Study: An Autonomic Smart Home
161(5)
The Models of the SPL
161(2)
Adaptation Scenarios
163(1)
Smart-Home Reconfiguration
164(2)
Related Work
166(2)
Conclusions and Future Work
168(33)
References
168(33)
Building a Family of Compilers
201(30)
Wonseok Chae
Matthias Blume
Introduction
174(2)
Product Line Definition
176(1)
Validation Environments
177(13)
Domain Overview
177(7)
A Product Line for Validation Environments
184(6)
Case Studies
190(5)
Networked Slot Machine System
190(1)
Digital Television Decoder Systems
191(4)
Lessons Learned
195(1)
Conclusions
196(35)
Acknowledgments
196(1)
References
196(35)
Formal Verification and Software Product Lines
231(18)
Tomoji Kishi
Natsuko Noda
Introduction
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)
Product Line Analysis
207(2)
Product Line Archirecture Design
209(2)
Product Line Component Design
211(1)
Static Components
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)
Product Analysis
218(3)
Architecture Selection
218(1)
Component Instantiation
219(2)
Product Instantiation
221(1)
Discussion
221(4)
Architecture Style
221(1)
Module Hierarchies
221(2)
Compiler Generators
223(2)
Related Work
225(2)
Extensible Compilers
225(1)
Product line Implementation
226(1)
Product Line-Based Reengineering
226(1)
Program Families
227(1)
Conclusion
227(22)
References
227(22)
Section III Technical Issues
Multiple-View Requirements Models for Software Product Line Engineering
249(20)
Hassan Gomaa
Erika Mir Olimpiew
Introduction
232(1)
Design Testing
233(2)
Design Verification Based on Test Scenario
233(1)
Applying Model Checking Techniques
233(2)
Verification by Reuse
235(6)
Issues
235(1)
Variation Points in a Verification Model
235(3)
Organizing Core Assets
238(1)
Feature Model and Extended Design Model
238(2)
Traceability
240(1)
Verification for Reuse
241(2)
Issues
241(1)
Assumption Model
241(1)
Verification Strategy
242(1)
Support Tool
243(2)
Conclusion
245(24)
References
245(24)
Managing Flexibility and Variability: A Road to Competitive Advantage
269(46)
Wim Codenie
Nicolas Gonzalez-Deleito
Jeroen Deleu
Vladimir Blagojevic
Pasi Kuvaja
Jouni Simila
Introduction
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)
Reusable Use Case Models
252(1)
Example of Use Case Model and Feature to Use Case Relationship Table
253(1)
Reusable Feature Models
253(2)
Example of Feature Model
254(1)
Reusable Activity Models
255(4)
Example of Activity Diagram
258(1)
Reusable Test Models
259(7)
Model-Based Test Design for Software Product Lines
259(2)
Meta-Modeling for Reusable Requirement Models
261(1)
Decision Tables
262(1)
Example of Decision Table
263(1)
A Variability Mechanism to Customize Decision Tables
263(3)
Configuring Reusable Test Models
266(1)
Conclusions
266(49)
Acknowledgments
266(1)
References
267(48)
Feature Oriented Analysis and Design for Dynamically Reconfigurable Product Lines
315(22)
JaeJong Lee
Dirk Muthig
Introduction
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)
Flexibility
295(1)
Flexibility in Product Delivery
295(1)
Flexibility in Product Maintenance
296(1)
Variability
297(1)
Challenges
297(1)
Recommendations
297(1)
Flexibility and Variability in the Out-of-the-Box Product Development Model
297(5)
Flexibility
299(1)
Flexibility in Product Evolution
299(1)
Flexibility in Product Maintenance
300(1)
Variability
301(1)
Challenges
301(1)
Recommendations
301(1)
Flexibility and Variability in the Customized Product Development Model
302(4)
Flexibility
302(1)
Flexibility in Product Base Evolution and Maintenance
302(1)
Flexibility in Derivation
303(1)
Flexibility in Upgrading
304(1)
Flexibility in Harvesting
304(2)
Variability
306(1)
Challenges
306(1)
Recommendations
306(1)
Flexibility and Variability in the Technology Platform Development Model
306(3)
Flexibility
306(1)
Flexibility in Platform Evolution and Maintenance
306(2)
Flexibility in Encapsulation
308(1)
Flexibility in Feedback
308(1)
Variability
308(1)
Challenges
309(1)
Recommendations
309(1)
Conclusion
309(28)
Acknowledgments
310(1)
References
310(27)
Separating Application and Security Concerns in Modeling Software Product Lines
337(30)
Michael E. Shin
Hassan Gomaa
Introduction
316(1)
Feature Orientation
317(3)
Feature Oriented Analysis for Dynamic Reconfiguration
320(10)
Feature Binding Graph
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)
Conclusions
334(33)
References
335(32)
Architecture as Language
367(32)
Markus Voelter
Introduction
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)
Conclusions
364(35)
References
365(34)
Section IV Industry Experiences and Case Studies
Management and Financial Controls of a Software Product Line Adoption
399(22)
Yoshihiro Matsumoto
Introduction
368(1)
A Story
369(9)
System Background
369(1)
The Starting Point
369(1)
Background: What Is a Language?
370(1)
Developing a Language for Describing Architecture
370(1)
Getting Started
371(1)
Interfaces
371(1)
Describing Systems
372(2)
Keeping the Overview
374(2)
Interfaces, Part II
376(1)
Are They Really Messages?
376(2)
Variability
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)
Recap and Benefits
381(14)
What We Did in a Nutshell
381(1)
Domain-Specific Languages
382(1)
The Importance of Viewpoints
382(1)
Benefits
383(1)
Why Textual?
383(1)
Tooling
384(1)
DSLs and Editors
384(1)
Describing Feature Models and Configurations
385(1)
Feature Model Integration
386(1)
Feature Clauses
387(1)
Aspect Weaving
387(1)
Validating the Model
387(1)
Generating Code
388(1)
Variability in the Transformations and Code Generators
389(1)
Standards, ADLs, and UML
389(1)
What about Reuse?
390(1)
Why Not Simply Use a Programming Language?
391(1)
My Notions of Components
391(1)
Component Implementation
392(1)
The Role of Patterns
393(1)
What Needs to Be Documented?
394(1)
Summary
395(26)
Acknowledgments
395(1)
References
395(26)
Efficient Scoping with CaVE: A Case Study
421(26)
Isabel John
Jens Knodel
Torsten Schulz
Introduction
422(1)
Scoping
423(7)
The Scoping Process
424(1)
Product Line Mapping
425(1)
Domain Potential Assessment
426(1)
Information Need in Scoping
427(3)
CaVE
430(4)
Patterns
431(1)
Preparation
432(1)
Search
432(1)
Validation
433(1)
Case Study
434(9)
Case Study Context and Goals
434(2)
Case Study Performance
436(1)
Case Study Results
437(3)
Case Study Analysis
440(2)
Threats to Validity
442(1)
Comparison to Other Studies
443(1)
Conclusions
443(4)
Acknowledgments
444(1)
References
444(3)
Model-Driven, Aspect-Oriented Product Line Engineering: An Industrial Case Study
447(30)
Iris Groher
Christa Schwanninger
Markus Voelter
Introduction and Motivation
448(2)
Integrating Models and Aspects into Product Line Engineering
450(5)
Industrial Case Study
455(13)
Home Automation Domain
455(1)
Problem Space Modeling
456(2)
Solution-Space Modeling
458(1)
Solution-Space Implementation
459(1)
Mapping from Problem Space to Solution Space
460(1)
Smart Home Component Library
461(1)
Orthogonal Variability
462(1)
Automatic Windows
462(3)
Reflective Data Structures
465(1)
Burglar Detection
466(1)
Application Engineering
467(1)
Evaluation
468(3)
Challenges Revisited
468(2)
Threats to Validity
470(1)
Related Work
471(2)
Aspects on the Model Level
471(1)
Aspects on Transformator Level
472(1)
Aspects on Generator Level
472(1)
Conclusions
473(4)
References
474(3)
Evaluation of Design Options in Embedded Automotive Product Lines
477(20)
Hakan Gustavsson
Jakob Axelsson
Introduction
478(1)
Automotive Embedded Systems
479(3)
System Architecture
480(1)
Decision Levels
481(1)
Introducing Real Options
482(3)
Financial Options
482(1)
Real Options
482(1)
Social Considerations
482(1)
Valuing Real Options
483(1)
Black-Scholes-Merton Model
483(1)
Binomial Model
484(1)
Real Options in Embedded System Design
485(1)
Suitability of Real Options
485(1)
Real Options in Automotive Systems
486(1)
Evaluation Process
486(3)
Case Study: Network Usage
489(3)
Discussion
492(1)
Related Work
492(2)
Conclusions
494(3)
References
494(3)
Product Line in the Business Process Management Domain
497(34)
Marcelo Fantinato
Itana Maria De Souza Gimenes
Maria Beatriz Felgar De Toledo
Introduction
498(1)
The BPM Domain
499(3)
The PL Structure for BPM
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)
Systems Domain
520(1)
Produced Artifacts
520(4)
Variability Degree Analysis
524(1)
Discussion
525(2)
Related Work
527(1)
Conclusions
528(3)
References
528(3)
Index 531
Kyo C. Kang, Vijayan Sugumaran, Sooyong Park