eTrice Overview
What is eTrice?
eTrice provides an implementation of the ROOM modeling language (Real Time Object Oriented Modeling) together with editors, code generators for C/C++ code and exemplary target middleware.
The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and behavioral (i.e. state machine) parts.
Reduction of Complexity
eTrice is all about the reduction of complexity:
- structural complexity
- by explicit modeling of hierarchical Actor containment, layering and inheritance
- behavioral complexity
- by hierarchical state machines with inheritance
- team work complexity
- because loosely coupled Actors provide a natural way to structure team work
- since textual model notation allows simple branching and merging
- complexity of concurrent & distributed systems
- because loosely coupled Actors are deployable to threads, processes, nodes
- complexity of variant handling and reuse (e.g. for product lines)
- by composition of existing Actors to new structures
- since Protocols and Ports make Actors replaceable
- by inheritance for structure, behavior and Protocols
- by making use of model level libraries
- 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)