VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl

Size: px
Start display at page:

Download "VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl"

Transcription

1 VICCI Visual and Interactive Cyber-Physical Systems Control and Integration The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview Dipl.-Inf. Christoph Seidl

2 Overview of EMF Eclipse Modeling Framework (EMF) Modeling framework and code generation facility Employs structured data model that can be used by other tools Capabilities Define data structures (save and load, cross references, listeners etc.) Generate code Specify languages (graphical, textual) Perform validation Transform model representations Generate editors (graphical, textual) The Eclipse Modeling Framework (EMF) - Christoph Seidl 2

3 EMF is very powerful but ETL Ecore The Eclipse Modeling Framework (EMF) - Christoph Seidl 3

4 Overview of Presentation Generative Model-Based Programming Textual Domain-Specific Languages Graphical Editors/Viewers and Data Visualization Code Generation using Template Engines Further Tools and Technologies Validation Model-to-Model Transformation Data Handling Searching and Finding Model Elements Misc. Tools and Technologies The Eclipse Modeling Framework (EMF) - Christoph Seidl 4

5 The Eclipse Modeling Framework (EMF) Generative Model-Based Programming

6 Terms and Definitions Model Abstraction from real world capturing important aspects (and neglecting the ones not important) regarding an application area Application area here is software development for the target domain Can be expressed as textual language, graphical notation, various data structures etc. Meta Model Blueprint /building rules for models Describe what model elements may exist and how they interrelate Meta Meta Model Building rules for meta model In the case of EMF: Ecore The Eclipse Modeling Framework (EMF) - Christoph Seidl 6

7 EMF Ecore MOF (Meta Object Facility) Specifies standard for meta meta models Defined by the Object Management Group (OMG) Complex EMOF (Essential MOF) Simplified/reduced version of standard for meta meta models EMF Ecore Implementation of EMOF Uses structured data for models that other tools can build upon Meta modeling notation of EMF (meta meta model) Tightly integrates with Eclipse but can be used without it The Eclipse Modeling Framework (EMF) - Christoph Seidl 7

8 Things you get for Free with Ecore Source code for models Change listener support Automatic handling of cross/opposite references Serialization/deserialization (save/load) Visual tree-based editor Property sheets Eclipse integration Compatibility with many other tools The Eclipse Modeling Framework (EMF) - Christoph Seidl 8

9 What (not) to expect from EMF What model-based development in EMF is Specification (closed world assumption) Data description (and more) Suitable for many platforms through code generation Aid in developing software (esp. tools) What model-based development in EMF is not Description/knowledge engineering (no open world assumption) Just another form of object-oriented programming Fully platform independent Panacea/silver bullet (there are caveats and pitfalls) The Eclipse Modeling Framework (EMF) - Christoph Seidl 9

10 Notation: Cardinality-Based Feature Model Feature [1..1] AutomotiveMultimedia [1..3] Group [0..1] AudioPlayer [1..1] OnBoardComputer [1..2] [0..1] PersonalNavigation [1..2] [1..1] Radio [0..1] CDPlayer [0..1] VoiceRecognition [1..1] Maps [1..1] [0..1] AudioCDPlayer [0..1] MP3CDPlayer Feature cardinality: 0..1 is optional 1..1 is mandatory Group cardinality: 1..1 is alternative 1..n is or m..n is arbitrary The notation of cardinality-based feature models and the content presented here will serve as running example. The Eclipse Modeling Framework (EMF) - Christoph Seidl 10

11 Practical Example Specifying a Meta Model

12 Create a Plugin Project The Eclipse Modeling Framework (EMF) - Christoph Seidl 12

13 Create a Plugin Project The Eclipse Modeling Framework (EMF) - Christoph Seidl 13

14 Create a Plugin Project The Eclipse Modeling Framework (EMF) - Christoph Seidl 14

15 Create a Plugin Project The Eclipse Modeling Framework (EMF) - Christoph Seidl 15

16 Create a Plugin Project The Eclipse Modeling Framework (EMF) - Christoph Seidl 16

17 Create a Folder for (Meta) Models The Eclipse Modeling Framework (EMF) - Christoph Seidl 17

18 Create a Folder for (Meta) Models The Eclipse Modeling Framework (EMF) - Christoph Seidl 18

19 Create the Meta Model (Diagram) The Eclipse Modeling Framework (EMF) - Christoph Seidl 19

20 Create the Meta Model (Diagram) The Eclipse Modeling Framework (EMF) - Christoph Seidl 20

21 Create the Meta Model (Diagram) The Eclipse Modeling Framework (EMF) - Christoph Seidl 21

22 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 22

23 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 23

24 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 24

25 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 25

26 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 26

27 Create Meta Model Elements Set type of attribute. The Eclipse Modeling Framework (EMF) - Christoph Seidl 27

28 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 28

29 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 29

30 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 30

31 Create Meta Model Elements Create generalization link. The Eclipse Modeling Framework (EMF) - Christoph Seidl 31

32 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 32

33 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 33

34 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 34

35 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 35

36 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 36

37 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 37

38 Create Meta Model Elements Containment reference: owns referenced element (serialization). An object can only be in one containment relation at a time. The Eclipse Modeling Framework (EMF) - Christoph Seidl 38

39 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 39

40 Create Meta Model Elements The Eclipse Modeling Framework (EMF) - Christoph Seidl 40

41 Set Meta Model Namespace URI Namespace URI is the unique identifier of the meta model (click on diagram background to see). The Eclipse Modeling Framework (EMF) - Christoph Seidl 41

42 Set Meta Model Namespace URI Set it to a value unique and under your control (usually webpage URL). The Eclipse Modeling Framework (EMF) - Christoph Seidl 42

43 Inspect Meta Model in.ecore File (optional) Underlying representation of feature meta model. Meta model could be specified in this editor as well. The Eclipse Modeling Framework (EMF) - Christoph Seidl 43

44 Practical Example Generating Model Code from the Meta Model

45 How it Works: Code Generation Meta model (.ecore) is platform independent No idea about packages, Java classes etc. Can (in theory) be used to generate any kind of source code Ecore has generator for Java code Needs platform information! Generator Model (.genmodel) Contains information for code generation Java compliance level Which projects to generate Which packages to use Names for Java classes are derived from Ecore classes Possible to include generator models of referenced meta models to reuse their generated code (not covered here) The Eclipse Modeling Framework (EMF) - Christoph Seidl 45

46 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 46

47 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 47

48 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 48

49 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 49

50 Create Generator Model (.genmodel) Load manually! The Eclipse Modeling Framework (EMF) - Christoph Seidl 50

51 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 51

