Model Driven Development for Distributed Real-time & Embedded Systems or “Why I’d Rather Write Code That Writes Code Than Write Code” OOP Conference, Tuesday,

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Model Driven Engineering for Distributed Real-time & Embedded Systems or “Why I’d Rather Write Code That Writes Code Than Write Code” Wednesday, May 20,
High-confidence Software for Cyber Physical Systems Drexel University Philadephia, PA Vanderbilt University Nashville, Tennessee Aniruddha Gokhale *, Sherif.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS Sumant Tambe Graduate Intern, Applied Research, Telcordia Technologies Inc.
The Role of Modeling in Systems Integration and Business Process Analysis © Sparx Systems Pty Ltd 2011 Ben Constable Sparx Systems.
Course Instructor: Aisha Azeem
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
CoSMIC: An MDA Tool Suite for Application Deployment and Configuration Tao Lu, Emre Turkay Aniruddha Gokhale, Douglas Schmidt
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Automated Middleware QoS Configuration Techniques using Model Transformations Vanderbilt University Nashville, Tennessee Institute for Software Integrated.
Model Driven Techniques for Evaluating QoS of Middleware Configurations Arvind S. Krishna, Emre Turkay Andy Gokhale, & Douglas C. Schmidt Institute for.
1 Component Assembly Evaluation Simple C++ expressions Operators ( +, *, f() ) Operands ( x, y, a ) A compiler will optimize the evaluation of the expression.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
RTAS MDES Workshop May Model-Based Integration of Reusable Component-Based Avionics Systems David Sharp Technical Fellow Phantom Works, Open System.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
HPEC’02 Workshop September 24-26, 2002, MIT Lincoln Labs Applying Model-Integrated Computing & DRE Middleware to High- Performance Embedded Computing Applications.
Model-Driven Engineering for Development-Time QoS Validation of Component-based Software Systems James Hill, Sumant Tambe & Aniruddha Gokhale Vanderbilt.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Model based development for the RUNES component middleware platform Gabor Batori
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
DataReader 2 Enhancing Security in Ultra-Large Scale (ULS) Systems using Domain- specific Modeling Joe Hoffert, Akshay Dabholkar, Aniruddha Gokhale, and.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Investigating Survivability Strategies for Ultra-Large Scale (ULS) Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
MILAN: Technical Overview October 2, 2002 Akos Ledeczi MILAN Workshop Institute for Software Integrated.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Aniruddha Gokhale and Jeff Gray Institute for Software Integrated Systems (ISIS) Vanderbilt University Software Composition and Modeling Laboratory University.
NetQoPE: A Middleware-based Netowork QoS Provisioning Engine for Distributed Real-time and Embedded Systems Jaiganesh Balasubramanian
Component-based System Integration via (Meta)Model Composition
A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms Joe.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Domain-Specific Modeling Languages for Configuring and Evaluating Enterprise DRE System Quality of Service Stoyan G. Paunov, James H. Hill, Douglas C.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Towards a Holistic Approach for Integrating Middleware with Software Product Lines Research Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
Topic 2: The Role of Open Standards, Open-Source Development, & Different Development Models & Processes (on Industrializing Software) ARO Workshop Outbrief,
POSAML: A Visual Language for Middleware Provisioning Dimple Kaul, Arundhati Kogekar, Aniruddha Gokhale ISIS, Dept.
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
Domain-Specific Modeling Languages for Configuring and Evaluating Enterprise DRE System Quality of Service Stoyan G. Paunov, James H. Hill, Douglas C.
Model-Driven Optimizations of Component Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems OMG Real-time Workshop.
4 th Workshop for TAO and CIAO July 16, 2004 MOF-Compliant Modeling of Middleware Jeff Parsons & Matt Emerson ISIS Vanderbilt University Nashville, TN.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
1 Component Workload Emulator (CoWorkEr) Utilization Test Suite (CUTS) Augmenting the Fighting Spirit of the Warrior Dr. Douglas C. Schmidt & James Hill.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
CoSMIC: An MDA Tool Suite for Distributed Real-time and Embedded Systems Aniruddha Gokhale, Tao Lu, Emre Turkay, Balachandran Natarajan, Jeff Parsons,
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
Krishnakumar Balasubramanian
A Platform-Independent Component Modeling Language for DRE Systems
Engineering Assistant for the System Execution Laboratory (EASEL)
Model-Driven Analysis Frameworks for Embedded Systems
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Tools for Composing and Deploying Grid Middleware Web Services
Analysis models and design models
An Introduction to Software Architecture
Automated Analysis and Code Generation for Domain-Specific Models
Logical Architecture & UML Package Diagrams
Presentation transcript:

