Workshop on Generative Computing, Model-Driven Architecture (MDA) and Model-Driven Software Development (MDSD) Medieninformatik-Forum, 1.7.2004, Hochschule.

Slides:



Advertisements
Similar presentations
GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Elder Cirilo.
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
The Knowledge Industry Survival Strategy (KISS) Tony Clark, Thames Valley University, London, UK Jorn Bettin, Sofismo, Switzerland.
Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S
7 July 2003 MDA presentation Dennis Wagelaar 1 Model-Driven Architecture The current state of affairs.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
XML and its applications: 4. Processing XML using PHP.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
XML in Development of Distributed Systems Tooling Programming Runtime.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Modeling Tools for Healthcare Technical Overview April 8, 2009.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
D O M A I N – D R I V E N D E V E L O P M E N T: Introduction i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
UDM An Infrastructure for Implementing Domain-Specific Modeling Languages Endre Magyari, Arpad Bakay, Andras Lang, Tamas Paka, Attila Vizhanyo, Aditya.
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Selected Topics in Software Engineering - Distributed Software Development.
Generative Programming. Automated Assembly Lines.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
1 © 1999 Microsoft Corp.. Microsoft Repository Phil Bernstein Microsoft Corp.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Technical Overview The Fastest Way to Create Architecture!
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
WonderWeb. Ontology Infrastructure for the Semantic Web. IST Project Review Meeting, 11 th March, WP2: Tools Raphael Volz Universität.
Copyright © 2010 Obeo, Made available under the Eclipse Public License v SCA Tools (Helios) Release Review Planned Review Date: June 11, 2010.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Page 1 Feature Modeling and Configuration Management Roche Diagnostics, 16 th October 2007 O. Rohlik (ETH Zurich and P&P Software)
M&CML: A Monitoring & Control Specification Modeling Language
Teaching Compiler Design
An Introduction to the IVC Software Framework
Domain Specific Product Description Exchange
Evaluating Compuware OptimalJ as an MDA tool
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Execute your Processes
XML and its applications: 4. Processing XML using PHP
Software Architecture & Design
Presentation transcript:

Workshop on Generative Computing, Model-Driven Architecture (MDA) and Model-Driven Software Development (MDSD) Medieninformatik-Forum, , Hochschule der Medien Stuttgart Prof. Dr. Edmund Ihler Prof. Walter Kriha

Agenda 1.Generative Computing at HDM – What we do 2.Model-Driven Architecture in Practice (Markus Reiter, Joachim Hengge, Softlab/HDM) 3.Automatic Business Process Composition using Semantic Technology (Christoph Diefenthal, IAO/HDM) 4.Metamodelling in Smalltalk (Claus Gittinger, Exept AG) 5.Using Generative Computing in a large scale EAI framework (Marcel Rassinger, e2e basle)

