| <h3>Eclipse eTrice - Real-Time Modeling Tools</h3> |
| |
| <div id="introText"> |
| <p>eTrice provides an implementation of the ROOM (Real-Time Object-Oriented Modeling) modeling language together with editors, |
| code generators for Java, C++ and C code and target middleware.<br> |
| The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and |
| behavioral (i.e. state machine) parts.</p> |
| </div> |
| |
| <div id="motto"> |
| <p><b>eTrice is all about the reduction of complexity:</b></p> |
| <ul> |
| <li><b>structural complexity</b> |
| <ul> |
| <li>by explicit modeling of hierarchical Actor containment and layering</li> |
| </ul> |
| </li> |
| |
| <li><b>behavioral complexity</b> |
| <ul> |
| <li>by hierarchical state machines</li> |
| </ul> |
| </li> |
| |
| <li><b>teamwork complexity</b> |
| <ul> |
| <li>because loosely coupled Actors provide a natural way to structure team work</li> |
| <li>since textual model notation allows simple branching and merging</li> |
| </ul> |
| </li> |
| |
| <li><b>complexity of concurrent & distributed systems</b> |
| <ul> |
| <li>because loosely coupled Actors are deployable to threads, processes, nodes</li> |
| </ul> |
| </li> |
| |
| <li><b>complexity of variant handling and reuse (e.g. for product lines)</b> |
| <ul> |
| <li>by composition of existing Actors to new structures</li> |
| <li>since Protocols and Ports make Actors replaceable</li> |
| <li>by inheritance for structure, behavior and Protocols</li> |
| <li>by making use of model level libraries</li> |
| </ul> |
| </li> |
| |
| <li><b>complexity of debugging</b> |
| <ul> |
| <li>model level debugging: state machine animation, data inspection and |
| manipulation, message injection, generated message sequence charts</li> |
| <li>model checking easier for model than for code (detect errors before they occur)</li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| |
| <h3>Some Highlights of eTrice</h3> |
| |
| <div id="feature_description"> |
| <h4>Textual Model Editor</h4> |
| <p>The model files are stored in a purely textual and easily readable form. |
| The DSL is created using Xtext and a fully featured editor with syntax highlighting, content assist, template proposals and |
| outline view is provided.</p> |
| <p>The models allow to import other model parts and thus allow an arbitrary granularity as well as working with modeling libraries. |
| Another great advantage is the relatively simple and understandable behavior in the case of merge conflicts. The user will be |
| able to resolve conflicts by reviewing the changes.</p> |
| <p><img src="images/text_editor.jpg" |
| alt="textual ROOM model editor" width="100%"> |
| </p> |
| </div> |
| |
| <div id="feature_description"> |
| <h4>Graphical Structure Editor</h4> |
| <p>The Structure Editor allows to edit the Actor Structure in a convenient way. |
| It is possible to create and arrange actor references and ports and to create bindings and layer connections. |
| </p> |
| <p><img src="images/structure_editor.jpg" |
| alt="graphical ROOM structure editor" width="100%"> |
| </p> |
| </div> |
| |
| <div id="feature_description"> |
| <h4>Graphical Behavior Editor</h4> |
| <p>The Behavior Editor allows to describe the Actor Behavior by means of a hierarchical finite state machine. |
| It is possible to create and arrange states, choice points, transition points and transitions. |
| </p> |
| <p><img src="images/behavior_editor.jpg" |
| alt="graphical ROOM behavior editor" width="100%"> |
| </p> |
| </div> |
| |
| <div id="feature_description"> |
| <h4>Code Generators</h4> |
| <p>Currently eTrice has two generators for ANSI-C and for Java code. A C++ generator is currently being developed. |
| We strive to achieve a good readability of the generated code.</p> |
| </div> |
| |
| <div id="feature_description"> |
| <h4>Java and C Runtime</h4> |
| <p>The Runtimes provide basic infrastructure like messaging and debug support in form of the generation of |
| sequence diagrams from the running application. Thanks to the good Java (JDT) and C (CDT) integration within the Eclipse IDE very short |
| round trip times can be achieved.</p> |
| </div> |