Model Driven Development for Distributed Real-time & Embedded Systems or “Why I’d Rather Write Code That Writes Code Than Write Code” OOP Conference, Tuesday, January 17, 2006 Dr. Douglas C. Schmidt Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems

New Demands on Distributed Real-time & Embedded (DRE) Systems Key challenges in the solution space Vast accidental & inherent complexities Continuous evolution & change Highly heterogeneous (& legacy constrained) platform, language, & tool environments Key challenges in the problem space Network-centric, dynamic, very large-scale “systems of systems” Stringent simultaneous quality of service (QoS) demands Highly diverse, complex, & increasingly integrated/autonomous application domains Mapping & integrating problem artifacts & solution artifacts is hard

Evolution of DRE Systems Development Mission-critical DRE systems have historically been built directly atop hardware Tedious Error-prone Costly over lifecycles Consequence: Small changes to legacy software often have big (negative) impact on DRE system QoS & maintenance Technology Problems Legacy DRE systems often tend to be: Stovepiped Proprietary Brittle & non-adaptive Expensive Vulnerable Air Frame AP Nav HUD GPS IFF FLIR Cyclic Exec CLI SS7 SM CM RX TX IP RTOS

Evolution of DRE Systems Development Mission-critical DRE systems historically have been built directly atop hardware Tedious Error-prone Costly over lifecycles Middleware has effectively factored out many reusable services from traditional DRE application responsibility Essential for product-line architectures Middleware is no longer the primary DRE system performance bottleneck Technology Problems Legacy DRE systems often tend to be: Stovepiped Proprietary Brittle & non-adaptive Expensive Vulnerable Middleware Services DRE Applications Operating Sys & Protocols Hardware & Networks Middleware Services DRE Applications Operating Sys & Protocols Hardware & Networks Middleware alone is insufficient to solve key large-scale DRE system challenges!

Components encapsulate application “business” logic Components interact via ports Provided interfaces, e.g.,facets Required connection points, e.g., receptacles Event sinks & sources Attributes Containers provide portable execution environment for components that have common operating requirements Components/containers can also Communicate via a middleware bus and Reuse common middleware services SecurityReplicationNotificationPersistence SchedulingA/V StreamingLoad Balancing … Container … … Middleware Bus Container … Overview of Component Middleware “Write Code That Reuses Code”

Middleware Services DRE Applications Operating System & Protocols Hardware & Networks DRE Systems: The Challenges Ahead Limit to how much application functionality can be refactored into reusable COTS middleware Middleware itself has become very hard to use & provision statically & dynamically IntServ + Diffserv RTOS + RT Java RT/DP CORBA + DRTSJ Load Balancer FT CORBA Network latency & bandwidth Workload & Replicas CPU & memory Connections & priority bands RT-CORBA Services RT-CORBA Apps J2ME Services J2ME Apps DRTSJ Services DRTSJ Apps Component-based DRE systems are also very hard to deploy & configure There are many middleware platform technologies to choose from Gigabit Ethernet

Middleware Services DRE Applications Operating System & Protocols Hardware & Networks DRE Systems: The Challenges Ahead RT-CORBA Services RT-CORBA Apps J2ME Services J2ME Apps DRTSJ Services DRTSJ Apps It’s enough to make you scream! Gigabit Ethernet

Middleware Services DRE Applications Operating System & Protocols Hardware & Networks RT-CORBA Services RT-CORBA Apps J2ME Services J2ME Apps DRTSJ Services DRTSJ Apps Promising Solution: Model Driven Development (MDD) Develop, validate, & standardize generative software technologies that: 1. Model 2. Analyze 3. Synthesize & 4. Provision multiple layers of middleware & application components that require simultaneous control of multiple QoS properties end-to- end Partial specialization is essential for inter-/intra-layer optimization & advanced product-line architectures Goal is to enhance developer productivity & software quality by providing higher-level languages & tools for middleware/application developers & users <…events this component supplies…> <…events this component supplies…> Gigabit Ethernet

Technology Evolution (1/4) Level of Abstraction Programming Languages & Platforms Model-Driven Development (MDD) State chart Data & process flow Petri Nets Translation Large Semantic Gap Translation Machine code Assembly C/Fortran Hardware Operating Systems

