Patents by Inventor Wolfram Schulte
Wolfram Schulte has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7926025Abstract: A model composition environment can allow for description of fill or partial symbolic system behavior, as well as the combination of models of specific features into compound models. Compositional operators can include intersection, concatenation, substitution, alternating refinement, as well as a set of regular expression-like operators. Models called “action machines” can represent object-oriented, reactive programs, and an action machine may be composed with another action machine using a compositional operator. This can allow for testing of particular scenarios or behaviors.Type: GrantFiled: December 30, 2005Date of Patent: April 12, 2011Assignee: Microsoft CorporationInventors: Colin L. Campbell, Margus Veanes, Nicolas Kicillof, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
-
Publication number: 20110083124Abstract: Software verification using two-state invariants is described. In an embodiment a verifier represents an annotated program to be verified as a plurality of atomic transitions between global program states, each state comprising a plurality of objects. For example, the verifier accesses the annotations which specify a two-state invariant for each object. A two-state invariant is a predicate that relates a global program state before a state transition to the state after that state transition. In an example some of the two-state invariants are cross-object in that they refer to other objects. For example, a verification system checks that only the two-state invariants of the objects which changed in each transition are preserved; this modularity enables the verifier to work for large code bases and concurrent software. In an example the modularity is possible since the two-state invariants meet an admissibility requirement which is independent of the functionality of the program.Type: ApplicationFiled: October 7, 2009Publication date: April 7, 2011Applicant: Microsoft CorporationInventors: Michal Jan Moskal, Stephan Tobies, Ernie Cohen, Wolfram Schulte
-
Patent number: 7912863Abstract: A set of syntactic extensions that are compiled with a type-directed translation method to facilitate lifting member access on base types to a newly constructed type. The extensions are processed with a type system that facilitates seamless data access to relational and semi-structured data in an object oriented host language.Type: GrantFiled: July 30, 2004Date of Patent: March 22, 2011Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Wolfram Schulte, Gavin Bierman
-
Patent number: 7882495Abstract: In one embodiment, a computer system determines that a previously run test scenario configured to test a software program has failed to produce an expected result due to one or more semantic errors, generates error trace code configured to monitor the called component, processes the test scenario using the error trace code, and analyzes error trace information to determine the point at which the semantic error occurs in the called component. In an alternative embodiment, a computer system detects a semantic error in a software component of a software program, constructs an error condition that may include source code representing a minimum condition under which the error occurs, generates an object invariant based on the error condition that represents an opposite condition to that represented by the error condition, and automatically generates source code change recommendations using the object invariant that prevent the semantic error from reoccurring in subsequent test scenarios.Type: GrantFiled: June 14, 2007Date of Patent: February 1, 2011Assignee: Microsoft CorporationInventors: Nikolai Tillmann, Jonathan Paul de Halleux, Wolfram Schulte
-
Patent number: 7844951Abstract: A computerized method receives an implementation comprising a modifier method and an observer method of a class implementing an abstract data type. The method symbolically executes the modifier method to obtain constrained states, and applies the observer method in constrained states to obtain specialized axioms. The method then creates a specification from the obtained specialized axioms based on generalizing, merging and simplifying the specialized axioms.Type: GrantFiled: December 30, 2005Date of Patent: November 30, 2010Assignee: Microsoft CorporationInventors: Feng Chen, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
-
Patent number: 7822853Abstract: One or more embodiments, described herein, are directed towards a technology for analyzing a distributed system in order to determine one or more inconsistencies placing the distributed system in an unstable state. Once the one or more inconsistencies are determined, one or more operations reconciling the inconsistencies are defined in order to stabilize the distributed system.Type: GrantFiled: September 30, 2008Date of Patent: October 26, 2010Assignee: Microsoft CorporationInventors: Wolfram Schulte, Ethan K. Jackson
-
Publication number: 20100269110Abstract: A developer can declare one or more tasks as being replicable. A library manages all tasks that are accessed by an application, including replicable tasks, and further establishes a task manager during requested task execution. During execution, the library generates a plurality of worker threads, and each of the worker threads is assigned to be processed on one of a plurality of different central processing units. When one or more worker threads have finished processing assigned tasks, and other threads are still busy processing other tasks, the one or more idle worker thread scan copy over and process replicable tasks assigned to the other, busier worker thread(s) to help with processing. The system can also synchronize processing of the replicable task by the plurality of different worker threads and different processors to ensure no processing discrepancies.Type: ApplicationFiled: March 1, 2008Publication date: October 21, 2010Applicant: MICROSOFT CORPORATIONInventors: Daniel J. P. Leijen, Wolfram Schulte
-
Patent number: 7797687Abstract: Separation of parameterized unit tests (PUTs) from specific test cases supports many benefits including automated test case generation. Symbolic execution assigns symbolic input variables to parameters of a parameterized unit test. Path constraints of an implementation under test (IUT) are identified during symbolic execution. A constraint solver automatically generates test cases by determining the test inputs that satisfy one of more paths, each described by constraints, through the IUT. PUTs are used to populate behavioral summaries. Behavioral summaries are used later in future symbolic executions to emulate summarized methods. Behavioral summaries comprise behavioral purity axioms. Behavioral purity axioms require that an intensional heap before execution of a PUT be equal to the intensional heap after execution. An intensional heap is provided to represent state changes performed by summarized methods. The extensional heap is used to explicitly update memory locations, e.g.Type: GrantFiled: August 4, 2005Date of Patent: September 14, 2010Assignee: Microsoft CorporationInventors: Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
-
Patent number: 7774787Abstract: Various new and non-obvious systems and methods for ensuring within a multi-threaded environment that object fields hold legal values are disclosed. One of the disclosed embodiments is a method for a thread locking the top object of an object hierarchy. The thread then gains ownership of the locked object and any children of the locked object, by successively unpacking child objects, allowing the thread to write to any unpacked object field. By owning the top hierarchical object, the thread also achieves transitive ownership to any descendants of the object, allowing the thread to read any object fields which it transitively owns. When a thread locks an object within this exemplary embodiment all other threads are denied access to the locked object and to any descendants of the locked object.Type: GrantFiled: January 11, 2005Date of Patent: August 10, 2010Assignee: Microsoft CorporationInventors: K. Rustan M. Leino, Wolfram Schulte, Bart Jacobs
-
Patent number: 7774376Abstract: A type system that facilitates seamless integration of data access to relational and semi-structured data in an object oriented host language. A data access component includes the type system and corresponding set of syntax constructions that facilitates coercive subtyping and restricts covariance to identity conversions.Type: GrantFiled: July 30, 2004Date of Patent: August 10, 2010Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Wolfram Schulte, Gavin Bierman
-
Patent number: 7747985Abstract: Techniques and tools for testing multi-threaded or distributed software systems are described. For example, a multi-threaded system is instrumented and executed to produce logs of events that are performed by each of its agents. The agent logs contain a totally ordered series of events per agent, as well as information about accesses to resources shared between the agents. With this information, a partial ordering of the events performed by all the agents is described for the execution. The agent logs are then multiplexed into one or more serialized event orderings, which can then be compared to a specification of the system in a conformance testing engine.Type: GrantFiled: March 18, 2005Date of Patent: June 29, 2010Assignee: Microsoft CorporationInventors: Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
-
Patent number: 7730462Abstract: The present invention relates to a system and methodology to enable programming of generalized comprehensions in an imperative language environment. In one aspect, a system is provided to facilitate employment of user-definable and generalized comprehensions in accordance with imperative languages. The system includes a language component to enable programming of comprehension notations in an imperative language and an interface component to describe a meaning of the comprehension notations. A translation component facilitates execution of the comprehension notations in accordance with the imperative language.Type: GrantFiled: January 27, 2004Date of Patent: June 1, 2010Assignee: Microsoft CorporationInventors: Wolfgang Grieskamp, Wolfram Schulte, Henricus Johannes Maria Meijer
-
Publication number: 20100083233Abstract: An extension of symbolic execution for programs involving contracts with quantifiers over large and potentially unbounded domains is described. Symbolic execution is used to generate, from a program, concrete test cases that exhibit mismatches between the program code and its contracts with quantifiers. Quantifiers are instantiated using symbolic values encountered during a set of exhibited runs. In this setting, quantifier instantiation is limited to values supplied to or produced by a symbolic execution. Quantifier instantiation is controlled by performing a matching algorithm that uses run-time values of input and program variables in order to guide and limit the set of quantifier instantiations. With a sufficient set of instances, test cases are derived that directly witness limitations of the auxiliary assertions.Type: ApplicationFiled: September 26, 2008Publication date: April 1, 2010Applicant: Microsoft CorporationInventors: Dries Vanoverberghe, Nikolai Tillmann, Jonathan Paul de Halleux, Nikolaj S. Bjorner, Wolfram Schulte
-
Publication number: 20100082802Abstract: One or more embodiments, described herein, are directed towards a technology for analyzing a distributed system in order to determine one or more inconsistencies placing the distributed system in an unstable state. Once the one or more inconsistencies are determined, one or more operations reconciling the inconsistencies are defined in order to stabilize the distributed system.Type: ApplicationFiled: September 30, 2008Publication date: April 1, 2010Applicant: Microsoft CorporationInventors: Wolfram Schulte, Ethan K. Jackson
-
Patent number: 7685571Abstract: Described herein are methods and systems for interactively configuring and producing a data domain for various data structure elements of a computer program. A domain configuration manager is described which interactively receives domain configuration information corresponding to a data structure element, reads a reflection of the program and produces a data domain according to domain configuration information. The domain configuration manager is capable of producing a data domain for a data structure element according to such domain configuration information such as an explicit expression, inheritance or domain generation technique. The reflection of the computer program exposes the methods and functions of the program to be used in the explicit expression regardless of the visibility rules. Also, predicates and conditions can be used with domain generation techniques to further narrowly configure the data domains.Type: GrantFiled: August 27, 2003Date of Patent: March 23, 2010Assignee: Microsoft CorporationInventors: Wolfram Schulte, Wolfgang Grieskamp, Nikolai Tillmann
-
Patent number: 7681180Abstract: In one embodiment a computer system automatically generates unit tests. The computer system accesses a parameterized unit test that provides a base outline from which one or more unit tests are automatically generated, generates input parameter values for a unit of software code, automatically generates a unit test configured to assess the functionality of the unit of software code, and receives test results from a software testing program and provides feedback to a user. In other embodiments, a computer system automatically maintains a unit test database. The computer system receives a unit test at a unit test database, assigns a test identity to the received unit test, determines that the test identity assigned to the received unit test is unique when compared to other unit tests, determines that the received unit test has different functionality coverage characteristics, and adds the received unit test to the unit test database.Type: GrantFiled: June 6, 2007Date of Patent: March 16, 2010Assignee: Microsoft CorporationInventors: Jonathan Paul de Halleux, Nikolai Tillmann, Wolfram Schulte
-
Patent number: 7665072Abstract: Techniques and tools for generating test cases for methods or programs with input preconditions are described. For example, after finding feasible control flow paths for a tested method along with each path's associated input conditions, a new program is created which tests these conditions along with the precondition. By analyzing this new program's control flow graph, a class of test cases is found while avoiding inefficiencies created by doing complete searches of paths through the combined control flow graph of the precondition and the method. Additional efficiencies are introduced by partitioning a control flow graph for the precondition into branched and straight sections.Type: GrantFiled: April 21, 2005Date of Patent: February 16, 2010Assignee: Microsoft CorporationInventors: Nikolai Tillman, Colin L. Campbell, Wolfgang Grieskamp, Lev Borisovich Nachmanson, Wolfram Schulte, Margus Veanes
-
Patent number: 7661096Abstract: The subject invention pertains to systems and methods for iterating over or otherwise traversing a collection of objects or elements. More specifically, mechanisms are provided for handling both conventional non-nested streams such as enumeratables as well as nested streams. Nested streams provide a more efficient mechanism for traversing certain objects such as recursive generators. One problem with nested streams is that they need to be flattened or simplified. Techniques are provided herein to allow such streams to be flattened quickly and efficiently. Moreover, systems and methods are disclosed to preserve backward compatibility of optimized nested stream processing with conventional non-nested streams.Type: GrantFiled: January 28, 2005Date of Patent: February 9, 2010Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, David Schach, Avner Y. Aharoni, Wolfram Schulte
-
Publication number: 20100011194Abstract: A state component saves a present state of a program or model. This state component can be invoked by the program or model itself, thereby making state a first-class citizen. As the state of the program evolves from the saved state, the saved state remains for reflection and recall, for example, for testing, verification, transaction processing, etc. Using a state reference token, the saved state of the program or model can be accessed by the program or model. For example, the program or model by utilizing a state component, can return itself to the saved state. After returning to the saved state, a second execution path can be introduced without requiring re-execution of the actions leading to the saved state. In another example, the state space of an executing model is saved in order to generate inputs required to exercise a program or model.Type: ApplicationFiled: August 31, 2009Publication date: January 14, 2010Applicant: Microsoft CorporationInventors: Wolfgang Grieskamp, Yuri Gurevich, Wolfram Schulte, Nikolai Tillmann
-
Patent number: 7640470Abstract: Generation of test data for systems having functionality subject to a grammar or other sort of meta-data is automated by a controlled combinatorial approximation of naïve combinatorial coverage. A suite of control mechanisms are applied to an algorithm that generates test data to provide well-defined and understandable approximations of full combinatorial coverage.Type: GrantFiled: August 21, 2006Date of Patent: December 29, 2009Assignee: Microsoft CorporationInventors: Ralf Lammel, Wolfram Schulte