Patent attributes
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for using disjoint-or trees to cache aggregated dependencies. One of the methods includes receiving a request to compute a set of software dependencies inbound to or outbound from a node or any descendant of the node in a hierarchy of software elements in a software project. If the node of the hierarchy is important enough to cache in the disjoint-or tree, a new element is generated in the disjoint-or tree corresponding to the node. A set of dependencies for the new element is computed as a union of one or more sets of dependencies associated with the node and any descendants of the node in the hierarchy, and the computed set of dependencies are associated with the new element in the disjoint-or tree corresponding to the node.