Under CopyrightMuthig, D.D.MuthigJohn, I.I.JohnAnastasopoulos, M.M.AnastasopoulosForster, T.T.ForsterDoerr, J.J.DoerrSchmid, K.K.Schmid2022-03-0721.04.20042004https://publica.fraunhofer.de/handle/publica/29208610.24406/publica-fhg-292086This report provides insights into component-based product line engineering on the basis of a case study from the mobile phones domain. The reader follows the systematic creation of a hypothetical software product line according to the PuLSE and KobrA methods developed at Fraunhofer IESE. Scoping as well as Application and Framework Engineering are covered. Our goal was to provide as broad an overview as possible. For that reason many details haven been intentionally left out.Inhaltsverzeichnis S.vii-viii 1 Introduction S.1-19 - 1.1 Motivation S.1-2 - 1.2 Software Product Lines S.2-4 - 1.3 PuLSE (Product Line Software Engineering) S.4-9 - 1.3.1 Deployment Phases S.5-6 - 1.3.2 Technical Components S.6-8 - 1.3.3 Support Components S.8-9 - 1.4 The KobrA Method S.9-17 - 1.4.1 Framework Engineering S.10-14 - 1.4.2 Application Engineering S.14-17 - 1.5 The Go Phone Case Study S.17 - 1.6 Outline S.18-19 2 Product Line Scoping S.20-48 - 2.1 Understanding the Product Portfolio S.22-23 - 2.2 Describing the product portfolio S.23-32 - 2.2.1 Go Phone Smart S.26-27 - 2.2.2 Go Phone XS S.27-28 - 2.2.3 Product Genealogy and Characterization S.28-32 - 2.3 Describing the relevant domains S.32-41 - 2.3.1 Messaging S.33-36 - 2.3.2 Message Controller S.36-39 - 2.3.3 Domain Structure S.39 - 2.3.4 Initial Product Map S.39-41 - 2.4 Analyzing benefits and risks of domains S.42-48 3 Domain Analysis S.49-73 - 3.1 Customization of PuLSE CDA S.50-51 - 3.2 Use Case Modelling S.52-66 - 3.2.1 Use Case Send Message S.56-58 - 3.2.2 Use Case Show Message S.58-61 - 3.2.3 Use Case Start Chat S.62-65 - 3.2.4 Use Case View and Save calendar entry S.65-66 - 3.3 Feature Modelling S.66-71 - 3.4 Decision Modelling S.72-73 4 Product Line Architecture S.74-87 - 4.1.1 Mediator Pattern S.74-75 - 4.1.2 State pattern S.75-76 - 4.2 The KobrA process S.76-83 - 4.2.1 Context Realization S.76-78 - 4.2.2 PhoneComponent S.78-80 - 4.2.3 ComponentManager S.80-81 - 4.2.4 Component Tree S.81-82 - 4.2.5 Implementation models S.82-83 - 4.3 Variability Mechanisms S.83-87 - 4.3.1 Aspect oriented programming S.85-87 5 Infrastructure Usage S.88-99 - 5.1 Product Derivation Process S.88 - 5.2 Domain Model Instantiation S.88-92 - 5.3 Process Hierarchy Instantiation S.92-93 - 5.4 Architecture Instantiation S.93-94 - 5.5 Code Generation S.94-99 - 5.5.1 Increasing the efficiency of Component implementation S.94-95 - 5.5.2 Graphical Modelling of a Phone Component S.95 - 5.5.3 Supporting Variability S.95-96 - 5.5.4 The technical realization S.96-98 - 5.5.5 Conclusion S.99 6 Analysis and Future Work S.100 7 Glossary S.101 8 References S.102-105ensoftware product linescopingdomain analysisarchitectingimplementationapplication engineeringDecision modellinginstantiationframework engineeringcomponent-based development004005006GoPhone - A software product line in the mobile phone domainreport