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



Similar documents
BUSINESS RULES MANAGEMENT AND BPM

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

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

Foundations of Model-Driven Software Engineering

A Service-Oriented approach dedicated to Internet based Business Process Networks: Building a MDA based collaborative platform with opensource

Metamodels and Modeling Multiple Kinds of Information Systems

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

Model-Driven Development - From Frontend to Code

Building industrial sensors with MDSD

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

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

Textual Modeling Languages

Revel8or: Model Driven Capacity Planning Tool Suite

Talend Metadata Manager. Reduce Risk and Friction in your Information Supply Chain

Blu Age Overview. It is not about changing the platform it is about business agility! HP Non Stop. Modernization Evolution Automation

Establish and maintain Center of Excellence (CoE) around Data Architecture

MDA Journal A BPT COLUMN. David S. Frankel. Introduction. May 2004

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

EAI and Xtext DSLs. Dietmar Stoll (itemis), André Lehner (Zürcher Kantonalbank) XtextCon Kiel, May 20, 2015

All you need are models Anneke Kleppe, Klasse Objecten

Stefan Tilkov. Stefan Tilkov, innoq Deutschland GmbH REST Introduction

A Software Development Platform for SOA

MDE Adoption in Industry: Challenges and Success Criteria

OpenEmbeDD basic demo

Model-Driven Data Warehousing

Model-driven Development for a Treasure Hunt Android application

Requirements Exchange: From Specification Documents to Models

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

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

Model Driven Development for Composing Business Applications. Jean-Loup Comeliau (W4)

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Visual Paradigm product adoption roadmap

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

Model Driven Development Future or Failure of Software Development?

Model-Driven Health Tools (MDHT) CDA Tools Overview.

Automatic Generation Between UML and Code. Fande Kong and Liang Zhang Computer Science department

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

Java Metadata Interface and Data Warehousing

Designing a Semantic Repository

Managing Third Party Databases and Building Your Data Warehouse

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

Building a Flexible Software Factory Using Partial Domain Specific Models

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

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

Amit Sheth & Ajith Ranabahu, Presented by Mohammad Hossein Danesh

Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO

Function Point Modeler Enterprise Edition A Software Lifecycle Management Tool

Aplicando enfoque MDE a aplicaciones WEB-SOA

Asset Based Development

Paul Zenden Sioux Technische Software Ontwikkeling Science Park Eindhoven EP Son Tel: +31 (0)

Test Data Management Concepts

BLU AGE 2009 Edition Agile Model Transformation

Jos Warmer, Independent

Developing SOA solutions using IBM SOA Foundation

Oracle Business Activity Monitoring 11g New Features

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Yet Another DSL for Cross-platforms Mobile Development

Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is

State of Practice in Modeling and Model-Driven Development

Design Authorization Systems Using SecureUML

Tool chain (BRIDE) delivered as BRICS software distribution

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

JAVA/J2EE DEVELOPER RESUME

Federated, Generic Configuration Management for Engineering Data

A BIAN Building Block Service Repository and Registry

MDM and Data Warehousing Complement Each Other

The Oracle Fusion Development Platform

A Web Specific Language for Content Management Systems

Model Organize Publish Automate. Business Process Management with Process Modeler for Microsoft Visio

Recent Advances in Eclipse QVTO!

Model-Driven Architecture: Vision, Standards And Emerging Technologies

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

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

Theodore THLIVITIS Enterprise Architecture, Consulting & Management

Applying Model-Driven Development to Reduce Programming Efforts for Small Application Development

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.

Enterprise Data Solutions Product Strategy and Vision Process-driven IT Modernization, Natural and Adabas

Model-Driven Role-Based Access Control for Databases

OsEra Enterprise Service Bus

Die Rolle von EDI in einer Service- orientierten Architektur

Developing Web Services with Eclipse

Software Process Platform 4.1. Design & Generate

Transcription:

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, EMF, and DSLs relate What alternatives exist for modeling What all of this might mean for you

What is MDA? A development methodology A hype Lots of theory Much skepticism No silver bullet

Pragmatic MDA In essence, MDA is about creating one or more formal, machinereadable models, transforming them into other models and code with the goal of automating development.

MDA/MDD Bottom-up Developers hate doing boring stuff Redundancy is bad Repeatability is good Flexibility is awesome Good developers automate their work That s what MDA is about

You ve been doing it Chances are, you have been doing MDA/MDD for a while Model is just an abstraction - your model might have been a text file Laziness is an asset Key is repeatability

MDA & Code Generation Typically (?), code is generated directly from a UML model Model-to-model transformation is not (yet) mainstream Strict forward-engineering approach No wizard-like generate once No roundtrip engineering But always repeatable

A typical MDA tool-chain CASE Tool UML Model conforms to UML Profile match Code Generator Templates match Source Code Implemented System Manual Coding Compile/Build Cycle Frameworks Platform (J2EE,.NET, Mainframe,...)

