What is Metamodeling and Code Generation All About

Similar documents
MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

(Meta)Models between MetaEdit+

UML 2.5: Specification Simplification

Model Driven Ontology: A New Methodology for Ontology Development

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support

Model Driven Development Unified Modeling Language (UML)

Acceleo Galileo Simultaneous Release

Coral: A Metamodel Kernel for Transformation Engines

Orccad, a Model Driven Architecture and Environment for Real-Time Control. Soraya Arias Florine Boudin Roger Pissard-Gibollet Daniel Simon

CISC836: Models in Software Development: Methods, Techniques and Tools

EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation)

A Meta-Model-Based Approach for Semantic Fault Modeling on Multiple Abstraction Levels. M. Schwarz M. Chaari, B.-A. Tabacaru, W.

Christian Doppler Laboratory

Model Querying with Graphical Notation of QVT Relations

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management

Metamodeling with Metamodels. Using. UML/MOF including OCL

Generating Specification Documents from Models using BIRT

Sequence Diagram Generation with Model Transformation Technology

The Eclipse Modeling Framework and MDA Status and Opportunities

Supplementary: CSE870: (Cheng) CSE870: Advanced Software Engineering: Extending and Using UML (Cheng) (Cheng, Sp2003) 1. Using and Extending UML

Dominique Blouin Etienne Borde

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry

Capturing Middleware using UML Models.

Static analysis and testing of executable DSL specification

Papyrus: Advent of an Open Source IME at Eclipse (Redux)

2015 Ed-Fi Alliance Summit Austin Texas, October 12-14, It all adds up Ed-Fi Alliance

Kermeta tutorial. How to create a metamodel. François Tanguy, Didier Vojtisek. Abstract

AADL Graphical Editor Design

Information systems modeling. Tomasz Kubik

A Meta-Modeling-Based Approach for Automatic Generation of Fault- Injection Processes

A THREAD-SAFE IMPLEMENTATION OF A META-PROGRAMMABLE DATA MODEL. Daniel Balasubramanian. Thesis. Submitted to the Faculty of the

Kermeta. in compiled mode

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

* Corresponding Author

Dominique Blouin Etienne Borde

Model-Driven Language Engineering

Artop (AUTOSAR Tool Platform) Whitepaper

When Modeling meets Productivity. Sven Efftinge - itemis

An introduction to MOF MetaObject Facility.

Easy Multicore Programming using MAPS

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

Language engineering and Domain Specific Languages

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Framework for Constructing Context- Specific Migration Methods for Test Cases

Metamodelling & Metaprogramming. Lena Buffoni

This paper is more intended to set up a basis for a constructive discussion than to offer definitive answers and closed solutions.

Model Driven Architecture Model Driven Development. Johann Oberleitner

MATLAB-to-ROCI Interface. Member(s): Andy Chen Faculty Advisor: Camillo J. Taylor

A Model-Driven JSON Editor

Introduction to MDE and Model Transformation

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Constraint-based Platform Variants Specification for Early System Verification

TOPCASED. Toolkit In OPen source for Critical Applications & SystEms Development

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

OpenPDK Symbol, Callbacks and Parameters Working Group

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Kermeta tutorial. How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette. Abstract

Metamodeling and Metaprogramming Seminar

Technical Solutions for the Transformation-Driven Graphical Tool Building Platform METAclipse

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Creating Domain-Specific Modeling Languages with OPM/D A Meta-modeling approach

Model Based Development and Code Generation for Automotive Embedded Systems. April 26, 2017 Dr. Gergely Pintér, Dr. Máté Kovács thyssenkrupp Steering

Introduction to Dependable Systems: Meta-modeling and modeldriven

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Composable Code Generation Applied to MDA

Generation of Web-based Prototypes for Business Applications

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

ECLIPSE MODELING PROJECT

C++ Semantic Interface:

Model driven Engineering & Model driven Architecture

A state-based 3-way batch merge algorithm for models serialized in XMI

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS

Domain-Specific Languages Language Workbenches

Model Driven Engineering (MDE)

A UML 2 Profile for Variability Models and their Dependency to Business Processes

Dresden OCL2 in MOFLON

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

Expressing Feature-Based Variability in Structural Models

Model Driven Engineering

TERRA support for architecture modeling. K.J. (Karim) Kok. MSc Report. C e Dr.ir. J.F. Broenink Z. Lu, MSc Prof.dr.ir. A. Rensink.

KVM Forum 2007 Tucson, Arizona

Modeling and Assessment of Safety Critical Systems

Metamodelling & Metaprogramming. Lena Buffoni