52 Create Generator Model (.genmodel) The Eclipse Modeling Framework (EMF) - Christoph Seidl 52

53 Customize Generator Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 53

54 Customize Generator Model: Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 54

55 Customize Generator Model: Model Set directories to generate code in the src-gen folder instead of the src folder. (Best practice, benefits follow later) Do this for: Edit Directory, Editor Directory, Model Directory, Tests Directory The Eclipse Modeling Framework (EMF) - Christoph Seidl 55

56 Customize Generator Model: Package Set base package for code generation to a plausible value. The string value of Ecore.Package.NSPrefix will be appended. The Eclipse Modeling Framework (EMF) - Christoph Seidl 56

57 Generate Model Code The Model code is the source code representing the described data model. The Eclipse Modeling Framework (EMF) - Christoph Seidl 57

58 Inspect Generated Model Code (optional) Generated classes for meta model classes are divided into interface (e.g., Feature ) and its default implementation (e.g., FeatureImpl ). The Eclipse Modeling Framework (EMF) - Christoph Seidl 58

59 Inspect Generated Model Code (optional) The Factory class creates objects for specified types of the meta model (e.g. new FeatureImpl() for Feature). The Package class has knowledge of all the types of the meta model, the namespace etc. The Eclipse Modeling Framework (EMF) - Christoph Seidl 59

60 Practical Example Creating a Model using the Generated Editor

61 Generate Edit Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 61

62 Generate Edit Code Edit code defines how model elements are represented for editing in multiple editors (which values with which ranges to edit, what icons to use etc.). The Eclipse Modeling Framework (EMF) - Christoph Seidl 62

63 Generate Editor Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 63

64 Generate Editor Code Editor code implements a basic tree-based editor to create models obeying meta model. The Eclipse Modeling Framework (EMF) - Christoph Seidl 64

65 Generate Edit and Editor Code Generating stubs for tests is also possible but the test need manual implementation (not shown here). The Eclipse Modeling Framework (EMF) - Christoph Seidl 65

66 Start Runtime Eclipse Instance to Use Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 66

67 Development and Runtime Instance of Eclipse Until further notice, we are operating in the runtime instance of Eclipse! The Eclipse Modeling Framework (EMF) - Christoph Seidl 67

68 Create an Example Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 68

69 Create an Example Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 69

70 Create an Example Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 70

71 Create an Example Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 71

72 Create an Example Model Pick the root element of the model (e.g., FeatureModel abbreviated to Model by editor due to meta model name Feature ). The Eclipse Modeling Framework (EMF) - Christoph Seidl 72

73 Create an Example Model The Eclipse Modeling Framework (EMF) - Christoph Seidl 73

74 Create Model Elements Editor allows only creation of appropriate elements. The Eclipse Modeling Framework (EMF) - Christoph Seidl 74

75 Create Model Elements Property sheets are generated from attributes in meta model classes. The Eclipse Modeling Framework (EMF) - Christoph Seidl 75

76 Create Model Elements [1..1] AutomotiveMultimedia [1..3] [0..1] AudioPlayer [1..1] OnBoardComputer [1..2] [0..1] AudioCDPlayer [0..1] MP3CDPlayer [0..1] PersonalNavigation [1..1] Radio [0..1] CDPlayer [0..1] VoiceRecognition [1..1] Maps [1..1] [1..2] After this slide, we are back in the development instance of Eclipse! The Eclipse Modeling Framework (EMF) - Christoph Seidl 76

77 Practical Example Creating a Model Programmatically

78 Creating a Model Programmatically Factory is a singleton that creates all instances of meta model classes (careful when defining model programmatically and overriding factory - see later) The Eclipse Modeling Framework (EMF) - Christoph Seidl 78

79 Practical Example Operations for Meta Model Classes

80 Add an Operation The Eclipse Modeling Framework (EMF) - Christoph Seidl 80

81 Add an Operation The Eclipse Modeling Framework (EMF) - Christoph Seidl 81

82 Add an Operation The Eclipse Modeling Framework (EMF) - Christoph Seidl 82

83 Add an Operation The Eclipse Modeling Framework (EMF) - Christoph Seidl 83

84 Add an Operation The Eclipse Modeling Framework (EMF) - Christoph Seidl 84

85 Regenerate Meta Model Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 85

86 Regenerate Meta Model Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 86

87 Regenerate Meta Model Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 87

88 Regenerate Meta Model Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 88

89 Inspect Generated Code (optional) Interface defines method. The Eclipse Modeling Framework (EMF) - Christoph Seidl 89

90 Inspect Generated Code (optional) Impl creates standard implementation (to be overwritten). The Eclipse Modeling Framework (EMF) - Christoph Seidl 90

91 Practical Example Customizing Generated Code (Naive Way Don t do this!)

92 Writing into Generated Code Files Mark method NOT so that it is not overwritten with next generation. Write your code directly in the generated Impl file. Do NOT do this. Mixes generated and manually created code. Horrible for maintenance and version control! The Eclipse Modeling Framework (EMF) - Christoph Seidl 92

93 Practical Example Customizing Generated Code (Using Annotations Don t do this either!)

94 Annotate Operation with Implementation The Eclipse Modeling Framework (EMF) - Christoph Seidl 94

95 Annotate Operation with Implementation The Eclipse Modeling Framework (EMF) - Christoph Seidl 95

96 Annotate Operation with Implementation The Eclipse Modeling Framework (EMF) - Christoph Seidl 96

97 Annotate Operation with Implementation The Eclipse Modeling Framework (EMF) - Christoph Seidl 97

98 Annotate Operation with Implementation Code generator will use annotation and place string value (!) as implementation of operation. Do NOT do this. Includes code (low abstraction) in meta model (high abstraction). Bad practice, no type safety whatsoever and hard to find where logic is specified. The Eclipse Modeling Framework (EMF) - Christoph Seidl 98

99 Practical Example Customizing Generated Code (Using the Generation Gap Pattern Do this!)

100 The Generation Gap Pattern src-gen folder generated src folder manual The Eclipse Modeling Framework (EMF) - Christoph Seidl 100

101 Use the src Folder Manually created code goes into src folder, generated code goes into src-gen. The Eclipse Modeling Framework (EMF) - Christoph Seidl 101

102 Create Custom Specializations Create new package impl.custom in src folder. The Eclipse Modeling Framework (EMF) - Christoph Seidl 102

103 Create Custom Specializations Create custom specialization of meta model class. The Eclipse Modeling Framework (EMF) - Christoph Seidl 103

104 Create Custom Specializations Override functionality in custom class. The Eclipse Modeling Framework (EMF) - Christoph Seidl 104

