编辑: ACcyL | 2019-07-02 |
} 代码清单
1 另外,这个 MOBILE 项目需要对编码规则进行严格恪守.这个项目主要目标是建成一个软件框架给 其他开发人员使用;
它必须是一致的、组织良好的,以使得软件开发能够很好地在这个框架上进行.越多 的项目涉及进来,就越需要一个自动化的工具.这就是为什么 MOBILE 项目要采用一个编码规则检察器. Parasoft 的C++TEST(www.parasoft.com)提供了自动的 C/C++单元测试,和自动化的编码规则检 查.我们选择 C++TEST 作为我们的编码规则检查器,是因为它对于我们的大多数考虑来说是最有效的解 决方案. C++TEST 的一个明显的特点就是它的基于图形化界面的规则.如图
1 显示了对规则 每个全程变量 必须进行初始化 的图形化界面规则描述,在分析源代码时,每当发现一个 全程变量 ,这条规则便会 评估逻辑组件.如果以下条件中的任何不相符合,程序就会报告有一个代码违规: 上海市打浦路
1 号金玉兰广场西楼
902 室Rm. 902, Golden Magnolia Plaza, W.
1 Dapu Road, Huangpu District
200023 Shanghai, P.R. China www.parasoft.com 第3页?侦测到的全程变量是一个外部的声明 ? 它没有进行初始化 ? 它的类型不是一个数组或类 图1: Parasoft C++test 中基于图形化界面的编码规则 图形化界面简化了规则创建.大多数的 C++代码检查器在创建规则时需要编写脚本;
这有一定的难 度,并要求更多的 C++编程知识. 因为现有的条件是图形化显示的,所以基本图形化界面的规则能被容易地理解和执行.通过基于图形 化界面的规则可以有更好的可扩展性,因为通过图形化界面只有预定义的节点和条件可以选择. 选择一个编码规则检查器 我们的选择标准包括产品使用特点,但不是特点的细节(规则选择,规则执行,可量测性) .我们通 过以下途径来建立这些标准:以前的使用编码规则检查器的经验,项目开发部门的反馈,产品评估报告. 能很灵活地修改规则:大多数编码规则检查器包括预执行的规格.拥有内含的规则可以减少规则执行 的工作量.但是这些规则通常并不完全符合我们的编码风格.而且,因为大多规则中是简单地执行,不实 的报错是常见的事,因而使得结果不具可靠性.我们需要一个简单的方法来自定义规则以排除异常情况, 添加新的规则或者修改已存在的规则.类似于 LINT 的工具可以检查一些编码规则项,但缺少规则自定义 的特点.尽管有些检查器也能为规则自定义提供参数修改,但我需要更多的灵活性来修改详细规则. 上海市打浦路
1 号金玉兰广场西楼
902 室Rm. 902, Golden Magnolia Plaza, W.
1 Dapu Road, Huangpu District
200023 Shanghai, P.R. China www.parasoft.com 第4页能在不同的级别上报告编码规则的遵守程度: 许多编码规则检查器支持文件级别的报告.然而,出 于管理目的,文件包级和项目级的报告成为管理者们所希望有的.比如,要项目经理经常希望按文件包或 项目来浏览编码规则违规以编码规则违规的趋势和对编码规则违规校正的优先级别,特别是在项目工期快 要到了的时候. 能与开发环境相集成:许多规则违规能被很容易地校正.比如,像 使用 TAB 而不是空格进行缩进 之类的违规可以通过简单地用 TAB 替换空格就可以校正.在这样的情形中,有一个可以直接访问违规源 代码(通过与开发环境紧密集成)的编码规则检查器,就可以非常有效地减少校正所需要的时间. 另外,当一个工程向前推进的时候,它将所含更多的文件和更的 include/directive 设定.如果检查 器不在 IDE 内运行,那么检查器就要通过导入或同步 IDE 项目文件(如MAKEFILES,DSP/DSW 文件 等)来创建工程文件. 能为 C/C++创建统一的规则:我们的主要的编程语言,C 和C++,有一个相似的结构(除了 C++ 具有更多的基于对象的和类属性编程) .在两种语言上为相同的项维护两种不同的规则将需要额外的资源. 能够识别语言变量:相比 C,C++的历史比较短.编译器提供商们在 ISO C/C++发布以前产出了他 们自己人的 C++编译器,并且研究显示,许多 C++的实际应用并不能很好地支持 C++ ISO 标准 (http://www.ddj.com/184405483).因为编码规则检查器经常分析源代码,所以能识别语言变量就显得 非常重要了. 能检查未经预编译的头文件:一些编码规则检查器缺少对头文件的直接检查,取而代之的是,在头文 件中的代码违规,是通过检查在预编译执行的文件中的头文件进行间接地报告.在这种情况下,一些代码 违规被忽略了,如在头文件中与预处理程序指令和注释相关代码违规,这里通常包含一些被其他开发人员 使用的重要信息.所以,直接对头文件的检查是一个我们所希望的功能. 使用检查器的经验 应用一个编码规则检查器可以减少在应用中的编码标准违规.然而,侦测和消除的违规数量取决于目 标工程的特点和编码规则的质量.我们发现每个工程都有其相似的整体倾向,但同时又有影响编码规则检 查的不同细节.因些,得出来的结果应该被看成是一个趋势而不是一个确定的样式. 上海市打浦路