MDA. SOA = Model Driven SOA

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach

Metamodeling and Metaprogramming

Model Driven Engineering in High Tech Industry

COSC 3351 Software Design. An Introduction to UML (I)

101companies. Ralf Lämmel (Software Languages Team, University of Koblenz-Landau) companies Project

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

Dottorato di Ricerca in Informatica. Università di Bologna e Padova. Whole Platform. Riccardo Solmi. March 2005

The Specifications Exchange Service of an RM-ODP Framework

SUMMARY: MODEL DRIVEN SECURITY

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network

Multi-Channel Publishing for AllFusion Gen

Transcription:

Automating Design and Verification of Embedded Systems Using Metamodeling and Code Generation Techniques What is Metamodeling and Code Generation All About Wolfgang Ecker & Michael Velten, Infineon

Tutorial Automating Design and Verification of Embedded Systems Using Metamodeling and Code Generation Techniques Wolfgang Ecker, Michael Velten - Infineon Technologies AG Rainer Findenig - Intel Corp. Daniel Müller-Gritschneder - Technical University of Munich Wolfgang Mueller Heinz-Nixdorf Institut University of Paderborn

Outline and Schedule What is Metamodeling and Code Generation All About Motivation, Technology and Terminology Well known Metamodels in EDA and Design UML/SysML IP-XACT Coffee Break Metamodeling in Action using Eclipse Modeling Framework Generate a code generation framework for IP-XACT Specify an IP-XACT model and generate code out of it Page 3

Motivation for Using Meta-Modeling and Code Generation Infineon Designers on Single Design Tasks Up to 95% reduction in SW header generation Savings of about 1PY / year through test file generation Savings of about 4-5PYs / year through efficient solutions handling test programs Infineon Designers on Full Chip Implementation 60% effort reduction and 2 months project time savings from specification to implementation 80% code of digital design part generated MetaCase Up-to 20x speed and productivity improvement in using MetaEdit (A Metamodeling Framework) for SW Development Page 4

A Well Known Scenario: Scripts Supporting Design Productivity Specification Standard Tables Design and Verification Code Problems: Starts easy, gets more and more complex (and harder to maintain) and ends up in spaghetti-code due to increasing requirements, more output formats and alternatives, and more complicated import formats The good aspect: Content is automatically copied, code is generated, and nothing is retyped Page 5

1 st Improvement: Model-View Separation Specification Standard Tables Design and Verification Code Model-View Separation is a good, well-known and powerful SW Concept (Pattern) is separated in 3 pieces An API that controls access to structured data called Model A Reader that takes abstract data and fills the model A Writer that extracts data from and generates code Page 6

1 st Improvement: Model-View Separation WORD Spec SV Design EXCEL Spec SC VP Benefit New and more complicated input and output formats can be supported by local changes Existing parts can be used further on Page 7

Model-View Separation Reader Specification Standard Tables Design and Verification Code Tasks of a reader: Parse a description that is more abstract than the target code (e.g. specification items, domain specific languages) Building blocks of a reader: Libraries as XML Readers, document readers as MS-Office or OpenOffice readers, PDF-parser, HDL Readers (Verific), compilers with open API (e.g. clang) Generated Parsers (e.g. via ANTLR) Page 8

Model-View Separation Writer Specification Standard Tables Design and Verification Code Different approaches to implement writers: Sequence of prints, each taking values from the model print( entity %s is\n, model.name); Systematic model traversal (mostly breath first or depth first) and registration of prints as actions when entering/leaving a node Template Engines, e.g.: FreeMarker (Java, EMF), Mako (Python, used by IFX), xsd:template as part of XSLT Page 9

Model-View Separation Templates (Mako) library IEEE; use IEEE.std_logic_1164.all; target code entity ${component.getname()} is port( % for port in component.getports() ${port.getname()} : % endfor ) end ${component.getname()}; substitution render directive library IEEE; use IEEE.std_logic_1164.all; entity LU is port( A : in std_ulogic_vector (15 downto 0); L : in std_ulogic_vector ( 1 downto 0); Y : out std_ulogic_vector (15 downto 0)); end LU; Page 10

Model-View Separation Template Engines Specification Standard Tables Design and Verification Code template A Template Engine translates visible or under the hood a template to a writer and then controls execution of the writer Page 11

2 nd Improvement: Generation of Tool s Code from Metamodel Meta Model complies to generate Specification Standard Tables Design and Verification Code Structure definition by Metamodel: Reader / Writer has to comply to Metamodel s structure and types API can be generated API generator offers to be structured similarly: Reader, API (Model), Writer Page 12