105 Create Custom Specializations Create custom specialization for the factory. The Eclipse Modeling Framework (EMF) - Christoph Seidl 105

106 Create Custom Specializations Have the custom factory create custom implementation for meta model class. The Eclipse Modeling Framework (EMF) - Christoph Seidl 106

107 Register Custom Factory with Eclipse Use Eclipse s extension mechanism to plug in custom factory for use. The Eclipse Modeling Framework (EMF) - Christoph Seidl 107

108 Register Custom Factory with Eclipse The Eclipse Modeling Framework (EMF) - Christoph Seidl 108

109 Register Custom Factory with Eclipse Add a new extension. The Eclipse Modeling Framework (EMF) - Christoph Seidl 109

110 Register Custom Factory with Eclipse Choose to override an Ecore factory. The Eclipse Modeling Framework (EMF) - Christoph Seidl 110

111 Register Custom Factory with Eclipse Namespace URI (identifier) of the meta model in question. Qualified name of the custom factory specialization. New Eclipse instances perform extension and use custom factory instead of standard factory. The Eclipse Modeling Framework (EMF) - Christoph Seidl 111

112 Caution: Model Code with Custom Factory Careful when creating model programmatically with a custom factory (in the development instance of Eclipse). Factory is overriden only in new Eclipse instance. Only regular Impl classes are created. Solution see next slides The Eclipse Modeling Framework (EMF) - Christoph Seidl 112

113 Override Created Factory in Generated Code The Eclipse Modeling Framework (EMF) - Christoph Seidl 113

114 Override Created Factory in Generated Code Mark as generated NOT to avoid overriding change with next code generation. Solution is not ideal as it mixes generated and manually writting code. However, just two (trivial) lines in a single class. Create object for custom factory. The Eclipse Modeling Framework (EMF) - Christoph Seidl 114

115 The Eclipse Modeling Framework (EMF) Textual Domain-Specific Languages

116 What is it? Specify textual syntax for models Create models from textual syntax (Parsing) Create textual representation from models (Printing) The Eclipse Modeling Framework (EMF) - Christoph Seidl 116

117 Benefits of Textual Languages Why create textual syntax for models (Printer)? Readability Version control (diff/merge) Evolution Tool automation Quick model instantiation Why create models from textual syntax (Parser)? Tool reuse (e.g., graphical editors etc.) Know-how reuse Explicit representation of text document structure Tracing software artifacts Graphs instead of strings Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 117

118 General Procedure Use metamodel to specify structure of data Specify a grammar for textual syntax (e.g., EBNF) Generate code to get (for free!): Parser Transforms text to model Printer Transforms model to text Editor Syntax highlighting Auto completion Error/warning reports Integration with other EMF technology The Eclipse Modeling Framework (EMF) - Christoph Seidl 118

119 Tools and Technologies EMFText Originally created by Software Technology Group at TU Dresden Now maintained by DevBoost Xtext Originally created as part of openarchitectureware Now part of the Eclipse project The Eclipse Modeling Framework (EMF) - Christoph Seidl 119

120 EMFText: Overview Generate parser, printer, editor for textual DSLs Support for interpreters, builders, validation etc. Syntax zoo with over 100 predefined languages (e.g., Java 5, Regular Expressions, Requirements etc.) Good documentation, screencast, mailing list support Very easy to learn and handle The Eclipse Modeling Framework (EMF) - Christoph Seidl 120

121 EMFText: Workflow Define Meta Model (.ecore) Define Concrete Syntax (.cs) Generate Code (via Context Menu) The Eclipse Modeling Framework (EMF) - Christoph Seidl 121

122 Create a Concrete Syntax for Meta Model (.cs) The Eclipse Modeling Framework (EMF) - Christoph Seidl 127

123 Create a Textual Model using the Concrete Syntax The Eclipse Modeling Framework (EMF) - Christoph Seidl 135

124 Xtext: Overview Generate parser, printer, editor for textual DSLs Great potential for customization (syntax coloring, quick fixes etc.) Powerful tool Good documentation with many screencasts Integrates well with Xtend, Xpand, MWE The Eclipse Modeling Framework (EMF) - Christoph Seidl 139

125 Xtext: Workflow Define Syntax (.xtext) Auto Generate Meta Model (.ecore) Generate Code (via MWE) - OR - Define Meta Model (.ecore) Define Syntax (.xtext) Generate Code (via MWE) The Eclipse Modeling Framework (EMF) - Christoph Seidl 140

126 Xtext: Example Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 141

127 Sidenote: Xtend Statically-typed programming language defined in Xtext Translates to Java source code (not bytecode, good for Android/GWT) Feels like java but has a few extensions (extension methods, operator overloading, polymorphic dispatch etc.) Can be extended by new language constructs! The Eclipse Modeling Framework (EMF) - Christoph Seidl 142

128 Xtend: Example Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 143

129 Conclusion Easy to specify textual languages for models Great time saver compared to writing parsers or printers manually Good tool support: Choice between EMFText and Xtext is a matter of preference Tools integrate well with other EMF technology (see rest of presentation) The Eclipse Modeling Framework (EMF) - Christoph Seidl 144

130 The Eclipse Modeling Framework (EMF) Graphical Editors/Viewers and Data Visualization

131 What is it? Tooling to build graphical editors/viewers and data visualization Graphical editor: modify underlying data in graphical DSL Graphical viewer: visualize underlying data in graphical DSL Data visualization: represent underlying data and its connection in a generic way (e.g., nodes and connections) [1..1] AutomotiveMultimedia [1..3] [0..1] AudioPlayer [1..1] OnBoardComputer [1..2] [0..1] PersonalNavigation [1..2] [1..1] Radio [0..1] CDPlayer [0..1] VoiceRecognition [1..1] Maps [1..1] [0..1] AudioCDPlayer [0..1] MP3CDPlayer The Eclipse Modeling Framework (EMF) - Christoph Seidl 146

132 Benefits of Graphical Languages Why create graphical syntax for models? Use two dimensions (x/y, not just linear as text) Many (primarily) graphical notations (e.g., UML Class Diagrams/State Charts, Petri Nets) Some notations are easier to grasp graphically (e.g., Public Transport Route Maps, Feature Models, Mind Maps etc.) Why create models for graphical syntax? Allow processing of underlying data in the usual way Integrate with other EMF technology (validate, etc.) The Eclipse Modeling Framework (EMF) - Christoph Seidl 147

133 General Procedure Use metamodel to specify structure of data Define how data elements should be represented visually Generate/write graphical editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 148

134 Tools and Technologies Graphical Editing Framework (GEF) Zest Graphical Modeling Framework (GMF) EuGENia Graphiti Spray The Eclipse Modeling Framework (EMF) - Christoph Seidl 149

