Transcription
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzenGenerative Software Product Line Developmentusing Variability-Aware Design PatternsChristoph Seidl, Sven Schuster, Ina SchaeferMay 16, 2015
Idea: Use Best-Practices for Software Product Line DesignSven Schuster‘sPresentationSoftware Product LinesDesign PatternsThisPresentationDesign PatternsSoftware Product LinesMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 2
OverviewStrategyTemplate MethodCompositeObserver.Feature ModelsPreprocessorFOPDelta Modeling.MappingsMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 3JavaC UML Class Diagrams.
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzenFoundations
Variability-Aware Design Patterns Analyzed SPLs for design patternsSome design patterns are used to realize variabilityPattern decomposition on features seems to follow certain rulesVariability-Aware Design PatternsMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 5
Role Modeling Design patterns are not a specific design Role modeling represents dynamiccollaborations as „blueprint“ for a design Roles may be mapped to variousentities (parts of code, models etc.) Relations describe collaborations andrestrain possible mapping Roles may represent patterns Roles may be mapped to a concretedesign in various languagesMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 6
Challenge 2How to develop SPLs with variability-aware design patterns?1May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 73
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzenSpecification of Design Patterns
Catalog of Variability-Aware Design Patterns Cataloged variability-aware design patterns Name Intent . Design pattern role model (DPRM) Usage within SPLs? Family role model (FRM)May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 9
Family Role Model (FRM) to capture Variability-Awareness Represent demands on configuration options of the feature model (semantics)Independent of the concrete structure of the feature model (syntax)May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 10
Making Design Patterns Variability-AwareFamily Role Model (FRM) Captures demands on configurationoptions of feature modelMapping FRM to DPRM Captures how a design pattern is usedwithin an SPL Variability-aware design patternDesign Pattern Role Model (DPRM) Captures entities of the design patternand their relationMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 11
Model-Based Catalog of Variability-Aware Design PatternsCompositeStrategyObserverMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 12
Summary: Design Pattern Specification21May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 13
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzenApplication of Design Patterns
Mapping Family Role Model (FRM) to Concrete Feature Model?May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 15
Summary: Mapping FRMs to Feature Models21May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 163
Mapping DPRM to Realization Artifacts Multiple different types of realization artifact Java, C , UML Class Diagrams etc. Pattern implemented differently, due to . . language . variability realization mechanism?May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 17
Generation of Design Pattern Realization Artifacts Pattern implemented differently, due to . . language . variability realization mechanismMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 18
Model-Based GenerationMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 19
Composers: Eclipse Extension for Model-Based GenerationCompositeStrategyAntennaComposer 1Composer 3DeltaJComposer 2ObserverJavaUML Class DiagramsMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 20FOP
Summary: Generation of Design Pattern Realization Artifacts21May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 213
Implementation Eclipse IDEModel-Based with EMF Ecore Meta model for Role Models (FRM/DPRM), Design Pattern Catalog, Feature Model Generation is Model-Based (but does not have to be)May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 22
Currently Supported Pattern RealizationsPatternVariability Realization Mechanism LanguageObserverAntennaJavaFeature-Oriented ProgrammingJava, UML Class DiagramsDeltaJJavaAntennaJavaFeature-Oriented ProgrammingJava, UML Class DiagramsDeltaJJavaAntennaJavaFeature-Oriented ProgrammingJava, UML Class DiagramsDeltaJJavaCompositeStrategyMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 23
Conclusion Generative Software Product Line Development using Variability-Aware Design PatternsSupport proactive and reaktive developmentMapping and ValidationMapping and GenerationMay 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 24
Questions? Comments? Feedback?May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 25
Generative Software Product Line Development using Variability-Aware Design Patterns . May 16, 2015 Christoph Seidl Generative Pattern-Based SPL Development Page 2 Idea: Use Best-Practices for Software Product Line Design Design Patterns Sven Schuster's Presentation Software Product Lines Design Patterns This Presentation