中学代码

时间:2019-05-15 07:36:02下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《中学代码》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《中学代码》。

第一篇:中学代码

010407师大附中

010301西安市第一中学

010202西安市第八十三中 010527西安中学

010101西安高级中学

碑林区

学校代码学校名称

010101西安高级中学(重点)010102西工大附中(重点)010103西安交大附中(重点)010104西安市第三中学(重点)010105西安市第六中学(重点)010106省建一中(重点)010107铁一局子中(重点)010108西安市第二中学

010112西安市第二十六中学(重点)010113英才中学(重点)

010114西安市第八十二中学(重点)010115西安市第八十六中学 010116省建二中

010118西铁一中(重点)010119西北大学附中(重点)010120西工院附中

010121理工大附中

010122建科大附中(重点)010128西铁国际中学

010131西安市第八中学(重点)010133思源中学

010135西安交大阳光中学 010139西工大附中分校

010140西安交大附中分校 010144尊德中学

010146西安市六中分校(公办)

新城区

学校代码学校名称

010202西安市第八十三中(重点)010203西安市第三十八中(重点)010205西安市第八十九中(重点)010206西安市第四十三中 010207西安市第三十九中

010208西安市第三十中学(重点)010209西安市第七十二中 010210自立中学(重点)

010211大华中学

010212省建三中

010213秦川中学

010214黄河中学(重点)

010215西光中学(重点)

010216华山中学(重点)

010217昆仑中学

010218东方中学(重点)

010221陕汽二校

010222自达中学

010237东方美术高中

莲湖区

学校代码学校名称

010301西安市第一中学(重点)010302西安市第十中学(重点)010303西安市第十五中学

010304西安市第二十五中学 010305西安市第四十二中学

010306西安市第四十四中学(重点)010308信德中学

010309西安市第九十一中学 010310西电公司高中(重点)010312远东一中(重点)

010313庆安中学(重点)

010316远东二中(重点)

010318西安市外语学校(重点)010319益华中学

010320西安市第七十中学(重点)雁塔区

学校代码学校名称

010401西安市第四十五中学 010402西安市第四十六中学

010403西安市第五十三中学(重点)010405西安市育才中学(重点)010406西安市第八十五中学(重点)010407师大附中(重点)

010408西电科大附中(重点)010409东仪子中

010410交大二附中(重点)010411长安大学附中(重点)010413西科一中(重点)010415航天中学(重点)

010422师大实验中学

010425博迪中学(重点)010427西电科大附中太白校区 010430高新一中(重点)010434唐南中学(重点)010436明达中学

010437交大二附中南校区 010439大唐中学

未央区

学校代码学校名称

010501西安市第十一中学 010502西安市第三十三中学 010503西安市第四十八中学 010504西安市第五十一中学 010505西安市第六十六中学

010506西安市第七十五中学(重点)010507西煤子校

010508陕重子校(重点)010509五二四子校

010510西航一中(重点)010511华山分厂子校

010513车辆厂子中(重点)010515陕棉十厂子中(重点)010516空导学院子校

010518海红厂子校

010520华瑞中学

010521博爱中学

010522群星学校

010525和平中学

010526陕西师大锦园中学 010527西安中学(重点)

010528交大教育集团经发高级中学 010529长庆二中

灞桥区

学校代码学校名称

010601西安市第十九中学

010602西安市第三十四中学(重点)010603西安市第五十五中学 010604西安市第六十二中学

010605西安市第六十四中学(重点)010609四棉子中(重点)

010613西北电建四公司子校 010615庆华中学(重点)010620西安宇航中学

010621西安西港花园高级中学闫良区

学校代码学校名称

010701闫良二中

010702关山中学(重点)010703武屯中学

010704试飞院中学

010705西飞一中(重点)临潼区

学校代码学校名称

010801华清中学(重点)010802临潼中学(重点)010803马额中学

010804雨金中学(重点)010805新丰中学

010806油槐中学

010807徐杨中学

010809陕鼓子校

010812临潼铁中

010813西北院子校

长安区

学校代码学校名称

010901长安一中(重点)010902长安二中(重点)010903长安十二中

010904长安四中(重点)010905长安五中

010906长安六中(重点)010907长安七中

010908长安八中

010909长安九中

010910长安十中

010913长安三中

周至县

学校代码学校名称

011001周至一中

011002周至二中(重点)011003周至三中

011004周至四中

011005周至五中

011006周至六中

011007周至中学(重点)户县

学校代码学校名称

011101户县第一中学(重点)011102户县第二中学(重点)011103陕西实验中学

011104户县第四中学(重点)011105户县第五中学

011107户县第七中学

011108户县第八中学

011109户县第三中学

011111户县第六中学

