DCharts Timing Real-time has different definitions Graphical & textual syntax -> Modeled in AToM^3 -> Textual representation (custom, Python-like syntax) SVM (Simulator) takes textual representation Implemented in Python SCC: subproject of SVM, synthesizes code multiple target languages supported SVM main class: EventHandler PARSER and SIMULATOR public methods: + event(event_name,params,is_internal,lock) lock: semaphore to be released when event is handled. Puts element in global FIFO event list + synchronous_event(event,params,internal,lock) waits until given event is handled + start() starts simulation, puts in default state + shutdown() ends simulation, executes initializer of model + snap_to_string():String snapshot as string + snap_to_file(filename) + restore_from_string(s) + restore_from_file(filename) + get_enabled_events() returns a list of names of enabled events. Depends on current state of simulation + is_or_is_substate(state1,state2):bool + is_in_state(state, check_substate):bool + is_ifs(state):bool whether state is inner-transition-first EventHandler depends on: (not necessary for SCC) SVMPVM Parallel Virtual Machine for distr. simulation in SVM Debugger model debugging ( = ~breakpoints) Serialize SnapShot (makes use of Serialize) Model Verification Model Checking Check correctness of model by formal property proving. Those properties are always true for the model (e.g. reachability, acceptable event lists) Model verification Check correctness by multiple simulations. SCC 1 template per language Macros filled in by DCharts model to be compiled. Each state gets a (per model-)unique INTEGER number. -> integer comparison speed > string comparison speed -> hierarcy is (somewhat) flattended Each model: List of current leaf states To find current state -> first get all leaf states of main model -> then if any of those states are importation states, search further into their submodel(s). Each event gets an INTEGER NUMBER.