140 likes | 324 Views
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
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