Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

分析工程依存关系

使用依存关系分析器对工程执行依存关系分析。您可以在工作流中的任意点运行依存关系分析。在协作环境中,您通常在以下情况下需要检查依存关系:

  • 当首次建立或浏览工程时

  • 当运行测试来验证对设计的更改时

  • 在将工程的某版本提交到源代码管理之前

  • 在共享或打包工程之前

要浏览工程并使用不同视图查看其结构,请参阅探查依存关系图、视图和过滤器

要查找和修复工程中的问题,请参阅调查和解决问题

要评估某项更改将如何影响其他工程文件,请参阅查找文件依存关系

要找到工程正常运行所需的附加功能和产品,请参阅查找必需的产品和附加功能

运行依存关系分析

在对工程运行依存关系分析之前,请确保已将所有文件添加到工程中。有关详细信息,请参阅将文件添加到工程

要开始分析您的工程,请在工程选项卡的工具库中,点击依存关系分析器。或者,在工程的视图窗格中,选择依存关系分析器,然后点击分析

要分析特定文件的依存关系,请在依存关系图中选择这些文件。在影响分析部分中,点击所有依存关系或使用上下文菜单并选择查找所有依存关系

要分析附加功能内部的依存关系,请选择 分析 > 附加功能。有关可用选项的详细信息,请参阅Analysis Scope (Simulink)

您也可以直接在工程中检查依存关系。在工程的文件视图中,右键点击要分析的工程文件,然后选择查找依存关系

依存关系图显示:

  • 您的工程结构及其文件依存关系,包括模型、库、函数、数据文件、源文件和派生文件等文件之间的相互关系。

  • 所需的产品和附加功能。

  • 源文件和派生文件(如 .m.p 文件、.slx.slxp.ssc.sscp.c.mex 文件)之间的关系,以及 C/C++ 源文件和头文件之间的关系。您可以查看每个模型生成的代码,并查找在修改模型后需要重新生成哪些代码。

  • 关于问题文件的警告,例如缺失文件、不在工程中的文件、未保存更改的文件以及过期的派生文件。

您可以使用文件列表检查工程依存关系和问题文件。在工具条中,点击文件列表

对工程运行第一次依存关系分析后,后续分析会以增量方式更新结果。依存关系分析器确定自上次分析以来哪些文件发生了更改,并更新这些文件的依存关系数据。但是,如果您更新了附加功能或安装的产品并希望发现其中的依存关系变化,则必须执行完整分析。要执行完整的分析,请在依存关系分析器中,点击分析 > 全部重新分析

有关对 Simulink® 模型和库运行依存关系分析的详细信息,请参阅Perform an Impact Analysis (Simulink)

探查依存关系图、视图和过滤器

依存关系图显示您的工程结构、依存关系以及文件之间的相互关系。图中的每个项目表示一个文件,每个箭头表示一种依存关系。有关详细信息,请参阅调查两个文件之间的依存关系

默认情况下,依存关系图显示工程所需的所有文件。为了帮助您调查依存关系或特定问题,您可以使用以下过滤器之一来简化图:

选择、平移和缩放

  • 要选择图中的一个项目,请点击它。

    要选择多个文件,请按住 Shift 并点击文件。

    要选择某特定类型的所有文件,请将指针悬停在图例窗格中的对应项目上,然后点击添加到所选内容图标。

    要清除所有选择,请点击图背景。

    要从当前所选内容中删除特定类型的所有文件,请将指针悬停在图例窗格中的对应项目上,然后点击从所选内容中删除图标。

  • 要打开一个文件,请双击它。

  • 要平移依存关系图,请按住空格键,点击并拖动鼠标。或者,按住鼠标滚轮并拖动。

    对于大型图,请使用总览窗格导航。

  • 要放大和缩小,请在导航部分中,点击放大缩小。或者,使用鼠标滚轮。

  • 要使依存关系图居中并适应视图大小,请在导航部分中,点击适应视图大小。或者,按空格键

调查两个文件之间的依存关系

