Patents by Inventor Lev Borisovich Nachmanson

Lev Borisovich Nachmanson 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: 8482565
    Abstract: An interactive connector routing system and method for creating a connector between two shapes in a digital canvas or workspace that is based on a shortest path. The system and method avoid the use of a tangent visibility graph when possible to minimize computation time. When the graph is used, it is built one portion during pointing device events. Source and target ports are set and it is determined whether a valid simple path can be created between these ports. If no simple path exists, then the system and method build an extended tangent visibility graph during pointing devices events. Building the extended tangent visibility graph includes an iterative process that enlarges an active rectangle until it contains the necessary obstacles and shapes to generate the shortest valid path for the connector. The system and method also use finishing techniques to clean up and smooth the connector path.
    Type: Grant
    Filed: May 15, 2009
    Date of Patent: July 9, 2013
    Assignee: Microsoft Corporation
    Inventor: Lev Borisovich Nachmanson
  • Patent number: 8365129
    Abstract: A computer system identifies a source node that is to be connected to a target node, where the target node is connected to the source node using an edge that links a connection region associated with the source node to a candidate connection region of the target node. The computer system identifies candidate connection region constraints that place restrictions on where the candidate connection regions can be positioned on the target node and determines, based on the identified candidate connection region constraints, the position of each candidate connection region relative to the target node. At least two of the candidate connection regions are disconnected so that an edge's connection to the target node can change between the disconnected connection regions. The computer system also visually represents the position of each of the candidate connection regions of the target node.
    Type: Grant
    Filed: December 4, 2009
    Date of Patent: January 29, 2013
    Assignee: Microsoft Corporation
    Inventors: Fabian Omar Winternitz, Kael R. Rowan, Timothy Garry Dwyer, Stuart John Harding Kent, Lev Borisovich Nachmanson
  • Publication number: 20110134926
    Abstract: A computer system identifies a source node that is to be connected to a target node, where the target node is connected to the source node using an edge that links a connection region associated with the source node to a candidate connection region of the target node. The computer system identifies candidate connection region constraints that place restrictions on where the candidate connection regions can be positioned on the target node and determines, based on the identified candidate connection region constraints, the position of each candidate connection region relative to the target node. At least two of the candidate connection regions are disconnected so that an edge's connection to the target node can change between the disconnected connection regions. The computer system also visually represents the position of each of the candidate connection regions of the target node.
    Type: Application
    Filed: December 4, 2009
    Publication date: June 9, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Fabian Omar Winternitz, Kael R. Rowan, Timothy Garry Dwyer, Stuart John Harding Kent, Lev Borisovich Nachmanson
  • Publication number: 20100289801
    Abstract: An interactive connector routing system and method for creating a connector between two shapes in a digital canvas or workspace that is based on a shortest path. The system and method avoid the use of a tangent visibility graph when possible to minimize computation time. When the graph is used, it is built one portion during pointing device events. Source and target ports are set and it is determined whether a valid simple path can be created between these ports. If no simple path exists, then the system and method build an extended tangent visibility graph during pointing devices events. Building the extended tangent visibility graph includes an iterative process that enlarges an active rectangle until it contains the necessary obstacles and shapes to generate the shortest valid path for the connector. The system and method also use finishing techniques to clean up and smooth the connector path.
    Type: Application
    Filed: May 15, 2009
    Publication date: November 18, 2010
    Applicant: Microsoft Corporation
    Inventor: Lev Borisovich Nachmanson
  • 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: 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: 7590520
    Abstract: A computerized method creates test coverage for non-deterministic programs. The method receives a graph of edges and states representing a program under test, and creates a continuous cycle of edges that reaches each edge in the graph at least once. In one example, the method splits the continuous cycle into discrete sequences that end at edges reaching non-deterministic nodes in the graph, and verifies that the executing program conforms to the behavior represented by the discrete sequences. In another example, a method creates probabilistic strategies for reaching one or more vertices in a non-deterministic graph. The strategies provide a graph path with a high probability of reaching a desired vertex.
    Type: Grant
    Filed: January 15, 2004
    Date of Patent: September 15, 2009
    Assignee: Microsoft Corporation
    Inventors: Lev Borisovich Nachmanson, Margus Veanes, Wolfgang Grieskamp, Nikolai Tillmann
  • Publication number: 20090198725
    Abstract: A system described herein includes a receiver component that receives multiple data elements, wherein each of the data elements has a common attribute, and wherein the several data elements are hierarchically related. The system may further include an assignor component that independently assigns each of the multiple data elements to one of a plurality of layers, wherein a data element is assigned to a layer based at least in part upon a value of the common attribute that corresponds to the data element. The system may also include a renderer component that receives assignments made by the assignor component and graphically renders a tree structure based at least in part upon the assignments. Furthermore, a color bar can be generated that includes one or more rows based at least in part upon content of the tree structure.
    Type: Application
    Filed: May 13, 2008
    Publication date: August 6, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Bongshin Lee, Lev Borisovich Nachmanson, George G. Robertson
  • Patent number: 7500149
    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.
    Type: Grant
    Filed: March 31, 2005
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Wolfgang Grieskamp, Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfram Schulte
  • Patent number: 7493544
    Abstract: State spaces are traversed to produce test cases, or test coverage. Test coverage is a test suite of sequences. Accepting states are defined. Expected costs are assigned to the test graph states. Strategies are created providing transitions to states with lower expected costs. Linear programs and other approximations are discussed for providing expected costs. Strategies are more likely to provide access to an accepting state, based on expected costs. Strategies are used to append transitions to test segments such that the new test segment ends in an accepting state.
    Type: Grant
    Filed: January 21, 2005
    Date of Patent: February 17, 2009
    Assignee: Microsoft Corporation
    Inventors: Andreas Blass, Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte, Yuri Gurevich
  • Patent number: 7363202
    Abstract: Exploration algorithms are relevant to the industrial practice of generating test cases from an abstract state machine whose runs define the predicted behavior of the software system under test. Here, a new exploration algorithm allows multiple state groupings to simultaneously guide the search for states that are interesting or relevant for testing. In some cases, the algorithm allows exploration to be optimized from exponential to linear complexity. An extended example is included that illustrates the use of the algorithm.
    Type: Grant
    Filed: January 20, 2005
    Date of Patent: April 22, 2008
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Wolfgang Grieskamp, Wolfram Schulte, Nikolai Tillmann
  • Patent number: 7337388
    Abstract: A change management method and system for tool-based document generation which incorporates tool input changes, tool changes, and user changes during iterative document creation. After a tool-based document is generated and saved by a tool, and then edited by a user, during a next iteration of creating the edited document, the tool first generates a new base document. The base document is then saved, and a three-way merge is performed on the former iteration's base document, this iteration's new base document, and the former iteration's edited document. The former iteration's base document serves as the base of the merge process. The merge outputs a merged document, and when further edits are needed, the merged document is edited, and saved as the edited document. If no edits are necessary, the merged document is saved directly as the edited document. In each iteration, the new base document and the edited document are saved for a possible next iteration.
    Type: Grant
    Filed: January 2, 2003
    Date of Patent: February 26, 2008
    Assignee: Microsoft Corporation
    Inventors: Michael Barnett, Jacqueline Lynette Reid, Margus Veanes, Lev Borisovich Nachmanson
  • Patent number: 7284235
    Abstract: The technologies allow a digital content developer to define, and a user to switch between or select, various versions of digital content for purposes of displaying, rendering, improving, or testing digital content. For example, a source code developer inserts identifiers in source code, and a source code layer viewer displays code segment choices defined by the identifiers. A user (e.g., the developer or others) selects code segments for inclusion in a source code version. The technology is also useful for providing versions of media content such as audio, video, DVD, images, text, etc.
    Type: Grant
    Filed: October 15, 2003
    Date of Patent: October 16, 2007
    Inventors: Lev Borisovich Nachmanson, Margus Veanes
  • Publication number: 20040133858
    Abstract: A change management method and system for tool-based document generation which incorporates tool input changes, tool changes, and user changes during iterative document creation. After a tool-based document is generated and saved by a tool, and then edited by a user, during a next iteration of creating the edited document, the tool first generates a new base document. The base document is then saved, and a three-way merge is performed on the former iteration's base document, this iteration's new base document, and the former iteration's edited document. The former iteration's base document serves as the base of the merge process. The merge outputs a merged document, and when further edits are needed, the merged document is edited, and saved as the edited document. If no edits are necessary, the merged document is saved directly as the edited document. In each iteration, the new base document and the edited document are saved for a possible next iteration.
    Type: Application
    Filed: January 2, 2003
    Publication date: July 8, 2004
    Inventors: Michael Barnett, Jacqueline Lynette Reid, Margus Veanes, Lev Borisovich Nachmanson