understand软件使用教程

understand软件使用教程

Understand特色

支持多语言:Ada、 C、 C++、C#、 Java、 FORTRAN、 Delphi、Jovial、PL/M ,混合语言的项目

多平台:Windows、Linux、Solaris、HP-UX、IRI、MAC OS X

代码语法高亮、代码折叠、交叉跳转、书签等基本阅读功能。

可以对整个项目的架构、metrics进行分析并输出报表。

可以对代码生成多种图(butterfly graph、call graph、called by graph、control flow graph、UML class graph等),在图上点击节点可以跳转到对应的源码位置。

提供Perl API便于扩展。作图全部是用Perl插件实现的,直接读取分析好的数据库作图。

内置的目录和文件比较器。

支持项目的快照,并能和自家的TrackBack集成便于监视项目的变化。

软件说明

其功能比Source Insight多(比如enum值的显示),而且#ifdef包含的比较多嵌套。

Source Insight嵌套太多时有bug。

其流程图也比Source Insight完整。

Source Insight的显示好、体积比较小、编辑速度快。

导入项目

导入项目有两种方法:

一种是从菜单栏点击文件–>新建–>项目;

另一种是点击下面界面中间的新建项目;

搜索功能

1.左侧项目结构中搜索:

鼠标点击左侧上面项目架构窗口,然后按CTRL + F键会出现如下图所示的搜索框,在框中输入想要的类回车即可

2.类中方法搜索:

将鼠标定位到右侧代码中,点击CTRL + F,会弹出搜索框,输入方法回车即可:

3.在文件中查找:

快捷键F5或者去上面菜单栏中的"搜索"栏中查找,输入想要的类或者方法,回车查找,下面会列出所有使用的地方:

4.查找实体:

菜单栏"搜索"中最后一项–查找实体,点击输入要查找的实体,回车查找:

快速搜索是软件快速使用必备的技能,包括快速定位类,方法,常量等,可以快速帮助我们解决问题。

项目视图

项目视图包含很多的功能,能够自动生成各种流程图、结构图,有助于快速理清代码逻辑、结构等,以便快速理解项目流程,快速开发。

视图查看方式有两种:

一种是鼠标点击要查看的类或者方法等上面,然后右键弹出菜单,鼠标移动到图形视图,然后弹出二级菜单。

另一种方式是点击要查看的类或者方法,然后找到菜单栏中图形–>图形;然后点击图标右下角的下拉箭头,弹出如下菜单,即可选择查看相关视图:

层级关系视图分类:

如下代码示例:

void root(void)

{

//平台初始化

Init_Flats();

//创建系统任务

ShowInitInfo("创建系统任务2...");

CreateSysTask2();

//加载主维护口

ShowInitInfo( "加载维护端口..." );

InitSysPort();

//初始化负控系统

ShowInitInfo("创建/扫描系统文件...");

if(!bInSafe)

InitFKSystem();

if(bInSafe)

{

Trace("安全模式");

}

ExInitShowInitInfo();

//退出ROOT任务

}

1.Butterfly:

显示调用和被调用关系,如果存在。选定的实体用红色标识,如图:

2.Calls:

显示从此实体发出的整个调用链。 实体之间的每条线被读作“x调用y”。

在该示例中,可知,root函数中调用的函数。

3.Called By:

展示此实体被哪些代码直接调用,此图是从底部向上看或者从右到左看;

4.Calls Relationship/Calledby Relationship:

展示两个实体间的调用和被调用关系。

操作方法:首先右键选择第一个实体,然后点击另一个实体,如果选择错误,可以再次点击其他正确即可,然后点击ok;

Calls Relationship:

root 调用ShowInitInfo

Calledby Relationship:

ShowInitInfo被root调用

5.Contains:

展示一个实体中的层级图,也可以是一个文件,一条连接线读作”x includes y“;

6.Extended By:

展示此类被哪些类所继承,

7.Extends:

展示此类继承自那个类:

结构关系视图分类:

1.Graph Architecture:

展示一个框架节点的结构关系;

2.Declaration:显示实体的结构,例如包括:函数名,函数返回值、函数实体被哪些函数调用、函数实体调用的函数;

3.Parent Declaration:展示这个实体在哪里被声明了的结构关系;

4.Declaration File:

展示所选中实体的定义文件的描述,包括该文件包含的头文件、实体(例如函数,类型,变量,常量等);

gdwLastSaveTime为文件定义的变量。

5.Declaration Type:展示组成类型;

6.Class Declaration:展示定义类和父类的成员变量;

7.Data Members:展示类或者方法的组成,或者包含的类型;

8.Control Flow:展示一个实体的控制流程图;

9.Cluster Control Flow:展示一个实体的流程图或者类似实体类型,这个比上一个更具有交互性;

10.UML Class Diagram:展示这个项目中或者一个文件中定义的类以及与这个类关联的类

11.UML Sequence Diagram:展示两个实体之间的时序关系图;

12.Package:展示给定包名中声明的所有实体

13.Task:展示一个任务中的参数,调用,实体

14.Rename Declaration:展示实体中被重命名的所有实体

