The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Mar. 03, 2009
Filed:
Mar. 31, 2005
Wolfgang Grieskamp, Redmond, WA (US);
Colin L. Campbell, Seattle, WA (US);
Lev Borisovich Nachmanson, Redmond, WA (US);
Margus Veanes, Bellevue, WA (US);
Michael Barnett, Seattle, WA (US);
Nikolai Tillmann, Redmond, WA (US);
Wolfram Schulte, Bellevue, WA (US);
Wolfgang Grieskamp, Redmond, WA (US);
Colin L. Campbell, Seattle, WA (US);
Lev Borisovich Nachmanson, Redmond, WA (US);
Margus Veanes, Bellevue, WA (US);
Michael Barnett, Seattle, WA (US);
Nikolai Tillmann, Redmond, WA (US);
Wolfram Schulte, Bellevue, WA (US);
Microsoft Corporation, Redmond, WA (US);
Abstract
Techniques and tools for generating finite state machines ('FSMs') for a software system with asynchronous callbacks are described. For example, method invocations in a model of the software system are partitioned into observable and controlled method invocations. The controlled method invocations are those which can be run from a test harness while the observed method invocations are those which are observed asynchronously as they are invoked in the system. An FSM is created with observation and control nodes such that observable transitions are found from observation nodes and controlled transitions are found from control nodes. If a state of the model contains both controlled and observable invocations, a timeout transition is added to the FSM to give an implementation time to come up with an observed method invocation before continuing to controlled invocations.