140 likes | 151 Views
STATEMATE offers a visual formalism and graphical orientation for creating complex reactive systems, focusing on control-driven aspects and real-time reactions to discrete events. It allows modeling at multiple levels of detail, fostering structured development through module hierarchy, data flow, and control activities. The tool provides unique debugging abilities, including dynamic stepping and programmed executions, enhancing the testing and debugging process for detailed and complex systems.
E N D
STATEMATE A Working Environment for the Development of Complex Reactive Systems
Overview • Reactive System • Why is STATEMATE so Great? • Visual formalism & Graphical orientation • Unique debugging abilities
Reactive System • Reactions to discrete events • Focus on control driven aspect • Real time • Involve complex sequences, actions, conditions, and info flow under time constraint • Multiple levels of detail
Visual formalism & Graphical orientation:System Under Development • Structure (architecture) -module hierarchy -flow of data chunks and control signals • Conceptual Model • Functionality -activity hierarchy -data flow • Behavior -control activities -when, how, why Structure Conceptual Model Functionality Behavior
Modeling Languages • Structure: module-charts • Functionality: activity-charts • Behavior: state-charts -Based on common set of graphical conventions -Graphics editors that check syntax -Formal semantics embedded in each
Module-charts C E3 E1 A C1 Sub-modules Modules C2 B E4 E2 Environment module Shared Data Storage module
Activity-charts C Flow of control item Control activity E1 S1 D External activity S2 A E3 K E2 B H Sub-activity Flow of data item activity
State-charts A B C D H t E n J s u o G m v I F p r w q y x K L
Unique Debugging Abilities • Dynamic Stepping • Programmed Executions -Simulation Control Language (SCL) • Debugging Partial System • Source-Level Debugging
Dynamic Stepping • User emulates environment • View all consequences of one dynamic step • STATEMATE highlights all resulting active states and actions
Programmed Executions • User writes programs to handle details • Set up breakpoints • Trace database during execution • View progress as a discrete animation of system behavior
Debugging Partial System • User emulates environment and system events external to focus part • Dynamic tests • Run-time exhaustive, brute-force, sets of executions • For very critical, well isolated, and SUFFICIENTLY SMALL parts of model • Ex: reachability, nondeterminism, deadlock, usage of transitions
Source-Level Debugging • Prototype code: • Generated higher level code (Ada, C) • Replace parts of the model & Interacts with remaining model • Test closer to final environment • Link code with “soft” panels • Trace parts of code back to model • Incremental substitution of model with code
Conclusions • Visual Formalism & Graphical Orientation • Clarity in complexity detailed systems • Unique Debugging Abilities • Deep and comprehensive testing and debugging