一、术语Terminology Architecture 层级
anarchitectureisahierarchicalaggregationofsourcecodeunits (entities )。 anarchitecturecanbeusercreatedorautomaticallygenerated.architecturesneednotbecomplete (thatis, narchitecture’sflattenedexpansionneednotreferenceeverysourceentityinthedatabase ),norunique(thatis,an architecture’s
由分级显示代码单元(或实体)组成的分级可以由用户手动创建,也可以由本软件自动生成。 一个水平可以不完整。 例如,一个级别的平整扩展可能不与数据库中的所有代码实体相关联。 另外,也有可能不唯一。 展平扩展的级别可能不处理默认属性。
Database 数据库
thedatabaseiswheretheresultsofthesourcecodeanalysis,as well as项目设置,are stored. By default,thisisaproject’s“”
代码分析结果的中间结果和项目设置保存在数据库中,默认扩展名为".udb "。
Entity 实体
an understand“entity”isanythingithasinformationabout.inpracticethismeansanythingdeclaredorusedorcecodeandthefiles ,variables,andsourcefilesareallexamplesofentities。
用Understand编写的“实体”表示任何事物,包括信息。 具体而言,代码中声明或使用的标识符、包含工程的文件、子程序、变量和源文件可以称为实体。
Project 工程
thesetofsourcecodeyouhaveanalyzedandthesettingsandparameterschosen.a“项目文件”containsthelistofsourcefilesandtheprojen
表示源代码集合及其相关的配置和参数,项目文件包含源文件列表和项目设置。
Relationship 关联
aparticularwaythatentitiesrelatetooneanother.thenamesofrelationshipscomefromthesyntaxandsemanticsofaprogrammminglanguage.foforation
相互作用的实体之间的关系。 相关的名字来源于编程语言的语法和语义。 例如,过程实体具有“调用”和“调用”相关对象。
Script 脚本
generallyaperlscript.thesecanberunfromwithinunderstand’sgui,orexternallyviathe“uperl”command.theunderstandperlapipipipond
通常是指perl脚本,脚本可以通过Understand 2.5图形用户界面或外部脚本命令运行。 Understand Perl API提供了一个用于快速访问Understand数据库中所有信息的接口。
parts 部件
下图显示了Understand图形用户界面(GUI )中的常用部件:
常用单词释义Macros宏Variables变量Constants常量Functions函数Reference引用Metrics参数Architectures架构pa
rameters参数Call调用Compiler编译器component组件、部件、元件portability可移植性Cluster集群Function Static Variables静态函数变量case sensitive区分大小写Whole Words Only整词匹配layout布局summary综述、总论features特征control-flow graphs控制流程图 右键菜单代码编辑窗口的右键菜单提供了很多浏览编辑操作的快捷方式,也提供了相关实体的特定信息。
以下介绍了右键菜单包含的典型的浏览操作(与点击对象有关):
View Information 信息查看(参见信息浏览器)
Graphic Views 图形视图(参见)
Edit Source/Definition 代码编辑(参见)
User Tools 用户工具(参见)
Explore 浏览(参见层级查看)
Find In… 查找(参见多文件查找)
Add Favorite 添加到收藏夹(参见收藏夹)
Metrics Chart 度量图表(参见)
以下介绍了右键菜单包含的典型的编辑操作(与点击对象有关):
Undo/Redo 撤销/重做
Cut/Copy/Past 剪切/复制/粘贴(参见文本选择和拷贝)
Select All 全选(参见文本选择和拷贝)
Jump to Marching Brace 跳到块末
Select Block 块选择
Hide/Show Inactive Lines 行显示/隐藏
Fold All 折叠所有分支
Soft Wrap 软包装
Comment Selection/Uncomment Selection 注释选择/代码选择
Change Case 大小写切换
Revert 反转
Add Bookmark 添加书签活动
Project Configuration使用菜单栏Project>Configure Project,选择C++可以打开如下窗口。
C++>Option配置页面包括如下区域:
Compiler:
选择当前工程使用的编译器或者平台,编译器相关的宏定义根据选择自动设置。需要注意的是,编译器的某些特性有可能没有得到很好的支持。
Compiler Include Paths:
输入编译器使用的头文件的所在路径,如%include%。
Allow nested comments:>>默认情况下,该选项禁止。打开的状态下,Understand允许C语言的注释符(/**/)可以嵌套使用(这种风格被ANSI禁止,但是有一些编译器支持)。
Prepend the names of externally linkable entities with:
使用一个随意的字符串作为工程中其他语言编写的代码中定义的实体的前缀。
Append the names of externally linkable entities with:
使用一个随意的字符串作为工程中其他语言编写的代码中定义的实体的后缀。
Create implicit special member functions:
源代码没有类和结构实体的相关语句时,Understand数据库自动创建默认构造函数,析构函数和隐式声明引用,从而为分析时提供相关的引用实体。该选项默认禁止。
Create references in inactive code:
如果希望将条件编译控制的非激活代码排除在外,需要取消该选项,默认选中。
Create references to local objects:
默认情况下,Understand数据库包含所有局部对象,如果希望不包含函数中声明的变量需要取消该选项。Understand 2.5的主窗口可以选择是否需要在HTML报告中包含局部对象。
Create references to macros during macro expansion:
选中情况下,数据库保存宏解析时的引用关系。有时候,该选择有用。注意,该选项选中导致数据库增加很多引用关系,会变得很慢。默认关闭。
Create references to parameters:
关闭该选项取消参数的引用关系,默认开启。
Save comments associated with entities:
此选项控制代码实体前后注释与实体的关联。
Save duplicate references:
默认情况下,引用关系只在数据库保存一份,选中该选项,会记录重复的引用关系。
Save macro expansion text:
选中该选项的情况下,可以在选中宏的右键菜单下选择Expanded Macro Text来查看宏定义值。
Use Include cache:
由于头文件通常被多个源文件使用,默认情况下,分析阶段头文件都采用高速缓存,这样能够加速分析过程,但是需要更多的内存,如果分析过程碰到内存问题,可以将此选项关闭。同时需要注意的是,高速缓存的使用会影响到分析结果。
Entity Filter窗口
根过滤器
Root Calls:
仅显示调用而不被调用的实体,如上层代码(mains),硬件调用的代码(中断处理函数)以及哑(不被使用)代码。
Root CallBys:
仅显示只被调用而不调用其他实体的实体,即最底层的函数。
Root IncludeBys:
仅显示被其他文件包含的文件,即基础头文件。
Root Classes:
仅显示不依赖于其他类的类,包括底层类和库类。
Root Decls:
仅显示最高层的声明过程(Ada)。
Root Withs:
仅显示被其他单元使用,而不使用其他单元的程序单元(包括包,任务,子程序等)(Ada)。
>
信息浏览器同步
取消Sync 勾选可以打开多个信息浏览器窗口,Sync 勾选的情况下,选中一个实体或者选择View Information 则会更新当前信息浏览器。
选中File Sync 可以保证信息浏览器内容始终与激活的代码编辑器保持同步。
引用查看信息浏览器的“References”区域显示了所有引用选中实体的相关信息:
工程浏览器
>
上下文信息边栏
显示当前激活的编辑窗口的结构和信息,标签页包含了以下信息:
Structure Browser
提供当前文件的扩展范围列表,列出了文件中函数,头文件包含,宏定义,类及其他各种结构的名称。名称旁边的图标指示了实体类型。将鼠标移动到一个条目,弹出显示实体类型和名称的活动文本框。使用Ctrl+F 可以在标签页范围内进行查找。
File Information
提供当前文件的信息浏览器。
Scope Information
显示Structure Browser 中选中实体的相关信息。
Context Browser
在左侧显示当前实体在层级结构中的位置,右侧显示当前实体包含的其他实体。文件信息标签页右上角的图标(或者使用Ctrl+,)可以将编辑窗口和CIS 中的文件替换为同目录下同名但不同扩展名的文件。例如,使用这种方法可以在.p/.cpp 和.h 文件之间快速切换。
右键菜单也提供了多种快捷的操作选择。
大小写修改Understand 2.5代码编辑器支持选中文本进行快速的大小写修改,方法如下:
选中代码中的一个或者多个单词。通过菜单栏Edit>Change Case,或者右键菜单中选择Change Case。选择需要使用的大小写修改方式,选项包括: 层级结构浏览器层级结构节点(如文件系统目录节点和本季度修改节点)的右键菜单包含了以下一些其他对象的右键菜单没有提供的额外选项:
Graphical Views>Dependency Graphs: 显示层级结构各节点的依赖关系,参见。
Metrics Summary:提供选中节点各实体的度量数据,这些度量数据基于当前节点下的实体,不包括子节点中的实体,参见。
Metrics Export:将度量总结导出到一个CSV 文件,参见。
XML Export:将层级结构中选中节点及子节点包含的实体以XML 格式导出,参见。
Edit Architecutre:为用户自己创建的层级结构打开一个层级结构构建器,Understand
自动构建的层级结构不能被修改,参见。
Rename Architecture:为用户自己创建的层级结构或者节点打开一个层级结构重命名窗口供用户对其中名称进行修改,Understand 2.5 自动构建的层级结构不能被重命名,参见。
Duplicate Architecture:打开层级结构复制窗口对选中层级结构的副本进行命名,参见。
Manage Architecture:打开层级结构管理窗口,参见。