135 GEF: Overview Graphical Editing Framework (GEF) Code base for (manual) creation of graphical editors Not tied to EMF Ecore but integrates very well Philosophy: write all code manually The Eclipse Modeling Framework (EMF) - Christoph Seidl 150

136 GEF: Workflow Define Meta Model (.ecore) Manually Write GEF Code Graphical Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 151

137 GEF: Basic Classes Uses the Model-View-Controller (MVC) pattern Domain Model Arbitrary model representation May be models of Ecore meta models The model of MVC Figure Visual representation of domain model elements (e.g., Circles, Squares) The view of MVC EditPart Business logic for editing domain model elements (e.g., what to do when element is deleted) Delegate concrete work to EditParts (see next slide) The controller of MVC The Eclipse Modeling Framework (EMF) - Christoph Seidl 152

138 Zest: Overview Visualization toolkit Predefined layout algorithms and visualization components Philosophy: Layout data and its relation with minimum effort Not the right tool to implement editors/viewers for graphical domain specific languages The Eclipse Modeling Framework (EMF) - Christoph Seidl 154

139 Zest: Workflow Define Meta Model (.ecore) Bind to Zest Graphical Visualization The Eclipse Modeling Framework (EMF) - Christoph Seidl 155

140 GMF: Overview Graphical Modeling Framework (GMF) Builds on GEF but uses models to specify tools, editors, palettes etc. Philosophy: use models to configure generation of GEF code Faster to get an editor out than manual GEF Specifying models for configuration is clumsy Generated code is hard to comprehend and customization is clumsy The Eclipse Modeling Framework (EMF) - Christoph Seidl 156

141 GMF: Models Domain Model Data representation Preferrable in Ecore GMF Graph Model (.gmfgraph) Defines visual representation for figures, nodes, links etc. Customize appearance by shape, color, line weight etc. GMF Tool Model (.gmftool) Defines palette, creation tools, actions etc. Specify which domain elements may be created, modified, deleted, connected to each other etc. Specify how the tools (in the palette) are named and represented GMF Map Model (.gmfmap) Specify how visual representations and tools relate to domain models The Eclipse Modeling Framework (EMF) - Christoph Seidl 157

142 GMF: Workflow Define Meta Model (.ecore) Define GMF Configuration Models (.gmfgraph,.gmftool,.gmfmap) Generate GEF Code Graphical Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 158

143 EuGENia: Overview Part of Epsilon project Builds on GMF but generates its configuration models Annotate meta model with information for graphical editor Integrates well with EMFatic (later slides) Philosophy: specifying GMF models is too clumsy -> generate them! The Eclipse Modeling Framework (EMF) - Christoph Seidl 159

144 EuGENia: Workflow Define Meta Model (.ecore) Annotate Meta Model Generate GMF Configuration Models (.gmfgraph,.gmftool,.gmfmap) Generate GEF Code Graphical Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 160

145 Graphiti: Overview Part of the Eclipse project (Incubation) Originally created by SAP Builds on GEF but hides underlying code in its API Uses preconfigured elements (graphical, tools etc.) Good integration of layouting algorithms Philosophy: generate code and use sensible defaults The Eclipse Modeling Framework (EMF) - Christoph Seidl 161

146 Graphiti: Models Domain model Data representation Preferrably in Ecore but may be in other format Pictogram model Contains representation information Link model Connects data and representation The Eclipse Modeling Framework (EMF) - Christoph Seidl 162

147 Graphiti: Workflow Define Meta Model (.ecore) Define Graphiti Configuration Models (Pictogram, Link) Generate GEF Code Graphical Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 163

148 Spray: Overview Textual DSL defined in Xtext to create graphical editors Builds on Graphiti and uses it for code generation Generated code can be customized Code is still under heavy development code.google.com/a/eclipselabs.org/p/spray The Eclipse Modeling Framework (EMF) - Christoph Seidl 164

149 Spray: Workflow Define Meta Model (.ecore) Define Spray Textual Format (.spray) Generate Graphiti Configuration Models (Pictogram, Link) Generate GEF Code Graphical Editor The Eclipse Modeling Framework (EMF) - Christoph Seidl 165

