New and Noteworthy. Peter Friese Bernd Kolb

Similar documents
openarchitectureware 4.1 An introduction

Introduction to OpenArchitectureWare

with openarchitectureware

ECLIPSE MODELING PROJECT

Expressing Feature-Based Variability in Structural Models

Introduction to Model Driven Engineering using Eclipse. Frameworks

Managing Variability. Markus Voelter This work is supported by. Managing Variability in Product Lines -1-

Eclipse technology in IFMS Interface Management System

Model transformations. Model transformations. Model transformations. Model transformations

Model-driven Generation of Graphical Maps for e-contents

1. Getting Started Xpand / Xtend / Check Reference

Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék. Code Genera*on

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis

BLU AGE 2009 Edition Agile Model Transformation

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation

XWeave: Models and Aspects in Concert

Static analysis and testing of executable DSL specification

The Applicability of Common Generative Techniques for Textual Non-Code Artifact Generation

Model-to-Model Transformations in MEMOCenterNG

IP Log for modeling.m2t.xpand

A Product Derivation Tool Based on Model-Driven Techniques and Annotations

Model driven Engineering & Model driven Architecture

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review

building DSLs with language workbenches

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach

Engineering languages for specifying product-derivation processes in Software Product Lines

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

The Galilean Moons of Eclipse

Kermeta tutorial. How to create a metamodel. François Tanguy, Didier Vojtisek. Abstract

IP Log for modeling.tmf.xtext

Comparing graphical DSL editors

Software Factories Application within the ASE5 project

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

Introduction to MDE and Model Transformation

Introduction to EGF. Benoît Langlois / Thales Global Services.

When Modeling meets Productivity. Sven Efftinge - itemis

Generation of Web-based Prototypes for Business Applications

The Eclipse Modeling Framework and MDA Status and Opportunities

3rd Lecture Languages for information modeling

Software Product Lines and Code Generation: A Perfect Match? Danilo Beuche pure-systems GmbH Germany

Language engineering and Domain Specific Languages

The Write Once, Deploy N MDA Case Study

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

Xtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

BIG MODELS AN ALTERNATIVE APPROACH

Generic Language Technology

Christian Doppler Laboratory

Wikileaking Eclipse Modeling - Spilling the beans on how industry uses EMF based tooling successfully! Ronan Barrett, Ericsson

Model Transformations for Embedded System Design and Virtual Platforms

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary

Domain-Specific Languages Language Workbenches

Frustrated by all the hype?

Model-Driven Theme/UML

Model Driven Development in industrial practice. Dr. Martin Girschick February 2018

A Family of Languages for Architecture Description

ADT: Eclipse development tools for ATL

ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES LUIS ROCHA. A project submitted in partial fulfillment

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Comparison and merge use-cases from practice with EMF Compare

CISC836: Models in Software Development: Methods, Techniques and Tools

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Introduction to Dependable Systems: Meta-modeling and modeldriven

Domain-Specific Languages for Composable Editor Plugins

Acceleo Galileo Simultaneous Release

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

project in an industrial context

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

IBM Rational Software Architect

At the shell prompt, enter idlde

The etrice Eclipse Project Proposal

Towards a model driven Modelica IDE

Metamodeling and Metaprogramming Seminar

ATL: Atlas Transformation Language. ATL User Manual

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

SCA Tools: new & noteworthy

RAPID Resource API Design Language

Dominique Blouin Etienne Borde

This cheat sheet is aimed at people with some experience in eclipse but who may not be aware of many of its features.

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Noopur Gupta Eclipse JDT/UI Committer IBM India

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

Skyway Builder 6.3 Reference

Bachelor of Engineering, IT Thesis

Software Project Seminar VII: Tools of the Craft. 23 march 2006 Jevgeni Kabanov

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018

GMF Tooling 3.0 Vision, Architecture, Roadmap

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Implementation of F# language support in JetBrains Rider IDE

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

Kermeta tutorial. How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette. Abstract

Dominique Blouin Etienne Borde

Transcription:

New and Noteworthy Peter Friese peter.friese@gentleware.com http://www.gentleware.com Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de

What is openarchitectureware? oaw Languages New: AOP Mechanisms New: Debugger New: Xtext 2 New: Improved Help New: Hyperlinking New: Refactoring New: Product Line Engineering

MDSD generator framework MDSD = Model Driven Software Development Reads models (arbitrary meta meta models) Ecore MOF Validates Models Transforms models Model to Model (M2M) using Xtend Language Model to Text (M2T) using Xpand Language Generator is controlled using Workflow Engine Dependency Injection / Reflection driven Supports custom workflow components

Model MDSD generator Generated artifacts Workflow engine Model instantiator Model validator Model to Model Trafos Code generation templates 4

