Dependency analysis is usually a static code analysis process, but in some cases it can be practiced on data from dynamic analysis.
Dependency analysis can be used to
Source code is parsed and handled in order to retrieve information on releationships, also called as dependencies, between software artifacts. Usually it is done for detecting file to file usage relationships or class to class relationships. For example, with TypeScript analysis madge tool can detect dependencies between code files.
Analyzers and parsers can be used to abstract software concepts, to identify e.g. specialties such as Signals and Slots of Qt Framework, and then analyze the concrete connection creating statements with help of parsing and handling of syntax trees.
With help of execution of instrumented software, an analyzer can resolve concrete function or file usage relationships based on the data collected from a test case execution or from a real production environment. However, this approach is limited to availability of the instrumentation, and to the availability of the data.