Technology Evolution (2/4) Programming Languages & Platforms Level of Abstraction C++/Java Class Libraries Frameworks Components Machine code Assembly C/Fortran Hardware Operating Systems New languages & platforms have raised abstraction level significantly “Horizontal” platform reuse alleviates the need to redevelop common services There are two problems, however: Platform complexity evolved faster than 3 rd -generation languages Much application/platform code still (unnecessarily) written manually Particularly for D&C aspects

Technology Evolution (3/4) Programming Languages & Platforms Level of Abstraction Saturation!!!! Model-Driven Development (MDD) Domain-specific modeling languages ESML PICML Mathematic Excel Metamodels Manual translation C++/Java Class Libraries Frameworks Components Machine code Assembly C/Fortran Hardware Operating Systems Semi-automated Domain-independent modeling languages State Charts Interaction Diagrams Activity Diagrams OMG is evaluating MDD via MIC PSIG mic.omg.org

Technology Evolution (4/4) Programming Languages & Platforms Needs Automation Needs Automation Research is needed to automate DSMLs & model translators Level of Abstraction Saturation!!!! Domain-specific modeling languages ESML PICML Mathematic Excel Metamodels Needs Automation Domain-independent modeling languages State Charts Interaction Diagrams Activity Diagrams C++/Java Class Libraries Frameworks Components Machine code Assembly C/Fortran Hardware Operating Systems Model-Driven Development (MDD)

Inventory Tracking System (ITS) Case Study (1/2) Warehouse management system that monitors & controls the flow of goods & assets Automates Warehouse configuration Goods placement Route planning Transportation task scheduling

Inventory Tracking System (ITS) Case Study (2/2) Composed of several subsystems, e.g.: Warehouse Management (WM) subsystem, high-level decision making Material Flow Control (MFC) subsystem, executes high-level decisions Warehouse Hardware (WH), deals with physical devices such as sensors and transportation units (e.g., belts, forklifts, cranes, pallet jacks, etc.) Prototype implemented using standard component middleware & MDD technologies to evaluate them in a realistic environment Collaboration with Siemens CT

MDD Tool Developers (Metamodelers) Application Developers (Modelers) Generic Modeling Environment (GME) GME is open-source: “Write Code That Writes Code That Writes Code!” Decorator GModel GMeta CORE Metamodel XML Paradigm Definition Storage Options … DB #n DB #1 XML … UML / OCL COM XML ODBC Constraint Manager Browser Translator(s) Add-On(s) GME Editor GME Architecture Supports “correct-by-construction” of software systems

MDD Application Development with GME Application developers use modeling environments created w/MetaGME to build applications Capture elements & dependencies visually

MDD Application Development with GME Application developers use modeling environments created w/MetaGME to build applications Capture elements & dependencies visually Model interpreter produces something useful from the models e.g., 3 rd generation code, simulations, deployment descriptions & configurations

MDD Tool Development in GME Tool developers use MetaGME to develop a domain-specific graphical modeling environment Define syntax & visualization of the environment via metamodeling

MDD Tool Development in GME Tool developers use MetaGME to develop a domain-specific graphical modeling environment Define syntax & visualization of the environment via metamodeling Define static semantics via Object Constraint Language (OCL)

MDD Tool Development in GME Tool developers use MetaGME to develop a domain-specific graphical modeling environment Define syntax & visualization of the environment via metamodeling Define static semantics via Object Constraint Language (OCL) Dynamic semantics implemented via model interpreters

OMG Component Deployment & Configuration SW Deployer Deployment Infrastructure Deployment Tools (generic) Deployment Interfaces Infrastructure Interfaces Shipping SW Creator 2 A2 A1 Deployment requirements Implementations SW Creator 1 OMG Deployment & Configuration (D&C) specification (ptc/ ) Goals of D&C Phase Promote component reuse Build complex applications by assembling existing components Automate common services configuration Declaratively inject QoS policies into applications Dynamically deploy components to target heterogeneous domains Optimize systems based on component configuration & deployment settings

OMG Component Deployment & Configuration SW Deployer Deployment Infrastructure Deployment Tools (generic) Deployment Interfaces Infrastructure Interfaces Shipping SW Creator 2 A2 A1 Deployment requirements Implementations SW Creator 1 Interchange Formats D & C Profile XMLSchema Generation IDL Generation OMG D & C Spec (PIM & PSMs ) OMG Deployment & Configuration (D&C) specification (ptc/ )

