GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs



Similar documents
GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

Towards a Performance Model Management Repository for Component-based Enterprise Applications

Generating Aspect Code from UML Models

Using Dynatrace Monitoring Data for Generating Performance Models of Java EE Applications

MDA Transformations Applied to Web Application Development 1

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Foundations of Model-Driven Software Engineering

Concern Driven Software Development

Development of Tool Extensions with MOFLON

Textual Modeling Languages

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

MDE Adoption in Industry: Challenges and Success Criteria

clooca : Web based tool for Domain Specific Modeling

Model-Driven Online Capacity Management for Component-Based Software Systems

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Model-Driven Development - From Frontend to Code

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Aplicando enfoque MDE a aplicaciones WEB-SOA

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Capturing provenance information with a workflow monitoring extension for the Kieker framework

Winery A Modeling Tool for TOSCA-based Cloud Applications

Toward Families of QVT DSL and Tool

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Information systems modelling UML and service description languages

Building a Flexible Software Factory Using Partial Domain Specific Models

An Overview of Challenges of Component Based Software Engineering

Automatic Extraction of Probabilistic Workload Specifications for Load Testing Session-Based Application Systems

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins

Creating visualizations through ontology mapping

ExplorViz: Visual Runtime Behavior Analysis of Enterprise Application Landscapes

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

Introduction to Generative Software Development

Business Process Modelling Languages, Goals and Variabilities

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Simplified Game Specific Description Language for Rapid Game Server Development using LDD (Language Driven Development) Framework

Towards collaboration between sighted and visually impaired developers in the context of Model-Driven Engineering

Self-Adaptive Performance Monitoring for Component-Based Software Systems. Jens Ehlers

Jiří Šebek, Karel Richta. Department of Computer Science and Engineering Praha 2, Czech Republic

The Expressive Power of UML-based Web Engineering 1

The Oracle Fusion Development Platform

UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts

Chapter 7. UML-BASED WEB ENGINEERING An Approach Based on Standards 7.1 OVERVIEW

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

Model-Driven Software Configuration Management and Environment Model

Software Construction

A Novel Approach to Developing Applications in the Pervasive Healthcare Environment through the Use of Archetypes

Revel8or: Model Driven Capacity Planning Tool Suite

How to Model Aspect-Oriented Web Services

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement

To introduce software process models To describe three generic process models and when they may be used

A Framework for Creating Domain-specific Process Modeling Languages

UML-based Test Generation and Execution

Utilizing PCM for Online Capacity Management of Component-Based Software Systems

Difference Between Model-Driven and Traditional Iterative Software Development

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

A Framework of Model-Driven Web Application Testing

Towards Collaborative Requirements Engineering Tool for ERP product customization

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Online Performance Anomaly Detection with

Generating the PIM Behavioral Model from the CIM using QVT

Graph-Grammar Based Completion and Transformation of SDL/UML-Diagrams

Tool-Supported Application Performance Problem Detection and Diagnosis. André van Hoorn.

AN ONTOLOGICAL APPROACH TO WEB APPLICATION DESIGN USING W2000 METHODOLOGY

Transcription:

GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs Doctoral Symposium Reiner Jung Christian-Albrechts-Universität zu Kiel Institut für Informatik 26.02.2014

Domain-specific Languages Motivation Domain-specific Language (DSL) Created for a specific domain or aspect of a software system Properties: formal, informal, executable etc. Text-based or graphical languages Text-based: grammars and meta-models Graphical: visualization pattern and meta-models Text Diagram Scanner/Parser Graphic Tooling Source Model Model to Text Model to Model Target Code Target Model Jung Automatic Generator-Composition 26.02.2014 2 / 21

DSL Construction Process Motivation Decision Analysis Design Deployment Implementation [Mernik et al., 2005] Jung Automatic Generator-Composition 26.02.2014 3 / 21

Present Tooling for Textual DSLs Motivation Automatic or semi-automatic tasks Meta-model generation Editor generation Manual tasks Grammar specification Validator construction Generator construction Jung Automatic Generator-Composition 26.02.2014 4 / 21

Modeling and Generator Construction Motivation Source Meta-Models / DSLs ADL Data Monitoring Behavior Protocols UI Generator Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 5 / 21

Modeling and Generator Construction Motivation Source Meta-Models / DSLs ADL Data Monitoring Behavior Protocols UI Analysis Generator New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 5 / 21

Modeling and Generator Construction Motivation Source Meta-Models / DSLs ADL Data Monitoring Behavior Protocols UI Analysis Generator New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Meta-model changes result in generator code degradation Jung Automatic Generator-Composition 26.02.2014 5 / 21