要查看有关两个文件之间关系的详细信息,请选择其依存关系箭头。在属性窗格的详细信息部分,您可以看到正在检查的文件的完整路径、依存关系类型(如函数调用、继承和属性类型)以及引入依存关系的位置。

要打开文件并突出显示引入依存关系的位置,请在详细信息部分中,点击影响项下的链接。

按类型、状态或标签对文件着色

查看依存关系分析器工具条的视图部分中的不同视图,以浏览您的工程文件依存关系。

  • MATLAB 文件视图仅显示视图中的 MATLAB® 文件(如 .m.mlx.p.mlapp.fig.mat.mex),并按类型对它们着色。

  • 类层次结构视图显示类继承图,并按类型(类、枚举类或抽象类)对文件着色。如果该类不在搜索路径中,依存关系分析器无法确定该类的类型。

  • 分类视图显示图中的所有文件,并按文件标签(如测试、设计和工件)对它们着色。

    使用分类视图可确定需要运行哪些测试来验证设计中的更改。有关详细信息,请参阅确定要运行的测试

  • 源代码管理视图显示图中的所有文件,并按源代码管理状态对它们着色。仅当您的工程处于源代码管理下时,才会启用此视图。

    使用源代码管理视图可在工程中查找修改的文件,并检查这些更改对工程文件其余部分的影响。有关详细信息,请参阅调查修改的文件的影响

  • 工程层次结构视图在图中显示您的项目层次结构中的所有工程,并按工程类型、顶层或引用工程对它们进行着色。此视图仅在 MATLAB Online™ 中可用。

    使用“工程层次结构”视图可以了解层次结构中的工程之间的相互关系,并标识引入循环依存关系的工程。

  • 还原到默认值用于清除所有过滤器。

    这等效于手动删除所有过滤器。过滤器出现在图的顶部。例如,如果您选择了源代码管理视图,您可以通过点击 将其删除。

应用和清除过滤器

在大型工程中,当调查问题或依存关系时,请使用不同过滤器来仅显示要调查的文件:

  • 要从图中过滤掉文件的子组,例如标记为 test 的文件或修改的文件,请使用图例窗格中的复选框。要删除图例过滤器,请点击图例过滤器

  • 要按类型、类、标签或源代码管理状态对图中的文件着色,请使用视图。要删除视图过滤器,请点击图顶部的视图: viewName。例如,如果您选择了源代码管理视图,您可以通过点击 将其删除。

  • 要仅显示某特定文件的依存关系,请选择该文件,然后在影响分析部分中,点击所有依存关系。图会显示所选文件及其所有依存关系。要重置图以显示所有工程依存关系,请删除图顶部的过滤器。例如,如果您按 timestable.mlapp 的所有依存关系进行了过滤,要删除该过滤器,请点击

  • 要清除所有过滤器并还原图以显示工程中所有分析的依存关系,请点击还原到默认值。或者,手动删除图顶部的所有过滤器。

调查和解决问题

运行依存关系分析时,依存关系分析器会识别问题,如缺失文件、文件不在工程中、未保存的更改和过期的派生文件。您可以使用依存关系图或文件列表来检查问题文件。如果未选择任何文件,右侧的属性窗格将显示整个工程的附加功能依存关系和问题列表。

使用图以图形方式调查问题文件。

  1. 属性窗格的问题部分,指向一个问题,如 File not in project,然后点击放大镜图标 。图会突出显示存在此特定问题的文件。

    要浏览这些文件,请使用搜索框中的箭头(例如,问题: File not in project)。

    要撤消突出显示,请关闭搜索框。

  2. 要查看有关特定问题文件的详细信息,请在图中选择该文件。在属性窗格的问题部分,您可以看到详细信息,包括该文件的路径、类型和问题。

    例如,如果文件是 File not in project,请右键点击图中的问题文件,然后选择添加到工程

  3. 调查问题部分中列出的下一个问题。重复这些步骤,直到解决了所有问题。有关如何修复问题的更多详细信息,请参阅解决问题

    要更新图和问题列表,请点击分析

