An EMF Framework for Event-B

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

Perfect for the Enterprise

Introduction to MDE and Model Transformation

AbstractCommand, AbstractEnumerator, AbstractOverrideableCommand, AddCommand, AbstractTreeIterator, Adapter, EAnnotation.

Technical Debt in Eclipse Development. Eclipse Con France 2018

AADL Meta Model & XML/XMI

Public Versions of Plug-in Tools

News in RSA-RTE CP1

Model Querying with Graphical Notation of QVT Relations

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

AADL Graphical Editor Design

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Eclipse 4. Brian de Alwis. Abstract

Software Factories Application within the ASE5 project

ADT: Eclipse development tools for ATL

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

Deliverable: D 1.2 Specification of Traceability concepts

Making EMF Intelligent with AI

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

UML 2.5: Specification Simplification

ETL: Epsilon Transformation Language. MISO - Uniandes

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

1. Installing R4E 1. 1) Provision Software Sites 2. 2) Install Version Control System Features 3. 3) Install R4E feature 4. 4) Install Versions

Planned Review Date: June 10, 2009 Communication Channel: eclipse.tools.emf Dave Steinberg and Ed Merks

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

PAPYRUS FUTURE. CEA Papyrus Team

Verification of UML models by translation to UML-B

SCA Tools: new & noteworthy

ECLIPSE MODELING PROJECT

EMF Compare Galileo Simultaneous Release

Dominique Blouin Etienne Borde

Model Transformations for Embedded System Design and Virtual Platforms

MAVEN INTERVIEW QUESTIONS

Teiid Designer User Guide 7.7.0

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

Dominique Blouin Etienne Borde

CISQ Weakness Descriptions

Teiid Designer User Guide 7.5.0

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

Language engineering and Domain Specific Languages

Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces)

An Implementation of the Behavior Annex in the AADL-toolset Osate2

Feature Matrix GENERAL DATA MODELING ENTERPRISE DATA ARCHITECT

KerMeta Transformation Rules

Model handling with EMF

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute.

Scientific Software Development with Eclipse

AGENDA. DEX450: Programmatic Development Using Apex and Visualforce. Day One

SUMMARY: MODEL DRIVEN SECURITY

A MOF based Meta-Model and a Concrete DSL Syntax of IIS*Case PIM Concepts

Where Models Live. Eike Stepper. SAP Modeling Meeting Wednesday, January 27, 2010

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns

Design Patterns IV Structural Design Patterns, 1

Better Metadata Management through Better Metamodels

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

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Testing Eclipse plug-ins: Tips & Tricks

Introduction to the Generic Eclipse Modeling System by Jules White

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Swinburne Research Bank

Protégé-2000: A Flexible and Extensible Ontology-Editing Environment

A Method of Refinement in UML-B

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

InfoSphere Data Architect Pluglets

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018

DiaGen DiaMeta Tutorial Version

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Sequence Diagram Generation with Model Transformation Technology

UIMA Tools Guide and Reference

Magento Technical Guidelines

A Reconnaissance on Design Patterns

UIMA Tools Guide and Reference

RECODER - The Architecture of a Refactoring System

Model Driven Development Unified Modeling Language (UML)

Introduction to IRQA 4

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation

What is Wazaabi 2.0? Declarative UI framework. based on. live EMF model(s)

CMIS CONNECTOR MODULE DOCUMENTATION DIGITAL EXPERIENCE MANAGER 7.2

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

An Extensible Open Source AADL Tool Environment (OSATE)

OMG Modeling Glossary B

GUI Design for Android Applications

1 Overview. 1 Overview. Contents. 1.1 Table of Contents Table of Contents

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

A QUICK OVERVIEW OF THE OMNeT++ IDE

Coral: A Metamodel Kernel for Transformation Engines

Acceleo Galileo Simultaneous Release

Scaling Xtext. Lieven Lemiengre

Topics in Object-Oriented Design Patterns

Standard modeling support Automatic propagation of a foreign key from parent to child entities in a physical model x x

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

Modif Documentation. Refactoring User Guide

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

Eclipse technology in IFMS Interface Management System

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

Conquering the Barriers to Formal Specification Some recent developments in iuml-b and Event-B

Using UML To Define XML Document Types

Transcription:

An EMF Framework for Event-B Developed by: Colin Snook University of Southampton, Fabian Fritz Heinrich Heine University, Düsseldorf, Alexei Illiasov Newcastle University