011112户县惠安中学(重点)011113户县电厂子校

高陵县

学校代码学校名称

011201高陵一中(重点)011202高陵三中

蓝田县

学校代码学校名称

011301田家炳中学(重点)011302城关中学(重点)011303孟村中学

011304前卫中学

011305焦岱中学

011306泄湖中学

011307玉山中学

011310蓝田工业园高级中学

第二篇:代码检查

代码检查

摘要:代码检查是白盒测试的一种静态测试方法,是众多软件测试方法中发现软件缺陷最有效的方法之一。本文结合国内外学者在相关领域的研究情况,介绍代码检查相关的基本概念、过程和分析方法。

关键字:白盒测试,代码检查,静态分析,检查规则

一、引言

按照测试时源代码是否可见,软件测试可以分为白盒测试和黑盒测试两类。

白盒测试(结构测试),即逻辑驱动的测试,是在了解程序内部结构的基础上,对程序的逻辑结构进行检查,从中获取测试数据。白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构的程度。白盒测试一般只应用于软件开发阶段。

白盒测试,又可按照是否需要运行程序,进一步细分为了静态测试和动态测试两种。通常情况下是按照先静态后动态测试顺序来实施。其中,静态测试包括代码检查、静态结构分析、代码质量度量等测试内容。静态测试既可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

代码检查是一种对程序代码进行静态检查。传统的代码检查是通过人工阅读代码的方式,检查软件设计的正确性;用人脑模拟程序在计算机中的运行,仔细推敲、校验和核实程序每一步的执行结果,进而判断其执行逻辑、控制模型、算法和使用参数与数据的正确性。

在实践中,代码检查比动态测试更有效率,能找到更多的缺陷,通常能发现30%~70%的逻辑设计和编码缺陷。代码检查非常耗费时间,而且需要专业知识和经验的积累。代码检查定位在编译之后和动态测试之前进行,在检查前,应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表等。

代码检查可以发现的软件问题包括:声明或引用错误、函数/方法参数错误、语句不可达错误、数组越界错误、控制流错误、界面错误和输入/输出错误等。

1、代码检查

代码检查包括桌面检查、代码走查和代码审查等方式,主要检查代码和设计的一致性,代码对标准地遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面;发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型检查、程序逻辑检查、程序语法检查和程序结构检查等内容。下面对代码检查的三种具体方式进行介绍。

桌面检查

是一种传统的检查方法,由程序员检查自己编写的程序。程序员在程序通过编译之后对源代码代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。

代码走查

代码走查就是针对代码,在假想的输入情况下,逐行的浏览代码,走查代码中潜在的缺陷并记录结果的过程。

代码走查以小组会议方式进行,每小组3-5人。与代码审查不同的是,走查要求与会者扮演计算机的角色让测试用例沿被测程序的逻辑运行,是在模拟动态测试;而代码审查更多的是静态测试。

代码审查

代码审查是由一组人通过阅读、讨论和争议对程序进行静态分析的过程,以小组会的方式进行。

审查小组一般由若干程序员(包括程序代码的设计者)和代码检查人员组成。会前把设计规格说明书、控制流程图、程序文本以及要求、规范、错误检查清单交给与会者,开会时程序作者朗读解释程序,其他人则集中精力,捕捉程序在结构、功能、编码风格等方面的问题。

2、代码检查项

代码检查项即检查代码时,指定需要进行检查的内容。具体如:检查变量的交叉引用表;检查标号的交叉引用表;检查子程序、宏、函数;等价性检查;标准检查;风格检查;选择、激活路径;对照程序的规格说明,详细阅读代码,逐字逐句分析;补充文档。

检查项可以作为依据,用来编制代码规则、规范和缺陷检查表等。

3、编码规范

编码规范是程序编写过程中必须遵循的一套事先约定或者已经制度化、标准化的规则集,一般会详细的规定代码的语法规则和语法格式。

一个良好的编码规范能够带来许多好处:改善代码质量;提高开发进度;增进团队精神。对于软件开发而言,采用好的编程规范,虽然不能彻底杜绝糟糕的代码产生。但对于代码检查和将来的代码维护,仍然是意义重大的。

4、缺陷检查表

在进行人工代码检查时,使用代码缺陷检查表作为代码检查的参考依据。在软件测试项目实践中代码缺陷检查表又常被称作代码检查清单。

代码缺陷检查表中一般包括开发人员容易出错的地方和在以往的工作中遇到的典型错误。对应于不同的编程语言,代码缺陷检查表的具体内容将会有所不同。例如:对于C/C++语言代码缺陷检查表内容有以下几部分:文件结构;文件的版式;命名规则;表达式与基本语句;常量;函数设计;内存管理;C++函数的高级特性;类的构造函数、析构函数和赋值函数;类的高级特性;其他的常见问题等。

