Model-Driven Development - From Frontend to Code
|
|
|
- Hubert Walters
- 10 years ago
- Views:
Transcription
1 Model-Driven Development - From Frontend to Code Sven Efftinge [email protected] Bernd Kolb [email protected] Markus Völter [email protected] -1-
2 Model Driven Development Model Driven Development is about making software development more domain-related as opposed to computing related. It is also about making software development in a certain domain more efficient. Domain Concepts Domain Concepts mental work of developers Software Technology Concepts Software Technology Concepts -2-
3 MDSD Core Concepts several design expertise target software architecture Metametamodel composable subdomains partial bounded area of knowlege/interest multi-step single-step transform compile knowledge Model multiple viewpoint semantics Domain no roundtrip interpret precise/ executable Domain Specific Language Ontology Metamodel textual graphical -3-
4 How does MDSD work? Developer develops model(s) based on certain metamodel(s). Using code generation templates, the model is transformed to executable code. Optionally, the generated code is merged with manually written code. One or more model-tomodel transformation steps may precede code generation. Model Model Model Transformer Model Transformer Metamodel Tranformation Rules Metamodel Code Generation Templates optional, can be repeated Generated Code Manually Written Code optional -4-
5 Goals & Challenges Goals: We need an end-to-end tool chain that allows us to build models, verify them and generate various artefacts from them. All of this should happen in a homogeneous environment, namely Eclipse. Challenges: Good Editors for your models Verifying the models as you build them Transforming/Modifying models Generating Code Integrating generated and non-generated code -5-
6 Roadmap for the two Sessions We will start by defining a metamodel for state machines, based on the UML metamodel We will then build a graphical editor for state machines using the well-known UML-based S e s s i o n 1 notations. We will then add additional constraints (e.g. That states must have different names) S e s s i o n 2 Next up will be a code generator that creates a switch-based implementation of state machines in Java. Recipes help developers with the implementation of the actions associated with states. We will then cover model-to-model transformations and model modifications. Finally, we will built a textual editor for rendering the state machines textually
7 Defining the Metamodel A statemachine consists of a number of states. States can be start states, stop states and normal states. A transition connects two states. States know their outgoing and incoming transitions. We also support composite states that themselves contain sub state machines. A state machine is itself a composite state. A state has actions. Actions can either be entry or exit actions. The metamodel is defined using EMF, the Eclipse Modelling Framework. -7-
8 Defining the Metamodel II -8-
9 Defining the Metamodel III The metamodel is defined using EMF. EMF provides tree-based editors to define the metamodel. The metamodel has its own project called oaw4.demo.gmf. statemachine2-9-
10 Defining the Metamodel IV Note that we have to create the genmodel as well as the.edit and.editor projects from the ecore model. This is necessary for the graphical editor to work. -10-
11 Building the graphical Editor The editor is based on the metamodel defined before. A number of additional models has to be defined: A model defining the graphical notation A model for the editor s pallette and other tooling A mapping model that binds these two models to the domain metamodel A generator generates the concrete editor based on these models. The editor is build with the Eclipse GMF, the Graphical Modelling Framework. -11-
12 Building the graphical Editor II -12-
13 Building the graphical Editor III We use another project for the GMF models from which we ll create the editor: oaw4.demo.gmf.statemachine2.gmf This project contains all the additional models we talked about before: -13-
14 Building the graphical Editor IV The gmftool model contains the definition of the palette that will be used in the editor. We have creation tools for all the relevant metamodel elements. Each of these tools has a nice icon associated. -14-
15 Building the graphical Editor V The Figure Gallery contains the figures (as well as their associated labels) Shapes Line Style Colors Decorations Diagram Nodes represent the vertices in the graph that is being edited. Compartments can be defined as parts of Nodes. Connections play the role of the edges in the graph. -15-
16 Building the graphical Editor VI We map nodes and links. We include all the other models so they can be referenced. Better editors will become available by GMF final. From that, we generate the editor plugins: -16-
17 Building the graphical Editor VII Here is the editor, started in the runtime workbench, with our CD Player example. Overview Pane Tool Palette These rectangles are to demo decorations Model Element Properties -17-
18 Constraints Constraints are rules that models must conform to in order to be valid. These are in addition to the structures that the metamodel defines. Formally, constraints are part of the metamodel. A constraint is a boolean expression (a.k.a predicate) that must be true for a model to conform to a metamodel. Constraint Evaluation should be available in batch mode (when processing the model) as well as interactively, during the modelling phase in the editor... and we don t want to implement constraints twice to have them available in both places! Functional languages are often used here. UML s OCL (Object Constraint Language) is a good example, We use oaw s check language, which is alike OCL -18-
19 Constraints II Constraints are put into the statemachine2 project, the same as the metamodel. StatemachineBatchErrors are used in batch validation mode (automatically evaluated every 2 seconds in the editor) StatemachineLiveErrors prevent erratic modellings in the first place. -19-
20 Constraints III Here are some examples written in oaw s Checks language. For which elements is the constraint is applicable ERROR or WARNING Constraint Expression Error message in case Expression is false Note the code completion and error highlighting -20-
21 Constraints IV To make the GMF generated editors evaluate our constraints, we needed to tweak things a little bit; most of this is in oaw4.demo.gmf.statemachine2.etc We wrote our own ConstraintEvaluators and plugged in the oaw CheckFacade. We used AspectJ to weave in Adapters into the EMF Factory We wrote a watchdog that does the batch evaluations whenever the model does not change for two seconds. Also, you have to make two important adjustments in the gmfgen model -21-
22 Constraints V In this model there are two errors There are two states with the same name (Off) The start state has more than one out- Transition The validation is executed automatically Clicking the error message selects the respective broken model element in the diagram. -22-
23 Code Generation Code Generation is used to generate executable code from models. Code Generation is based on the metamodel and uses templates to attach to-be-generated source code. In openarchitectureware, we use a template language called xpand. It provides a number of advanced features such as polymorphism, AO support and a powerful integrated expression language. Templates can access metamodel properties seamlessly -23-
24 Code Generation II What kind of code will be generated? How do you implement a state machine? There are many ways of implementing a state machine: GoF s State pattern If/Switch-based Decision Tables Pointers/Indexed Arrays We will use the switch-based alternative. It is neither the most efficient nor the most elegante alternative, but it s simple. For more discussion of this topic, see Practical State Charts in C/C++ by Miro Samek -24-
25 Code Generation III: Pseudocode Generate an enumeration for the states Generate an enumeration for the events Have a variable that remembers the state in which the state machine is currently in. Implement a function trigger(event) which First switches over all states to find out the current state Check whether there s a transition for the event passed into the function If so, execute exit action of current state, Set current state to target of transition Execute entry action of this new current state Return And also handle nested states -25-
26 Code Generation IV The generator is located in the oaw4.demo.gmf. statemachine2.generator project. There are a number of code generation templates. Extensions are also defined. There are also workflow files (.oaw) that control the workflow of a generator run. Different workflow files contain different parts of the overall generator run and call each other. Workflow files are in some small way like ant files. -26-
27 Code Generation V Opens a File Iterates over all the states of the State- Machine Template name Namespace and Extension Import Name is a property of the State- Machine class Extension Call Calls another template Like methods in OO, templates are associated with a (meta)class The blue text is generated into the target file. The capitalized words are xpand keywords Black text are metamodel properties DEFINE...END- DEFINE blocks are called templates. The whole thing is called a template file. -27-
28 Code Generation VI One can add behaviour to existing metaclasses using oaw s Xtend language. Imports a namespace Extensions are typically defined for a metaclass Extensions can also have more than one parameter Extensions can be called using member-style syntax: myaction.methodname() Extensions can be used in Xpand templates, Check files as well as in other Extension files. They are imported into template files using the EXTENSION keyword -28-
29 Code Generation VII Workflow loads the model, checks it (same constraints as in Editor!) and then generates code. A component is a step in the workflow A number of parameters are passed in We invoke the same check file as in the editor This starts the first, top level template Code is automatically beautified -29-
30 Recipes I There are various ways of integrating generated code with non-generated code: a) b) c) d) e) generated code non-generated code -30-
31 Recipes II To help developers to do the right thing after the generator has created base classes and the like, you can use a recipe framework. It provides a task-based approach to completing the generated code with manual parts. This works the following way: As part of the generator run, you instantiate checks that you write to a file After the generator finishes, the IDE (here: Eclipse) loads these checks and verifies them against the complete code base (i.e. Generated + manual) If things don t conform to the rules, messages are output helping the developer to fix things. For example, in the state machine case, actions must be implemented in subclasses. -31-
32 Recipes III Here s an error that suggests that I extend my manually written class from the generated base class: Recipes can be arranged hierarchically This is a failed check Green ones can also be hidden Here you can see additional information about the selected recipe -32-
33 Recipes IV I now add the respective extends clause, and the message goes away automatically. Adding the extends clause makes all of them green -33-
34 Recipes V Now I get a number of compile errors because I have to implement the abstract methods defined in the super class: I finally implement them sensibly, and everything is ok. The Recipe Framework and the Compiler have guided me through the manual implementation steps. If I didn t like the compiler errors, we could also add recipe tasks for the individual operations. oaw comes with a number of predefined recipe checks for Java. But you can also define your own checks, e.g. to verify C++ code. -34-
35 Recipes VI Here s the implementation of the Recipes. This workflow component must be added to the workflow. You extend one of a number of suitable base classes and override a suitable template method You can then create any number of checks. This one checks that a class extends another one And return the checks to the framework -35-
36 Model Transformations I Model Transformations create one or more new models from one or more input models. The input models are left unchanged. Often used for stepwise refinement of models and modularizing generators Input/Output Metamodels are different Model Modifications are used to alter or complete an existing model For both kinds, we use the xtend language, an extension of the openarchitectureware expression language. Alternative languages are available such as Wombat, ATL, MTF or Tefkat (soon: various QVT implementations) -36-
37 Model Transformation II The model modification shows how to add an additional state and some transitions to an existing state machine (emergency shutdown) Extensions can import other extensions The main function create extensions guarantee that for each set of parameters the identical result will be returned. Therefore createshutdown() will always return the same element. -37-
38 Model Transformation III The generator is based on an implementationspecific metamodel without the concept of composite states. This makes the templates simple, because we don t have to bridge the whole abstraction gap (from model to code) in the templates. Additionally, the generator is more reusable, because the abstractions are more general. We will show a transformation which transforms models described with our GMF editor into models expected by the generator. -38-
39 Model Transformation IV We want to transform from the editor s metamodel statemachine2 to the generator s metamodel simplesm We need to normalize composite states. States inherit outgoing transitions from their parent states For those transitions the exit actions are inherited, too Unify action and event elements with the same name -39-
40 Textual Editor I A graphical notation is not always the best syntax for DSLs. So, while GMF provides a means to generate editors for graphical notations, we also need to be able to come up with editors for textual syntaxes. These editors need to include at least Syntax hightlighting Syntax error checking Semantic constraint checking -40-
41 Textual Editor II We use oaw s textual DSL generator framework xtext Based on a BNF-like language it provides: An EMF-based metamodel (representing the AST) An Antlr parser instantiating dynamic EMFmodels An Eclipse text editor plugin providing syntax highlighting An outline view, syntax checking as well as constraints checking based on a Check file, as always oaw -41-
42 Textual Editor III The grammar (shown in the boostrapped editor) The generated ecore AST model A literal The first rule describes the root element of the AST Rule name Rule names will become the AST classes States contain a number of entry actions, transitions and exit actions Assigns an indentifier to a variable (here: state) These variables will become attributes of the AST class -42-
43 Textual Editor IV You can define additioal constraints that should be validated in the generated editor. This is based on oaw s Check language i.e. These are constraints like all the others you ve already come across -43-
44 Textual Editor V The generated editor and it s outline view Literals have become keywords Constraints are evaluated in real time -44-
45 Tooling Versions Eclipse 3.1 or Eclipse 3.2, suitable EMF version Eclipse >= 3.2M6, GMF >= 1.0M6 Eclipse >= 3.1, oaw >= 4.0 Eclipse >= 3.1, oaw >= 4.0 Eclipse >= 3.1, oaw >= 4.0 Eclipse 3.2, oaw >= 4.1 Eclipse 3.2, oaw >=
46 Summary The tool chain we ve just shown provides an endto-end solution for MDSD, Completely Open Source Using standards wherever worthwhile, And pragmatic solutions wherever necessary. To get the tools, go to THANK YOU. -46-
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
VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl
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 Overview of
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 [email protected] Implementation and Integration of a Domain Specific Language
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
Embedded Software Development with MPS
Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,
OpenEmbeDD basic demo
OpenEmbeDD basic demo A demonstration of the OpenEmbeDD platform metamodeling chain tool. Fabien Fillion [email protected] Vincent Mahe [email protected] Copyright 2007 OpenEmbeDD project (openembedd.org)
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,
Building industrial sensors with MDSD
Building industrial sensors with MDSD Bernhard Merkle Central Department Research & Development Software-Engineering SICK-AG Waldkirch mailto: [email protected] mailto: [email protected]
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:
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
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
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.
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
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
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
Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.
Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez [email protected] Hector Florez [email protected] ABSTRACT The linguistic conformance and the ontological
Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations
Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations Steen Brahe 1 and Behzad Bordbar 2 1 Danske Bank and IT University
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
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
Jos Warmer, Independent [email protected] www.openmodeling.nl
Domain Specific Languages for Business Users Jos Warmer, Independent [email protected] www.openmodeling.nl Sheet 2 Background Experience Business DSLs Insurance Product Modeling (structure) Pattern
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
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
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,
Tool chain (BRIDE) delivered as BRICS software distribution
Best Practice in Robotics (BRICS) Grant Agreement Number: 231940 01.03.2009-28.02.2013 Instrument: Collaborative Project (IP) Tool chain (BRIDE) delivered as BRICS software distribution Hugo Garcia, Herman
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,
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 [email protected], [email protected] Abstract.
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
A Web Specific Language for Content Management Systems
A Web Specific Language for Content Management Systems Viðar Svansson and Roberto E. Lopez-Herrejon Computing Laboratory, University of Oxford, England Abstract. Many web applications can be specified
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
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
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 [email protected]
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
A Framework for Creating Domain-specific Process Modeling Languages
A Framework for Creating Domain-specific Process Modeling Languages Henning Heitkötter Department of Information Systems, University of Münster, Münster, Germany [email protected] Keywords:
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,[email protected] Marin Litoiu IBM Markham Ontario
MD*/DSL Best Practices Update March 2011
MD*/DSL Best Practices Update March 2011 Version 2.0, April, 2011 Markus Völter ([email protected]) Introduction to the Update I have written this article about best practices in Model Driven Development
Making Visio Diagrams Come Alive with Data
Making Visio Diagrams Come Alive with Data An Information Commons Workshop Making Visio Diagrams Come Alive with Data Page Workshop Why Add Data to A Diagram? Here are comparisons of a flow chart with
Eclipse BPMN Modeler Introducing Intalio Designer
Eclipse BPMN Modeler Introducing Intalio Designer Arnaud Blandin Ismael Ghalimi Hugues Malphettes Intalio Inc, EMEA Manager Intalio Inc, CEO Intalio Inc, Lead Developer 6 rue du conseil general 1205 Geneva
Modelling with Papyrus: Domain-Specific Modelling Languages using UML Profiles
Modelling with Papyrus: Domain-Specific Modelling Languages using UML Profiles Kristof De Middelaer University of Antwerp [email protected] Abstract Domain specific modelling languages (DSML)
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
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,
Chapter 8 The Enhanced Entity- Relationship (EER) Model
Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization
Foundations of Model-Driven Software Engineering
Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster ([email protected]) Contents Introduction to Models and Modeling Concepts of Model-Driven Software
Business-Driven Software Engineering Lecture 3 Foundations of Processes
Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster [email protected] Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary
Increasing Development Knowledge with EPFC
The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,
Object Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
Compliance and Requirement Traceability for SysML v.1.0a
1. Introduction: Compliance and Traceability for SysML v.1.0a This document provides a formal statement of compliance and associated requirement traceability for the SysML v. 1.0 alpha specification, which
Polyglot Multi-Paradigm. Modeling. MDA in the Real World. Stefan Tilkov [email protected]
Polyglot Multi-Paradigm Modeling MDA in the Real World Stefan Tilkov [email protected] What I ll Talk About How I define MDA What a typical tool chain looks like Real-world examples How UML/MOD,
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
MDA Transformations Applied to Web Application Development 1
MDA Transformations Applied to Web Application Development 1 Santiago Meliá 1, Andreas Kraus 2, and Nora Koch 2, 3 1 Universidad de Alicante, Spain 2 Ludwig-Maximilians-Universität München, Germany 3 F.A.S.T
UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts
UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts Banu Aysolmaz 1 and Onur Demirörs 2 1, 2 Informatics Institute, Middle East Technical University, Ankara,
On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages
On General-purpose Textual Modeling Languages On General-purpose Textual Modeling Languages Martin Mazanec and Ondřej Macek Martin Mazanec and Ondřej Macek Department of Computer Science, FEL, Czech Technical
Mbeddr and Software Documentation
Integrating Prose as First-Class Citizens with Models and Code Markus Voelter independent/itemis, [email protected] Abstract. In programming and modeling we strive to express structures and behaviors as
Domains and Competencies
Domains and Competencies DOMAIN I TECHNOLOGY APPLICATIONS CORE Standards Assessed: Computer Science 8 12 I VII Competency 001: The computer science teacher knows technology terminology and concepts; the
Integrating Prose as First-Class Citizens with Models and Code
Integrating Prose as First-Class Citizens with Models and Code Markus Voelter independent/itemis, [email protected] Abstract. In programming and modeling we strive to express structures and behaviors as
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
Automatic Test Data Generation for TTCN-3 using CTE
Automatic Test Data Generation for TTCN-3 using CTE Zhen Ru Dai, Peter H. Deussen, Maik Busch, Laurette Pianta Lacmene, Titus Ngwangwen FraunhoferInstitute for Open Communication Systems (FOKUS) Kaiserin-Augusta-Allee
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
A UML 2 Profile for Business Process Modelling *
A UML 2 Profile for Business Process Modelling * Beate List and Birgit Korherr Women s Postgraduate College for Internet Technologies Institute of Software Technology and Interactive Systems Vienna University
CHANGEABILITY IN MODEL DRIVEN WEB DEVELOPMENT
CHANGEABILITY IN MODEL DRIVEN WEB DEVELOPMENT THESIS SUBMITTED IN FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE IN SOFTWARE ENGINEERING BY DAVID VAN DIJK BORN IN IJSSELSTEIN, THE
Software Product Lines
Software Product Lines Software Product Line Engineering and Architectures Bodo Igler and Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Sommersemester 2015 Questions:
How to Build Successful DSL s. Jos Warmer Leendert Versluijs
How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint
Modeling the User Interface of Web Applications with UML
Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de
i. Node Y Represented by a block or part. SysML::Block,
OMG SysML Requirements Traceability (informative) This document has been published as OMG document ptc/07-03-09 so it can be referenced by Annex E of the OMG SysML specification. This document describes
LabVIEW Day 1 Basics. Vern Lindberg. 1 The Look of LabVIEW
LabVIEW Day 1 Basics Vern Lindberg LabVIEW first shipped in 1986, with very basic objects in place. As it has grown (currently to Version 10.0) higher level objects such as Express VIs have entered, additional
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
UML-based Test Generation and Execution
UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT
Model Simulation in Rational Software Architect: Business Process Simulation
Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation
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
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
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
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40
SOFTWARE DEVELOPMENT, 15.1200.40 1.0 APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.1 Describe methods and considerations for prioritizing and scheduling software development
Introduction to Generative Software Development
Introduction to Generative Software Development Krzysztof Czarnecki University of Waterloo [email protected] www.generative-programming.org Goals What is to be achieved? Basic understanding of Generative
Aplicando enfoque MDE a aplicaciones WEB-SOA
Aplicando enfoque MDE a aplicaciones WEB-SOA María Consuelo Franky [email protected] Dpto. Ingeniería de Sistemas Universidad Javeriana Bogotá - 2010 http://sophia.javeriana.edu.co/~lfranky/ 1 Temario
SemTalk BPMN Tutorial APRIL 2015 Email: [email protected]. Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis
Tutorial SemTalk 4.3 BPMN Edition for Business Process Analysis Contents 1. About Business Process Modeling Notation (BPMN)... 3 2. Starting SemTalk BPMN Edition... 4 3. Editing a Process... 7 3.1. Adding
SysML Modelling Language explained
Date: 7 th October 2010 Author: Guillaume FINANCE, Objet Direct Analyst & Consultant UML, the standard modelling language used in the field of software engineering, has been tailored to define a modelling
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
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
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software Development Karsten Klein, hybrid labs, January 2007 Version: 1.0 Introduction Eric Evans Book Domain Driven Design was first published end of 2003 [Evans2003].
Modern PL/SQL Code Checking and Dependency Analysis
Modern PL/SQL Code Checking and Dependency Analysis Philipp Salvisberg Senior Principal Consultant BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MUNICH STUTTGART VIENNA
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
Introducing Simulation and Model Animation in the MDE Topcased 1 Toolkit
Introducing Simulation and Model Animation in the MDE Topcased 1 Toolkit B. Combemale 1, X. Crégut 1, J.-P. Giacometti 2, P. Michel 3, M. Pantel 1 1: IRIT- ENSEEIHT, 2 Rue Charles Camichel, 31071 Toulouse
Patterns for Handling Cross-Cutting Concerns in Model-Driven Software Development
Patterns for Handling Cross-Cutting Concerns in Model-Driven Software Development Version 2.3, Dec 26, 2005 (c) 2005 Markus Völter, Heidenheim, Germany [email protected], www.voelter.de NOTE: copyright 2005
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
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor Klaus Krogmann, Steffen Becker University of Karlsruhe (TH) {krogmann, sbecker}@ipd.uka.de Abstract: The actual benefits
