100 likes | 247 Views
Visualization of Reachability Graphs: Some Ideas by Amin Alipour Software Design Lab malipour@mtu.edu. Outline. What is a Reachability Graph (RG)? Some Characteristics of RG Points of interests. What is RG. Program State: a unique valuation to variables and program counter
E N D
Visualization of Reachability Graphs: Some Ideas by Amin Alipour Software Design Lab malipour@mtu.edu
Outline • What is a Reachability Graph (RG)? • Some Characteristics of RG • Points of interests
What is RG • Program State: a unique valuation to variables and program counter • Reachability Graph (RG): • A node represents a state • An arc denotes a transition • RG is a directed graph generated by exploring all reachable states by program actions from some initial states
What is RG • Each arc corresponds to one program statement (in a thread/process) • A program statement includes a set of arcs • Each path represents a trace of program execution • The number of nodes is often huge
Points of Interests • Node/State: represents a special property of program state • E.g.: Data race, deadlock, terminating state, etc. • Set of Nodes/States: A common property for a set of states • E.g.: set of deadlock states, set of states where data race occurs • Set of transitions belonging to a specific statement
Points of Interests • Set of paths that lead to a special state • Paths show the ordering and liveness of threads • Paths that lead to starvation of one threads. • Paths that has certain property that is usually <>p • E.g., eventually a trying thread enters its critical section
Some Queries • What are the cycles? • Which transitions form the cycle? • What are the path that satisfy progress properties? • What are the paths that includes specific transitions, or special ordering?
Some Queries- cont’d • What are the paths that satisfy LTL property <>p, []p • Given a path, what is the trace predicate • Can we encode trace predicate of path on it visually? • Is the specific correspondence exists between RNA and two threaded programs
Some Queries- cont’d • Visualizing the subgraph that has no synchronization • The state change according to projection of states
Some notes • The visualization need not to be static, it could be animated as the program runs and explores new states.