EASTT实验报告.docVIP

  • 70
  • 0
  • 约2.65万字
  • 约 65页
  • 2017-01-06 发布于贵州
  • 举报
EASTT实验报告EASTT实验报告

1.1 静态分析表格 当用户选择静态分析静态分析表格菜单项时,工作区中将产生一个分隔窗口。窗口左栏为一树型结构,静态分析的所有基础指标都被分类安排在树型结构中;窗口右栏为一列表结构,当用户在左栏选中某个指标后,该列表结构就会显示出相应指标的详细内容。 1.1.1 文件的静态分析(查看所有文件的相关信息) 1.1.1.1 所有文件列表 第一列:所有文件名称 第二列:文件的行数 第三列:文件上次的修改时间 如:function.h共117行,最近修改在1996-4-15 01:36:00 1.1.1.2 文件的紧张程度表(文件的注释行、空行多不多) 第一列:文件名 第二列:文件的行数 第三列:空行的行数 第四列:注释行的行数 第五列:所有注释行的行数(不明白与第四列的区别) 第六列:有效行的行数(总行数-空行-注释行) 如:function.h共117行,空行24行,注释行14行,有效行79行 1.1.2 类的静态分析(查看关于类的有关信息) 1.1.2.1 类声明表 第一列:类名 第二列:类声明所在文件 第三列:类声明的左括号所在代码行 (这个definition line 名称起的不好,会让人理解为声明这个类,用了几行) 如:node类是在function.h中的第4行开始声明 1.1.2.2 类继承表 (查看类的继承关系) 第一列:类名 第二列:父类名(基类名) 第三列:继承类型(public private protected) 如:variable类以公共继承方式继承了node类 1.1.2.3 类派生表(查看类的派生关系,与类继承表对应) 第一列:类名 第二列:子类名(派生类名) 第三列:派生类型 如:node类以公共派生方式派生了variable类 1.1.2.4 构造函数、析构函数表(了解函数如何构造) 第一列:类名 第二列:构造函数或析构函数名 第三列:函数所在文件 第四列:函数开始(左括号)所在行 如:fuction类的构造函数function::fuction(char *s)是在FUCTION.CPP文件中的第10行开始定义的 1.1.2.5 成员变量表(了解类的构造) 第一列:类名 第二列:成员变量 第三列:成员变量类型 第四列:成员变量的访问属性(public private protected) 如:node类的一个成员变量right是指向node类型的指针,访问属性是受保护的。 1.1.2.6 成员函数表(了解类的构造) 第一列:函数名 第二列:函数定义所在文件 第三列:函数定义开始所在行 如:1)function::parenthesis(char ach)是在FUNCTION.CPP的第50行开始定义的 2)node::enal()的声明是在function.h,但没有具体定义所以开始行是0 1.1.2.7 嵌套声明类表(了解哪些类是嵌套声明的) 第一列:类名 第二列:被嵌套声明的类型 第三列:定义行 如:symbol_table类中声明了info这个类,不知道为什么没有定义行这项 1.1.2.8 友元类表(了解友元类,查看类间的访问关系) 第一列:类名 第二列:友元类名 如:node类声明了function类为其友元类 1.1.2.9友元类表(了解友元类,查看类间的访问关系,与上表对应) 第一列:友元类名 第二列:类名 如:node类声明了function类为其友元类 1.1.2.10 友元函数(了解友元函数,查看类间的访问关系) 第一列:类名 第二列:友元函数名 第三列:函数所在文件 第四列:函数开始所在行 1.1.2.11 虚函数表(查看虚函数,加深了解类间的继承关系) 第一列:函数名 第二列:函数所在文件 第三列:函数开始所在行 如:variable:::eval()继承了虚函数node::eval(),定义开始在function.h的第77行 1.1.2.12 类的大小(查看类的大小,我个人认为这个表完全可以与类的声明表放在一起) 第一列:类名 第二列:类的行数(经过验证,这个行数仅仅是类声明的时候,左括号到右括号之间的行数,没有考虑在类外进行函数的定义所占的长度。如果同一个类,函数定义在类的声明内与定义在声明外它的类的大小是不一样的。我个人认为这样的统计没有太大用) 如:node类大小为12行 1.1.2.13 类的深度表 (派生的类深度加一,与继承派生表配合,很容易画出类关系图) 第一列:类名 第二列:类深度 我个

文档评论(0)

1亿VIP精品文档

相关文档