5、代码检查规则

在代码检查中,需要依据被测软件的特点,选用适当的标准与规范。在使用测试软件进行自动化代码检查或辅助代码检查时,测试工具需要内置许多编码规范。不同编程语言,对应的检查规范有所不同。针对与C/C++语言的规则有以下几类规则:通用规则、C++编码规则、C编码规则、Meyers-Klaus规则以及自定义规则。使用时,需要根据编程语言和被测程序的特点,选择适当的规则进行检查。

6、静态分析

静态分析是不执行程序,而分析程序代码的过程。源代码被静态分析器分析之后,得到的静态分析结果,通常可以表示成一棵静态语法树。其中包含了被测项目源代码的静态结构信息:基本代码成分、程序结构、语句结构、类型和模板等信息。

程序代码静态分析的结果能够给代码检查提供帮助。

三、代码检查过程

传统的代码检查是一种静态检查程序的测试方法,通常以团队的形式来进行。检查团队由程序作者,一个负责人,一个记录员以及一些检查员组成。首先需要一系列的准备工作,包括参与者的挑选和材料的准备。然后是个人准备阶段,每个小组成员各自熟悉材料。个人准备阶段后,就是实际的检查会议。在会议上,检查小组在假想的输入下,由程序作者带领,逐行的浏览代码,评审代码中潜在的缺陷。检查小组根据发现缺陷的严重程度和类型对其进行分类,并将问题记录下来供作者修正。会议后是作者的返工,作者汇报每个缺陷,最后确认每个缺陷已经被陈述过了。图 11为传统的代码检查过程。

图 1 代码检查过程示意图

代码检查过程中的两个重要阶段“个人准备”和“召开会议”阶段有以下注意事项:

1、“个人准备”阶段:

会前准备阶段是检查过程的一个关键阶段,因为如果检查者没有为检查做好充分的准备,检查效果会大打折扣。如果有检查人员没有做好准备,主审员可取消其代码检查资格,甚至取消这次检查会议。

检查人员要熟悉检查内容的相关文档,了解程序背景、设计思想和编程方法,在读懂、“吃”透代码的基础上,查出尽可能多的错误。

2、“召开会议”阶段:

参与会议的检查者应具有一定的专业技能和经验,缺乏经验的检查人员必然缺乏合适的领域知识来深入理解材料;

参与会议的检查者应做充分的个人准备,没有做充分准备的检查人员不能在检查会中做出实质性的贡献;

检查会议的速度应进行控制,如果试图在短时间内处理太多的材料,检查效果也会大打折扣。现在较为常见的代码检查速度上的建议为:汇编代码150行/小时,C语言150行/小时,而对于C++、Java这种面向对象语言,代码检查速度可以提高到200-300行/小时。

由此可见,代码检查适合于采用工具辅助的特性有:文档处理,个人准备,会议支持,数据收集。

文档处理

这是工具可支持的最明显的领域。传统的检查要求分发每份文档的复印件等,而将纸质的文档替换成计算机式的文档,不只是简单的介质变更,更是提供了一种契机——提高文档的可用性和表示性的机遇。

个人准备

首先,自动的缺陷检测可以用来发现简单的缺陷。如果简单问题能被自动发现,检查员就能专注于更加复杂/困难的缺陷,以及那些不能被自动发现的、潜在的、可能带来更大影响的问题。另外,自动化工具应该对个人准备阶段提供更多的帮助。例如,检查员可以利用检查表以及其它支持文档,并能很容易地交叉引用它们;还有些代码辅助理解工具,可为检查员理解程序、了解程序结构提供帮助。 会议支持

一些成员由于某些原因,可能没有花费足够的时间来进行准备,但他们仍然参加会议并试图掩盖他们的过失。项目管理人员可以使用计算机监控的个人准备时间信息,来剔除那些没有做好个人准备的成员,或者督促他们投入更多的努力。

召开会议时,检查员通常面对的是一堆枯燥的程序代码,如果在代码之外再结合一些图、表等便于分析、理解代码的信息,相信检查会议可以进行得更加有序和高效。

数据收集

代码检查一个重要的部分就是度量信息的收集,用来提供反馈以改进检查过程。度量信息包括会议时间、发现的缺陷、检查花费的总时间等。根据这些数据,可以来评价每一次代码审查的质量,进而给出关于代码审查的改进建议。

通过对检查过程的部分阶段提供计算机支持,代码检查可以进行得更加有效。使用计算机来支持检查过程,可以提高效率,并增加检查过程的严格性。

四、代码检查历史数据

