Systems and methods for dependency analysis
An analysis of software stored and executing on one or more assets in an enterprise includes determining a hierarchy of nodes in the software and among the assets and analyzing dependencies among those nodes and assets through a static analysis of the software as it is stored as well as through a dynamic analysis of the software as it executes.
1. A computer-implemented method for analyzing software dependencies, comprising:
on a first asset, executing a first technology agent configured to:
analyze a first type of software stored in memory of the first asset, the analysis comprising:
identifying nodes within a particular portion of software of the first type,
for each node, assigning an ID based on a hash of content related to the node,
recording a hierarchy of the nodes within the software using the node IDs,
performing a static analysis of the particular portion of software of the first type to identify any dependencies between that particular portion of software and other portions of software, and
communicating the hierarchy and the dependencies to a synthesis agent;
on the first asset, executing a second technology agent configured to:
analyze a second type of software stored in memory of the first asset, the analysis comprising:
identifying nodes within a particular portion of software of the second type,
for each node, assigning an ID based on a hash of content related to the node,
recording a hierarchy of the nodes within the software using the node IDs,
performing a static analysis of the particular portion of software of the second type to identify any dependencies between that particular portion of software and other portions of software, and
communicating the hierarchy and the dependencies to the synthesis agent and on the first asset, executing a third technology agent configured to:
analyze a particular type of software executing on the first asset, the analysis comprising:
performing a dynamic analysis of a particular portion of software of the particular type executing on the first asset to identify any dependencies between that particular portion of software and other portions of software, and
communicating the identified dependencies to the synthesis agent.
2. The method of claim 1 , wherein the analysis performed by the third technology agent is based at least in part on any dependencies identified by the first technology agent.
3. A computer-implemented method for analyzing software dependencies, comprising:
on a first asset, executing a first technology agent configured to:
analyze a particular portion of software stored in memory of the first asset, the analysis comprising:
identifying nodes within the particular portion of software,
for each node, assigning an ID based on a hash of content related to the node,
recording a hierarchy of the nodes within the software using the node IDs,
performing a static analysis of the particular portion of software to identify any dependencies between that particular portion of software and other portions of software, and
communicating the hierarchy and the dependencies to a synthesis agent;
on a second asset, executing a second technology agent configured to:
analyze a particular portion of software stored in memory of the second asset, the analysis comprising:
identifying nodes within the particular portion of software,
for each node, assigning an ID based on a hash of content related to the node,
recording a hierarchy of the nodes within the software using the node IDs,
performing a static analysis of the particular portion of software to identify any dependencies between that particular portion of software and other portions of software, and
communicating the hierarchy and the dependencies to a synthesis agent; and
on the first asset, executing a third technology agent configured to:
analyze software executing on the first asset, the analysis comprising:
performing a dynamic analysis of a particular portion of software executing on the first asset to identify any dependencies between that particular portion of software and other portions of software, and
communicating the identified dependencies to the synthesis agent.
4. The method of claim 3 , wherein the analysis performed by the third technology agent is based at least in part on any dependencies identified by the first technology agent.