Specification & Implementation Defining, partitioning, & implementing app functionality as standalone components Packaging Bundling a suite of software binary modules & metadata representing app components Installation Populating a repository with packages required by app Configuration Configuring packages with appropriate parameters to satisfy functional & systemic requirements of an application without constraining to physical resources Planning Making deployment decisions to identify nodes in target environment where packages will be deployed Preparation Moving binaries to identified entities of target environment Launching Triggering installed binaries & bringing app to ready state QoS Assurance & Adaptation Runtime (re)configuration & resource management to maintain end-to-end QoS OMG Deployment & Configuration (D&C) specification (ptc/ ) MDD Example: OMG Deployment & Configuration

Challenge 1: The Packaging Aspect Several different assemblies tailored to deliver different end-to-end QoS behaviors and/or algorithms can be part of the package e.g., large-scale DRE systems require 100s-1,000s of components Packages describing the components & assemblies can be scripted via XML descriptors Application components are bundled together into assemblies Assemblies convey component interconnections & implementation alternatives

Packaging Aspect Problems (1/2) Ad hoc techniques for ensuring component syntactic & semantic compatibility Distribution & deployment done in ad hoc manner Ad hoc means to determine pub/sub support Inherent Complexities RT Event Channel

Transportation Facility Subcomponent Operator Console Subcomponent WorkFlow Manager Subcomponent Packaging Aspect Problems (2/2) XML file in excess of 3,000 lines, even for medium sized scenarios Existing practices involve handcrafting XML descriptors Modifications to the assemblies requires modifying XML file Accidental Complexities

MDD Solution for Packaging Aspect PICML is developed using Generic Modeling Environment (GME) Approach: Develop a Platform-Independent Component Modeling Language (PICML) to address inherent & accidental complexities of packaging Capture dependencies visually Define semantic constraints using Object Constraint Language (OCL) Generate domain- specific metadata from models Correct-by-construction

Example Metadata Generated by PICML Based on OMG (D&C) specification (ptc/ ) Component Packaging Application Assembly Component DLLs Component & Home Properties Component Interface Descriptors (.ccd) Packaging Tools Component Packages (*.cpk) Component & Home Properties Component Package Descriptors (.cpd) Implementation Artifact Descriptors (.iad) Assembly Tools Component Implementation Descriptor (*.cid) Component Interface Descriptor (.ccd) Describes the interface, ports, properties of a single component Implementation Artifact Descriptor (.iad) Describes the implementation artifacts (e.g., DLLs, OS, etc.) of one component Component Package Descriptor (.cpd) Describes multiple alternative implementations of a single component Package Configuration Descriptor (.pcd) Describes a configuration of a component package Top-level Package Descriptor (package.tpd) Describes the top-level component package in a package (.cpk) Component Implementation Descriptor (.cid) Describes a specific implementation of a component interface Implementation can be either monolithic- or assembly-based Contains sub-component instantiations in case of assembly based implementations Contains inter-connection information between components Component Packages (.cpk) A component package can contain a single component A component package can also contain an assembly

Example Output from PICML Model [...] OpCon Operator Console vendor tk_string MIcrosoft [... Requires Windows OS...] Describes a specific implementation of a component interface Describes component interconnections A Component Implementation Descriptor (*.cid) file OpCon Trigger route route WorkFlowMan Trigger display

Challenge 2: The Configuration Aspect Component middleware is characterized by a large configuration space that maps known variations in the application requirements space to known variations in the middleware solution space Hook for the concurrency strategy Hook for the request demuxing strategy Hook for marshaling strategy Hook for the connection management strategy Hook for the underlying transport strategy Hook for the event demuxing strategy

Configuration Aspect Problems Middleware developers Documentation & capability synchronization Semantic constraints & QoS evaluation of specific configurations XML Configuration Files XML Property Files CIAO/CCM provides ~500 configuration options Application developers Must understand middleware constraints & semantics Increases accidental complexity Different middleware uses different configuration mechanisms

MDD Solutions for Configuration Aspect Approach: Develop an Options Configuration Modeling Language (OCML) w/GME to ensure semantic consistency of option configurations OCML is used by Middleware developers to design the configuration model Application developers to configure the middleware for a specific application OCML metamodel is platform- independent OCML models are platform- specific

