Generative Software Product Line Development Using Variability-Aware .

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