| Components: | |
| Hierarchy (Y/N) | Yes |
| Orthogonality (Y/N) | Yes |
| Guards (Y/N) | Yes |
| Hyperedges (Y/N) | Yes |
| History (Y/N) | Yes |
| Deep history (Y/N) | No |
| Conditional component (Y/N) | Yes |
| Select component (Y/N) | No |
| Forks (Y/N) | No |
| Joins (Y/N) | No. Although BetterState does not employ the use of forks, joins or junctions, it has another mechanism called a "connector" which provides the same semantic functionality. |
| Synch states (Y/N) | No |
| Environment Features: | |
| Hierarchical zoom (Y/N) | Yes |
| API functions | No superclass, no linked libraries or header files. The user must do everything. |
| Simulation (Y/N) | Yes. There is also the ability to add code for a visual simulation. |
| Code generation (Y/N) | Yes. BetterState supports C, C++, Java as well as C for several real-time operating systems. |
| Semantics: | |
| Causality (Y/N) | Yes |
| Negated triggers (Y/N) | No |
| Contradictory actions (Y/N) | No checking mechanism. |
| Inter-level transitions (Y/N) | Yes |
| State references (Y/N) | Is possible to reference other states in the generated code since everything is implemented in one class. |
| Compositional semantics (Y/N) | No |
| Instantaneous states (Y/N) | Yes |
| Event durability | Instantaneous |
| Determinism | Deterministic |
| Transition priorities | User defined |
| Interrupts | Non-preemptive |