150 Spray: Example Source: Spray user guide ( The Eclipse Modeling Framework (EMF) - Christoph Seidl 166

151 Wrap Up Graphical Editors/Viewers Data Visualization EuGENia Spray Zest GMF Graphiti GEF Ecore The Eclipse Modeling Framework (EMF) - Christoph Seidl 167

152 Conclusion Many tools to help build graphical editors Zest is for visualizing data and its connection GEF, GMF, EuGENia, Graphiti, Spray can be used for graphical DSLs Recommendation Build (small) editor with GEF to get acquainted If comfortable with it, switch to generation The Eclipse Modeling Framework (EMF) - Christoph Seidl 168

153 The Eclipse Modeling Framework (EMF) Code Generation using Template Engines

154 What is it? Transform model to code with a template engine Arbitrary textual representations (e.g., source code, textual DSLs, configuration files etc.) Special form of model transformation Target is a textual representation Model-to-Text (M2T) transformation Difference between Printing and M2T Printing: target text format has same meta model M2T: target text format (usually) has different meta model (or no explicit one at all) The Eclipse Modeling Framework (EMF) - Christoph Seidl 170

155 General Procedure Use metamodel to specify structure of data Specify a template (skeleton of textual format with slots for data) Use template engine to fill in data into slots of template The Eclipse Modeling Framework (EMF) - Christoph Seidl 171

156 Tools and Technologies Java Emitter Templates (JET) Part of the Eclipse project Very easy, no typing Acceleo Part of the Eclipse project Medium complexity Xpand Part of the Eclipse project Powerful, statically typed The Eclipse Modeling Framework (EMF) - Christoph Seidl 172

157 Overview: JET Java Emitter Templates (JET) Can generate all textual languages but has a (slight) focus on Java Uses Java to create data to fill templates Very easy to learn Used by Ecore for code generation The Eclipse Modeling Framework (EMF) - Christoph Seidl 173

158 JET: Example Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 174

159 Overview: Acceleo Pragmatic implementation of the OMG MOF Model to Text Language (MTL) standard Modules, Templates The Eclipse Modeling Framework (EMF) - Christoph Seidl 175

160 Acceleo: Example Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 176

161 Overview: Xpand Powerful template engine Uses textual DSL to create data to fill templates (statically typed) Good integration with Xtext Uses Xtend to specify custom operations on models used only for code generation Caution: Xpand s Xtend language is another one than Xtext s Xtend (which was originally called Xtend 2) wiki.eclipse.org/xpand The Eclipse Modeling Framework (EMF) - Christoph Seidl 177

162 Xpand: Example Source: The Eclipse Modeling Framework (EMF) - Christoph Seidl 178

163 Conclusion Multiple competing template engines JET is easiest to learn Xpand is very powerful Acceleo is somewhere in between Recommendation Use JET until you grow out of it Start using Xpand when you know that you need it The Eclipse Modeling Framework (EMF) - Christoph Seidl 179

Textual Modeling Languages

Textual Modeling Languages Textual Modeling Languages Slides 4-31 and 38-40 of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics

More information

Model-Driven Development - From Frontend to Code

Model-Driven Development - From Frontend to Code Model-Driven Development - From Frontend to Code Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de Markus Völter voelter@acm.org www.voelter.de -1- Model Driven

More information

Evolution in Feature-Oriented Model-Based Software Product Line Engineering

Evolution in Feature-Oriented Model-Based Software Product Line Engineering Diploma Thesis Evolution in Feature-Oriented Model-Based Software Product Line Engineering submitted by Christoph Seidl born December 5, 1982 in Freiburg im Br. Technische Universität Dresden Faculty of

More information

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics: Organization of DSLE part Domain Specific Language Engineering Tooling Eclipse plus EMF Xtext, Xtend, Xpand, QVTo and ATL Prof.dr. Mark van den Brand GLT 2010/11 Topics: Meta-modeling Model transformations

More information

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

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins Rushiraj Heshi Department of Computer Science and Engineering Walchand College of Engineering, Sangli Smriti

More information

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Implementing reusable software components for SNOMED CT diagram and expression concept representations 1028 e-health For Continuity of Care C. Lovis et al. (Eds.) 2014 European Federation for Medical Informatics and IOS Press. This article is published online with Open Access by IOS Press and distributed

More information

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Model Driven Interoperability through Semantic Annotations using SoaML and ODM Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:

More information

An Extended Survey of Open Source Model-Based Engineering Tools

An Extended Survey of Open Source Model-Based Engineering Tools An Extended Survey of Open Source Model-Based Engineering Tools Report prepared for Ericsson by: Kenn Hussey, Bran Selic, and Toby McClean Revision E (May 11, 2010) Zeligsoft 115, rue Principale, Suite

More information

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More Taking Subversion to a Higher Level Branching/Merging Support Component Management Support And More About Impact CM Impact CM is a Service AddOn that facilitates software configuration management (CM)

More information

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems 1 2 Model-Based Development of -Critical Systems Miguel A. de Miguel 5/6,, 2006 modeling Stakes 3 Context 4 To increase the industrial competitiveness in the domain of software systems To face the growing

More information

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology Jendrik Johannes, Mirko Seifert, Christian Wende, Florian Heidenreich, and Uwe Aßmann DevBoost GmbH D-10179,

More information

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects. Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez pa.gomez398@uniandes.edu.co Hector Florez ha.florez39@uniandes.edu.co ABSTRACT The linguistic conformance and the ontological

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

OpenEmbeDD basic demo

OpenEmbeDD basic demo OpenEmbeDD basic demo A demonstration of the OpenEmbeDD platform metamodeling chain tool. Fabien Fillion fabien.fillion@irisa.fr Vincent Mahe vincent.mahe@irisa.fr Copyright 2007 OpenEmbeDD project (openembedd.org)

More information

today 1,700 special programming languages used to communicate in over 700 application areas.

today 1,700 special programming languages used to communicate in over 700 application areas. today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin

More information

Modellrepository @ T-Mobile Umsetzung und Einsatz

Modellrepository @ T-Mobile Umsetzung und Einsatz 1 Modellrepository @ T-Mobile Umsetzung und Einsatz ix CeBIT Forum 2009 Carsten Sensler, T-Mobile Deutschland GmbH 3/9/09 1 Table of Contents!! SOA Backplane overview!! Model repository @ T-Mobile!! Domain

More information

Building industrial sensors with MDSD

Building industrial sensors with MDSD Building industrial sensors with MDSD Bernhard Merkle Central Department Research & Development Software-Engineering SICK-AG Waldkirch mailto: Bernhard.Merkle@sick.de mailto: Bernhard.Merkle@gmail.com

More information

Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl

Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl Domain Specific Languages for Business Users Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl Sheet 2 Background Experience Business DSLs Insurance Product Modeling (structure) Pattern

More information

Implementation and Integration of a Domain Specific Language with oaw and Xtext

Implementation and Integration of a Domain Specific Language with oaw and Xtext Implementation and Integration of a Domain Specific Language with oaw and Xtext by Volker Koster MT AG, Okt. 2007 www.mt-ag.com info@mt-ag.com Implementation and Integration of a Domain Specific Language

More information

Metamodels and Modeling Multiple Kinds of Information Systems

Metamodels and Modeling Multiple Kinds of Information Systems Metamodels and Modeling Multiple Kinds of Information Systems Randall M. Hauch Chief Architect presented at MDA, SOA and Web Services: Delivering the Integrated Enterprise Practice, not Promise MetaMatrix

More information

Concepts for the model-driven generation of graphical editors in Eclipse by using the Graphiti framework

Concepts for the model-driven generation of graphical editors in Eclipse by using the Graphiti framework Concepts for the model-driven generation of graphical editors in Eclipse by using the Graphiti framework Fabio Filippelli 1, Steffen Kollosche 1, Michael Bauer 1, Markus Gerhart 1, Marko Boger 1, Karsten

More information

Development of Tool Extensions with MOFLON

Development of Tool Extensions with MOFLON Development of Tool Extensions with MOFLON Ingo Weisemöller, Felix Klar, and Andy Schürr Fachgebiet Echtzeitsysteme Technische Universität Darmstadt D-64283 Darmstadt, Germany {weisemoeller klar schuerr}@es.tu-darmstadt.de

More information

An eclipse-based Feature Models toolchain

An eclipse-based Feature Models toolchain An eclipse-based Feature Models toolchain Luca Gherardi, Davide Brugali Dept. of Information Technology and Mathematics Methods, University of Bergamo luca.gherardi@unibg.it, brugali@unibg.it Abstract.

More information

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1 Open Source egovernment Reference Architecture Osera.modeldriven.org Slide 1 Caveat OsEra and the Semantic Core is work in progress, not a ready to use capability Slide 2 OsEra What we will cover OsEra

More information

Winery A Modeling Tool for TOSCA-based Cloud Applications

Winery A Modeling Tool for TOSCA-based Cloud Applications Institute of Architecture of Application Systems Winery A Modeling Tool for TOSCA-based Cloud Applications Oliver Kopp 1,2, Tobias Binz 2, Uwe Breitenbücher 2, and Frank Leymann 2 1 IPVS, 2 IAAS, University

More information

Polyglot Multi-Paradigm. Modeling. MDA in the Real World. Stefan Tilkov stefan.tilkov@innoq.com

Polyglot Multi-Paradigm. Modeling. MDA in the Real World. Stefan Tilkov stefan.tilkov@innoq.com Polyglot Multi-Paradigm Modeling MDA in the Real World Stefan Tilkov stefan.tilkov@innoq.com What I ll Talk About How I define MDA What a typical tool chain looks like Real-world examples How UML/MOD,

More information

Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1

Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1 Programmers rejoice: QML makes business people understand Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1 About me My company What I do at work Where I live What is it all about? Agenda

More information

Automating the Development of Information Systems with the MOSKitt Open Source Tool

Automating the Development of Information Systems with the MOSKitt Open Source Tool http://www.moskitt.org Automating the Development of Information Systems with the MOSKitt Open Source Tool Vicente Pelechano Universidad Politécnica de Valencia Content PART I: About the Project and the

More information

A QUICK OVERVIEW OF THE OMNeT++ IDE

A QUICK OVERVIEW OF THE OMNeT++ IDE Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.

More information

Xtext Documentation. September 26, 2014

Xtext Documentation. September 26, 2014 Xtext Documentation September 26, 2014 Contents I. Getting Started 9 1. 5 Minutes Tutorial 10 1.1. Creating A New Xtext Project........................ 10 1.2. Generating The Language Infrastructure...................

More information

Recent Advances in Eclipse QVTO!

Recent Advances in Eclipse QVTO! !! National Aeronautics and Recent Advances in Eclipse QVTO! Nicolas Rouquette Principal Computer Scientist, Systems and Software Division 2012. Government sponsorship acknowledged. Outline! A Condensed

More information

Koen Aers JBoss, a division of Red Hat jbpm GPD Lead

Koen Aers JBoss, a division of Red Hat jbpm GPD Lead JBoss jbpm Overview Koen Aers JBoss, a division of Red Hat jbpm GPD Lead Agenda What is JBoss jbpm? Multi Language Support Graphical Process Designer BPMN Reflections What is it? JBoss jbpm is a sophisticated

More information

DSL Design. Model Transformations. Model Transformations. Language g Implementation Strategies

DSL Design. Model Transformations. Model Transformations. Language g Implementation Strategies DSL Design Generic Language g Technology 2IS15 Model Transformations Language g Implementation Strategies Stand-alone Marcel van Amstel Embedding Translation / Software Engineering and Technology 9-1-2012

More information

WebSphere Business Modeler

WebSphere Business Modeler Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration

More information

Simplifying e Business Collaboration by providing a Semantic Mapping Platform

Simplifying e Business Collaboration by providing a Semantic Mapping Platform Simplifying e Business Collaboration by providing a Semantic Mapping Platform Abels, Sven 1 ; Sheikhhasan Hamzeh 1 ; Cranner, Paul 2 1 TIE Nederland BV, 1119 PS Amsterdam, Netherlands 2 University of Sunderland,

More information

Concept and Implementation of a Graphical Editor for Composite Application Templates

Concept and Implementation of a Graphical Editor for Composite Application Templates Institut für Architektur von Anwendungssystemen (IAAS) Universität Stuttgart Universitätsstraße 38 D - 70569 Stuttgart Studienarbeit Nr. 2275 Concept and Implementation of a Graphical Editor for Composite

More information

Transforming PICTURE to BPMN 2.0 as Part of the Model-driven Development of Electronic Government Systems

Transforming PICTURE to BPMN 2.0 as Part of the Model-driven Development of Electronic Government Systems Heitkötter, Henning, Transforming PICTURE to BPMN 2.0 as Part of the Model-Driven Development of Electronic Government Systems, 44th Hawaii International Conference on System Sciences (HICSS), pp. 1 10,

More information

Roles in Software Development using Domain Specific Modelling Languages

Roles in Software Development using Domain Specific Modelling Languages Roles in Software Development using Domain Specific Modelling Languages Holger Krahn Bernhard Rumpe Steven Völkel Institute for Software Systems Engineering Technische Universität Braunschweig, Braunschweig,

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

A Visual Language Based System for the Efficient Management of the Software Development Process.

A Visual Language Based System for the Efficient Management of the Software Development Process. A Visual Language Based System for the Efficient Management of the Software Development Process. G. COSTAGLIOLA, G. POLESE, G. TORTORA and P. D AMBROSIO * Dipartimento di Informatica ed Applicazioni, Università

More information

XFlash A Web Application Design Framework with Model-Driven Methodology

XFlash A Web Application Design Framework with Model-Driven Methodology International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,

More information

Eindhoven University of Technology

Eindhoven University of Technology Eindhoven University of Technology Department of Mathematics and Computer Science Software Engineering and Technology Group Master Thesis mlbnf A Syntax Formalism for Domain Specific Languages M.W. Manders

More information

Smooks Dev Tools Reference Guide. Version: 1.1.0.GA

Smooks Dev Tools Reference Guide. Version: 1.1.0.GA Smooks Dev Tools Reference Guide Version: 1.1.0.GA Smooks Dev Tools Reference Guide 1. Introduction... 1 1.1. Key Features of Smooks Tools... 1 1.2. What is Smooks?... 1 1.3. What is Smooks Tools?... 2

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

A Framework of Model-Driven Web Application Testing

A Framework of Model-Driven Web Application Testing A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China

More information

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

The ADOxx Metamodelling Platform Workshop Methods as Plug-Ins for Meta-Modelling in conjunction with Modellierung 2010, Klagenfurt The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt Dr. Harald Kühn 24.03.2010 Agenda 1 Overview 2 Deployment and Integration

More information

today 1,700 special programming languages used to communicate in over 700 application areas.

today 1,700 special programming languages used to communicate in over 700 application areas. today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin

More information

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development Ahmet Demir Technische Universität München Department of Informatics Munich, Germany AhmetDemir@gmx.de

More information

Introduction à EMF Eclipse Modeling Framework

Introduction à EMF Eclipse Modeling Framework Ingénierie Dirigée par les Modèles Introduction à Eclipse Modeling Framework Pierre Laforcade Master EIAH 2007 Sources du cours Tutoriaux et cours d' disponibles sur http://www.eclipse.org/modeling/emf/

More information

Model-driven Development for a Treasure Hunt Android application

Model-driven Development for a Treasure Hunt Android application Model-driven Development for a Treasure Hunt Android application Muram Faiz Ul Subramani Uma Shankar Marinescu Raluca Eduard Paul Enoiu Mälardalen University, Västerås, Sweden {faizulmuram, shanumas, ralukutza,

More information

Megamodels as models of the linguistic architecture of software products and software technologies

Megamodels as models of the linguistic architecture of software products and software technologies 19 April 2012 Megamodels as models of the linguistic architecture of software products and software technologies Ralf Lämmel (Software Languages Team) on behalf of Jean-Marie Favre, Thomas Schmorleiz,

More information

Quality Assurance of Software Models within Eclipse using Java and OCL

Quality Assurance of Software Models within Eclipse using Java and OCL Quality Assurance of Software Models within Eclipse using Java and OCL Dr. Thorsten Arendt Modellgetriebene Softwareentwicklung mobiler Anwendungen Wintersemester 2014/15 17. Dezember 2014 Outline Why

More information

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation Technical Brief April 2011 The National Consortium for Justice Information and Statistics Model-driven Development of NIEM Information Exchange Package Documentation By Andrew Owen and Scott Came Since

More information

An Eclipse plug-in for Public Administration software system modelling and simulation

An Eclipse plug-in for Public Administration software system modelling and simulation An Eclipse plug-in for Public Administration software system modelling and simulation Riccardo Cognini, Damiano Falcioni, Andrea Polini, Alberto Polzonetti, and Barbara Re University of Camerino, School

More information

A Model-Driven Approach for the Development of an IDE for Spacecraft On-Board Software

A Model-Driven Approach for the Development of an IDE for Spacecraft On-Board Software A Model-Driven Approach for the Development of an IDE for Spacecraft On-Board Software Luigi Pomante Sante Candia Emilio Incerto Università degli Studi dell Aquila Center of Excellence DEWS - ITALY luigi.pomante@univaq.it

More information

Tool Support for Model Checking of Web application designs *

Tool Support for Model Checking of Web application designs * Tool Support for Model Checking of Web application designs * Marco Brambilla 1, Jordi Cabot 2 and Nathalie Moreno 3 1 Dipartimento di Elettronica e Informazione, Politecnico di Milano Piazza L. Da Vinci,

More information

A multilayered model for REST applications

A multilayered model for REST applications Institute of Architecture of Application Systems University of Stuttgart Universitätsstraße 38 D 70569 Stuttgart Diplomarbeit Nr. 3601 A multilayered model for REST applications Jens Petersohn Course of

More information

An Extensible Application Topology Definition and Annotation Framework

An Extensible Application Topology Definition and Annotation Framework Institute of Architecture of Application Systems University of Stuttgart Universitätsstraße 38 D 70569 Stuttgart Diploma Thesis Nr. 3504 An Extensible Application Topology Definition and Annotation Framework

More information

Model Transformations and Code Generation

Model Transformations and Code Generation Model Transformations and Code Generation Ecole IN2P3 Temps Réel Ansgar.Radermacher@cea.fr 2 École d été, 26.11 08h30 10h00: Cours S1 Component models CCM and FCM (connectors) CCM CORBA component model

More information

COCOVILA Compiler-Compiler for Visual Languages

COCOVILA Compiler-Compiler for Visual Languages LDTA 2005 Preliminary Version COCOVILA Compiler-Compiler for Visual Languages Pavel Grigorenko, Ando Saabas and Enn Tyugu 1 Institute of Cybernetics, Tallinn University of Technology Akadeemia tee 21 12618

More information

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

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development * for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston hiroshi_wada@otij.org and jxs@cs.umb.edu Abstract. This

More information

How to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management)

How to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management) How to Improve Database Connectivity With the Data Tools Platform John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management) 1 Agenda DTP Overview Creating a Driver Template Creating a

