术语 Terminology

Architecture 层级

An architecture is a hierarchical aggregation of source code units (entities). An architecture can be user created or automatically generated. Architectures need not be complete (that is, an architecture’s flattened expansion need not reference every source entity in the database), nor unique (that is, an architecture’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” command. 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 控制流程图

右键菜单

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

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

  • 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

使用菜单栏ProjectConfigure 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代码编辑器支持选中文本进行快速的大小写修改,方法如下:

  1. 选中代码中的一个或者多个单词。
  2. 通过菜单栏EditChange Case,或者右键菜单中选择Change Case
  3. 选择需要使用的大小写修改方式,选项包括:

层级结构浏览器

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

  • Graphical ViewsDependency Graphs: 显示层级结构各节点的依赖关系。

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

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

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

  • Edit Architecutre:为用户自己创建的层级结构打开一个层级结构构建器,Understand
    自动构建的层级结构不能被修改。

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

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

  • Manage Architecture:打开层级结构管理窗口。

understand - 笔记相关推荐

  1. Understand Short Texts by Harvesting and Analyzing Semantic Knowledge(阅读笔记)

    CSDN话题挑战赛第2期 参赛话题:学习笔记 通过语义知识的获取和分析来理解短文本 理解短文本对于很多应用来说是至关重要的,但是也面临者很多挑战.首先,短文本并不总是遵循书面语言的语法规则.因此,从词 ...

  2. 《The Art of Readable Code》 读书笔记 01

    放假前在学校图书馆借了一本新书<The Art of Readable Code>,寒假回来看看,写写其中的Key Idea .summary和一些读书笔记. Preface 前言部分主要 ...

  3. 【引用】整理Sed与Awk学习笔记(一)

    一.前言 开卷有益,在it领域有很多学习的途径,个人认为最好的学习教材是原版图书,但由于语言上的问题,大多数人只能望书兴叹!这个文档是根据我自学时的实际情况整理的,和大多数的实际需要情况所写. 其中示 ...

  4. 【安全牛学习笔记】手动漏洞挖掘(三)

    手动漏洞挖掘 Directory travarsal / File include(有区别/没区别) 目录权限限制不严 / 文件包含 /etc/php5/cgi/php.ini allow_url_i ...

  5. tensorflow学习入门笔记

    <div class="note"><div class="post"><div class="article" ...

  6. Ethernet/IP 学习笔记五

    Ethernet/IP 学习笔记五 Accessing data within a device using a non-time critical message (an explicit mess ...

  7. 《Deep Learning With Python second edition》英文版读书笔记:第十一章DL for text: NLP、Transformer、Seq2Seq

    文章目录 第十一章:Deep learning for text 11.1 Natural language processing: The bird's eye view 11.2 Preparin ...

  8. 台湾国立大学郭彦甫Matlab教程笔记(9) basic plotting

    台湾国立大学郭彦甫Matlab教程笔记(9) today: 1.basic plotting 2.graphical objects properties basics matlab has a po ...

  9. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

最新文章

  1. Java面向对象学习笔记 -- 6(内部类、Timer)
  2. 求数的绝对值一定是正数_「口袋数学」绝对值的几何意义探究及应用,培优课程...
  3. 57张图,13个实验,干死 MySQL 锁!
  4. Halcon模板轮廓坐标点获取
  5. 「万字图文」史上最姨母级Java继承详解
  6. VTK:图片之ImageVariance3D
  7. php使mysql显示错误_如何针对依赖用户输入的长查询在PHP中显示MySQL错误?
  8. 耗费360万美元开发“无坚不摧”的电脑,美国这回下血本了!
  9. Python+tkinter+sqlite3模拟通信录管理系统
  10. RFID技术为智能轮胎在未来车联网领域的应用奠定了基础
  11. 在网页上获取当前日期,数字时钟
  12. 概率论与数理统计浙大第五版 第一章 部分习题+R代码
  13. EJB - 环境设置
  14. BGI-College生信入门系列——3、数据库
  15. 天池宫颈癌智能诊断赛后总结——目标检测
  16. 2021 苟且活着,2022 向上生长
  17. python3爬虫(5):财务报表爬取入库
  18. STM32+LCD实现简单的贪吃蛇小游戏
  19. excel离散度图表怎么算_excel离散数据表格-Excel 离散程度分析图表如何做
  20. 浅谈Altera和Xilinx的FPGA区别

热门文章

  1. 保留状态的秘密 - 深入了解Java备忘录模式(Memento Pattern)
  2. 纽约州立大学Sherry R. Chemler课题组ACS Catal.:铜催化非环状烯醇的对映选择性氧硫化反应
  3. 一站式采购智能化系统
  4. 为什么很多初中生只用QQ,而不用微信
  5. 【IDEA】IDEA值得推荐的几款优秀插件
  6. Java 基础知识总结(附PDF文档)
  7. VMware vcenter/ESXI系列漏洞总结
  8. oracle flashback database,flashback database 使用及注意事项
  9. extjs proxy post
  10. Allegro PCB 转 PADS Layout