Towards Modular Code Generators Using Symmetric Language-Aware Aspects Steffen Zschaler, Awais Rashid FREECO’11 Lancaster, 26 July 2011.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
Architecture Representation
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
Programming Distributed Systems Lab Institute of Computer Science University of Augsburg Universitätsstraße 14, D Augsburg Tel.: (+49) 821/ ,
July 06, 2006DB&IS Building Web Information Systems using Web Services Flavius Frasincar Erasmus University Rotterdam Eindhoven.
Tool Support for Producing National Versions - Workshop Zagreb S-Bahn Tool National Versions Developer Support Tool Support for Producing National.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. WSMX Data Mediation Adrian Mocan
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
10 December, 2013 Katrin Heinze, Bundesbank CEN/WS XBRL CWA1: DPM Meta model CWA1Page 1.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
INFO415 Approaches to System Development: Part 2
April 2005CSA2050:NLTK1 CSA2050: Introduction to Computational Linguistics NLTK.
Avalanche Internet Data Management System. Presentation plan 1. The problem to be solved 2. Description of the software needed 3. The solution 4. Avalanche.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
Information Systems & Semantic Web University of Koblenz ▪ Landau, Germany Semantic Web - Multimedia Annotation – Steffen Staab
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
MinorThird 서울시립대학교 인공지능연구실 곽별샘
Secure Systems Research Group - FAU Classifying security patterns E.B.Fernandez, H. Washizaki, N. Yoshioka, A. Kubo.
Dimitrios Skoutas Alkis Simitsis
Generative Programming. Automated Assembly Lines.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
1 Introduction to Software Engineering Lecture 1.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
Mining Logical Clones in Software: Revealing High-Level Business & Programming Rules Wenyi Qian 1, Xin Peng 1, Zhenchang Xing 2, Stan Jarzabek 3, Wenyun.
1 November 9-11, Mérida, Mexico CLIHC’09 Towards Canonical Task Types for User Interface Design Juan Manuel Gonzalez-Calleros, Josefina Guerrero-
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Close Reading of Complex Texts in the 3-8 Modules
PCM Refactoring Philipp, Michael, Daria, Axel, Steffen, Matthias.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
1 Model-based Aspect Weaver Construction Suman Roychoudhury Frédéric Jouault Jeff Gray {roychous, jouault, cis.uab.edu This project is supported.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
J.E. Rivera, D. Ruiz-González, F. López-Romero, J. Bautista, and A. Vallecillo MtATL 09 Nantes, July 09.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Application Ontology Manager for Hydra IST Ján Hreňo Martin Sarnovský Peter Kostelník TU Košice.
Towards Using Constructive Type Theory for Verifiable Modular Transformations Steffen Zschaler, Iman Poernomo, Jeffrey Terrell FREECO’11 Lancaster, 26.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
Personalized Recommendation of Related Content Based on Automatic Metadata Extraction Andreas Nauerz 1, Fedor Bakalov 2, Birgitta.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
DITA: Not just for Tech Docs Ann Rockley The Rockley Group.
Semantic Interoperability in GIS N. L. Sarda Suman Somavarapu.
1 Prototype for the interoperability between FEDERICA slices and other IP domains by means of the IPsphere Framework Josep Pons Camps i2Cat.
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
WI2003 Automatic Composition of Web Service Workflows Using a Semantic Agent Jarmo Korhonen Helsinki University of Technology 15 October 2003.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Slide 1 © 2016, Lera Technologies. All Rights Reserved. Oracle Data Integrator By Lera Technologies.
Software Engineering Lecture 7
Demeter Aspects Who We Are Aspectual Collaborations
Implementing Language Extensions with Model Transformations
The Islamia University Bahawalpur
Structuring Adaptive Applications using AspectJ and AOM
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Towards an Open Meta Modeling Environment
Execute your Processes
Implementing Language Extensions with Model Transformations
CSA2050: Introduction to Computational Linguistics
Graphical Modeling of INFOD applications
Dataset statistic Images:164k Instance segmentation masks:2.2 million
Presentation transcript:

Towards Modular Code Generators Using Symmetric Language-Aware Aspects Steffen Zschaler, Awais Rashid FREECO’11 Lancaster, 26 July 2011

Motivation Code generators can become quite complex –Generate code related to a number of different concerns / features Different model elements (global-to-local transformation) Additional technical concerns (e.g., persistence annotations) –Flexibly combine generation pipeline depending on features required 26/07/2011(c) Steffen Zschaler2

Configuring Code Generators 26/07/2011(c) Steffen Zschaler3 Application Model Java Code Business Logic Generator Business Logic Generator Java Data Model Generator Java Data Model Generator EMF Generator GUI Generator plugin.xml

Existing Modularity Techniques Templates –Typically one template per target file –May produce more than one file Generation Rules –Allow hierarchy similar to operations –Good for capturing common design rules Import of module templates –Allow reuse of rules Asymmetric Aspects –Explicitly address tangling –BUT... 26/07/2011(c) Steffen Zschaler4

Drawbacks of Asymmetric AO Need for a base template Need for scaffolding No explicit support for weaving context Not language aware 26/07/2011(c) Steffen Zschaler5

Registration + Weaving = Symmetric AO for Code Generation 26/07/2011(c) Steffen Zschaler6 CG Template 1 CG Template 2 CG Template n Code Slice Registry Code Slice Registry Code Slice Weaver Output Files...

Text Merging 2-way vs 3-way –We can only support 2-way merging State-based vs change-based –We can only support state-based merging Textual vs syntactic vs semantic –The more semantic the more powerful –But also the more configuration needed! 26/07/2011(c) Steffen Zschaler7 based on Tom Mens’ classification

Prototype Extends Epsilon Generation Language (EGL) –New workflow tasks: eglRegister – generate from a template, but store result in registry eglMerge – merge registry contents for specific files –Can be configured with different text merging algorithms Distribution uses FeatureHouse Available from EpsilonLabs: 26/07/2011(c) Steffen Zschaler8

Conclusions & Outlook Asymmetric aspects can address some modularity issues in code generation Presented a prototype Larger comparative study of modularity properties currently under way 26/07/2011(c) Steffen Zschaler9

THANK YOU FOR YOUR ATTENTION! 26/07/2011(c) Steffen Zschaler10