提示

对于大型工程,在列表中查看结果可以使导航更轻松。

对于大型工程,请使用文件列表来调查您的工程问题文件。

  1. 在依存关系分析器工具条中,点击文件列表

  2. 属性窗格的问题部分,指向一个问题,如 File not in project,然后点击放大镜图标

    文件列表仅显示有该特定问题的文件。选择列表中的所有文件,并使用上下文菜单来添加到工程

  3. 调查问题部分中列出的下一个问题,例如 Missing file。重复这些步骤,直到解决了所有问题。

    要更新图和问题列表,请点击分析

解决问题

对于每个问题文件,请采取相应措施以解决问题。下表列出了常见问题,并介绍了如何修复这些问题。要解决 Simulink 特定问题,请参阅调查和解决问题

问题消息

描述

修复

文件不在工程中

文件不在工程中。

右键点击图中的问题文件,然后选择添加到工程

要从问题列表中删除文件而不将其添加到工程中,请右键点击该文件并选择隐藏警告

缺失文件

文件在工程中,但不在磁盘上。

创建该文件,或使用源代码管理恢复该文件。

找不到文件或变量。

如果此状态可以接受,请右键点击该文件并选择隐藏警告

根据您调用对象方法的方式,依存关系分析器可能会将方法与函数混淆,并报告缺失依存关系。请参阅Analysis Limitations (Simulink)

在未引用的工程中该文件位于当前工程未引用的工程中。添加包含该文件的工程作为工程引用。

在工程根目录外部

文件在工程根文件夹之外。

如果此状态可以接受,请右键点击该文件并选择隐藏警告。否则,请将其移到工程根目录下。

如果所需文件在工程根目录之外,则无法将这些文件添加到工程中。如果文件位于您的路径上,并且是不属于工程的实用工具或资源,则此依存关系可能不会指示问题。使用依存关系分析确保您了解设计依存关系。

未保存的更改

文件在 MATLAB 和 Simulink 编辑器中有未保存的更改。

保存文件。

派生文件已过期

派生的文件比其源文件更早。

重新生成派生文件。如果它是 .p 文件,您可以通过运行工程检查自动重新生成它。在 MATLAB 的工程选项卡上,点击向下箭头以展开工具库。在工程检查下,点击检查工程

如果重命名源文件,工程将检测对派生文件的影响,并提示您更新它。

文件存在语法错误

该文件包含语法错误,或依存关系分析器无法解析该文件。例如,该文件是包含语法错误的 .m 文件。依存关系分析器发出警告且不分析该文件。

如果此状态可以接受,请右键点击该文件并选择隐藏警告。否则,请修复语法错误并保存文件。

产品未安装

工程所依赖的产品缺失。

安装缺失产品。

注意

如果您使用 parforspmd 但未安装 Parallel Computing Toolbox™,则对应的代码会按顺序运行。依存关系分析器会在问题部分报告问题。

ProjectName 的循环依存关系

工程层次结构包含一个循环依存关系。

打破循环依存关系。例如,如果不需要对 ProjectName 的引用,请从顶层工程引用列表中删除 ProjectName

如果需要对 ProjectName 的引用,请重构工程层次结构以消除循环依存关系。

此警告特定于工程层次结构视图,仅在 MATLAB Online 中可用。

查找必需的产品和附加功能

对工程运行依存关系分析后,图将显示整个工程或选定文件所需的附加功能。您可以看到需要哪些产品才能使用该工程,或查明哪个文件正在引入产品依存关系。

在依存关系分析器的属性窗格中,产品部分显示整个工程所需的产品。要查看特定文件所需的产品,请在图中点击一个文件。

要查找哪个文件引入了产品依存关系,请将鼠标移至产品名称上,然后点击放大镜图标 。图会突出显示使用所选产品的文件。

要浏览这些文件,请使用搜索框中的箭头(例如,使用 "productName" 的文件)。

要撤消突出显示,请关闭搜索框。

要撤消突出显示,请关闭搜索框。