Business Logic Infrastructure Knowledge MDA Tool Chain

MDA/MDD Value Reduced time & effort Increased quality Maintainability, Evolvability Testability

MDA/MDD Risks Acceptance Complexity Tool problems Process problems

UML and Alternatives A model-driven development (MDD) approach can be done based on MOF, EMF/ECORE UML DSLs, Software Factories, MS Oslo Many other technologies From a 10,000m view, this is irrelevant

DSLs and UML Profiles A DSL is a Domain Specific Language Two options for doing DSLs with MDA: Create custom meta-model with MOF Use UML Profiles instead Alternatives: Eclipse EMF ecosystem In many cases, UML hits the sweet spot Interesting options in Microsoft-land

Real-World Examples

Example 1 Telco Customer Care & Billing Plain MDA, Swing client, Innovator CASE, Carnot Workflow Model CIM/business architecture Map to IT architecture, annotate Generate EJB + tons of design pattern-driven code Include support for Web Services

UML Model XMI UML CASE Tool Code Generator Workflow Designer Source Code Manual Coding Compile/Build Cycle Implemented System Workflows Frameworks Workflow Engine J2EE SQL DDL RDBMS

Example 2: Large-scale Banking App Default MDA based on UML + Excel Generate EJB code from UML Create formula data and reports from Excel Diff against DB Implement ETL for Datawarehouse project by using UML & templating

UML Model Microsoft Excel XMI UML CASE Tool CSV Code Generator XML Source Code Manual Coding Compile/Build Cycle Implemented System Rules Frameworks Rule Engine J2EE SQL DDL RDBMS

Example 3: Strategic Meta-data Repository Create meta-model using UML (not MOF) Generate DDL + access code (Castor JDO) for RDBMS Model services using Eclipse-based UI

Meta-Model Eclipse UI UML CASE Tool RDBMS XMI SQL DDL Code Generator Code Generator Java COBOL

Example 4: ESB Interface Mapping Connect systems built with various technologies Map interfaces - technically and logic-wise Use of oaw Xtext to support textual mapping DSL

CASE Tool CASE Tool UML Model UML Model Templates DSL Manual Coding Mapping Model Manual Coding Generator Implemented System Implemented System ESB

Common Traits What do all these projects have in common? In no case, UML alone was used Nor any other single technology Additional ways to specify modeling information Integrated process

Microsoft & Modeling MS invests heavily in modeling MDA is equaled with UML and considered harmful (but no longer?) Microsoft s MOF-like DSL approach emphasizes specific over generic solutions Expect more and more DSL tools Not yet (widely) available Now superseded (?) by OSLO

Eclipse: EMF & Co. EMF + ECORE as core Eclipse technologies EMF, GMF, M2M, M2T,... Significant amount of tooling available and under development Still fairly new Gaining acceptance quickly

UML + Profiles in the Real World Sub-optimal in many regards Widely supported Widely understood Applicable for many scenarios

More Modeling Alternatives XML, XML Schema, WSDL Excel, Visio Java/C# + Annotations Dynamic Languages and Internal DSLs Text

External vs. Internal DSL cancel: transitions from submitted to cancelled, accept: transitions from received to accepted, from checking to checked event :cancel do transitions :from => :submitted, :to => :cancelled end event :accept do transitions :from => :received, :to => :accepted transitions :from => :checking, :to => :checked end

Rails ActiveRecord class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager has_many :milestones has_and_belongs_to_many :categories end

Generated Methods class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager Project.portfolio Project.portfolio=(portfolio) Project.portfolio.nil? Project.project_manager, Project.project_manager=(project_manager) Project.project_manager.nil? has_many :milestones Project.milestones.empty? Project.milestones.size Project.milestones Project.milestones<<(milestone) Project.milestones.delete(milestone) Project.milestones.find(milestone_id) Project.milestones.find(:all, options) Project.milestones.build, Project.milestones.create has_and_belongs_to_many :categories Project.categories.empty? Project.categories.size Project.categories Project.categories<<(category1) Project.categories.delete(category1) end

Harvesting Tremendous value is contained in existing systems Models do not exist or are incorrect Extract business logic information from existing applications

Conclusion Accepting MDA/MDD is not tied to any particular modeling approach Models and standards matter less than you think Mix and match paradigms as you see fit The key is getting control of your code system

Q&A innoq Deutschland GmbH innoq Schweiz GmbH Halskestraße 17 Gewerbestrasse 11 D-40880 Ratingen CH-6330 Cham Tel +49 2102 77 1620 Tel +41 41 743 01 11 Fax +49 2102 77 1601 Fax +41 41 743 01 19 innoq Weblog www.innoq.com www.innoq.com/blog/st/