understand软件使用教程_第1页
understand软件使用教程_第2页
understand软件使用教程_第3页
understand软件使用教程_第4页
understand软件使用教程_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页understand软件使用教程understand软件使⽤教程

源代码阅读⼯具(ScientificToolworksUnderstand)的特⾊

1、⽀持多语⾔:Ada,C,C++,C#,Java,FORTRAN,Delphi,Jovial,andPL/M,混合语⾔的project也⽀持

2、多平台:Windows/Linux/Solaris/HP-UX/IRIX/MACOSX

狼作文3、代码语法⾼亮、代码折迭、交叉跳转、书签等基本阅读功能。

4、可以对整个project的architecture、metrics进⾏分析并输出报表。

5、可以对代码⽣成多种图(butterflygraph、callgraph、calledbygraph、controlflowgraph、UMLclassgraph等),在图上点击节点可以跳转到对应的源代码位置。

青钱柳叶的功效6、提供PerlAPI便于扩展。作图全部是⽤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,另⼀种是点击下⾯界⾯中间的NewProject

点击后,会进⼊到如下界⾯,你可以更改项⽬名称为你要导⼊的项⽬名称,以便于以后查找,你可以直接导⼊你正在开发的项⽬,你的代码更改后,这个项⽬也会⾃动更新,⽅便你快速开发,不需要每次导⼊。

更改名称后点击Next进⼊如下界⾯,这个界⾯是让你选择你要导⼊项⽬包含了哪⼏种语⾔,注意,在C/C++后⾯有两种模式,下⾯有解释,其中Strict模式包含Object-C和Object—C++,还有Web的解释,

⾃⼰看看就好了,在此就不再解释,

然后点击Next进⼊下⾯界⾯:

在此界⾯点击上⾯的“AddaDirectory”,也就是添加你要导⼊项⽬的路径,点击后会弹出如下界⾯,此时有个奇葩就是弹出的界⾯会被上图界⾯遮挡,此时你要移开该界⾯,然后会出现下⾯界⾯:

点击后⾯的带有三个点的按钮选择你要加⼊的项⽬⽂件夹,此处不⽤打开⽂件夹,只要点中⽂件夹点击open按钮:

此时只需要点击OK即可,界⾯会跳转到如下界⾯:火龙果酱

此时有两个选项,⼀个是⽴即分析代码,⼀个选择配置,对于我们来说只需要默认即可,然后点击OK按钮,此时软件开始分析代码,分析完成后会出现如下界⾯:

左侧会出你的项⽬结构,中间出现你项⽬的名称,此时你可以操作左⾯项⽬来查看相关代码,如下图所⽰:

这么多类和⽅法如何快速定位,那肯定是搜索,该软件针对不同位置,不同属性有不同的搜索⽅法,下⾯介绍搜索功能。

羊排的家常做法搜索功能

1.左侧项⽬结构中搜索:在这个搜索中你可以快速搜索你要查看的类,快捷键,⿏标点击左侧上⾯项⽬结构窗⼝,然后按command+F键会出现如下图所⽰的搜索框,在框中输⼊你想要的类回车即可

2.类中⽅法搜索:将⿏标定位到右侧代码中,点击command+F,会弹出搜索框,输⼊⽅法回车即可:

3.在⽂件中搜索:也就是全局搜索,快捷键F5或者去上⾯菜单栏中的arch栏中查找,输⼊你想要的类或者⽅法,回车查找,下⾯会列出所有使⽤的地⽅:

4.实体类查找:软件菜单栏arch中最后⼀项–FindEntity,点击输⼊你要查找的实体类,回车查找:

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

上⾯我介绍改软件时提到可以绘制流程图等功能,下⾯就针对这个功能介绍⼀些⼀些图形的绘制功能,帮助你快速分析代码。

项⽬视图

项⽬视图包含很多的功能,能够⾃动⽣成各种流程图结构图,帮助你快速理清代码逻辑、结构等,以便快速理解项⽬流程,快速开发,视图查看⽅式有两种,⼀种是⿏标点击你要查看的类或者⽅法等上⾯,然后右键弹出菜单,⿏标移动到GraphicalViews,然后弹出⼆级菜单,如下图所⽰:

另⼀种⽅式是点击要查看的类或者⽅法,然后找到代码上⾯菜单栏中的如下图标:

然后点击图标右下⾓的下拉箭头,弹出如下菜单,即可选择查看相关视图:

层级关系视图分类:

1.Butterfly:如果两个实体间存在关系,就显⽰这两个实体间的调⽤和被调⽤关系;如下图为Activity中的⼀个⽅法的关系图:

