CMMI- 软件开发代码编程规范模板下载.docx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《CMMI- 软件开发代码编程规范模板下载.docx》由用户(Dowson)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CMMI- 软件开发代码编程规范模板下载 CMMI 软件 开发 代码 编程 规范 模板 下载
- 资源描述:
-
1、广东技术股份有限公司 1 编 程 规 范 文件编号HW-SP-IMPT-G01 文件状态 草稿 正式发布 正在修改 当前版本V1.0 拟 制张三日期年月日 审 核李四日期年月日 批 准王五日期年月日 发布日期年月日 生效日期年月日 广东技术股份有限公司 2 广 东技 术 股 份 有 限 公 司 修订历史记录 A - 增加M - 修订D - 删除 变更版本号日期变更类型 (A*M*D) 修改人摘要备注 1.0A建立编程规范 广东技术股份有限公司 3 广东技术股份有限公司 4 目录 1目的.5 2使用范围.5 3C/C+编程规范.5 3.1文件结构.5 3.2程序的版式.10 3.3命名规则.18
2、 3.4缩进规则.23 4JAVA 编程规范.25 4.1代码组织与风格.25 4.2注解.26 4.3命名.29 4.4声明.31 4.5表达式和语句.32 4.6错误处理和异常事件.33 4.7可移植性.33 4.8复用.33 广东技术股份有限公司 5 1目的 定义组织的 C/C+,JAVA 编程规范,以提高程序的可读性、可靠性。 2使用范围 适合于公司采用 C/C+、JAVA 编程语言开发的所有软件项目。 3C/C+编程规范 3.1文件结构 每个 C/C+程序通常分为两个文件。一个文件用于保存程序的声明(declaration) , 称为头文件。另一个文件用于保存程序的实现(implem
3、entation) ,称为定义(definition) 文件。 C/C+程序的头文件以“.h”为后缀,C 程序的定义文件以“.c”为后缀,C+程序 的定义文件通常以 “.cpp” 为后缀 (也有一些系统以 “.cc” 或 “.cxx” 为后缀, 这里以 Windows 平台为准) 。 3.1.1版权和版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例 3-1) ,主要内容有: 版权信息 文件名称、标识符、摘要 当前版本号、作者/修改者、完成日期 版本历史信息 说明:Description 一项描述本文件的内容、功能、内部各部分之间的关系及本文件与 其它文件关系等。History
4、是修改历史记录列表,每条修改记录应包括修改日期、修改者及 修改内容简述。示例: 广东技术股份有限公司 6 /* *Copyrights 2006,东信和平智能卡股份有限公司 *XXXXXX 项目组 *All rights reserved. * *Filename: *Sample.cpp *Indentifier: *EP-PRO-SRC-020620-TST(这里只作为示例) *Description: *这里只作为示例 *Version: *V1.0 *Author: *张三 *Finished: *2006 年 06 月 07 日 *History: *张三2002/06/01V0.9
5、 文件创建 *张三2002/06/07V1.0 修改了 */ 广东技术股份有限公司 7 /* *Copyrights 2006,东信和平智能卡股份有限公司 *XXXXXX 项目组 *All rights reserved. * *Filename: *这里填入该文件的名称 *Indentifier: *这里填入该文件的标识(参见软件配置管理) *Description: *这里填入该对文件内容的简要描述(一般情况下用中文) *Version: *Vx.x *Author: *填入作者姓名(一般情况下用中文) *Finished: *xxxx 年 xx 月 xx 日 *History: *(作者
6、日期版本说明) *文件修订历史纪录(一般情况下用中文) */ / 版权和版本声明见示例 3-1,此处省略。 #ifndef Sample_H/ 防止 Sample.h 被重复引用 #define Sample_H #include / 引用标准库的头文件 #include “MyClass.h”/ 引用非标准库的头文件 void FunctionX();/ 全局函数声明 class Sample/ 类结构声明 广东技术股份有限公司 8 3.1.2头文件的结构 头文件由三部分内容组成: 头文件开头处的版权和版本声明(参见示例 3-1) / 版权和版本声明见示例 3-1,此处省略。 #includ
7、e “Sample.h”/ 引用头文件 void FunctionX()/ 全局函数的实现体 void Sample:MethodX() / 类成员函数的实现体 示例 3-4 C+/C 定义文件的结构 示例 3-2版本和版权的声明 广东技术股份有限公司 9 预处理块 函数和类结构声明等 假设头文件名称为 Sample.h,头文件的结构参见示例 3-3 【规则 3-2-1】为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预 处理块 【规则 3-2-2】用 #include 格式来引用标准库的头文件(编译器将从 标准库目录开始搜索) 【规则 3-2-3】用 #in
8、clude “filename.h” 格式来引用非标准库的头文件(编译器 将从用户的目录开始搜索) 【建议 3-2-1】头文件中只存放“声明”而不存放“定义” 在 C+ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。 这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与 声明分开,不论该函数体有多么小 【建议 3-2-2】 不提倡使用全局变量, 尽量不要在头文件中出现象 extern int value 这 类声明 3.1.3定义文件的结构 定义文件有三部分内容: (1)定义文件开头处的版权和版本声明(参见示例 3-1) (2)对一些头文件的引用
9、 (3)程序的实现体(包括数据和代码) 假设定义文件的名称为 Sample.cpp,定义文件的结构参见示例 3-4。 3.1.4头文件的作用 早期的编程语言如 Basic、Fortran 没有头文件的概念,C/C+语言的初学者虽然会用 使用头文件,但常常不明其理。这里对头文件的作用略作解释: 示例 3-3C/C+头文件的结构 广东技术股份有限公司 10 (1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布, 只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声 明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代 码。 (2)头文件能加强类型
10、安全检查。如果某个接口被实现或被使用时,其方式与头文 件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员 调试、改错的负担。 3.1.5目录结构 如果一个软件的头文件数目比较多(如超过十个) ,通常应将头文件和定义文件分别保 存于不同的目录,以便于维护。 例如可将头文件保存于 include 目录,将定义文件保存于 source 目录(可以是多级 目录) 。 如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明” 。 为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。 3.2程序的版式 版式虽然不会影响程序的功能,但会影响可读性。程序的版
11、式追求清晰、美观,是程序 风格的重要构成因素。 可以把程序的版式比喻为“书法” 。好的“书法”可让人对程序一目了然,看得兴致勃 勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。请程序员们 学习程序的“书法” ,弥补大学计算机教育的漏洞,实在很有必要。 3.2.1空行 空行起着分隔程序段落的作用。 空行得体 (不过多也不过少) 将使程序的布局更加清晰。 空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍 不得用空行。 【规则 2-3-1】在每个类声明之后、每个函数定义结束之后都要加空行。参见示例 2-1 (a) 广东技术股份有限公司 11 【规
12、则 2-3-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应 加空行分隔。参见示例 2-1(b ) / 空行 void Function1() / 空行 void Function2() / 空行 void Function3() / 空行 while (condition) statement1; / 空行 if (condition) statement2; else statement3; / 空行 statement4; 广东技术股份有限公司 12 3.2.2代码行 【规则 2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样 的代码容易阅读,并且方
13、便于写注释。 【规则 2-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论 执行语句有多少都要加。这样可以防止书写失误。 【建议 2-2-1】尽可能在定义变量的同时初始化该变量(就近原则) 如果变量的引用处和其定义处相隔比较远, 变量的初始化很容易被忘记。 如果引用了未 被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如: int width = 10;/ 定义并初绐化 width int height = 10; / 定义并初绐化 height int depth = 10;/ 定义并初绐化 depth 示例 2-2(a)为风格良好的代码行,示例
14、2-2(b)为风格不良的代码行。 int width; / 宽度 int height; / 高度 int depth; / 深度 int width, height, depth; / 宽度高度深度 x = a + b; y = c + d; z = e + f; X a + b; y = c + d; z = e + f; if (width height) dosomething(); if (width =” 、 “=” 、 “+” 、 “*” 、 “%” 、 “ i10; i+)和 if (a=b) i10; i+)/ 良好的风格 for(i=0;i10;i+)/ 不良的风格 for
15、 (i = 0; I 10; i +)/ 过多的空格 x = a b ? a : b;/ 良好的风格 x=aFunction();/ 不要写成b - Function(); 3.2.4对齐 【规则 2-4-1】程序的分界符和应独占一行并且位于同一列,同时与引用它 们的语句左对齐。 【规则 2-4-2】 之内的代码块在右边数格处左对齐。 示例 2-4(a)为风格良好的对齐,示例 2-4(b)为风格不良的对齐。 void Function(int x) / program code void Function(int x) / program code if (condition) / progr
16、am code else / program code if (condition) / program code else / program code for (initialization; condition; update) / program code for (initialization; condition; update) / program code While (condition) / program code while (condition) / program code 示例2-3 代码行内的空格 广东技术股份有限公司 15 如果出现嵌套的,则使用缩进对齐,如:
17、 3.2.5长行拆分 【规则 2-5-1】代码行最大长度宜控制在 70 至 80 个字符以内。代码行不要过长,否 则眼睛看不过来,也不便于打印。 【规则 2-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以 便突出操作符) 。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。 if (very_longer_variable1 = very_longer_variable12) / 类的成员函数 【规则 3-3-9】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。例 如: int minValue; int maxValue; int SetValue();
18、int GetValue(); 【建议 3-3-1】尽量避免名字中出现数字编号,如 Value1,Value2 等,除非逻辑上的 确需要编号。 这是为了防止程序员偷懒, 不肯为命名动脑筋而导致产生无意义的名字 (因 为用数字编号最省事) 。 3.3.2简单的 Windows 应用程序命名规则 本文对“匈牙利”命名规则做了合理的简化,下述的命名规则简单易用,比较适合于 Windows 应用软件的开发。 【规则 3-2-1】类名和函数名用大写字母开头的单词组合而成。例如: class Node;/ 类名 class LeafNode;/ 类名 void Draw(void);/ 函数名 void
19、SetValue(int value); / 函数名 【规则 3-2-2】变量和参数用小写字母开头的单词组合而成。例如: BOOL flag; int drawMode; 【规则 3-2-3】常量全用大写的字母,用下划线分割单词。例如: const int MAX = 100; const int MAX_LENGTH = 100; 广东技术股份有限公司 21 【规则 3-2-4】静态变量加前缀 s_(表示 static) 。例如: void Init() static int s_initValue;/ 静态变量 【规则 3-2-5】如果不得已需要全局变量,则使全局变量加前缀 g_(表示 g
20、lobal) 。 例如: int g_howManyPeople; / 全局变量 int g_howMuchMoney; / 全局变量 【规则 3-2-6】类的数据成员加前缀 m_(表示 member) ,这样可以避免数据成员与 成员函数的参数同名。例如: void Object:SetValue(int width, int height) m_width = width; m_height = height; 【规则 3-2-7】类的数据成员加前缀 h 表示变量是一个 HANDLE 类型的句柄。 例如:hFIleHandle 3.3.3C+Builder 控件命名规则 分类前缀类控件类型
21、单元/容器fm_TForm窗体 fa_TFrameFrame panel_TPanel面板 按钮btn_HWutton下拉式列表框 bbtn_HWiHWutton图片按钮 广东技术股份有限公司 22 sbtn_TSpeedButton快速按钮 文本/输入/ 选择 lab_TLabel标签 ed_TEdit文本输入框 red_TRichEditRich Edit 控件 memo_TMemoMemo 控件 chk_TCheckBoxCheckBox lb_TLisHWox列表框 rd_TRadioButtonRadioButton 图像img_TImage图片框 imgl_TImageList图片
展开阅读全文