Solution Overview The GECO Approach Source Meta-Models / DSLs ADL Data Monitoring Behavior Workflow UI Monitoring Behavior UI ADL Workflow Data Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 6 / 21

Solution Overview The GECO Approach Source Meta-Models / DSLs ADL Data Monitoring Behavior Workflow UI Analysis Monitoring ADL Workflow Behavior UI Data New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 6 / 21

Solution Overview The GECO Approach Source Meta-Models / DSLs ADL Data Monitoring Behavior Workflow UI Analysis Monitoring ADL Workflow Behavior UI Data New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 6 / 21

Solution Overview The GECO Approach Source Meta-Models / DSLs ADL Data Monitoring Behavior UI Workflow Analysis Monitoring ADL Workflow Behavior UI Data New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Jung Automatic Generator-Composition 26.02.2014 6 / 21

Solution Overview The GECO Approach Source Meta-Models / DSLs ADL Data Monitoring Behavior UI Workflow Analysis Monitoring ADL Workflow Behavior UI Data New or altered requirements Target Meta-Models / Technologies & General Purpose Languages (GPL) JPA J2EE Kieker Javascript AspectJ JSF Java Key problem How to combine partial generators? Jung Automatic Generator-Composition 26.02.2014 6 / 21

Different Generation Pattern The GECO Approach SBM SAM Source Base Model Source Aspect Model TBM TAM TM Target Base Model Target Aspect Model Target Model T Transformation References Jung Automatic Generator-Composition 26.02.2014 7 / 21

Different Generation Pattern The GECO Approach SBM SAM T BM T AM TBM TAM SBM SAM Source Base Model Source Aspect Model TBM TAM TM Target Base Model Target Aspect Model Target Model T Transformation References Jung Automatic Generator-Composition 26.02.2014 7 / 21

Different Generation Pattern The GECO Approach SBM SAM SBM SAM T BM T AM T BM T AM TBM TAM TBM TAM SBM SAM Source Base Model Source Aspect Model TBM TAM TM Target Base Model Target Aspect Model Target Model T Transformation References Jung Automatic Generator-Composition 26.02.2014 7 / 21

Different Generation Pattern The GECO Approach SBM SAM SBM SAM SBM SAM T BM T AM T BM T AM T Merge TBM TAM TBM TAM TBM SBM SAM Source Base Model Source Aspect Model TBM TAM TM Target Base Model Target Aspect Model Target Model T Transformation References Jung Automatic Generator-Composition 26.02.2014 7 / 21

Different Generation Pattern The GECO Approach SBM SAM SBM SAM SBM SAM T BM T AM T BM T AM T Merge TBM TAM TBM TAM TBM SBM SAM Source Base Model Source Aspect Model TBM TAM TM Target Base Model Target Aspect Model Target Model T Transformation References Jung Automatic Generator-Composition 26.02.2014 7 / 21

Potential Approaches The GECO Approach Approach 1 Weaving models Base and aspect model generators produce target models Reference resolver for join points (source to target level) Weaver combines target aspect and target base model Various target level technologies (AspectJ, Kermeta,... ) Approach 2 Weaving partial generators Base and aspect generator are woven Integration based on source level meta-model references Requires strict coding guidelines and insertion pattern Can be based on higher order transformations [Tisi et al., 2009] Jung Automatic Generator-Composition 26.02.2014 8 / 21

Approach 1 The GECO Approach Base Model (BM) Aspect Model (AM) Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model T BM T AM Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model T BM T AM Target Base Meta-Model Target Base Model Target Target Aspect Aspect Model Model Fragm. Fragm. Target Aspect Meta-Model Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model T BM T AM Target Base Meta-Model Target Base Model Target Target Aspect Aspect Model Model Fragm. Fragm. Target Aspect Meta-Model Weaver Merged Target Meta-Model conforms to Merged Target Model Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model T BM T AM Target Base Meta-Model Target Base Model Target Target Aspect Aspect Model Model Fragm. Fragm. Target Aspect Meta-Model C, Java, EMF, JVM byte code Merged Target Meta-Model conforms to Weaver Merged Target Model AspectJ AspectC++ Kermeta Weaver Atlas Weaver Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Base Model (BM) Aspect Model (AM) Aspect Meta-Model T BM T AM Target Base Meta-Model Target Base Model Target Target Aspect Aspect Model Model Fragm. Fragm. Target Aspect Meta-Model Weaver Merged Target Meta-Model conforms to Merged Target Model Jung Automatic Generator-Composition 26.02.2014 9 / 21

