20111115 e trice eclipse demo camp munich
DESCRIPTION
Develping Embedded Systems with Eclipse eTriceTRANSCRIPT
Thomas Schütz
Protos Software GmbH
Eclipse Demo Camp Munich, 15. November 2011
Develping Embedded Systems with eTrice
© 2011 Protos Software GmbH 2 15.11.2011
Scope of eTrice
eTrice is a Modeling Toolset for eventdriven, distributed embedded systems
© 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
© 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 !!!
© 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
© 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
© 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
© 2011 Protos Software GmbH 8 15.11.2011
ROOM Editors: Statemachines
hierarchical Statemachines define the dynamical behaviour of Actors
© 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/)
© 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
© 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
© 2011 Protos Software GmbH 12 15.11.2011
eTrice Demo
© 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
© 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)
Thank you for your attention
Thomas Schütz
http://www.eclipse.org/etrice