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: 7926025
    Abstract: 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: Grant
    Filed: December 30, 2005
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Margus Veanes, Nicolas Kicillof, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Publication number: 20110083124
    Abstract: 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: Application
    Filed: October 7, 2009
    Publication date: April 7, 2011
    Applicant: Microsoft Corporation
    Inventors: Michal Jan Moskal, Stephan Tobies, Ernie Cohen, Wolfram Schulte
  • Patent number: 7912863
    Abstract: 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: Grant
    Filed: July 30, 2004
    Date of Patent: March 22, 2011
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Wolfram Schulte, Gavin Bierman
  • Patent number: 7882495
    Abstract: 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: Grant
    Filed: June 14, 2007
    Date of Patent: February 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Nikolai Tillmann, Jonathan Paul de Halleux, Wolfram Schulte
  • Patent number: 7844951
    Abstract: 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: Grant
    Filed: December 30, 2005
    Date of Patent: November 30, 2010
    Assignee: Microsoft Corporation
    Inventors: Feng Chen, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Patent number: 7822853
    Abstract: 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: Grant
    Filed: September 30, 2008
    Date of Patent: October 26, 2010
    Assignee: Microsoft Corporation
    Inventors: Wolfram Schulte, Ethan K. Jackson
  • Publication number: 20100269110
    Abstract: 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: Application
    Filed: March 1, 2008
    Publication date: October 21, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Daniel J. P. Leijen, Wolfram Schulte
  • Patent number: 7797687
    Abstract: 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: Grant
    Filed: August 4, 2005
    Date of Patent: September 14, 2010
    Assignee: Microsoft Corporation
    Inventors: Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Patent number: 7774787
    Abstract: 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: Grant
    Filed: January 11, 2005
    Date of Patent: August 10, 2010
    Assignee: Microsoft Corporation
    Inventors: K. Rustan M. Leino, Wolfram Schulte, Bart Jacobs
  • Patent number: 7774376
    Abstract: 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: Grant
    Filed: July 30, 2004
    Date of Patent: August 10, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Wolfram Schulte, Gavin Bierman
  • Patent number: 7747985
    Abstract: 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: Grant
    Filed: March 18, 2005
    Date of Patent: June 29, 2010
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Patent number: 7730462
    Abstract: 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: Grant
    Filed: January 27, 2004
    Date of Patent: June 1, 2010
    Assignee: Microsoft Corporation
    Inventors: Wolfgang Grieskamp, Wolfram Schulte, Henricus Johannes Maria Meijer
  • Publication number: 20100083233
    Abstract: 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: Application
    Filed: September 26, 2008
    Publication date: April 1, 2010
    Applicant: Microsoft Corporation
    Inventors: Dries Vanoverberghe, Nikolai Tillmann, Jonathan Paul de Halleux, Nikolaj S. Bjorner, Wolfram Schulte
  • Publication number: 20100082802
    Abstract: 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: Application
    Filed: September 30, 2008
    Publication date: April 1, 2010
    Applicant: Microsoft Corporation
    Inventors: Wolfram Schulte, Ethan K. Jackson
  • Patent number: 7685571
    Abstract: 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: Grant
    Filed: August 27, 2003
    Date of Patent: March 23, 2010
    Assignee: Microsoft Corporation
    Inventors: Wolfram Schulte, Wolfgang Grieskamp, Nikolai Tillmann
  • Patent number: 7681180
    Abstract: 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: Grant
    Filed: June 6, 2007
    Date of Patent: March 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Jonathan Paul de Halleux, Nikolai Tillmann, Wolfram Schulte
  • Patent number: 7665072
    Abstract: 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: Grant
    Filed: April 21, 2005
    Date of Patent: February 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Nikolai Tillman, Colin L. Campbell, Wolfgang Grieskamp, Lev Borisovich Nachmanson, Wolfram Schulte, Margus Veanes
  • Patent number: 7661096
    Abstract: 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: Grant
    Filed: January 28, 2005
    Date of Patent: February 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, David Schach, Avner Y. Aharoni, Wolfram Schulte
  • Publication number: 20100011194
    Abstract: 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: Application
    Filed: August 31, 2009
    Publication date: January 14, 2010
    Applicant: Microsoft Corporation
    Inventors: Wolfgang Grieskamp, Yuri Gurevich, Wolfram Schulte, Nikolai Tillmann
  • Patent number: 7640470
    Abstract: 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: Grant
    Filed: August 21, 2006
    Date of Patent: December 29, 2009
    Assignee: Microsoft Corporation
    Inventors: Ralf Lammel, Wolfram Schulte