Behavioral abstractions for debugging coordination-centric software designs
OwnerKenneth J. Hinesinventor
Life of this patent
Estimating the term…
Abstract
A behavioral abstraction is, in an abstract sense, a generalization of an event cluster. Behavioral abstraction is a technique where a predetermined behavioral sequence is automatically recognized by the simulator in a concurrent stream of system events. A behavioral sequence is at its most basic level a partial order of events. However, the events considered in a behavioral sequence are subject to configuration-based filtering and clustering. This allows a designer to create a model for a particular behavior and then set up a tool to find instances of the particular behavior in an execution trace. Behavior models are representations of partially ordered event sequences and can include events from several components.
Claims30
A method for debugging a software system, the software system having a first and second software component and a first coordinator for implementing a predetermined coordination protocol, each of the first and second components connected to the coordinator by a respective pair of complimentary coordination interfaces, the method comprising:
- generating a record of software system events, each event record within the record of system events representing an inter-component control or dataflow interaction;
- creating a behavioral template based on a predetermined behavior of the software system;
- identifying an occurrence of the predetermined behavior within the record of software system events, based on the behavioral template.
A method for transforming a visual prototype into a behavioral expressions comprising:
- creating an event causality graph for the visual prototype
- removing any causally redundant edges in the event causality graph;
- creating a cluster representing any concurrent nodes that progress forward together in time.
A behavioral analysis method for use with a space/time diagram comprising:
- evaluating all system events from a record of system events one event at a time while maintaining causal relationships between system events;
- and
- analyzing the evaluated system events in order to find a predetermined system behavior.
A software system design tool comprising:
- a simulator for simulating an execution of the software system;
- a template tool for creating a behavioral template based on a predetermined behavior of the software system;
- a debugging tool for identifying an instance of the predetermined behavior of the software system from a simulated execution of the software system based on the behavioral template.
A software design tool for use in a coordination-centric design environment comprising:
- an automaton that analyzes system events and determines causal relationships between system events in order to identify a predetermined system behavior.
Dependencies are inferred from the claim text.