代码检查中的历史数据本质是软件问题(缺陷)。按照不同的代码检查角度,存在多种对缺陷分类的方法。对过往发现的软件问题进行分析,总结出今后对于类似的代码需要按照某种规则来加以检查,这种的规则就是检查清单上的一条清单项,代码检查清单就是大量规则的集合。此外,由于软件问题总是以软件问题报告为载体形式出现,因此软件问题报告也被通俗的理解为代码检查历史数据。

下面对缺陷分类、代码检查清单和软件问题报告加以研究。

1、缺陷分类

关于缺陷分类存在以下几种常见的划分方式:

1)按缺陷出现的区域分类

这种分类方式是最常见的缺陷分类方式。按照出现区域将代码缺陷划分为变量级、属性级、函数/方法级和类级缺陷。其中,变量级、属性级和部分函数/方法级的缺陷,与传统的面向过程编程中的缺陷分类基本一致;而多数方法级缺陷和类级缺陷,则是针对面向对象技术编程特点提出的。

2)按检测内容分类

分为冲突、一致性问题两种。

冲突对应于文献[1]中的基于确定性“信念”的判定,而一致性问题则对应于基于可能性“信念”的判定。

3)按对代码的危害分类

按照对代码的危害,一般分为浪费时间和空间;语义混淆;暴露封装性,扩大使用权限;程序一致性问题;程序约束条件问题和空指针问题等。

2、代码检查清单(Checklist)

代码检查过程中,代码检查人员都会有一份代码检查清单。代码检查清单是一份为代码检查人员准备的缺陷检查表,检查表中开列所有可能与代码有关的缺陷,并注明了检查的内容、缺陷类型以及严重性。检查清单是检查代码的依据,代码检查人员根据它来发现并判断问题。代码检查清单中会逐条列出所有应该检查的缺陷种类,以及每条缺陷的各种特征,并且根据缺陷的严重程度和类型对其进行分类。通常每一条缺陷的特征描述如下:

1)缺陷描述:该缺陷的问题描述、举例说明,以及相应的正确形式;

2)缺陷出现的区域:分别为表达式级、语句级、声明级、模板缺陷、预处理缺陷、类级缺陷以及性能缺陷。表达式级、语句级、声明级以及预处理的缺陷,主要面向过程程序中的缺陷;模板缺陷、类级缺陷,则是针对面向对象软件的特点提出的;代码冗余等归为性能缺陷;

3)缺陷对代码的危害:代码中出现某种缺陷将会造成什么样的影响。

例如,检查表中一条缺陷的特征描述如下:

问题描述:指针所指内存释放后没有将指针赋为NULL。

举例说明:

char *p=(char *)malloc(100);strcpy(p, “hello”);free(p);//p所指的内存被释放,但是p所指的地址还是不变 …

if(p!=NULL)//没有起到防错的作用 { strcpy(p, “world”);//出错 }

正确形式:在释放内存的同时将指针置空。

char *p=(char *)malloc(100);strcpy(p, “hello”);free(p);p=NULL;//增加指针置空语句

if(p!=NULL){ strcpy(p, “world”);}

出现区域:语句级。

危害:指针被free释放后其地址并不会自动发生改变(非NULL),p成为了“野”指针,这种情况下再对p进行操作,很容易造成程序崩溃,后果非常严重。而代码检查清单正是由若干条这样的缺陷特征描述构成的。

3、软件问题报告(Software Problem Report)

在软件测试过程中,对于发现的每个软件问题(缺陷),都要进行记录该错误的特征和再现步骤等信息,以便相关人员分析和处理软件问题。为了管理测试发现的软件问题,通常要采用软件问题报告数据库,将每一个发现的软件问题输入到软件问题报告数据库中,软件问题报告数据库的每一条记录称为一个软件问题报告。

软件问题报告包括头信息、简述、操作步骤和注释。

头信息包括:被测试软件名称、版本号、缺陷或错误类型、可重复性、测试平台、平台语言、缺陷或错误范围。并要求填写完整和准确。

简述是对缺陷或错误特征的简单描述,可以使用短语或短句,要求简练和准确。

操作步骤是描述该缺陷或错误出现的操作顺序,要求完整、简洁和准确。对命令、系统变量、选项要用大写字母,对控件名称等要加双引号。

注释一般是对缺陷或错误的附加描述,一般包括缺陷或错误现象的图像,包括其他建议或注释文字。

软件问题报告是软件测试过程中最重要的文档之一。它记录了软件问题发生的环境,软件问题的再现步骤以及性质的说明,而且还可以跟踪软件问题的处理过程和状态。软件问题的处理进程从一定角度反映了测试的进程和被测软件的质量状况及改善过程。

五、代码检查规则管理的研究

1、潜在的编码规则和缺陷代码模式