要进一步调查,您可以列出使用产品的文件,并检查在这些文件中的哪个位置引入了依存关系。在产品部分的属性窗格中,指向产品,然后点击搜索文件夹图标

如果某必需的产品缺失,产品列表会将其标记为缺失。该产品还在问题部分中列为 productName 未安装。要解决产品缺失问题,请安装该产品并重新运行依存关系分析。

查找文件依存关系

要在运行依存关系分析后调查某文件的依存关系,请在依存关系图中选择该文件。

  • 影响分析部分中,点击所有依存关系。图会显示所选文件及其所有依存关系。

  • 要仅显示所选文件正常运行所需的文件,请点击必需项

  • 要仅显示受所选文件的潜在更改影响的文件,请点击影响项

找到这些依存关系可以帮助您确定更改的影响,并确定在提交更改之前需要运行哪些测试来验证您的设计。

要调查多个文件的依存关系,请按住 Shift 键并点击文件。影响分析部分显示选择了多少个文件。

要重置图,请点击图顶部的过滤器。例如,如果您已按受 timestable.mlapp 影响的文件进行过滤,请点击

调查修改的文件的影响

要检查您所做的更改对工程文件其余部分的影响,请对工程中已修改的文件执行影响分析。

  1. 视图部分,选择源代码管理视图。图会按文件的源代码管理状态对文件着色。修改后的文件为浅蓝色。

  2. 选择图中所有修改后的文件。

    或者,通过点击图例窗格中某个项目的添加到所选内容图标,将所有修改的文件添加到所选内容。

    提示

    如果您更改了大量文件,也可以使用文件列表。

    在依存关系分析器工具条中,点击文件列表。指向状态,然后点击箭头按源代码管理状态对列表进行排序。选择所有修改的文件。

  3. 影响分析部分中,点击影响项。或者,使用上下文菜单并选择查找影响项

确定要运行的测试

要确定在提交更改之前需要运行哪些测试来验证您的设计,请在对更改的文件执行影响分析时使用分类视图。

  1. 视图部分,选择 分类视图。图会按工程标签对文件着色。

  2. 选择您更改的文件,例如 timesTableGame.m

  3. 影响分析部分中,点击影响项。或者,使用上下文菜单并选择查找影响项

    示例图显示您需要运行三个测试来验证对 timesTableGame.m 所做的更改。

导出依存关系分析结果

要导出依存关系图中显示的所有文件,请点击图背景以清除对所有文件的选择。在依存关系分析器工具条的导出部分中,点击导出。从可用选项中选择:

  • 保存到工作区 - 将文件路径保存到工作区中的一个变量。

  • 生成依存关系报告 - 将依存关系分析结果保存在可打印报告中(HTML、Word 或 PDF)。

  • 打包为存档 - 将图中的文件导出为存档。

  • 另存为 GraphML - 将依存关系分析结果保存为 GraphML 文件。

    提示

    您可以比较不同分析结果,而不必重复分析。要比较以前保存的图,请在 MATLAB 中,在当前文件夹中,右键点击两个 GraphML 文件,然后选择比较选定的文件/文件夹

  • 另存为图像 - 将显示的依存关系图另存为图像。

要导出图中的部分文件,请选择所需的文件,然后点击导出

  • 使用图例复选框、过滤后的视图影响分析工具来简化图。

  • 要选择多个文件,请按住 Shift 并选择文件。

  • 要选择过滤后的图中的所有文件,请按 Ctrl+A

菜单会显示选择了多少个文件。依存关系分析器仅导出所选文件。

注意

当您使用打包为存档时,依存关系分析器会将所选文件及其所有依存关系包含在存档中。

将文件发送到工程工具

您可以使用工程菜单将文件发送到其他工程工具。依存关系分析器仅导出当前过滤视图中的所选文件。

选择所需的文件。在依存关系分析器工具条的导出部分中,点击工程。从可用选项中选择:

  • 在工程中显示 - 选择文件后切换到工程的文件视图。

  • 发送到自定义任务 - 对所选文件运行工程自定义任务。

相关主题