2.Calls:展⽰从你选择的这个⽅法开始的整个调⽤链条;

3.CalledBy:展⽰了这个实体被哪些代码调⽤,这个结构图是从底部向上看或者从右到左看;

4.CallsRelationship/CalledbyRelationship:展⽰了两个实体之间的调⽤和被调⽤关系,操作⽅法:⾸先右键你要选择的第⼀个实体,然后点击另⼀个你要选择的实体,如果选择错误,可以再次点击其他正确即可,然后点击ok;

5.Contains:展⽰⼀个实体中的层级图,也可以是⼀个⽂件,⼀条连接线读作”xincludesy“;

6.ExtendedBy:展⽰这个类被哪些类所继承,

7.Extends:展⽰这个类继承⾃那个类:

结构关系视图分类:

1.GraphArchitecture:展⽰⼀个框架节点的结构关系;

2.Declaration:展⽰⼀个实体的结构关系,例如:展⽰参数,则返回类型和被调⽤函数,对于类,则展⽰私有成员变量(谁继承这个类,谁基于这个类)

3.ParentDeclaration:展⽰这个实体在哪⾥被声明了的结构关系;

4.DeclarationFile:展⽰所选的⽂件中所有被定义的实体(例如函数,类型,变量,常量等);

5.DeclarationType:展⽰组成类型;

6.ClassDeclaration:展⽰定义类和⽗类的成员变量;

7.DataMembers:展⽰类或者⽅法的组成,或者包含的类型;

8.ControlFlow:展⽰⼀个实体的控制流程图或者类似实体类型;

9.ClusterControlFlow:展⽰⼀个实体的流程图或者类似实体类型,这个⽐上⼀个更具有交互性;

10.UMLClassDiagram:展⽰这个项⽬中或者⼀个⽂件中定义的类以及与这个类关联的类

11.UMLSequenceDiagram:展⽰两个实体之间的时序关系图;

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

13.Task:展⽰⼀个任务中的参数,调⽤,实体

课外读书笔记14.RenameDeclaration:展⽰实体中被重命名的所有实体

由于视图⽐较多,所以就⼀⼀贴上代码,主要还是需要⾃⼰去调试,查看各个功能视图的展⽰结构以及作⽤,孰能⽣巧,多操作⼏下就会了,所以不再做过多的解释。最终希望这款软件能够帮助你快速开发,快速阅读别⼈的或者⾃⼰的代码。

⼀、术语Terminology

Architecture层级:

Anarchitectureisahierarchicalaggregationofsourcecodeunits(entities).Anarchitecturecanbeurcreatedorautomatically

generated.Architecturesneednotbecomplete(thatis,anarchitecture’sflattenedexpansionneednotreferenceeverysourceentityinthedataba),norunique(thatis,anarchitecture’sflattenedexpansionneednotmaintainthetproperty).

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

软件⾃动⽣成。⼀个层级可以不完整(例如⼀个层级的扁平化扩展有可能不会关联中的所

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

Databa数据库

Thedatabaiswheretheresultsofthesourcecodeanalysis,aswellasprojectttings,arestored.Bydefault,thisisaproject’s“.udb”

file.

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

Entity实体

AnUnderstand“entity”isanythingithasinformationabout.Inpracticethismeansanythingdeclaredorudinyoursourcecodeandthefilesthatcontaintheproject.Subroutines,variables,andsourcefilesareallexamplesofentities.

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

者使⽤的标识、包含⼯程的⽂件、⼦程序、变量、源⽂件都可以被称为实体。

Project⼯程

Thetofsourcecodeyouhaveanalyzedandthettingsandparameterschon.A“projectfile”containsthelistofsourcefilesandtheprojectttings.

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

Relationship关联

Aparticularwaythatentitiesrelatetooneanother.Thenamesofrelationshipscomefromthesyntaxandmanticsofaprogramming

language.Forinstance,subroutineentitiescanhave“Call”relationshipsand“CalledBy”relationships.

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

Script脚本

GenerallyaPerlscript.ThecanberunfromwithinUnderstand’sGUI,orexternallyviathe“uperl”command.TheUnderstandPerlAPIprovideseasyanddirectaccesstoallinformationstoredinanUnderstanddataba.

通常指perl脚本,脚本可以通过Understand2.5的图形⽤户界⾯或者外部的脚本命令执⾏。UnderstandPerlAPI提供了快捷的访问Understand数据库所有信息的接⼝。

parts部件

下⾯的图形展⽰了⼀些Unde

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论