Hilfe Warenkorb Konto Anmelden
 
 
   Schnellsuche   
     zur Expertensuche                      
Software Product Line Engineering
  Großes Bild
 
Software Product Line Engineering
von: Klaus Pohl, Günter Böckle, Frank van der Linden
Springer-Verlag, 2005
ISBN: 9783540289012
474 Seiten, Download: 5041 KB
 
Format:  PDF
geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop

Typ: A (einfacher Zugriff)

 

 
eBook anfordern
Inhaltsverzeichnis

  Preface 4  
     I. Software Product Line Engineering 4  
     II. Readers of the Book 4  
     III. Book Overview 5  
     IV. Share Your Experience! 8  
     V. Acknowledgements 9  
     I. Fourteen-Lecture Course on SPLE 11  
     II. Two-Lecture Module on SPLE 13  
     III. Four-Lecture Module on SPLE 13  
     IV. One-Lecture Module on COTS Selection 14  
     V. Three-Lecture Module on Testing in SPLE 14  
     VI. Exercises 14  
        Paper-Based Exercises 15  
        Extending a Product Line and Deriving an Application 17  
  Contents 20  
  Part I Introduction 26  
     Introduction to Software Product Line Engineering 27  
        1.1 Principles of Product Line Engineering 28  
           1.1.1 Mass Customisation 28  
           1.1.2 Platforms 29  
           1.1.3 Combining Platform-Based Development and Mass Customisation 31  
        1.2 Engineering Customised Products 31  
           1.2.1 Creating the Platform 31  
           1.2.2 Introducing Flexibility 32  
           1.2.3 Reorganising the Company 33  
        1.3 Motivations for Product Line Engineering 33  
           1.3.1 Reduction of Development Costs 33  
           1.3.2 Enhancement of Quality 34  
           1.3.3 Reduction of Time to Market 34  
           1.3.4 Additional Motivations 35  
        1.4 Software Product Line Engineering 37  
           1.4.1 Definition 38  
           1.4.2 Software Platform 39  
           1.4.3 Prerequisites 40  
     A Framework for Software Product Line Engineering 43  
        2.1 Introduction 44  
        2.2 Two Development Processes 44  
        2.3 Overview of the Framework 45  
        2.4 Domain Engineering 47  
           2.4.1 Product Management 48  
           2.4.2 Domain Requirements Engineering 49  
           2.4.3 Domain Design 50  
           2.4.4 Domain Realisation 51  
           2.4.5 Domain Testing 51  
           2.4.6 Other Software Quality Assurance Techniques 52  
        2.5 Domain Artefacts 52  
           2.5.1 Product Roadmap 52  
           2.5.2 Domain Variability Model 53  
           2.5.3 Domain Requirements 53  
           2.5.4 Domain Architecture 53  
           2.5.5 Domain Realisation Artefacts 54  
           2.5.6 Domain Test Artefacts 54  
        2.6 Application Engineering 54  
           2.6.1 Application Requirements Engineering 55  
           2.6.2 Application Design 56  
           2.6.3 Application Realisation 57  
           2.6.4 Application Testing 57  
        2.7 Application Artefacts 58  
           2.7.1 Application Variability Model 59  
           2.7.2 Application Requirements 59  
           2.7.3 Application Architecture 59  
           2.7.4 Application Realisation Artefacts 59  
           2.7.5 Application Test Artefacts 60  
        2.8 Role of the Framework in the Book 60  
     Overview of the Example Domain: Home Automation 63  
        3.1 Smart Home Fundamentals 64  
           3.1.1 Goals 64  
           3.1.2 Stakeholders 65  
           3.1.3 Smart Homes vs. Conventional Homes 65  
        3.2 Building Blocks of a Home Automation System 67  
           3.2.1 Sensors and Actuators 67  
           3.2.2 Smart Control Devices 67  
           3.2.3 The Home Gateway 68  
           3.2.4 Networking 69  
           3.2.5 Standards in the Home Automation Domain 69  
        3.3 An Example 70  
           3.3.1 System Functionality 70  
           3.3.2 A Simple System Configuration 72  
           3.3.3 System Component Interaction 73  
        3.4 Software Variability in Smart Home Applications 74  
           3.4.1 Examples of Variability 74  
           3.4.2 Causes of Variability 75  
        3.5 Role of the Home Automation Domain in the Book 76  
        Part II: Overview 78  
  Part II Product Line Variability 77  
     Principles of Variability 79  
        4.1 Introduction 80  
        4.2 Variability Subject and Variability Object 81  
        4.3 Variability in Software Product Line Engineering 83  
           4.3.1 Variation Point 83  
           4.3.2 Variant 84  
           4.3.3 Defining Variation Points and Variants 85  
           4.3.4 Variability of a Software Product Line 86  
        4.4 Variability in Time vs. Variability in Space 87  
        4.5 Internal and External Variability 90  
           4.5.1 Causes of External Variability 91  
           4.5.2 Causes of Internal Variability 91  
           4.5.3 Deciding between Internal and External Variability 92  
           4.5.4 The Variability Pyramid 93  
        4.6 Orthogonal Variability Model 94  
           4.6.1 Explicit Documentation of Variability 95  
           4.6.2 Orthogonal Variability Definition 96  
           4.6.3 Variation Points, Variants, and Variability Dependencies 97  
           4.6.4 Alternative Choice 99  
           4.6.5 Variability Constraints 101  
           4.6.6 Traceability between Variability Model and Other Development Artefacts 104  
           4.6.7 Graphical Notation 106  
           4.6.8 An Example 107  
           4.6.9 Terminology Issues 108  
        4.7 Handling Complexity in Variability Models 109  
        4.8 Differences from Single-System Engineering 110  
        4.9 Summary 110  
     Documenting Variability in Requirements Artefacts 111  
        5.1 Introduction 112  
        5.2 Documenting Requirements 113  
           5.2.1 Model-Based vs. Textual Requirements Documentation 113  
           5.2.2 Requirements Artefacts 114  
           5.2.3 Goals and Features 114  
           5.2.4 Scenarios and Use Cases 115  
           5.2.5 Traditional Requirements Models 117  
        5.3 Variability in Textual Requirements 118  
           5.3.1 Defining Variability in Textual Requirements 119  
           5.3.2 Documenting Variability Using XML 120  
        5.4 Variability in Requirements Models 121  
           5.4.1 Variability in Feature Models 121  
           5.4.2 Variability in Use Case Models 125  
           5.4.3 Variability in Traditional Requirements Models 127  
        5.5 Traceability Between Variability Model and Requirements Artefacts 131  
        5.6 Differences from Single-System Engineering 134  
        5.7 Summary 135  
     Documenting Variability in Design Artefacts 136  
        6.1 Introduction 137  
        6.2 Architectural Artefacts 138  
           6.2.1 Architecture Views 140  
        6.3 The Reference Architecture 144  
        6.4 Variability in the Development View 145  
           6.4.1 Subsystems and Layers 145  
           6.4.2 Components 147  
           6.4.3 The Role of Interfaces 148  
           6.4.4 Configurations 149  
        6.5 Variability in the Process View 152  
        6.6 Variability in the Code View 153  
        6.7 Differences from Single-System Engineering 155  
        6.8 Summary 155  
     Documenting Variability in Realisation Artefacts 156  
        7.1 Introduction 157  
        7.2 Detailed Design Artefacts 158  
        7.3 Component Interface Variability 160  
           7.3.1 Variability in Algorithms and Protocols 161  
           7.3.2 Variability in Resources 162  
           7.3.3 Variability in Application Configuration 163  
           7.3.4 Many Components Providing the Interface 164  
        7.4 Internal Component Variability 166  
        7.5 Differences from Single-System Engineering 168  
        7.6 Summary 168  
     Documenting Variability in Test Artefacts 170  
        8.1 Introduction 171  
        8.2 Test Artefacts 172  
        8.3 Variability in Test Artefacts 173  
           8.3.1 Test Plan 173  
           8.3.2 Test Case 174  
           8.3.3 Test Case Scenario 175  
           8.3.4 Test Case Scenario Step 176  
           8.3.5 Test Summary Report 177  
        8.4 Differences from Single-System Engineering 178  
        8.5 Summary 178  
        Part III: Overview 180  
  Part III Domain Engineering 179  
     Product Management 181  
        9.1 Introduction 182  
           9.1.1 Interrelation with Domain Requirements Engineering 183  
           9.1.2 Interrelation with Application Requirements Engineering 184  
        9.2 Terminology 184  
        9.3 Traditional Product Management Activities 185  
        9.4 Portfolio Management 186  
           9.4.1 IT Business Types 187  
           9.4.2 Product Life Cycle 188  
           9.4.3 Product Portfolio Analysis 190  
           9.4.4 Product Interdependences 192  
           9.4.5 Product Variants 193  
        9.5 Extension of the Product Portfolio 195  
           9.5.1 Product Innovation 195  
           9.5.2 Product Imitation 197  
           9.5.3 Assessment of Product Ideas 197  
           9.5.4 Product Definition with the Kano Scheme 199  
           9.5.5 Quality Function Deployment (QFD) 204  
           9.5.6 Target Costing 204  
        9.6 Management of Existing Products 204  
           9.6.1 Conservation and Expansion of Potentials 204  
           9.6.2 Product Elimination 205  
        9.7 Scoping 206  
        9.8 Differences from Single-System Engineering 207  
           9.8.1 Strategic Role of the Platform 208  
           9.8.2 Product Definition 208  
           9.8.3 Output 209  
        9.9 Summary 209  
     Domain Requirements Engineering 211  
        10.1 Introduction 212  
           10.1.1 Interrelation with Product Management 213  
           10.1.2 Interrelation with Domain Design 213  
           10.1.3 Interrelation with Application Requirements Engineering 214  
        10.2 Traditional Requirements Engineering Activities 215  
        10.3 Challenges of Domain Requirements Engineering 216  
           10.3.1 Specific Activities 216  
           10.3.2 Variability in Different Views 217  
        10.4 Overview of Major Steps 217  
           10.4.1 Defining Common Requirements 217  
           10.4.2 Defining Variable Requirements 218  
        10.5 Requirements Sources 219  
        10.6 Commonality Analysis 219  
           10.6.1 Application–Requirements Matrix 220  
           10.6.2 Priority-Based Analysis 221  
           10.6.3 Checklist-Based Analysis 222  
        10.7 Variability Analysis 222  
           10.7.1 Variability Analysis with the Application–Requirements Matrix 223  
           10.7.2 Priority-Based Variability Analysis 223  
           10.7.3 Checklist-Based Variability Analysis 224  
        10.8 Defining Requirements Variability 224  
           10.8.1 Variation Points and Variants 224  
           10.8.2 Variability Dependencies 225  
           10.8.3 Constraint Dependencies 227  
           10.8.4 Adaptation of Product Line Variability Based on Product Management Decisions 227  
        10.9 Example 227  
           10.9.1 Commonality Analysis 228  
           10.9.2 Variability Analysis 231  
           10.9.3 Defining Variation Points and Variants 231  
           10.9.4 Defining Variability Dependencies 232  
           10.9.5 Defining Constraint Dependencies 232  
           10.9.6 Documenting Domain Requirements 233  
        10.10 Differences from Single-System Engineering 233  
        10.11 Summary 234  
     Domain Design 235  
        11.1 Introduction 236  
           11.1.1 Interrelation with Domain Requirements Engineering 236  
           11.1.2 Interrelation with Domain Realisation 237  
           11.1.3 Interrelation with Application Design 238  
        11.2 Traditional Design Activities 238  
        11.3 Quality Requirements 239  
        11.4 Commonality and Variability in Design 243  
           11.4.1 Requirements Prioritisation 244  
           11.4.2 Mapping Between Requirements and Design 245  
           11.4.3 Adding Variability in Design 247  
        11.5 Designing the Reference Architecture 249  
           11.5.1 Use of Component Frameworks 250  
           11.5.2 Use of Application-Specific Plug-ins 252  
           11.5.3 Use of Aspects 252  
           11.5.4 Role of the Architectural Texture 253  
        11.6 Architecture Validation 254  
        11.7 Differences from Single-System Engineering 256  
        11.8 Summary 257  
     Domain Realisation 259  
        12.1 Introduction 260  
           12.1.1 Interrelation with Domain Design 261  
           12.1.2 Interrelation with Domain Testing 261  
           12.1.3 Interrelation with Application Realisation 261  
        12.2 Traditional Realisation Activities 262  
        12.3 Realising Interfaces 263  
           12.3.1 Variable vs. Invariant Interfaces 263  
           12.3.2 Interface Elements 264  
        12.4 Realising Variable Components 266  
           12.4.1 Quality of a Component 266  
           12.4.2 Distributing Variability over Components 267  
        12.5 Binding Time of Variability 268  
           12.5.1 Before Compilation 269  
           12.5.2 At Compile Time 270  
           12.5.3 At Link Time 270  
           12.5.4 At Load Time 271  
           12.5.5 At Run-Time 271  
        12.6 Realising Configurability 271  
        12.7 Differences from Single-System Engineering 273  
        12.8 Summary 273  
     Domain Testing 275  
        13.1 Introduction 276  
           13.1.1 Interrelation with Domain Requirements Engineering 278  
           13.1.2 Interrelation with Domain Design 279  
           13.1.3 Interrelation with Domain Realisation 279  
           13.1.4 Interrelation with Application Testing 279  
        13.2 Software Testing 280  
           13.2.1 Defects 281  
           13.2.2 Test Levels 281  
        13.3 Domain Testing and Application Testing 284  
        13.4 Testing Variability at Different Test Levels 285  
           13.4.1 Domain Unit Test 285  
           13.4.2 Domain Integration Test 286  
           13.4.3 Domain System Test 286  
        13.5 Criteria for Product Line Test Strategies 288  
           13.5.1 Time to Create Test Artefacts 288  
           13.5.2 Absent Variants 288  
           13.5.3 Early Validation 289  
           13.5.4 Learning Effort 289  
           13.5.5 Overhead 289  
        13.6 Product Line Test Strategies 289  
           13.6.1 Brute Force Strategy 290  
           13.6.2 Pure Application Strategy 291  
           13.6.3 Sample Application Strategy 293  
           13.6.4 Commonality and Reuse Strategy 295  
           13.6.5 Conclusions for Strategy Selection 298  
        13.7 Domain Test Activities 299  
           13.7.1 Domain Test Planning 299  
           13.7.2 Domain Test Specification 300  
           13.7.3 Domain Test Execution, Recording, and Completion 301  
        13.8 Differences from Single-System Engineering 301  
        13.9 Summary 302  
     Selecting High- Level COTS Components 303  
        14.1 Introduction 304  
           14.1.1 Interrelation with Domain Requirements Engineering 305  
           14.1.2 Interrelation with Domain Design 306  
        14.2 The CoVAR Process 306  
           14.2.1 Component Screening 309  
           14.2.2 Detailed Component Evaluation 313  
           14.2.3 Component Selection 318  
        14.3 Differences from Single-System Engineering 318  
        14.4 Summary 319  
        Part IV: Overview 321  
  Part IV Application Engineering 320  
     Application Requirements Engineering 322  
        15.1 Introduction 323  
           15.1.1 Interrelation with Product Management 324  
           15.1.2 Interrelation with Domain Requirements Engineering 325  
           15.1.3 Interrelation with Application Design 326  
        15.2 Application Requirements Engineering Activities 327  
        15.3 Communication of the Product Line Variability 330  
           15.3.1 Variation Points and Variants 330  
           15.3.2 Domain Requirements Artefacts 331  
           15.3.3 Result of the Communication Activity 333  
        15.4 Analysis of Requirements Deltas 333  
           15.4.1 Variability Model Deltas 333  
           15.4.2 Impact on the Variability Model 333  
           15.4.3 Impact on Requirements Artefacts 336  
           15.4.4 Impact on the Architecture 337  
        15.5 Documentation of the Application Requirements 341  
        15.6 Differences from Single-System Engineering 343  
        15.7 Summary 344  
     Application Design 345  
        16.1 Introduction 346  
           16.1.1 Interrelation with Application Requirements Engineering 346  
           16.1.2 Interrelation with Domain Design 347  
           16.1.3 Interrelation with Application Realisation 348  
        16.2 Development of the Application Architecture 348  
           16.2.1 Application-Specific Modelling 349  
           16.2.2 Binding of Variants 350  
           16.2.3 Determining the Configuration 352  
           16.2.4 Consistent Selection of Component Variants 353  
        16.3 Feedback of Application Artefacts to the Domain 354  
        16.4 Effort and Cost of Variants 355  
        16.5 Differences from Single-System Engineering 356  
        16.6 Summary 357  
     Application Realisation 358  
        17.1 Introduction 359  
           17.1.1 Interrelation with Application Design 359  
           17.1.2 Interrelation with Application Testing 360  
           17.1.3 Interrelation with Domain Realisation 360  
        17.2 Configuration 361  
        17.3 Realisation of Application-Specific Components 363  
        17.4 Building the Application 364  
        17.5 Differences from Single-System Engineering 366  
        17.6 Summary 367  
     Application Testing 368  
        18.1 Introduction 369  
           18.1.1 Interrelation with Application Requirements Engineering 370  
           18.1.2 Interrelation with Application Design 370  
           18.1.3 Interrelation with Application Realisation 371  
           18.1.4 Interrelation with Domain Testing 371  
        18.2 Domain Test Artefact Reuse 372  
           18.2.1 Dealing with Variability 372  
           18.2.2 Use of Traceability Links 373  
        18.3 Tests Related to Variability 375  
        18.4 Testing Variability at Different Test Levels 377  
           18.4.1 Application Unit Test 377  
           18.4.2 Application Integration Test 377  
           18.4.3 Application System Test 378  
        18.5 Application Test Coverage 378  
           18.5.1 Application Commonality Test 379  
           18.5.2 Application Variant Test 379  
           18.5.3 Application-specific Tests 380  
        18.6 Application Test Activities 380  
           18.6.1 Application Test Planning 380  
           18.6.2 Application Test Specification 381  
           18.6.3 Application Test Execution 382  
        18.7 Differences from Single-System Engineering 382  
        18.8 Summary 383  
        Part V: Overview 385  
  Part V Organisation Aspects 384  
     Organisation 386  
        19.1 Introduction 387  
        19.2 Properties of Organisation Structures 387  
        19.3 Basic Hierarchical Organisation Structures 389  
           19.3.1 Development Department 390  
           19.3.2 Distributed Domain Engineering 391  
           19.3.3 Centralised Domain Engineering 393  
           19.3.4 Several Domain Engineering Units 394  
        19.4 Matrix Organisation Structures 395  
        19.5 Detailed Structure 400  
        19.6 Cross-Functional Teams 400  
        19.7 Organisation Theory 400  
        19.8 Differences from Single-System Engineering 402  
        19.9 Summary 403  
     Transition Process 404  
        20.1 Introduction 405  
        20.2 Motivation and Business Objectives 405  
        20.3 Transition Strategies 406  
        20.4 Benefits and Drawbacks of the Transition Strategies 409  
        20.5 Cost Model 411  
        20.6 Application of the Cost Model to the Transition Strategies 413  
        20.7 Major Steps of a Transition Process 417  
        20.8 Summary 421  
  Part VI Experience and Future Research 422  
     Experiences with Software Product Line Engineering 423  
        21.1 ABB 424  
        21.2 Boeing Company 425  
        21.3 CelsiusTech Systems AB 426  
        21.4 Cummins Inc. 427  
        21.5 Hewlett-Packard 429  
        21.6 LG Industrial Systems Co., Ltd. 430  
        21.7 Lucent Technologies 431  
        21.8 MARKET MAKER Software AG 432  
        21.9 Philips 434  
        21.10 Robert Bosch GmbH 437  
        21.11 Salion Inc. 438  
        21.12 Siemens AG Medical Solutions HS IM 440  
        21.13 Testo AG 441  
        21.14 The National Reconnaissance Office 442  
        21.15 The Naval Undersea Warfare Center 443  
     Future Research 445  
        22.1 Domain Specialisation 446  
        22.2 Quality Assurance 446  
        22.3 Model-Driven Development 446  
        22.4 Evolution 447  
        22.5 Multiple Product Lines 447  
        22.6 Tool Support 447  
        22.7 Process Improvement and Assessment 448  
        22.8 Economics 448  
  The Authors 449  
  References 453  
  Glossary 465  
  Index 468  
  More eBooks at www.ciando.com 0  


nach oben


  Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zu eBooks?

  Medientyp
  eBooks
  eJournal
  alle

  Navigation
Belletristik / Romane
Computer
Geschichte
Kultur
Medizin / Gesundheit
Philosophie / Religion
Politik
Psychologie / Pädagogik
Ratgeber
Recht
Reise / Hobbys
Sexualität / Erotik
Technik / Wissen
Wirtschaft

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek
© 2008-2024 ciando GmbH | Impressum | Kontakt | F.A.Q. | Datenschutz