The basis for all oaw languages OCL-like syntax Can be mapped to any meta meta model Implementations available for Ecore UML2 Java Beans many UML-Tools (RSM/RSA, MagicDraw, Enterprise Architect, Poseidon ) Good support for graph navigation Some examples: Built in higher order functions like collect, select Built in utility functions like tolist, toset, typeselect for selecting all Elements of a specific metatype Support for collect abbreviation lista.listb.listc -> take all Elements from lista, ask each of the elements for listb and call listc on each of the resulting elements 5

XML-based language Describe a sequence of steps to process your model Uses the Inversion-of-Control (IoC) pattern Tool support Interface(s) for you to integrate your own workflow components <workflow> <!-- load model and store it in slot 'model' --> <component class="org.eclipse.mwe.emf.reader"> <uri value="platform:/resource/${model}" /> <modelslot value="model" /> </component> <!-- generate code --> <component class="org.openarchitectureware.xpand2.generator"> <metamodel idref="mm"/> <expand value="template::template::main FOR model" /> <outlet path="${src-gen} /> </component> </workflow> 6

Annotate methods on meta types Functional language for model-to-model (M2M) transformations Polymorphism (multiple dispatch) Language support for creating and caching model Good tool support (syntax highlighting, code completion, ) import metamodel; getter(feature this) : "get"+name.tofirstupper(); setter(feature this) : "set"+name.tofirstupper(); import metamodel; modify(entity this): setname(this.name + "Entity") -> features.add(createfeature()) -> this; create Feature this createfeature(entity e): setname("pk_" + e.name); 7

Declarative language Validate your model Report warnings Report errors Good tool support (syntax highlighting, code completion, ) import metamodel; extension metamodel::extensions; context Model ERROR "No entities defined" : types.exists(e Entity.isInstance(e)); context Entity ERROR "Duplicate entity "+name : model().entities().select(e e.name==name).size==1; <workflow> <component class="oaw.check.checkcomponent"> <metamodel id="mm" class="org.eclipse.m2t.type.emf.emfregistrymetamodel"/> <checkfile value="metamodel::checks" /> <emfallchildrenslot value="model" /> </component> </workflow> 8

Extensions Template polymorphism Language developed for code generation only Extensions defined in Xtend can be used Good tool support (syntax highlighting, code completion, ) «DEFINE javaclass FOR Entity» «FILE name+".java"» public class «name» { «FOREACH features AS f» private «f.type.name» «f.name»; public void «f.setter()»(«f.type.name» «f.name») { this.«f.name» = «f.name»; } public «f.type.name» «f.getter()»() { return «f.name»; } «ENDFOREACH» } «ENDFILE» «ENDDEFINE» 9

When creating reusable generators, we want to change generator behavior without changing the generator itself E.g. if we use a 3rd party cartridge Using AO mechanisms, it is possible to override templates «IMPORT classes» «AROUND templates::simple::attribute FOR Attribute» // comment «targetdef.proceed()» «ENDAROUND» <workflow> <cartridge file="workflow/workflow.oaw"/> <component advicetarget="generator class="org.openarchitectureware.xpand2.generatoradvice"> <advices value="templates::advices"/> </component> </workflow> 10

Changing the generator templates is not enough. Transformations and metamodel operations have to be changed as well. Thus Xtend supports Aspects extension org::openarchitectureware::util::stdlib::io; around my::generator::*(*) : info('invoking ' + ctx.name) -> ctx.proceed(); <component class="org.openarchitectureware.xtend.xtendadvice"> <advicetarget value= extension"/> <extensionadvices value="metamodel::aop"/> </component> 11

Features: Set breakpoints in workflow, transformations (M2M/ M2T) Inspect execution context Inspect variables Java debugging

Features: Specify language grammar for textual DSL Xtext generates The meta model ANTLR 3 based parser Text editor syntax highlighting folding outline content assist Generator project (workflow, template, extensions, )

Use the Check Language to validate your models inside an GMF-Editor Support for cyclic validations

oaw comes with several utilities for PLE Xweave support for weaving several models together using an aspect model Xvar Selectively remove parts from your model or code Support for feature models to configure the overall generator A primitive one for features in text files Integration with pure::variants

Welcome Page Online Help / PDF Video Tutorials Cheat Sheets

Refactoring Hyperlink navigation Search for references / declarations

oaw is moving into several Eclipse Modeling Projects Workflow -> EMFT Modeling Workflow Engine (MWE) Xpand -> Eclipse Model to Text (M2T) Xtend -> Eclipse Model to Text (M2T) Support for meta meta models -> Eclipse Model to Text (M2T) oaw is submitting a proposal for a new modeling project Textual Modeling Framework (TMF) Improve the different languages Improve tooling and IDE support (SAFARI / IMP?)

www.openarchitectureware.org www.eclipse.org/gmt/oaw www.eclipse.org/emft www.eclipse.org/m2t