Dependency Analyzer - Visualize dependencies, find required files, and assess the impact of

  changes - MATLAB ([original](https://in.mathworks.com/help/matlab/ref/dependencyanalyzer-app.html)) ([raw](?raw))

Visualize dependencies, find required files, and assess the impact of changes

Since R2023a

Description

The Dependency Analyzer app is an interactive tool for visualizing and analyzing dependencies among files.

Every design, whether it is a folder, a Simulink® model, or a project, requires a set of files and products to run successfully. Dependencies include data files, model references, linked libraries, MATLAB® and C/C++ code, Stateflow® charts, and requirements documents.

Use the Dependency Analyzer to perform a dependency analysis. You can run a dependency analysis at any point in your workflow. In a collaborative environment, you typically check dependencies:

With the Dependency Analyzer, you can:

Dependency Analyzer app. Dependency graph in the center. toolstrip on the top, Legend pane on the left, and Properties panel on the right.

Open the Dependency Analyzer App

Examples

expand all

  1. Open the Dependency Analyzer. In MATLAB, on the Apps tab, under MATLAB, click the Dependency Analyzer icon .
    Open Files on the left. Open Folder button on the right.
  2. Select the files or folder you want to analyze.
    • To analyze dependencies between all files in a folder, click Open Folder and select the folder you want to analyze. If the folder you selected is not on the search path, MATLAB changes the current folder to the selected folder.
    • To analyze the dependencies of a set of files in a folder, clickOpen Files and select the files you want to analyze.
  3. The dependency graph shows:
    • How files relate to each other. Each item in the graph represents a file and each arrow represents a dependency.
    • Relationships between source and derived files.
    • Required products in the Properties panel underProducts. Point to a product, such as_MATLAB_, and click the magnifying glass icon. The graph highlights the files that use this product.
    • Warnings in the Properties panel under Problems. Common problems include missing files, files with syntax errors, files with unsaved changes, and out-of-date derived files. Point to a problem, such as_Unsaved changes_, and click the magnifying glass icon. The graph highlights the files with this problem.
      Dependency Analyzer default view. Dependency graph in the center, toolstrip on the top, Legend pane on the left, and Properties panel on the right.
  4. Explore the different views in the Views section of theDependency Analyzer toolstrip to investigate your files dependencies.
    • The MATLAB Files view shows only MATLAB files (such as .m, .mlx,.p, .mlapp, .fig,.mat, and .mex) in the view and colors them by type.
    • The Class Hierarchy view shows the class inheritance graph and colors the files by type (class, enumeration class, or abstract class). If the class is not on the search path, the Dependency Analyzer cannot determine the class type.
      If the folder you are analyzing is a project, for instructions on how to use project-specific views, see Analyze Project Dependencies.
      Tip
      To package, share, or put your design under source control, create a project from your folder. For more details, see Create Project from Existing Folder. Perform a project dependency analysis to explore the dependency graph using source control and project-specific views.
      If the file you are analyzing is a Simulink model, for instructions on how to use model-specific views, see Analyze Model Dependencies (Simulink).
      Tip
      To package, share, or put your design under source control, create a project from your model. For more details, see Create Project from Model (Simulink). Perform a project dependency analysis to explore the dependency graph using source control and project-specific views.
  5. Use the graph to investigate problem files graphically.
    1. In the Properties pane, in theProblems section, point to a problem, such as_Unsaved changes_, and click the magnifying glass icon. The graph highlights the files with this problem.
      To examine these files, use the arrows in the search box (for example,Problem: Unsaved changes).

      To undo the highlighting, close the search box.
    2. To see more information about a problem file, select the file in the graph. In the Properties pane, in the Problems section, you can see details including the path, type, and problems for this file.
      For example, if a file has unsaved changes, save the file in the MATLAB editor. For more details on how to fix problems, see Resolve Problems.
    3. To update the graph and the Problems list, clickAnalyze.
  6. Export all the files displayed in the dependency graph.
    1. Click the graph background to clear the selection on all files.
    2. In the Export section, clickExport. Select from these options:
      • — Save the file paths to a variable in the workspace.
      • — Save the dependency analysis results in a printable report (HTML, Word, or PDF).
      • — Export the files in the graph as an archive.
      • — Save the dependency analysis results as a GraphML file.
      • — Save the displayed dependency graph as an image.

You can also export a subset of files in the graph. Select the files, then clickExport. The menu displays how many files are selected. TheDependency Analyzer exports only the selected files.
Number of selected files on top of the Export menu.
Note
To ensure the archive you share does not have missing files, when you use , the Dependency Analyzer includes the selected files and all their dependencies in the archive.

end
getProjectResolveOrder
ans =
5×1 cell array
{'C:\workSpace\examples\TimesTableApp\source\timesTableGame.m' }
{'C:\workSpace\examples\TimesTableApp\source\timestable.mlapp' }
{'C:\workSpace\examples\TimesTableApp\tests\tAnswerIsCorrect.m' }
{'C:\workSpace\examples\TimesTableApp\utilities\openRequirementsDocument.m'}
{'C:\workSpace\examples\TimesTableApp\utilities\runTheseTests.m' }
Resolve conflicts according to the listed order. For more details, see Resolve Git Conflicts and Resolve Conflicts in Models Under Source Control (Simulink).

Dependency Analyzer Scope and Limitations

After you run the first dependency analysis for your project, folder, or file, subsequent analyses incrementally update the results. The Dependency Analyzer determines which files changed since the last analysis and updates the dependency data for those files.

Analysis Scope

The Dependency Analyzer identifies the required files and add-ons for your project, folder, or file. The analysis covers a wide range of dependencies, including model references, subsystem references, linked libraries, MATLAB and C/C++ code, Stateflow charts, data files, S-functions, and requirements documents.

When the Dependency Analyzer encounters MATLAB code, such as in a model or block callback, or in a .m file S-function, it attempts to identify the files it references.

For files under the MATLAB root folder, the Dependency Analyzer only shows required products. It does not analyze dependencies.

The Dependency Analyzer identifies dependencies inside user-defined add-ons and dependencies that were introduced by code generation or by MATLAB code in model parameters. These options are off by default because they can be time consuming for large designs.

To specify the scope of the analysis, in the Dependency Analyzer toolstrip, click and select one or more of the following options. If you change the analysis options, the next time your run a dependency analysis a full analysis runs automatically.

Option Default Description
Referenced Projects Off Analyze dependencies inside referenced projects.The dependency graph shows all files and their dependencies in the top-level and all the referenced projects.
C/C++ Code On Analyze dependencies introduced by C/C++ code files.
Add-Ons Off Analyze dependencies inside add-ons.In theProperties pane, the Add-Ons section lists the required add-ons. To highlight or list the files that require an add-on, click the icons next to the add-on. Add-Ons section of the Properties pane on the right. Point and click the magnifying glass next to the add-on name to highlight files that use an add-on.
Model Parameters Off Analyze dependencies introduced by MATLAB code in model block parameters.
Generated Code Traceability Off Analyze dependencies introduced by code generated from a model.

Analysis Limitations

Tips

Version History

Introduced in R2023a

expand all

Starting in R2025a, you can enable dependency analysis inside referenced projects. To specify the scope of the analysis to include referenced projects, in the Dependency Analyzer toolstrip, select > .

Starting in R2024b, when you run a dependency analysis on your code, the Dependency Analyzer lists the required packages in the Add-Ons section of theProperties pane. The Dependency Analyzer also flags any missing package dependencies in the Problems section.

Starting in R2023a, the Dependency Analyzer app supports analyzing files and folders that do not belong to a project. Before R2023a, you can only access theDependency Analyzer from the Project tab or the Simulink Editor.