understand软件使⽤教程(详解)
源代码阅读⼯具(Scientific Toolworks Understand)的特⾊
1、⽀持多语⾔:Ada, C, C++, C#, Java, FORTRAN, Delphi, Jovial, and PL/M ,混合语⾔的project也⽀持
2、多平台: Windows/Linux/Solaris/HP-UX/IRIX/MAC OS X
3、代码语法⾼亮、代码折迭、交叉跳转、书签等基本阅读功能。
4、可以对整个project的architecture、metrics进⾏分析并输出报表。
5、可以对代码⽣成多种图(butterfly graph、call graph、called by graph、control flow graph、UML class graph等),在图上点击节点可以跳转到对应的源代码位置。
6、提供Perl API便于扩展。作图全部是⽤Perl插件实现的,直接读取分析好的数据库作图。
7、内置的⽬录和⽂件⽐较器。
8、⽀持project的snapshot,并能和⾃家的TrackBack集成便于监视project的变化。
软件说明
功能⽐sourceinsight多些(⽐如enum的值的显⽰),⽽且#ifdef包含的⽐较多嵌套,sourceinsight如果太多嵌套,有bug. 流程图之类也⽐sourceinsight完整.sourceinsight的显⽰明显好多了,⽽且体积⽐较⼩,编辑速度快,可能是⽤熟的关系,还是sourceinsight⽐较顺⼿.
可惜sourceinsight太长时间没有更新了. 现在我⼀般⽤sourceinsight,需要看某些SI没有的⽤understand.另外好像两个软件都不太⽀持
#if (defined(MACRO) || defined(MACRO1))这样的解析.
导⼊项⽬
导⼊项⽬有两种⽅法,⼀种是从菜单栏点击File–>New–>Project,另⼀种是点击下⾯界⾯中间的New Project
点击后,会进⼊到如下界⾯,你可以更改项⽬名称为你要导⼊的项⽬名称,以便于以后查找,你可以直接导⼊你正在开发的项⽬,你的代码更改后,这个项⽬也会⾃动更新,⽅便你快速开发,不需要每次导⼊。
更改名称后点击Next进⼊如下界⾯,这个界⾯是让你选择你要导⼊项⽬包含了哪⼏种语⾔,注意,在C/C++后⾯有两种模式,下⾯有注释,其中Strict模式包含Object-C和Object—C++,还有Web的注释,⾃⼰看看就好了,在此就不再解释,
然后点击Next进⼊下⾯界⾯:
在此界⾯点击上⾯的“Add a Directory”,也就是添加你要导⼊项⽬的路径,点击后会弹出如下界⾯,此时有个奇葩就是弹出的界⾯会被上图界⾯遮挡,此时你要移开该界⾯,然后会出现下⾯界⾯:
点击后⾯的带有三个点的按钮选择你要加⼊的项⽬⽂件夹,此处不⽤打开⽂件夹,只要点中⽂件夹点击open按钮:
此时只需要点击OK即可,界⾯会跳转到如下界⾯:
此时有两个选项,⼀个是⽴即分析代码,⼀个选择配置,对于我们来说只需要默认即可,然后点击OK按钮,此时软件开始分析代码,分析完成后会出现如下界⾯:
左侧会出你的项⽬结构,中间出现你项⽬的名称,此时你可以操作左⾯项⽬来查看相关代码,如下图所⽰:
这么多类和⽅法如何快速定位,那肯定是搜索,该软件针对不同位置,不同属性有不同的搜索⽅法,下⾯介绍搜索功能。
搜索功能
1.左侧项⽬结构中搜索:在这个搜索中你可以快速搜索你要查看的类,快捷键,⿏标点击左侧上⾯项⽬结构窗⼝,然后按command + F键会出现如下图所⽰的搜索框,在框中输⼊你想要的类回车即可
金炯旭2.类中⽅法搜索:将⿏标定位到右侧代码中,点击command + F,会弹出搜索框,输⼊⽅法回车即可:
3.在⽂件中搜索:也就是全局搜索,快捷键F5或者去上⾯菜单栏中的arch栏中查找,输⼊你想要的类或者⽅法,回车查找,下⾯会列出所有使⽤的地⽅:
4.实体类查找:软件菜单栏arch中最后⼀项–Find Entity,点击输⼊你要查找的实体类,回车查找:
快速搜索是软件快速使⽤必备的技能,包括我们常⽤的idea⼀样,快速定位类,⽅法,常量等,可以快速帮助我们解决问题。
上⾯我介绍改软件时提到可以绘制流程图等功能,下⾯就针对这个功能介绍⼀些⼀些图形的绘制功能,帮助你快速分析代码。
项⽬视图包含很多的功能,能够⾃动⽣成各种流程图结构图,帮助你快速理清代码逻辑、结构等,以便快速理解项⽬流程,快速开发,视图查看⽅式有两种,⼀种是⿏标点击你要查看的类或者⽅法等上⾯,然后右键弹出菜单,⿏标移动到Graphical Views,然后弹出⼆级菜单,如下图所⽰:
另⼀种⽅式是点击要查看的类或者⽅法,然后找到代码上⾯菜单栏中的如下图标:
然后点击图标右下⾓的下拉箭头,弹出如下菜单,即可选择查看相关视图:
层级关系视图分类:
胡萝卜羊肉汤1.Butterfly:如果两个实体间存在关系,就显⽰这两个实体间的调⽤和被调⽤关系;如下图为Activity中的⼀个⽅法的关系图:
2.Calls:展⽰从你选择的这个⽅法开始的整个调⽤链条;
3.Called By:展⽰了这个实体被哪些代码调⽤,这个结构图是从底部向上看或者从右到左看;
4.Calls Relationship/Calledby Relationship:展⽰了两个实体之间的调⽤和被调⽤关系,操作⽅法:⾸先右键你要选择的第⼀个实体,然后点击另⼀个你要选择的实体,如果选择错误,可以再次点击其他正确即可,然后点击ok;
邮箱签名5.Contains:展⽰⼀个实体中的层级图,也可以是⼀个⽂件,⼀条连接线读作”x includes y“;
6.Extended By:展⽰这个类被哪些类所继承,
7.Extends:展⽰这个类继承⾃那个类:
带状疱疹怎么传染结构关系视图分类:
1.Graph Architecture:展⽰⼀个框架节点的结构关系;
2.Declaration:展⽰⼀个实体的结构关系,例如:展⽰参数,则返回类型和被调⽤函数,对于类,则展⽰私有成员变量(谁继承这个类,谁基于这个类)
3.Parent Declaration:展⽰这个实体在哪⾥被声明了的结构关系;
4.Declaration File:展⽰所选的⽂件中所有被定义的实体(例如函数,类型,变量,常量等);
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 architecture is a hierarchical aggregation of source code units (entities). An architecture can be ur created or automatically generated. Architectures need not be complete (that is, an architecture’s flattened expansion need not reference every source entity in the databa), nor unique (that is, an architecture’s flattened expansion need not maintain the t property).
层级表⽰代码单元(或者实体)组成的层次结构,可以由⽤户⼿动创建,也可由本
软件⾃动⽣成。⼀个层级可以不完整(例如⼀个层级的扁平化扩展有可能不会关联数据库中的所
有代码实体),也可能不唯⼀(扁平化扩展的层级可能不会处理其预设属性)。
Databa 数据库
The databa is where the results of the source code analysis, as well as project ttings, are stored. By default, this is a project’s “.udb” file.
礼宾员是做什么的代码经分析后产⽣的中间结果,以及⼯程设置保存在数据库,其缺省扩展名为“.udb”。
An Understand “entity” is anything it has information about. In practice this means anything declared or ud in your source code and the files that contain the project. Subroutines, variables, and source
files are all examples of entities. Understand 描述的“实体”表⽰任何包含信息的事物,具体来说,代码中声明或
者使⽤的标识、包含⼯程的⽂件、⼦程序、变量、源⽂件都可以被称为实体。
Project ⼯程
The t of source code you have analyzed and the ttings and parameters chon. A “project file” contains the list of source files and the project ttings.
表⽰源代码的集合以及相关的配置和参数,⼯程⽂件包含源⽂件清单和⼯程设置。
Relationship 关联
A particular way that entities relate to one another. The names of relationships come from the syntax and mantics of a programming language. For instance, subroutine entities can have “Call” relationships and “CalledBy” relationships.互作⽤的实体之间的关系,关联的名称来源于编程语⾔的语法和语义,例如过程式实体具有“调⽤”和“被调⽤”的关联对象。
Script 脚本
Generally a Perl script. The can be run from within Understand’s GUI, or externally via the “uperl” command. The Understand Perl API provides easy and direct access to all information stored in an Understand databa.
通常指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 静态函数变量
ca nsitive 区分⼤⼩写
Whole Words Only 整词匹配
layout 布局
summary 综述、总论
features 特征
control-flow graphs 控制流程图
右键菜单
代码编辑窗⼝的右键菜单提供了很多浏览编辑操作的快捷⽅式,也提供了相关实体的特定信息。
以下介绍了右键菜单包含的典型的浏览操作(与点击对象有关):
View Information 信息查看(参见信息浏览器)
Graphic Views 图形视图(参见)
Edit Source/Definition 代码编辑(参见)
Ur 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 Ca ⼤⼩写切换
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:打开层级结构管理窗⼝,参见。