Patent ID: 9678721
Date: 2017-06-13
CPC Classifications: G06F,G06T,H04L

Claim:
1. A computer-implemented method comprising: receiving a request to generate implicit dependencies introduced by a reflection function in a project, wherein a reflection function is a function by which a program accesses attributes of the program's own source code; executing a query that emulates at least some behavior of the reflection function to generate names of one or more target software elements that the reflection function outputs at runtime; identifying, in the project, a source software element that uses output of the reflection function; generating, in a raw dependency graph, one or more respective new dependencies representing one or more implicit dependencies of the source software element on each of the one or more target software elements due to the source software element using the output of the reflection function to obtain respective names of the one or more target software elements at runtime; and generating data representing an aggregated dependency graph for a plurality of nodes of a hierarchy graph of software elements in the project, the plurality of nodes comprising a first node and one or more second nodes, wherein the aggregated dependency graph is different from the raw dependency graph, including generating one or more respective aggregated dependencies between the first node in the hierarchy graph and each of the one or more second nodes in the hierarchy graph, each aggregated dependency respectively representing the one or more implicit dependencies in the raw dependency graph of the source software element on each of the one or more target software elements, wherein, for each aggregated dependency on a particular second node of the one or more second nodes, the first node or a descendant of the first node in the hierarchy graph represents the source software element and the particular second node or a descendant of the particular second node in the hierarchy graph represents a particular target software element of the one or more target software elements.