潜在的编码规则(Implicit Coding Rules)和缺陷代码模式(Bug Code Pattern)是Tomoko MATSUMURA在文献[3,4]中针对代码检查实践,提出的两个相关的概念。

潜在的编码规则

潜在的编码规则包含以下几个特征:

1)不同于在开发启动时明确决定的“编码规范”的规则,这些规则在长期的测试/维护过程中是潜伏的,对这些规则的发现是不可预见的。

2)这些规则很少在设计文档或者特定的文档中被清楚的描述。他们通常只存在于开发人员、测试/维护人员的记忆中。换言之,是一种尚未系统化的经验积累和总结的结果。

3)不同于使用规范库的公用规则。对于特定的软件有其特定的规则,这也意味着对于不同的软件有不同的潜在的编码规则。

4)由于违反潜在的编码规则导致的缺陷通常情况下不是那么容易发现的。其中相当多一部分只在特定的罕见的情况下发生,所以在早期要想发现这些问题是很困难的。

5)目前,还不存在好的工具或者检查清单来发现违反潜在的编码规则的代码片段,通常的检查工具(例如PC-Lint、Purify)和通用的检查清单只能发现常见的问题。

6)为了减少违反潜在的编码规则的现象的发生,而进行重构通常很困难。要重构一个软件,准确理解代码是非常必要的,然而,老的系统太复杂,并且没有精确的文档和了

解系统的专业维护人员。总之,重构过期系统的代价很大,需要冒很大的风险。

缺陷代码模式:违反潜在的编码规则的编码模式。

缺陷代码模式不是肯定会导致缺陷的发生,一段符合缺陷代码模式的代码片段,并不意味着代码片段一定就有缺陷,缺陷代码模式只是疑似存在缺陷。另一方面,因为缺陷代码模式是静态的,没有考虑到代码片段之间的动态关联。需要代码检查人员或者维护人员把符合缺陷代码模式的代码片段提出来,并判断究竟是否存在缺陷。

在软件开发过程中发现和建立缺陷代码模式有三条主要途径。其一:在进行代码检查过程中,代码检查人员发现一个软件问题的同时,根据对该问题是否具备代表性和通用性等因素的考虑,确定是否建立一个缺陷代码模式;其二:当软件失效或者发生问题,检查对应的代码部分,发现并确定是否有潜在的编码规范与之相关;其三:分析现存的代码规范和积累的大量问题报告,从中提炼出潜在的编码规则。

在文献[3,4]中还给我们介绍了一个代码缺陷检测系统的大致工作流程,如2所示。

图2 缺陷检测模型系统的代码检查流程参考图

2、C++代码检查规则类型

1)规则层次

在代码检查工作中常常可以发现这样的现象:有些规则能在所有的项目中都能发现问题,另一些规则所能发现的问题只存在于某类项目中。

根据规则的这个特点,如图 33中所示,参考文献[2]中将代码检查规则分为两个层次:

公共规则(General checks):用于检查在大多数情况都有可能发生的缺陷。

项目相关规则(Project specific checks):用于在项目中检查可能的缺陷。

图 3 一个典型的代码检查规则清单节选图

在项目中积累了大量软件问题报告历史数据的支持下,可以从中进一步细化出与项目或开发人员相关的检查规则。

在学习任何一种计算机编程语言时,总是按照基本数据类型->表达式->语句->复杂语句->函数->整个程序体(类)的顺序逐步学习的。事实上软件正是按照这样的顺序自下而上逐层组建起来的,代码缺陷作为软件编程写时的一种异常情况,毫不例外也是按照这样层次的构建而成。在实际测试项目的代码检查过程中,我们发现在每个层次上都有可能存在潜在代码缺陷,要找到引起软件问题的根源,要求在尽可能低的层次上找到引发缺陷的代码。正因如此,非常有必要在C++语法的每个层次上都建立相应的检查元规则。

图4为一个代码检查规则体系模型图[2],图中展示了在代码检查项目开始前,通过逐级组合各种元规则和规则形成新的检查规则,最后形成了初始的检查清单。在项目实践中,经过对缺陷代码模式的推导,进而得到扩展的检查清单。初始检查清单和扩展检查清单本质上并没有什么区别,只是因为形成的时间不同。

图4 代码检查规则体系模型图

在检查代码时我们有时会想要定义一个带有否定意义的规则,如“在AA情况下如果没有BB,则可能存在一个问题”。这类检查规则采用自然语言描述比较容易,但是要用代码实现起来往往并不简单,并且对这类规则的定义和维护也比较麻烦。定义组合规则,是解决这类问题一种变通的方法。