Approach 1 The GECO Approach Base Meta-Model Target Base Meta-Model Base Model (BM) T BM Target Base Model Aspect Model (AM) Reference Transformation Aspect Meta-Model Model traces for source model nodes T Source model AM references Selection of target nodes Construction of target model references Target Target Aspect Aspect Target Aspect Model Model Fragm. Fragm. Meta-Model Weaver Merged Target Meta-Model conforms to Merged Target Model Jung Automatic Generator-Composition 26.02.2014 9 / 21

Evaluation Scenarios Planned Evaluation Generator for CoCoME [Rausch et al., 2011] Domain: Common Component Modeling Example (CoCoME) Users: DFG-SPP Design for Future projects Target platform: Cloud, J2EE, JSF, Java, AspectJ Generator for MENGES DSL [Goerigk et al., 2012] Domain: Railway control centers (RCC) Users: Developers and engineers of RCC Target platform: PLCopen/XML, C Jung Automatic Generator-Composition 26.02.2014 10 / 21

Evaluation Overview Planned Evaluation Goal A Technique and method evaluation Goal B Approach evaluation in an enterprise scenario Goal C Approach evaluation in a legacy scenario with multiple target platforms Jung Automatic Generator-Composition 26.02.2014 11 / 21

Goal A: Technique and Method Evaluation Planned Evaluation Objectives Feasibility of different model-element reference concepts Feasibility of model/code weaving approach Practicability of model-element reference concepts With researchers of iobserve projects and students Scenario Partial CoCoME model, based on the Palladio Component Model (PCM) [Becker et al., 2009] Instrumentation aspect language (IAL) [Jung et al., 2013a] Combination of IAL & ProtoCom [Giacinto and Lehrig, 2013] Jung Automatic Generator-Composition 26.02.2014 12 / 21

Goal B: Enterprise Scenario Planned Evaluation Objectives Integration test of method and tooling Practicability of approach and tooling (J2EE domain) Scenario Complete CoCoME model based on PCM and additional DSLs Adaptation of generators driven by CoCoME modification scenarios Collaboration University Stuttgart UDE, KIT, CAU Other CoCoME collaborators Jung Automatic Generator-Composition 26.02.2014 13 / 21

Goal C: Multiple Target Platforms Planned Evaluation Objectives Feasible for different target model/language domains (text, XML) Practicability of approach and tooling (RCC domain) Comparison with existing generator ñ cost benefit Scenario Legacy meta-model and type-system Creation of generators for different target languages Collaboration & Expert Interviews b+m Informatik, Stefan Zeug Scheidt & Bachmann, Hauke Fuhrmann Jung Automatic Generator-Composition 26.02.2014 14 / 21

Current State Project Status Published Type-Systems for DSLs [Jung et al., 2013b] Data type language (DTL) [Jung, 2013] Instrumentation aspect language [Jung et al., 2013a] Unpublished Survey on model join point notations Designing extensible meta-models (addressing PCM issues) Jung Automatic Generator-Composition 26.02.2014 15 / 21

Work-Packages Project Status WP1 Literature and Technology Research Model weaver & graph transformation Compiler construction WP2 Communication More publications and presentations WP3 Approach WP4 Solution Design and Implementation WP5 Evaluation Jung Automatic Generator-Composition 26.02.2014 16 / 21

Related Work Project Status Aspect Oriented-Modeling (AOM) Formal Design Analysis Framework (FDAF) [Bennett et al., 2010] Supports only UML class diagrams Stub generation Java and AspectJ Theme/UML [Clarke and Baniassad, 2005] Supports UML structural and behavior models No code generation Themes as aspects Reusable Aspect Models (RAM) [Klein and Kienzle, 2007] Supports UML class and activity models Weaves in modeling domain Code generation for Java and AspectJ Jung Automatic Generator-Composition 26.02.2014 17 / 21

Related Work Project Status Aspect Oriented-Modeling (AOM) Formal Design Analysis Framework (FDAF) [Bennett et al., 2010] Supports only UML class diagrams Stub generation Java and AspectJ Theme/UML [Clarke and Baniassad, 2005] Supports UML structural and behavior models No code generation Themes as aspects Reusable Aspect Models (RAM) [Klein and Kienzle, 2007] Supports UML class and activity models Weaves in modeling domain Code generation for Java and AspectJ Code Generation No work on iterative/agile development [Mehmood and Jawawi, 2013] Jung Automatic Generator-Composition 26.02.2014 17 / 21

Conclusions Conclusions Summary DSLs are developed iteratively Generators can depend on multiple DSLs Resulting in complex generators Iterations of each DSL cause Generator architecture degradation Goal Provide an approach and tooling to improve generator construction re-use Next step Realizing the first evaluation scenario Release date July/August 2015 Jung Automatic Generator-Composition 26.02.2014 18 / 21