Applying OCML to CIAO+TAO Configuration space Constraints OCML generates config model Middleware developers specify

Applying OCML to CIAO+TAO Middleware developers specify Configuration space Constraints OCML generates config model Application developers provide a model of desired options & their values, e.g., Network resources Concurrency & connection management strategies

Applying OCML to CIAO+TAO Middleware developers specify Configuration space Constraints OCML generates config model Application developers provide a model of desired options & their values, e.g., Network resources Concurrency & connection management strategies OCML constraint checker flags incompatible options & then Synthesizes XML descriptors for middleware configuration Generates documentation for middleware configuration Validates the configurations

Challenge 3: Planning Aspect Determine current resource allocations on target platforms Select the appropriat e package to deploy on selected target Select appropriate target platform to deploy packages Component integrators must make appropriate deployment decisions, identifying nodes in target environment where packages will be deployed

Planning Aspect Problems How do you determine current resource allocations? How do you ensure that the selected targets will deliver required QoS How do you correlate QoS requirements of packages to resource needs How to ensure a particular deployment configuration meets QoS requirements

MDD Solution for Planning Aspect Approach Develop Component Workload Emulator (CoWorkEr) Utilization Test Suite (CUTS) w/GME to allow architects to detect, diagnose, & resolve system QoS problems before system integration phase CoWorkEr is an component assembly of monolithic components responsible for generating respective workload CoWorkEr ports can be connected to define operational strings Workload Modeling Language (WML) is used to define CoWorkEr behavior WML is translated to XML metadata descriptors that configure CoWorkErs

12 34 CUTS Workflow for Architects 1.Compose scenarios to exercise critical system paths/layers 2.Associate QoS properties with scenarios (e.g., latency, jitter, or thruput) & assign properties to components specific to paths/layers 3.Configure workload generators to run experiments, generate path-/layer-specific deployment plans, & measure QoS along critical paths/layers 4.Feedback results into models to verify if deployment plan & configurations meet QoS requirements MDD Solution for Planning Aspect

CoWorkEr models system components, requirements, & constraints Deployment Plan Deployment And Configuration Engine (DAnCE) maps plans to computing nodes RACE controls reallocations Gigabit Ethernet Resource Allocation & Control Engine (RACE) middleware provides deployment planners Deployment Manager Integrating MDD & Middleware for Planning

CADENA Integrated environment for static analysis using model- checking VEST DSML developed in GME Pre-defined component Libraries Aspect checks Prescriptive aspect library ESML DSML developed w/GME Targets PRiSM (Boeing’s Bold- stroke component model) Ptolemy II Modeling, simulation, and design of concurrent systems Allows defining systems based on Models of Computation cadena.projects.cis.ksu.edu ptolemy.eecs.berkeley.edu Academic Related Work

Commercial Related Work lab.msdn.microsoft.com/vs2005/teamsystem/ workshop/dsltools/walkthrough.aspx Microsoft’s Software Factories go beyond “models as documentation” by Using highly-tuned DSL & XML as source artifacts & Capturing life cycle metadata to support high-fidelity model transformation, code generation & other forms of automation The Graphical Modeling Framework (GMF) forms a generative bridge between EMF & GEF, where diagram definitions will be linked to domain models as input to generation of visual editors GMF will provide this framework, in addition to exemplary tools for select domain models that illustrate its capabilities

Open MDD R&D Issues Inherent Complexities Capturing specificity of target domain Automated specification & synthesis of Model interpreters Model transformations Broader range of application capabilities Static & dynamic QoS properties Migration & version control of models Scaling & performance Verification of the DSMLs Solutions require validation on large-scale, real-world DRE systems Accidental Complexities Round-trip engineering from models ↔ source Mismatched abstraction levels for development vs. debugging Tool chain vs. monolithic tools Backward compatibility of modeling tools Standard metamodeling languages & tools

Concluding Remarks To realize the promise of model- driven technologies, we need to augment model-driven method- ologies with a solid (ideally standard) tool infrastructure Model-driven tools need to coexist with & enhance existing middleware platform technologies We need to validate model-driven technologies on (increasingly) large-scale, real-world systems Open-source CoSMIC MDD tools use Generic Modeling Environment (GME) CoSMIC is available from GME is available from Although hard problems with model-driven technologies remain, we’re reaching critical mass after decades of R&D & commercial progress ANALYSIS MDD TOOLS APPLICATION MDD TOOLS PLATFORM MDD TOOLS