由于视图比较多,所以就一一贴上代码,主要还是需要自己去调试,查看各个功能视图的展示结构以及作用,孰能生巧,多操作几下就会了,所以不再做过多的解释。最终希望这款软件能够帮助你快速开发,快速阅读别人的或者自己的代码。

术语 Terminology

Architecture 层级:

An 架构 is a hierarchical aggregation of source code units (entities). An 架构 can be user created or automatically generated. Architectures need not be complete (that is, an 架构’s flattened expansion need not reference every source entity in the database), nor unique (that is, an 架构’s flattened expansion need not maintain the set property).

层级表示代码单元(或者实体)组成的层次结构,可以由用户手动创建,也可由本

软件自动生成。一个层级可以不完整(例如一个层级的扁平化扩展有可能不会关联数据库中的所

有代码实体),也可能不唯一(扁平化扩展的层级可能不会处理其预设属性)。

Database 数据库

The database is where the results of the source code analysis, as well as project settings, are stored. By default, this is a project’s “.udb” file.

代码经分析后产生的中间结果,以及工程设置保存在数据库,其缺省扩展名为“.udb”。

Entity 实体

An Understand “entity” is anything it has information about. In practice this means anything declared or used in your source code and the files that contain the project. Subroutines, variables, and source files are all examples of entities.

Understand 描述的“实体”表示任何包含信息的事物,具体来说,代码中声明或

者使用的标识、包含工程的文件、子程序、变量、源文件都可以被称为实体。

Project 工程

The set of source code you have analyzed and the settings and parameters chosen. A “project file” contains the list of source files and the project settings.

表示源代码的集合以及相关的配置和参数,工程文件包含源文件清单和工程设置。

Relationship 关联

A particular way that entities relate to one another. The names of relationships come from the syntax and semantics of a programming language. For instance, subroutine entities can have “Call” relationships and “CalledBy” relationships.

互作用的实体之间的关系,关联的名称来源于编程语言的语法和语义,例如过程式实体具有“调用”和“被调用”的关联对象。

Script 脚本

Generally a Perl script. These can be run from within Understand’s GUI, or externally via the “uperl” CTRL. The Understand Perl API provides easy and direct access to all information stored in an Understand database.

通常指perl脚本,脚本可以通过Understand 2.5的图形用户界面或者外部的脚本命令执行。Understand Perl API提供了快捷的访问Understand数据库所有信息的接口。

parts 部件

下面的图形展示了一些Understand 图形用户界面(GUI) 中常用的部件:

常用词汇

单词 释义

Macros 宏

Variables 变量

Constants 常量

Functions 函数

Reference 引用

Metrics 参数

Architectures 架构

parameters 参数

Call 调用

Compiler 编译器

component 组件、部件、元件

portability 可移植性

Cluster 集群

Function Static Variables 静态函数变量

case sensitive 区分大小写

Whole Words Only 整词匹配

layout 布局

summary 综述、总论

features 特征

control-flow graphs 控制流程图

123456789101112131415161718192021

右键菜单

代码编辑窗口的右键菜单提供了很多浏览编辑操作的快捷方式,也提供了相关实体的特定信息。

以下介绍了右键菜单包含的典型的浏览操作(与点击对象有关):

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 添加书签活动

层级结构浏览器

层级结构节点(如文件系统目录节点和本季度修改节点)的右键菜单包含了以下一些其他对象的右键菜单没有提供的额外选项:

Graphical Views>Dependency Graphs: 显示层级结构各节点的依赖关系,参见。

Metrics Summary:提供选中节点各实体的度量数据,这些度量数据基于当前节点下的实体,不包括子节点中的实体,参见。

Metrics Export:将度量总结导出到一个CSV 文件,参见。

XML Export:将层级结构中选中节点及子节点包含的实体以XML 格式导出,参见。

Edit Architecutre:为用户自己创建的层级结构打开一个层级结构构建器,Understand

自动构建的层级结构不能被修改,参见。

Rename

Architecture:为用户自己创建的层级结构或者节点打开一个层级结构重命名窗口供用户对其中名称进行修改,Understand 2.5

自动构建的层级结构不能被重命名,参见。

Duplicate Architecture:打开层级结构复制窗口对选中层级结构的副本进行命名,参见。

Manage Architecture:打开层级结构管理窗口,参见。

转自:

[1] http://www.cnblogs.com/hackerl/p/5749169.html

[2] http://blog.csdn.net/a731062834/article/details/50988966

相关文章

[世界杯]葡萄牙禁区手球送点 卡里姆点球扳平比分
365bet体育足球比分

[世界杯]葡萄牙禁区手球送点 卡里姆点球扳平比分

🕒 07-22 👁️ 5467
滴滴代驾如何取消订单 滴滴出行取消订单的步骤
beat365最新版体育

滴滴代驾如何取消订单 滴滴出行取消订单的步骤

🕒 08-04 👁️ 4742
斗鱼tv弹幕刷401是什么梗什么意思?钱小佳为什么叫401?
beat365官方入口素描网

斗鱼tv弹幕刷401是什么梗什么意思?钱小佳为什么叫401?

🕒 07-14 👁️ 3963