下面简单介绍一下定义组合规则的原理。如图5中所示定义三个规则,“满足情况AA”对应规则R1,“满足在AA情况下出现BB”对应规则R2,将满足R1但不满足R2(即以!符号表示)组合则对应规则R3-“在AA情况下如果没有BB,则可能存在一个问题”。

图5 组合规则示例图

根据前面讨论,本文将代码检查的规则分类设计如下:

公共规则

定义针对函数体(含)以上层次的检查规则,在这些层次上出现的缺陷问题一般不容易精确到具体的代码行。

关键字规则

针对每个关键字定义的检查规则。由于关键字是C++语法中一种最普通的元素,单独使用关键字规则的意义不大,一般情况需要和语句、表达式规则或者复杂语句规则配合使用。

语句/表达式规则

针对基本语句类型或基本表达式定义的规则,满足对应结构的表达式,则可认为符合了相应的表达式规则。语句/表达式规则中可以包含多个关键字,在同一语句/表达式规则中包含的关键字地位是平等的,与检查的先后次序无关。

复杂语句块规则

针对条件、开关选择等多分支语句定义的规则,通常由关键字、语句/表达式进行组合来定义复杂语句块,并在定义时可以进行嵌套,在定义复杂语句块规则加入语句或表达式和复杂语句时需要考虑检查的先后次序。

高级组合规则

关键字规则、语句/表达式规则和复杂语句块规则合称为普通规则。

对于难以使用普通规则定义方式定义的复杂语义,需要定义高级组合规则。定义高级组合规则可以使用上面几种规则作为基本单元,也可以嵌套使用其它组合规则。

图6为一个由下至上、由多个缺陷代码模式组合形成的组合规则结构图。其中{}表示某条缺陷代码模式对应的规则。

图6 组合规则结构图

六、代码分析方法

1、静态分析

静态分析主要对源代码进行词法分析、语法分析,提取被分析程序的静态信息,所提取的静态信息是代码缺陷检测的基础。静态分析结果主要包括三部分信息:

程序定义信息:程序定义信息包含了程序中所有的定义和声明信息,如类定义、方法和数据成员的定义、方法内局部变量的定义等。

程序结构信息:主要指方法内的控制流信息和方法间的调用关系。静态分析器分析程序的语句分支、分支间的嵌套关系和方法调用,记录方法的控制流信息和调用信息,构造语法树。

分支内的变量操作:以方法控制流程中的分支为基本单元,记录每一分支中各语句对各变量施加的操作和操作序列。

2、数据流分析

数据流分析也是一种静态代码检查方法。它是在不通过计算机运行被测程序的条件下,利用预先进行静态分析后获取的信息,检测对变量的赋值与使用操作中,是否存在不合理情况,即找出被测程序中是否存在变量在使用前未被赋值;变量在两次赋值之间未被使用;一个变量在被赋值后是否未被使用等异常情况。

数据流分析目前的主要用途大多局限在编译器的实现和优化技术方面,而在代码检查系统中实用的数据流分析技术并不多见,主要集中在某几种缺陷检测上,如赋值引用异常检测以及内存错误检测,使用方式主要是定义数据流操作的符号,使用该符号系统构造数据流表达式(由数据操作符号构成的符号串),再分析该符号串来确定是否存在代码缺陷。

数据流分析包括以下两个步骤:一是分析程序的所有逻辑路径;二是对所有逻辑路径上的所有变量,分析其所有操作序列,然后将得到的操作序列输入自动机进行分析。因此数据流分析方法不可避免的存在以下缺点:

1)信息量多,上面所述的数据流分析方法是一种穷举法。事实上一个变量在大部分路径上存在问题的几率并不高,因此穷举每个变量的所有操作序列不可避免的要分析很多正确的信息,而且信息量巨大;

2)组合爆炸,当程序复杂度增长时,该分析方法的复杂度呈几何级数增长,并且当这种组合是建立在对所有逻辑路径、所有变量的穷举基础上时,如果不能找到一个非常高效的算法,数据流分析方法将是一个非常低效的方法;

3)实用性低,上述两点导致的数据流分析的实用性降低。

为缓解这些的缺点,数据流分析过程有许多改进方法,但实现都具有一定难度。本系统中数据流分析不是重点,采取的策略是尽可能简化数据流分析的过程,或者在可能的情况下尽量避免数据流分析。

第三篇:部门代码

部门代码

总经理:GMD 行政人事部:AD 技术部:TD 发展部:RDD 宣传部:PD 策划部:SD 工程部:ED 造价部:EC 财务部:ACD 投融资部:FD 战略计划部:SPD 招标合约部:BCD 审计部:ADD 招商部:MD 研究院:RI 物业部:PD 后勤部:LD 资源管理部:RD

第四篇:原产地证书代码