EMF Eclipse Modelling Framework (Ed Merks et al.) Meta-modelling notation (abstract syntax) Code Generator Model repository (database) Edit support (providers) Runtime Support for building tools: Command framework, Persistence, Dynamic (programmatic) EMF Lots of related technologies Compare/merge, M2M, M2Text

3 Rodin platform for Event-B UI API *.bum, *.buc, StaticChecker Marker Event-B Rodin Database *.bcm, *.bcc, Event-B static checked Prover Rodin Database Eclipse

Motivation for Event-B EMF UML-B reimplementation to give tighter integration Text editor Teamworking EMF Compare/Merge Model transformations Code generation

Front-End Approach Text Editor Teamwork UML-B EMF front-end for Event-B translator Other EMF based models (e.g. UML, Epsilon based) Persistence Marker API Event-B IDE (static checker, prover) *.bum, *.buc, Rodin Database

Event-B Metamodel Core package Abstract basis Extension mechanism Project Machine package Context package http://wiki.event-b.org/index.php/emf_framework_for_event-b

Abstract Core

Abstract Core Loads of Inheritence! Allows generic code (like rodindb does)

Abstract Core

Extension Mechanism EMF map facility: Attributes can be retrieved by key (key = rodin attribute ID) Attribute types reflect Rodin Abstract (e.g. Camille Text : String)

Extension Mechanism Abstract Any element can be given new children by subtyping AbstractExtension.

Extension Mechanism - restricting new children s parents Modified JET code templates adjust child providers if this annotation is present

Project All concrete classes inherit from an abstract one

Machine

Event

Context

Inter-Resource References Refines Machine, Refines Event, Sees Context Some tools work on multiple resources Need direct model references EMF proxy facilities for resolving/loading when needed Some tools work on a single resource Don t want to load referenced resources Leave proxies unresolved Often they are un-resolvable (i.e. do not exist)

Solution Dual Representation List of References (EMF proxies) Use Lazy proxy construction URI fragment = reference name (persisted) When resolve attempted. Automatically construct rest of URI Project/resource from containing component List of Names Transient (no storage) Derived from proxy fragments (by getter) Can be edited.. Notifies parent.. Proxy fragments kept in step (even if not resolvable)

Machine

Persistence Overrides EMF s default XMI persistence Load and Save into Rodin DB via API Synchronisers for each element type Registered via extension point Allows for new elements to be defined by plugins Volatile extensions (no synchroniser) Attributes Can be Dealt with explicitly in Synchroniser or Left to Generic Attribute handler Nothing is lost

Persistence to XMI May wish to store components outside of Rodin DB Option to load/save using EMF s XMI serialisation E.g. copy in SVN for teamworking

A Framework for Diagrammatic Modelling Extensions in Rodin Developed by: Colin Snook and Vitaly Savicks University of Southampton,

Extending Event-B (1) EMF Event-B Core EMF Event-B Core Rodin DB New Extension Rodin Platform

Extending Event-B (2) EMF Event-B Core EMF New Extension Event-B Core EMF Translation Rodin Platform Persistence as String

Refinement Participant (My New Extension) New Refinement Participant Defines how to handle references inherits (EMF Event-B Core Extension) Abstract Extension Refiner Provides generic deep clone of abstract mode extension pt. (Rodin Platform) Extensible Refinement Tool References 1) Vertical - reference to corresponding abstract element (e.g. refines) 2) Horizontal - reference cloned within new refined model

A Framework for Diagrammatic Modelling Extensions in Rodin Developed by: Colin Snook and Vitaly Savicks University of Southampton,

Now we want Diagrams! EMF Event-B Core EMF Diagram Extension Diagram * diagrams DiagramOwner

Contributes to Event-B Navigator Diagram Extension Or double click to open EMF Event-B Core Extension

Translation to Event-B (My Diagram Extension) Declare Generator for My Diagram Offer these Generator Rules command handler extension point rule extension point (source element type, rule class) Rule Class - methods: enabled? for this source element? dependencies ok? - defer until later fire - return list of descriptors for generating new elements (avoid rollback) (Diagram Extension Framework) Configurable Event-B Generator

Diagram Copier - Refinement Participant Model is already refined by the previous Refinement Participant But diagram layout is lost Diagram Copier Refinement participant Finds all the diagram layout files relevant to a Machine/Context Copies them, Updates their file name for the new machine/context Updates references within them to the corresponding refined elements

End