References I References S. Becker, H. Koziolek, and R. Reussner. The palladio component model for model-driven performance prediction. Journal of Systems and Software, 82(1):3 22, 2009. ISSN 0164-1212. doi: http://dx.doi.org/10.1016/j.jss.2008.03.066. URL http://www.sciencedirect.com/science/article/pii/s0164121208001015. Special Issue: Software Performance - Modeling and Analysis. J. Bennett, K. Cooper, and L. Dai. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach. Science of Computer Programming, 75(8):689 725, 2010. ISSN 0167-6423. doi: http://dx.doi.org/10.1016/j.scico.2009.05.005. URL http://www.sciencedirect.com/science/article/pii/s0167642309000914. Designing high quality system/software architectures. S. Clarke and E. Baniassad. Aspect-Oriented Analysis and Design. Addison-Wesley Professional, 2005. ISBN 0321246748. D. Giacinto and S. Lehrig. Towards integrating java ee into protocom. In S. Becker, W. Hasselbring, A. van Hoorn, and R. Reussner, editors, KPDAYS, volume 1083 of CEUR Workshop Proceedings, pages 69 78. CEUR-WS.org, 2013. URL http://dblp.uni-trier.de/db/conf/kpdays/kpdays2013.html#giacintol13. Jung Automatic Generator-Composition 26.02.2014 19 / 21

References II References W. Goerigk, R. von Hanxleden, W. Hasselbring, G. Hennings, R. Jung, H. Neustock, H. Schaefer, C. Schneider, E. Schultz, T. Stahl, S. Weik, and S. Zeug. Entwurf einer domänenspezifischen sprache für elektronische stellwerke. In Software Engineering 2012: Fachtagung des GI-Fachbereichs Softwaretechnik, 27. Februar - 2. März 2012 in Berlin, volume 198 of Lecture Notes in Informatics, pages 119 130. Gesellschaft für Informatik e.v., 2012. URL http://eprints.uni-kiel.de/14420/. R. Jung. Data type language, November 2013. URL http://www.dfg-spp1593.de/wiki/index.php/model-driven_development_of_cocome. R. Jung, R. Heinrich, and E. Schmieders. Model-driven instrumentation with kieker and palladio to forecast dynamic applications. Symposium on Software Performance: Joint Kieker/Palladio Days 2013, 1083:99 108, November 2013a. URL http://eprints.uni-kiel.de/22655/. R. Jung, C. Schneider, and W. Hasselbring. Type systems for domain-specific languages. In S. Wagner and H. Lichter, editors, Software Engineering 2013 Workshopband, volume 215 of Lecture Notes in Informatics, pages 139 154, Bonn, February 2013b. Gesellschaft für Informatik e.v. URL http://eprints.uni-kiel.de/20641/. J. Klein and J. Kienzle. Reusable aspect models. In 11th Workshop on Aspect-Oriented Modeling, AOM at Models 07,, 2007. Jung Automatic Generator-Composition 26.02.2014 20 / 21

References III References A. Mehmood and D. N. Jawawi. Aspect-oriented model-driven code generation: A systematic mapping study. Information and Software Technology, 55(2):395 411, 2013. ISSN 0950-5849. doi: http://dx.doi.org/10.1016/j.infsof.2012.09.003. URL http://www.sciencedirect.com/science/article/pii/s0950584912001863. Special Section: Component-Based Software Engineering (CBSE), 2011. M. Mernik, J. Heering, and A. M. Sloane. When and how to develop domain-specific languages. ACM Comput. Surv., 37(4):316 344, Dec. 2005. ISSN 0360-0300. doi: 10.1145/1118890.1118892. URL http://doi.acm.org/10.1145/1118890.1118892. A. Rausch, R. Reussner, R. Mirandola, and F. Plasil, editors. The Common Component Modelling Example (CoCoME), volume 5153 of Lecture Notes in Computer Science. Springer Verlag Berlin Heidelberg, 2011. M. Tisi, F. Jouault, P. Fraternali, S. Ceri, and J. Bézivin. On the use of higher-order model transformations. In R. Paige, A. Hartman, and A. Rensink, editors, Model Driven Architecture - Foundations and Applications, volume 5562 of Lecture Notes in Computer Science, pages 18 33. Springer Berlin Heidelberg, 2009. ISBN 978-3-642-02673-7. doi: 10.1007/978-3-642-02674-4_3. URL http://dx.doi.org/10.1007/978-3-642-02674-4_3. Jung Automatic Generator-Composition 26.02.2014 21 / 21