Generative Computing at HDM Production Line oriented software development needs a lot of supporting knowledge and technology Professional Development Environment: automatic build, unit test, source code control Agile Methods (XP etc.) Infrastructure View (code reviews etc.) Generative technologies (templates, template processors, modelling and meta-modelling, AOP, xml transformations, bytecoce APIs, rule engines, 4Gls, Language, Grammars, Machines (parsing etc. from theoret. comp. science UML modelling and meta- modelling, XML processing Domain Modelling and Concepts,Production Line Software, Application Platform Development, Feature analysis, FAST etc. Design Patterns Industry Projects, Thesis Work

Generative Technologies (this term) Source Code annotations (Javadoc, XDoclet) Frame Processors Bytecode Modification API (BCEL) Modelling Framwork (Eclipse EMF) Aspect Oriented Programming Template Engines Parsing Technology Meta-Modelling XML Transformations (Relaxer) 4GL languages From each technology we learned different things, e.g. to recognize limitations (when do you need a model or a meta-model?). We started with generation, moved to modelling and ended with parsing and AOP. Java Generics IPTables Rule Engines

What we learned 1.Code annotation is easy. Mostly for implementation specific add-ons (deployment descriptors or documentation). XDoclet provides extensible framework. Granularity limited by what parser recognizes. 2.Template engines are simple to use. No model required. Can be too powerful (see Terrence Parr on language restrictions for template engines). Required features are e.g. reading and reacting on model attributes and dynamic sub-template inclusion. 3.Frameprocessors need a definition of slots, i.e. a good knowledge of hot/cold spots of the domain. They keep template results in an in memory AST and delay code generation (serialization) till the end. Easy, powerful and no model required. Breaks down when granularity (slots) no longer sufficient. 4.Modeling Frameworks read several model formats (UML, XML etc.) and transform it into an instance of a meta- model (ecore for eclipse). The meta-model needs a meta-meta model which can use the same classes. A M3 model is not always available or tools do not use it. Granular capture of features is possible. Lots of transformations on the same level. 5.Bytecode manipulation APIs require a lot of VM know-how but allow transparent addition of features. Interesting but cumbersome and hard to use. 6.Aspect Oriented Programming uses e.g. bytecode manipulation to add functionality. Granularity is only limited by what the Aspect parser support. In theory every target language statement or terminal could become a pointcut for extension. Incredibly powerful but cries out for modelling of the aspects to avoid total chaos. Needs integrated view of all aspects. 7.XML processing with Relaxer: fast, easy. Needs access to meta-data in generated java classes, e.g. to support an editor which needs to offer legal options. 8.Grammars, languages and automata are useful constructs to understand parsing and generation issues. 9.4GL languages are incredibly effective. (16K->400K->16MB generated code) but are really domain languages and therefore have a built in acceptance problem outside the specific domain.

What we tried 1.Building a Struts aware generator which reads the Struts model and generates/validates artifacts (you can see it later at media night presentations) 2.Gerneration of CSV file readers from Eclipse JET – driven by an XML model of the CSV format 3.Generation of a notepad like editor with Swing GUI using a frame processor (XML based) 4.Adding logging statements statically and and load time using bytecode generation API (bcel) 5.Lexical scanning and parsing using ANTLR and self-defined grammars 6.Investigate IPTABLES rules producing generators 7.Generate glue code from annotated Java (Javadoc, XDoclet) 8.Using EMF and GEF to create a model of a forum application which can be filled in. 9.MDA frameworks, genetic algorithms etc. just for the fun of it....

What we didn‘t touch Everything that has to do with domain analysis, production line software etc. This will be handled in the next lecture on generative computing. Model-Driven Architecture (MDA) in details. We just didn‘t have the time (;-)

What we would like to know 1.What could a really powerful programming language do? Is it true that a domain language needs to be different from the implementation language? 2.What about interpreting a model instead of generating code from it? 3.UML and XML – what is their relation? Can UML really describe domain concepts? Is XML only a good serialization format? 4.Is there a proven way to generate meta-models and meta-meta models and to use them for code generation? 5.Can we build an editor for eclipse EMF that understands M3 MOF and edits M2?

Surprise 1: Theoretical Computer Science is useful! 1.Teams working with generative computing need a good understanding of languages, grammars, parsing and automata to be effective. (see Markus Voelter on MDSD in Object Spectrum June 2004) 2.Theoretical computer scientists change the way they where teaching the subject: „Uwe Schoening, Ideen der Informatik“ is readable both for computer science students and practicioners.

Surprise 2: Model-Driven Software Development 1.A multi-paradigm approach (domain analysis, meta-modelling, model-driven generation, template languages, agile software development, open source infrastructure) from: Jorn Bettin, Model driven software development, june Compared to MDA relaxes several principles: not bound to UML/MOF, DSLs may be non-graphical. No tools based round-trip philosophy 3.MDSD patterns like: do not work on the serialization format, extract infrastructure, two (or more) phase generation to ease transformation and allow adaption to different platforms. 4.Provides technology and workflow to implement production line architectures Markus Voelter and Jorn Bettin are about to release a book on this subject. Markus Voelter will give us a detailed introduction in fall here at HDM.

And now have fun with: 1.Model-Driven Architecture in Practice (Markus Reiter, Joachim Hengge, Softlab/HDM) 2.Automatic Business Process Composition using Semantic Technology (Christoph Diefenthal, IAO/HDM) 3.Metamodelling in Smalltalk (Claus Gittinger, Exept AG) 4.Using Generative Computing in a large scale EAI framework (Marcel Rassinger, e2e basle)