More information

HP Systinet. Software Version: 10.01 Windows and Linux Operating Systems. Concepts Guide

HP Systinet. Software Version: 10.01 Windows and Linux Operating Systems. Concepts Guide HP Systinet Software Version: 10.01 Windows and Linux Operating Systems Concepts Guide Document Release Date: June 2015 Software Release Date: June 2015 Legal Notices Warranty The only warranties for HP

More information

This document covers version 1.0.1 of BPMN2 Modeler, published November 15, 2013.

This document covers version 1.0.1 of BPMN2 Modeler, published November 15, 2013. INTRODUCTION The Eclipse BPMN2 Modeler is an open-source, graphical tool for authoring and editing files that are compliant with the OMG BPMN 2.0 standard. It is assumed that the reader is familiar with

More information

Foundations of Model-Driven Software Engineering

Foundations of Model-Driven Software Engineering Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster (jku@zurich.ibm.com) Contents Introduction to Models and Modeling Concepts of Model-Driven Software

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Modeling Cloud Messaging with a Domain-Specific Modeling Language

Modeling Cloud Messaging with a Domain-Specific Modeling Language Modeling Cloud Messaging with a Domain-Specific Modeling Language Gábor Kövesdán, Márk Asztalos and László Lengyel Budapest University of Technology and Economics, Budapest, Hungary {gabor.kovesdan, asztalos,

More information

JastEMF: Reference Attribute Grammars for EMF-based DSLs

JastEMF: Reference Attribute Grammars for EMF-based DSLs Fakultät Informatik Institut Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie JastEMF: Reference Attribute Grammars for EMF-based DSLs Sven Karol, Christoff Bürger ACSE 17.12.2012 What s

More information

Introduction to XML Applications

Introduction to XML Applications EMC White Paper Introduction to XML Applications Umair Nauman Abstract: This document provides an overview of XML Applications. This is not a comprehensive guide to XML Applications and is intended for

More information

An Architecture to Support Model Driven Software Visualization

An Architecture to Support Model Driven Software Visualization An Architecture to Support Model Driven Software Visualization R. Ian Bull and Margaret-Anne Storey University of Victoria British Columbia, Canada {irbull,mstorey@cs.uvic.ca Marin Litoiu IBM Markham Ontario

More information

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

Course 4 27 October 2014. Adrian Iftene adiftene@info.uaic.ro Course 4 27 October 2014 Adrian Iftene adiftene@info.uaic.ro They will not be considered in the maximum values of the laboratory The presentation of the context and of these solutions in the course can

More information

Federated, Generic Configuration Management for Engineering Data

Federated, Generic Configuration Management for Engineering Data Federated, Generic Configuration Management for Engineering Data Dr. Rainer Romatka Boeing GPDIS_2013.ppt 1 Presentation Outline I Summary Introduction Configuration Management Overview CM System Requirements

More information

Introduction to Generative Software Development

Introduction to Generative Software Development Introduction to Generative Software Development Krzysztof Czarnecki University of Waterloo czarnecki@acm.org www.generative-programming.org Goals What is to be achieved? Basic understanding of Generative

More information

Integrate your tools to help integrate your stakeholders

Integrate your tools to help integrate your stakeholders Integrate your tools to help integrate your stakeholders Stephan Herrmann EclipseCon Europe 2013 Stephan Herrmann: Integrate your Tools... - EclipseCon Europe 2013 3 Why, exactly, develop DSLs? Remember

More information

Creating visualizations through ontology mapping

Creating visualizations through ontology mapping Creating visualizations through ontology mapping Sean M. Falconer R. Ian Bull Lars Grammel Margaret-Anne Storey University of Victoria {seanf,irbull,lgrammel,mstorey}@uvic.ca Abstract We explore how to

More information

Introduction to Testing Webservices

Introduction to Testing Webservices Introduction to Testing Webservices Author: Vinod R Patil Abstract Internet revolutionized the way information/data is made available to general public or business partners. Web services complement this

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

More information

Requirements Exchange: From Specification Documents to Models

Requirements Exchange: From Specification Documents to Models Requirements Exchange: From Specification Documents to Models Morayo ADEDJOUMA, Hubert DUBOIS, François TERRIER Ansgar RADERMACHER UML&AADL 2011-27 April 2011, Las Vegas Agenda Big picture Challenge Technologies

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

The leading platform for Model Driven Architecture (MDA) Content:

The leading platform for Model Driven Architecture (MDA) Content: The leading platform for Model Driven Architecture (MDA) Content: Models Made for Business... 2 ArcStyler Overview... 2 Main Benefits... 3 ArcStyler Editions... 4 ArcStyler Modules and Tool Architecture...

More information

Toward Families of QVT DSL and Tool

Toward Families of QVT DSL and Tool Toward Families of QVT DSL and Tool Benoît Langlois, Daniel Exertier, Ghanshyamsinh Devda Thales Research & Technology RD 128 91767 Palaiseau, France {benoit.langlois, daniel.exertier, ghanshyamsinh.devda}@thalesgroup.com

More information

How To Transform Business Rules Into Optimized Processes

How To Transform Business Rules Into Optimized Processes Automatic generation of optimal business processes from business rules Bas Steen, Luís Ferreira Pires and Maria-Eugenia Iacob Centre for Telematics and Information Technology University of Twente Enschede,

More information

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book. * ** Today s organization increasingly prompted to integrate their business processes and to automate the largest portion possible of them. A common term used to reflect the automation of these processes

More information

YouTrack MPS case study

YouTrack MPS case study YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project

More information

A Model-Driven Approach for Graph Visualization

A Model-Driven Approach for Graph Visualization A Model-Driven Approach for Graph Visualization Celal Çığır, Alptuğ Dilek, Akif Burak Tosun Department of Computer Engineering, Bilkent University 06800, Bilkent, Ankara {cigir, alptug, tosun}@cs.bilkent.edu.tr

More information

Profiling and Testing with Test and Performance Tools Platform (TPTP)

Profiling and Testing with Test and Performance Tools Platform (TPTP) Profiling and Testing with Test and Performance Tools Platform (TPTP) 2009 IBM Corporation and Intel Corporation; made available under the EPL v1.0 March, 2009 Speakers Eugene Chan IBM Canada ewchan@ca.ibm.com

More information

Bridging the Generic Modeling Environment (GME) and the Eclipse Modeling Framework (EMF)

Bridging the Generic Modeling Environment (GME) and the Eclipse Modeling Framework (EMF) Bridging the Generic ing Environment () and the Eclipse ing Framework (EMF) Jean Bézivin (), Christian Brunette (2), Régis Chevrel (), Frédéric Jouault (), Ivan Kurtev () () ATLAS Group (INRIA & LINA,

More information

Extension of a SCA Editor and Deployment-Strategies for Software as a Service Applications

Extension of a SCA Editor and Deployment-Strategies for Software as a Service Applications Institut fur Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 70569 Stuttgart Diplomarbeit Nr. 2810 Extension of a SCA Editor and Deployment-Strategies for Software as a Service

More information

Acknowledgments. p. 55

Acknowledgments. p. 55 Preface Acknowledgments About the Author Introduction p. 1 IBM SOA Foundation p. 2 Service Design and Service Creation p. 2 Service Integration p. 3 Service Connectivity p. 5 Service Security and Management

More information

Generative Software Product Line Development using Variability-Aware Design Patterns

Generative Software Product Line Development using Variability-Aware Design Patterns Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Generative Software Product Line Development using Variability-Aware Design Patterns Christoph Seidl, Sven Schuster, Ina Schaefer May

More information

Source Code Translation

Source Code Translation Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven

More information

Java Generation from UML Models specified with Alf Annotations

Java Generation from UML Models specified with Alf Annotations Université de Franche-Comté Supervisers : Fabien Peureux, Isabelle Jacques Java Generation from UML Models specified with Alf Annotations Supervised project report Alexandre Vernotte Jean-Marie Gauthier

More information

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster jku@zurich.ibm.com Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

A tool environment for quality assurance based on the Eclipse Modeling Framework

A tool environment for quality assurance based on the Eclipse Modeling Framework Autom Softw Eng (2013) 20:141 184 DOI 10.1007/s10515-012-0114-7 A tool environment for quality assurance based on the Eclipse Modeling Framework Thorsten Arendt Gabriele Taentzer Received: 30 March 2012

More information

Software Development Kit

Software Development Kit Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice

More information

SOFTWARE TESTING TRAINING COURSES CONTENTS

SOFTWARE TESTING TRAINING COURSES CONTENTS SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software

More information

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions

More information

Designing a Semantic Repository

Designing a Semantic Repository Designing a Semantic Repository Integrating architectures for reuse and integration Overview Cory Casanave Cory-c (at) modeldriven.org ModelDriven.org May 2007 The Semantic Metadata infrastructure will

More information

Analysis of the Specifics for a Business Rules Engine Based Projects

Analysis of the Specifics for a Business Rules Engine Based Projects Analysis of the Specifics for a Business Rules Engine Based Projects By Dmitri Ilkaev and Dan Meenan Introduction In recent years business rules engines (BRE) have become a key component in almost every

More information

Authoring for System Center 2012 Operations Manager

Authoring for System Center 2012 Operations Manager Authoring for System Center 2012 Operations Manager Microsoft Corporation Published: November 1, 2013 Authors Byron Ricks Applies To System Center 2012 Operations Manager System Center 2012 Service Pack

More information