15
Thomas Schütz Protos Software GmbH Eclipse Demo Camp Munich, 15. November 2011 Develping Embedded Systems with eTrice

20111115 e trice eclipse demo camp munich

Embed Size (px)

DESCRIPTION

Develping Embedded Systems with Eclipse eTrice

Citation preview

Page 1: 20111115 e trice eclipse demo camp munich

Thomas Schütz

Protos Software GmbH

Eclipse Demo Camp Munich, 15. November 2011

Develping Embedded Systems with eTrice

Page 2: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 2 15.11.2011

Scope of eTrice

eTrice is a Modeling Toolset for eventdriven, distributed embedded systems

Page 3: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 3 15.11.2011

Scope of eTrice

provide an implementation of the modeling language Real Time Object Oriented Modeling (ROOM)

build ready to use editors for ROOM models (textual and graphical)

create code generators and portable target runtime libraries for Java, C++, and C (and …)

provide built-in support for model level debugging of the running target software: state machine animation, data inspection and manipulation and message injection

provide built-in possibilities for sequence diagram creation from the running software

support heterogenous distributed systems out of the box

Page 4: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 4 15.11.2011

Why ROOM and not UML2?

UML2 Meta Model ROOM Meta Model

it‘s all about reduction of complexity !!!

Page 5: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 5 15.11.2011

ROOM: Basic Features

hierarchical Actor structures supporting component building

hierarchical state machines

message based systems can be realized with 3 modeling elements

=> ActorClass=> Port=> Protocol

Page 6: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 6 15.11.2011

Shift of the Object Paradigm

classic objects just provide information hiding

classic objects do not solve concurrency issues

System

Object 1Object 3

Object 2

thread of control 1

thread of control 2

thread of control 3

ROOM interprets an object as a „logical machine“ with its own thread of control

this thinking is much more general than the classic object oriented paradigm

„logical machines“ solve the concurrency issue by providing a run to completion semantic

thread of control

thread of control

thread of control

Actor2Actor1

Actor3

active Object

Page 7: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 7 15.11.2011

Hierarchical Components called Actors define the Structure of a System

ROOM Editors: Actors & Ports

Ports are the only Interfaces of an actor and define a specific role in its environment.

Graphical Editors(Graphiti)

Textual Editors(XText)

Models can be edited with graphical or textual editors

Page 8: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 8 15.11.2011

ROOM Editors: Statemachines

hierarchical Statemachines define the dynamical behaviour of Actors

Page 9: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 9 15.11.2011

Model Level Debugging: MSC Generator

The events can be logged on the target to create Message Sequence Charts (MSC) of the running application

Logs can be viewed with Trace2UML (http://trace2uml.tigris.org/)

Page 10: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 10 15.11.2011

Motivation (Part 2)

it‘s all about reduction of complexity !!!

structural complexity

explicit modeling of hierarchical Actor containment and layering

behavioral complexity

hierachical statemachines

reducing …

teamwork complexity

loosely coupled Actors provide a natural way to structure team work

simple branching/merging with textual model notation

complexity of concurrent & distributed systems

loosely coupled Actors are deployable to threads, processes, nodes

Page 11: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 11 15.11.2011

Motivation (Part 2)

it‘s all about reduction of complexity !!! reducing …

complexity of debugging

model level debugging: state machine animation, data inspection and manipulation, message injection, generated message sequence charts

model checking easier for model than for code (detect errors before they occur)

complexity of variant handling and reuse (e.g. for product lines)

composition of existing Actors to new structures

Protocols and Ports make Actors replacable

inheritance for structure, behavior and Protocols

model level libraries

Page 12: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 12 15.11.2011

eTrice Demo

Page 13: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 13 15.11.2011

Project Plan: Current Status

Eclipse Process: incubation phase

gathering of community

currently 3 committers of 2 companies

first industry projects:

automation (Java Generator)

automotive (C Generator)

release of version 0.1 scheduled for 30. November

Page 14: 20111115 e trice eclipse demo camp munich

© 2011 Protos Software GmbH 14 15.11.2011

Project Plan: Next Steps

gathering of community

further versions

generators and middleware for other languages (C, C++, …)

more model level debugging (state machine animation, data inspection

and manipulation and message injection )

model level support for distributed systems

detail level (expression) language

model checking (e.g. abstract execution of Statemachines)

Page 15: 20111115 e trice eclipse demo camp munich

Thank you for your attention

Thomas Schütz

http://www.eclipse.org/etrice