project in an industrial context

Similar documents
Introduction to OpenArchitectureWare

Comparing graphical DSL editors

Dániel Darvas Domain-specific languages (DSLs): what, how and when?

Introduction to Model Driven Engineering using Eclipse. Frameworks

A Survey on Domain-Specific Languages in Robotics

The etrice Eclipse Project Proposal

ECLIPSE MODELING PROJECT

The Rise of the (Modelling) Bots: Towards Assisted Modelling via Social Networks

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

Model Driven Engineering in High Tech Industry

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

GMF Tooling 3.0 Vision, Architecture, Roadmap

Introduction to Dependable Systems: Meta-modeling and modeldriven

with openarchitectureware

Eclipse Modeling Framework (EMF) Paweł Żalejko

openarchitectureware 4.1 An introduction

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

BIG MODELS AN ALTERNATIVE APPROACH

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

Enhancing Xtext for General Purpose Languages

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Applying Model-Driven Design and Development to Distributed Time-Triggered Systems

Xtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Eclipse Automotive Working Group

Compositional Model Based Software Development

MASTER. Integration of Xtext and GMF editors in Eclipse. Dudojevic, E. Award date: Link to publication

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

building DSLs with language workbenches

From a lot of Boxes to a lot of Words

Introduction to MDE and Model Transformation

Language engineering and Domain Specific Languages

Generic Language Technology

The Eclipse Modeling Framework and MDA Status and Opportunities

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

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

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

Introducing Simulation and Model Animation in the MDE Topcased 1 Toolkit

Introduction to EGF. Benoît Langlois / Thales Global Services.

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE

Graphical DSLs aka Domain-Specific Modelling

Advanced Topics in Software Engineering (02265) Ekkart Kindler

A Model-Driven Framework for Domain Specific Process Design and Governance

Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior

Enabling of AUTOSAR system design using Eclipse-based tooling

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

New and Noteworthy. Peter Friese Bernd Kolb

Utilizing a Common Language as a Generative Software Reuse Tool

Software Architecture

DSM model-to-text generation: from MetaDepth to Android with EGL

Language Extension and Composition with Language Workbenches

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

Employing Query Technologies for Crosscutting Concern Comprehension

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

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

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

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

Preserving Non-essential Information Related to the Presentation of a Language Instance. Terje Gjøsæter and Andreas Prinz

DIONE. (DAML Integrated Ontology Evolution Tools) Ontology Versioning in Semantic Web Applications. ISX Corporation Lehigh University

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

EMF Refactor: Specification and Application of Model Refactorings within the Eclipse Modeling Framework

International Journal for Management Science And Technology (IJMST)

The PISA Project A Model Driven Development case study

PAPYRUS FUTURE. CEA Papyrus Team

Real Time & Embedded Systems. Final Exam - Review

Integration of Application Business Logic and Business Rules with DSL and AOP

Generation of Web-based Prototypes for Business Applications

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Multi-threaded programming in Java

WSDM = Web Services Distributed Management, an open standard/specified ratified by OASIS

MDA Driven xuml Plug-in for JAVA

Applying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages

A Model-Driven JSON Editor

Domain-Specific Languages Language Workbenches

Comparison and merge use-cases from practice with EMF Compare

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

JBPM Course Content. Module-1 JBPM overview, Drools overview

Composition and concurrent execution of heterogeneous domain-specific models

Eclipse technology in IFMS Interface Management System

Simulation of Traffic Jams

Contents Contents 1 Introduction Entity Types... 37

Model Transformations for Embedded System Design and Virtual Platforms

Minsoo Ryu. College of Information and Communications Hanyang University.

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

Introduction to the Generic Eclipse Modeling System by Jules White

ABAP DSL Workbench SAP TechED 2016

GMF 2.0 Europa Simultaneous Release

Dominique Blouin Etienne Borde

Modeling and Assessment of Safety Critical Systems

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler

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

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering

Domain Specific - a Binary Decision?

Modeling pilot project at Ericsson Expert Analytics

EMF course - PACT. Etienne Borde

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

Transcription:

Anatomy of a domain-specific language project in an industrial context Development and examination of a DSL demonstrator for elevator controllers Software Engineering, Architecture and Platform Technologies Siemens Corporate Research, Princeton, NJ

Overview Motivation and goals Elevator controllers as research subject Domain analysis Inception of new, abstract domain concepts DSL Tooling Architecture Meta-model Encountered challenges Support for another target platform (C) and code generator optimization Collected metrics Page 2

Background of DSL project for elevator controllers Motivation Goals Introduction of DSLs into Gain more experience building organizations is difficult. DSL, especially using Eclipse Learning curve GMF. Language and model evolution Collect metrics throughout Initial investment high development and evaluate them. Development of visual DSLs Examine challenge of generation typically labor-intensive task. of performant code. Limited experience of DSL authors Develop a fully documented, Difficulties finding appropriate visual easy-to-understand, representations ti publishable DSL and tool chain Complexity: Multi-diagram DSLs, for research purposes and as a constraints, customization, showcase. visual-text hybrids Generated code said to perform poorly. Page 3