原产地证书优惠贸易协定代码

属于“亚太贸易协定”项下的进口货物填“01”;

属于“中国-东盟自贸区”项下的进口货物填“02”;

属于“内地与香港紧密经贸关系安排”(香港CEPA)项下的进口货物填“03”;

属于“内地与澳门紧密经贸关系安排”(澳门CEPA)项下的进口货物填“04”;

属于“对非洲特惠待遇”项下的进口货物填“05”;

属于“台湾水果零关税措施”项下的进口货物填“06”;

属于“中巴自贸区”项下的进口货物填“07”;

属于“中智自贸区”项下的进口货物填“08”。

第五篇:标准代码查询

标准代码查询|国家标准|行业标准|外国标准

国家标准

GJB 国家军用标准

GBJ 工程建设国家标准

GBn 国家内部标准

GB 国家标准

GWKB 国家污染物控制标准

GWPB 国家污染物排放标准

GHZB 国家环境质量标准

JJG 国家计量检定规程

JJF 国家计量技术规范

行业标准

BB 包装行业标准

CB 船舶行业标准

CH 测绘行业标准

CECS 工程建设推荐性标准

CJ 城建行业标准

CJJ 城建行业工程建设规程

CY 新闻出版行业标准

DA 档案行业标准

DB 地震行业标准

DL 电力行业标准

DZ 地质行业标准

EJ 核工业行业标准

FZ 纺织行业标准

GA 公安行业标准

GY 广播电影电视行业标准

HB 航空行业标准

HG 化工行业标准

HGJ 化工行业工程建设规程

HY 海洋行业标准

HJ 环保行业标准

HS 海关行业标准

JB 机械行业标准

JC 建材行业标准

JG 建筑行业标准

JGJ 建筑行业工程建设规程

JT 交通行业标准

JR 金融行业标准

JY 教育行业标准 LB 旅游行业标准

LD 劳动行业标准

LY 林业行业标准

GH 供销合作行业标准

MH 民用航空行业标准

MT 煤炭行业标准

MZ 民政行业标准

NY 农业行业标准

QB 轻工业行业标准

QC 汽车行业标准

QJ 航天行业标准

QX 气象行业标准

SB 商业行业标准

SC 水产行业标准

SH 石油化工行业标准

SJ 电子行业标准

SL 水利行业标准

SN 商品检验行业标准

SY 石油行业标准

TB 铁道行业标准

TD 土地行业标准

WH 文化行业标准

WM 外贸行业标准

WB 物资行业标准

WS 卫生行业标准

XB 稀土行业标准

YB 黑色冶金行业标准

YC 烟草行业标准

YD 通信行业标准

YS 有色冶金行业标准

YY 医药行业标准

YZ 邮政行业标准

ZY 中医药行业标准

WB 物资行业标准

WS 卫生行业标准

XB 稀土行业标准

YB 黑色冶金行业标准

YC 烟草行业标准

YD 通信行业标准

YS 有色冶金行业标准

YY 医药行业标准

YZ 邮政行业标准

ZY 中医药行业标准

国际标准

ITU 国际电信联盟

CIE 国际照明委员会标准

IEC 国际电工委员会标准

ISO 国际标准化组织

IPCS 世界卫生组织环境健康标准

OIE 国际兽疫局标准

OIML 国际计量组织标准

ICBO 国际建筑员工会议(统一建筑规范)CAC 国际食品法典委员会标准

IIR 国际制冷协会标准

WHO 世界卫生组织

国外标准

A2LA 美国实验室认证协会

AA 美国铝协会

ABS 美国船舶局

AES 美国音频工程协会

AIA 美国航天工业协会

AIAA 美国航空与航天协会

AIIM 美国信息与图像管理协会

ANS 美国核协会

ANSI 美国国家标准协会

API 美国石油协会

ARINC 美国航空无线电设备公司

ASA 美国声协会

ASME 美国机械工程师协会

ASQ 美国质量控制协会

ASSE 美国卫生工程协会

AWS 美国焊接协会

BHMA 美国建筑小五金制造商协会

CGSB 加拿大通用标准局标准

CSA 加拿大标准协会

CTI 美国冷却塔学会

DOD 美国国防部标准文件(含MIL标准)EIA 美国电子工业协会

GM 美国通用汽车公司标准

IES 美国照明工程学会

ISO 国际标准化组织

MSS 美国阀门及配件工业制造商标准化协会

NACE 美国全国腐蚀工程师协会

NEMA 美国电气制造商协会

NISO 美国国家信息标准协会

NSF 美国全国卫生基金会 PFI 美国制管学会

RWMA 美国电阻焊接机制造商协会

SAE 美国机动工程师协会

SMPTE 美国电影与电视工程师协会

