Patent ID: 9547478
Date: 2017-01-17
CPC Classifications: G06F,G06T,H04L

Claim:
1. A computer-implemented method comprising: receiving, from a user, a request to add a node to a hierarchy of software elements, wherein the hierarchy of software elements is a directed graph having nodes and directed links, wherein each node in the hierarchy of software elements represents a software element in a software project and each directed link in the hierarchy of software elements connects a corresponding pair of nodes and represents containment of a child software element represented by a first node of the corresponding pair of nodes by a parent software element represented by a second node of the corresponding pair of nodes, and wherein one or more elements of a disjoint-or tree each cache a previously computed portion of a union of dependencies over a corresponding node and any descendants of the corresponding node in the hierarchy of software elements; determining that the added node of the hierarchy of software elements is not important enough to cache in the disjoint-or tree and that a parent element of the disjoint-or tree corresponding to a parent element of the added node has a status indicator of complete, wherein the status indicator of complete represents that a set of dependencies cached with an element represents a complete set of dependencies for the corresponding node or any descendants of the corresponding node in the hierarchy of software elements; in response to determining that the added node of the hierarchy of software elements is not important enough to cache in the disjoint-or tree and that the parent element of the disjoint-or tree corresponding to the parent element of the added node has the status indicator of complete, generating a compound element of the disjoint-or tree, wherein the compound element of the disjoint-or tree is a child element of the parent element of the disjoint-or tree, and wherein the compound element stores a set of dependencies for the added node; and maintaining cached data in the disjoint-or tree including propagating the set of dependencies for the added node to all ancestor elements of the compound element of the disjoint-or tree.