- implemented: abstract syntax - and/or states - pseudo-states - enter/exit trigger - shallow/deep history - transitions - event/after trigger - event parameters - guard expressions - action language expressions: - arithmetic, logic - variable references - function calls actions: - variable assignment - raising output events semantics - initialization - raising input events - time: - paused / step-wise - (scaled) real time - omniscient debugging TODO - testing use STL for testing https://github.com/mvcisback/py-metric-temporal-logic - maybe support: - explicit order of: - outgoing transitions? - usability stuff: - ability to hide statechart and only show the plant? - hovering over event in side panel should highlight all occurrences of the event in the SC - hovering over error in bottom panel should highlight that rror in the SC - highlight selected shapes while making a selection - comments sometimes snap to transitions even if they belong to a state - highlight fired transitions - highlight about-to-fire transitions - when there is a runtime error, e.g., - variable not found - stuck in pseudo-state - ??? don't crash and show the error - buttons to rotate selection 90 degrees - performance: maybe try this for rendering the execution trace: https://legacy.reactjs.org/docs/optimizing-performance.html#virtualize-long-lists - experimental features: - multiverse execution history stable tree layout? https://pub.dev/packages/ploeg_tree_layout - local scopes for the assignment: *ALL* features add history (look at original Harel paper) add microwave oven add traffic light Publish StateBuddy paper(s): compare CS approach to other tools, not only YAKINDU