Elevator controllers Research subject for DSLs Elevators are grouped in elevator banks High-level control consists of: Opening/closing doors, accelerating/decelerating individual cars, and reacting to floor calls/car calls (buttons pressed inside cars and outside on floors. Floor calls require the concept of committed direction: The direction an elevator car will continue in after opening and closing the doors at the next stop. Support for multiple special modes: Maintenance, fire-fighter mode, etc. Elevator controller domain is non-trivial and provides enough variability to justify the development of a DSL, yet it is strictly scoped. Page 4

Domain analysis of elevator controllers Elevator controller functionality is separated into: Common behavior shared across all controllers Accelerating / decelerating to reach target floor Closing of doors: Closing delay, reopen if obstruction detected Releasing of pressed buttons upon reaching target t floor Variable, mode-specific behavior: Determining next target floor Setting of committed direction Decision to open doors (only if stopped) Common behavior is mostly safety-critical and will not be part of the modeling language. Actions strongly depend on state of elevator components and events from subsystem. Modeling language based on state machines seems most suited. Page 5 Christoph Wienands SCR / SE / APT

Advanced domain concepts in elevator controller DSL 2 named call lists Dynamic lists providing trigger events 'Added' and 'Removed' to state machine transitions Elevator calls: Buttons pressed inside car Assigned floor calls: Assigned by runtime Call list projections Dynamic filter queries. Call List Projection Example CallsAhead SameDirection 7 Four persons waiting on floors 6 One passenger 5 in car, target floor 6 Filter configurations: Calls ahead, calls 4 Elevator speed 15ft/s, behind, all calls, same direction, opposite next possible stop 4 direction. 3 Filter result depends on current position, speed, acceleration and committed direction. 2 Can combine calls from ElevatorCalls and AssignedFloorCalls. 1 Provide events just like underlying call lists. Result of call list projection query: 4, 6 Page 6 10/12/2009 ` Michael Golm & Christoph Wienands SCR SE APT

DSL Tooling Architecture Technology Description Graphical Modeling Framework (GMF) Eclipse-based workbench for visual DSLs Eclipse Modeling Framework (EMF) Graphical Editing Framework (GEF) Underlying (meta) model library Underlying library for editors Java Emitter Templates (JET) Code generation, model-to-text t t openarchitectureware Xtext openarchitectureware Xpand Parser for mini scripting language Code generation for scripting language 1 5 6 JET Transformation Simulator Model 4 Controller 2 Action/condition script Elevator Script Parser 3 Elevator Script Generator Page 7

Meta-model Page 8

Example of Up-Only elevator controller Call lists Call list projections State machine Conditions Actions Page 9

Encountered challenges Steep learning curve for GMF. Implementing an efficient concrete syntax: Weak support for decomposition (subdiagram of different type) in GMF Complexity of mapping ecore meta model to concrete syntax due to EMF flexibility (trade-off) Customization of DSL editor: Implemented customizations Read-only, calculated attribute Propagate attribute and reference change notifications Initialize model graphs and prepopulate diagrams upon creation Context menu Integration visual DSL and textual scripting language Most customizations needed to be done manually by modifying or supplementing generated code. Little tool support. Page 10

Support for alternative C platform: Optimizations performed by code generator Statically allocated arrays Constant memory footprint double* m_elevatorspeed; m_elevatorspeed = new double[m_elevatorcount]; Statically linked event chains Not shown: Optimized i filter queries for call list projections Performant execution of state t machine { Conditional exclusion of status updates Faster execution for simple controllers void tick() { elevatorcallsadded(i, j); } void elevatorcallsadded(int elevator, int floor) { elevatorcallsaheadadded(elevator, floor); } void elevatorcallsaheadadded(int elevator, int floor) } if (m_state[elevator] == STATE_MOVING && movingcallsaheadadded4condition(elevator)) { movingcallsaheadadded4action(elevator); } for (int i = 0; i < m_elevatorcount; i++) { #ifdef STATUS_SPEED m_elevatorspeed[i] = m_sim->getelevatorspeed(i); #endif } Page 11 Christoph Wienands SCR / SE / APT

Some Collected Metrics Effort for creation of a elevator controller by domain expert vs. domain novice Development method Effort expert (hours) Effort novice (hours) Using Elevator DSL (therefore works on 1.0 5.0 both target platforms) Manually developed against C domain 1.5 - framework Manually developed for C platform (no 4.0 8.0+ (out of time, believed to domain framework) be at least 12h until complete) Efficiency of generated code Metric DSL-based controller Manually dev. controller Static analysis LOC 791 domain framework 508 controller + 462 generated controller = 1253 total Binary size 56kB 40kB Implementation effort 4 call list projections, 508 lines of C code 5 states, 13 transitions and 29 lines of TSL script (conditions, actions) Runtime analysis Avg. instructions/cycle 184 223 Page 12 Christoph Wienands SCR / SE / APT

Conclusion and future work Findings Domain analysis and prototyping t yielded d two domain concepts not found in existing elevator controllers raising level of abstraction for users. Used many Java/Eclipse modeling technologies to create user-friendly DSL additional experience Quantitative analysis of collected metrics support previous findings that DSLs increase productivity. Future work Port DSL to other visual DSL workbenches for comparison Extend DSL to support modeling call distribution algorithms across elevator bank. Page 13 Christoph Wienands SCR / SE / APT

Thank you for your attention Christoph Wienands Christoph.wienands@siemens.com