SSPC 美国钢结构油漆委员会

UL 美国保险商实验室协会

VDI 德国工程师协会标准

AASHTO 美国国家公路与运输协会标准

ASHRAE 美国采暖、制冷与空调工程师协会

IEEE 美国电气与电子工程师协会标准

IPC 美国印刷电路协会

AS 澳大利亚国家标准

ONORM 奥地利国家标准

ASTM 美国材料与试验协会标准

AAR 美国铁路协会标准

AI 美国沥青学会标准

AISI 美国钢铁协会标准

AOAC 美国官方分析化学师协会标准

APHA 美国公共卫生协会

AREMA 美国铁路工程协会标准

ASAE 美国农业工程师协会标准

ASME 美国机械工程师协会标准

ASTM 美国材料与试验协会标准

ASTMSTP 美国材料与试验协会特殊出版物

ATIS 美国信息技术协会标准

AWPA 美国木材防腐协会标准

AWWA 美国给水工程协会标准

BGC 保加利亚国家标准

BMV 德国联邦交通筑路规程

CFR 美国联邦法规

CHI 美国氯气协会

CI 美国绳索协会

CSMA 美国化学特殊制品制造商协会标准

CSN 捷克斯洛伐克国家标准

DIN 德国国家标准

EPA 美国环保局标准

GA 美国石膏协会标准

GOST 俄罗斯国家标准

ISO 国际标准化组织标准

JEM 日本团体规格追录

JIS 日本国家标准

JRA 日本冷冻空调工业会标准

JUS 南斯拉夫国家标准

JWWA 日本给水协会标准 TTMA 美国卡车拖车制造商协会

WES 日本焊接协会

KPS 北朝鲜国家标准

KS 韩国国家标准

MS 马来西亚国家标准

NAPHCC 美国全国管道供热、供冷承包商协会

NF 法国国家标准

NFPA 美国防火协会标准

NP 葡萄牙国家标准

NS 挪威国家标准

NZS 新西兰国家标准

SSNAME 美国船舶建筑师和海运工程师协会

SR(STAS)罗马尼亚国家标准

SS 新加坡国家标准

TAPPI 美国纸浆及造纸工业技术协会

TIS 泰国国家标准

TRA 美国轮胎轮辋协会手册

ASME 美国锅炉与压力容器标准

AAMA 美国建筑用铝制造商协会

ABMA 美国锅炉制造商协会

ABYC 美国短艇与游艇委员会

AISC 美国钢结构学会

AITC 美国木结构学会

AMCA 美国通风与调节协会

ACI 美国混凝土学会

CIMA 美国建筑工业制造商协会

IFI 美国工业用紧固件学会

JACA 日本空气净化协会

JCS 日本电线工业会

NCRP 美国全国辐射防护与计测委员会

NDIS 日本无损检验协会

SABS 南非标准

下载中学代码word格式文档
下载中学代码.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    excel函数代码

    excel公式应用大全 1、ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值。 使用格式:ABS(number) 参数说明:number代表需要求绝对值的数值或引用的单元格。 应用举例:如果在B......

    企业部门代码

    总经办:GM 品质部:QA 制造部:MD 人事部:HR 行政部:AD 研发部:RD 财务部:FD 计划部:PMC 仓库管理也叫仓储管理,英文Warehouse Management,简称WM,指的是对仓储货物的收发、结存......

    struts2代码分析

    1. Struts2架构图和请求处理流程 请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher主要通过Ac......

    软件工程代码总结

    1、事件处理事件的方法 2、class和id的用途是不一样的;首先要说明一下,选择器一共有三种: html标记,class,id; html标记就不说了,class是对html标记选择器的一种扩展,CLASS可以给......

    组织机构代码年检

    一、需要提供如下材料: 组织机构代码证书原件、2010年工商部门年检过的营业执照原件及A4复印件(如果是分支机构还要提供企业法人在有效期并经年检的代码证书A4复印件)、法定代......

    写代码总结

    一、排版: 1.关键词和操作符之间加适当的空格。 2.相对独立的程序块与块之间加空行 3.较长的语句、表达式等要分成多行书写。 4.划分出的新行要进行适应的缩进,使排版整齐,语句......

    组织机构代码服务指南

    组织机构代码服务指南一、组织机构代码简介中华人民共和国组织机构代码证是依据国发[1989]75号文由国家质量技术监督部门给每个机关、企事业单位、社会团体及依法成立的其他......

    高考各县代码

    4/12/20131:59:13 AM- 1 -555一、性别代码1男2女二、政治面貌代码1中共党员2中共预备党员3共青团员4群众三、考生类别代码1城市应届2农村应届3城市往届4农村往届四、毕业类......