Model-View Separation A Core Model of a Metamodel What is a simple Metamodel composed of Composite Data Typed or Un-Typed Attributes Typed or Un-Typed Children Typed or Un-Typed Links Optional multiplicity or other constraints There are several techniques out that support Metamodeling and Code Generation. Examples are: XML with XSD (XML Schema) UML based on (E)MOF EMF based on (E)CORE METAGEN based on MMANALYZE (IFX-proprietary) The elements of a Metamodel are defined in a so called Meta-Metamodel (we will see its usefulness later) Page 13

Metamodeling Technology: Modeling Is About Structuring and Formalizing Things car Type : BMW Name: i6 wheel Position: Right Type; 190 electronics Version: 1.2.3 Voltage: 24 pressure sensor Provider: IFX battery Capacity: 200 Voltage: 24 chip Name: SP37 Page 14

Metamodeling Technology: Metamodeling Is About Structuring and Formalizing Models car Type : string[1] Name: string [1] car Type : BMW Name: i6 1..* wheel Position: positionenum[1] Type: int[1] wheel Position: Right Type: 190 electronics Version: 1.2.3 Voltage: 24 1 pressure sensor Provider: string [1] pressure sensor Provider: IFX battery Capacity: 200 Voltage: 24 chip Name: SP37 Page 15

Metamodeling Technology: Metamodeling Is About Structuring and Formalizing Models car wheel Type : string[1] Name: string [1] Position: positionenum[1] Type: int[1] 1 1..* pressure sensor Elements of a Metamodel Compositions Typed Attributes Typed Children Multiplicity constraints Other constraints (not shown) Provider: string [1] Page 16

Some Known Metamodels UML and IP-XACT ( Details in 2 nd part of the tutorial Graphical formalism (primarily) to describe/model SW Systems Formalisms describe structure, behavior and interaction Examples are class diagrams, object diagrams, state diagrams, activity diagrams UML is based on a superstructure (MOF, EMOF) that defines the formalism OCL (object constraint language) is used to defined further constraints Stereotypes as and support embedded systems Defines data that support automation in IP-integration. Includes Busses, components with their registers, connectivity Does not model IP-Internals Page 17

Metamodeling Technique Additional Features of a Core Model Power/Analog MEMS/Sensors CMOS RF/Bipolar incl. Green Robust Wide range of products (IFX Examples Shown) require flexibility in Metamodeling Extendibility Constraints Interaction Composition Page 18

Metamodeling Technique Extendibility and Constraints Examples Analog types and their properties Register protection mechanisms Clocked State Diagrams Constructs for extendibility in different notations Supported e.g. by inheritance in core model UML uses profiles or OCL XML provides restrictions and complex datatypes Page 19

Metamodeling Technique Interaction and Composition Meta Model Meta Model generate generate Examples Registers or State diagrams manipulate ports Constructs for extendibility Link mechanism e.g. XML XPATH Model-to-Model translation Page 20

Metamodeling Technology Layers in Structuring Data Meta-Meta Model (meta-meta model) Defines Structure of Metamodel Defines Structure Generate Metamodel Infrastructure and Metamodels Metamodel Defines Structure of Model Defines Structure Generate Model Infrastructure Models Model Defines content of view language independently Defines Content Generate View(s) View 1200 1000 800 number Implementation of content 600 number 400 200 0 Test Chip Card Wireless Page 21

Meta-Metamodel: Is About Structuring Metamodels, i.e. Metamodel of Metamodel generate Meta Meta Model IP- XACT XSD generate generate generate Meta Model IP-XACT XML Design and Verification Code Page 22

Meta-Metamodel: Is About Structuring Metamodels, i.e. Metamodel of Metamodel Shown in 3 rd part of the tutorial building an IP-XACT to target code translation Page 23

It s All About Structuring Summary and Retrospect All is not new! Metamodeling has a >25-year history Formally called Express Information Model Further developed in Jessi Common Framework Initiative (CFI) Formal foundation for EDIF (Electronic Design Interchange Format) Meta-Modeling: Performance and Information Modeling Current Issues in Electronic Modeling (6), Springer, ISBN 9780792396871 Meta-Modeling: Current Issues in Electronic Modeling (6), ISBN 9780792396871 Page 24

It s All About Structuring Summary and Outline Metamodeling and Code generation is an industry proven technology to efficiently build domain/problem specific tools following a specific structure Modeling in the context of Metamodeling is about structuring things in a design context Metamodeling is about Structuring Models Page 25

Thank you!