软
件
开
发
流
程
规
范
德联软件有限责任公司
编制人:侯秀美审核人: 2015 年 8 月 19 日
目录
目录 .........................................................错误!未定义书签。
一、概述......................................................错误!未定义书签。
二、开发流程规范..............................................错误!未定义书签。
系统软硬件开发环境........................................错误!未定义书签。
系统架构(系统组成)......................................错误!未定义书签。
系统功能模块设计..........................................错误!未定义书签。
系统功能开发流程图........................................错误!未定义书签。
开发修改记录..............................................错误!未定义书签。
三、开发代码规范..............................................错误!未定义书签。
文件结构..................................................错误!未定义书签。
文件信息声明..........................................错误!未定义书签。
程序风格..................................................错误!未定义书签。
空行..................................................错误!未定义书签。
一、概述
本文制定烟台开发区德联软件有限责任公司计算机软件开发规范文档。
本规范的目的是使公司软件开发项目阶段清晰、要求明确、任务具体、编写的代码规范,使之规范化、系统化和工程化,向公司内从事软件开发的工程师和管理人员提出一系列规范和要求,从而有利于开发过程的控制和管理,提高所开发软件系统的质量,缩短开发时间,减少开发和维护费用,以保证项目高质量、顺利进行。
本规范包含:开发流程规范和开发代码规范等,开发流程规范需要技术开发人员编写相关内容,希望每个技术人员形成习惯,如有新的内容更新会及时通知大家,如有好的规范要求也可通知编制人员及时更新。
本规范为烟台开发区德联软件有限责任公司内部材料,严禁其他商业应用。
二、开发流程规范
接受开发任务,详细阅读软件技术规范或技术文档,如对技术文档有疑义或者不清楚的地方及时与项目总工或用户沟通,根据文档和沟通内容编写项目开发计划,必须包括但不限于系统软硬件开发环境、系统架构、系统功能模块设计、系统功能开发流程图、开发修改记录。
系统软硬件开发环境
开发环境的搭建,最好形成文档,便于以后同样工作的使用。
开发人员要明确系统开发拟采用的数据库、操作系统、开发语言、开发工具、服务器等(具体到版本)。
明确整个系统开发工作流程,至少应该包括以下流程。
系统架构(系统组成)
确定系统整体体系架构,各层次之间的数据流的连接,确定软件服务器的硬件配置及用户硬件资源配置,确定与用户软件平台的统一协调。
开发人员在绘制架构图时给出基本框架,能反映出基本意义即可,可以直接用文字代替例子中的图片。
图1 系统逻辑架构图举例
图2 物理架构图举例
系统功能模块设计
给出系统的主要功能模块,每个模块所包含的功能。
图3 图书管理系统模块规划图举例
系统功能开发流程图
给出系统主要功能的业务流程图。
图4 系统功能业务流程图举例
开发修改记录
1. 开发代码做好备份(可以在完成一个重大功能之后,或者按时间周期性进行备份),以免由于不可抗力导致代码不可修复。
2.在每次重大修改之后要做好记录(改动的具体细节),修改前的版本要及时备份,可以方面随时还原系统。
三、开发代码规范
在研究项目团队协作开发的情况下(这里的团队协作也适合于应用项目的开发),编程时应该强调的一个重要方面是程序的易读性,在保证软件速度等性能指标能满足用户需求的情况下,能让其他程序员容易读懂你所编写的程序。
若研究项目小组的所有开发人员都遵循统一的、鲜明的一套编程风格,可以让协作者、后继者和自己一目了然,在很短的时间内看清楚程序结构,理解设计的思路,大大提高代码的可读性、可重用性、程序健壮性、可移植性、可维护性。
制定本编程规范的目的是为了提高软件开发效率及所开发软件的可维护性,提高软件的质量。
本规范由程序风格、命名规范、注释规范、程序健壮性、可移植性、错误处理以及软件的模块化规范等部分组成。
此规范以C/C++程序设计讨论。
文件结构
每个C++/C程序通常分为两个文件。
一个文件用于保存程序的声明(declaration),称为头文件。
另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。
C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。
文件信息声明
文件信息声明位于头文件和定义文件的开头(参见示例3-1),主要内容有:
(1)版权信息;
(2)文件名称,项目代码,摘要,参考文献;
(3)当前版本号,作者/修改者,完成日期;(4)版本历史信息;
(5)主要函数描述。
....
例如一个short*型的变量应该表示为pnStart;
☆【规则】全局变量用g_开头;例如一个全局的长型变量定义为g_lFileNum,
即:变量名=g_+变量类型+变量的英文意思(或缩写);
☆【规则】静态变量采用s_开头;例如一个静态的指针变量定义为s_plPrevInst,
即:变量名=s_+变量类型+变量的英文意思(或缩写);
☆【规则】类成员变量采用m_开头;例如一个长型成员变量定义为m_lCount,
即:变量名=m_+变量类型+变量的英文意思(或缩写);
☆【规则】对const的变量要求在变量的命名规则前加入c_(若作为函数的输
入参数,可以不加),
即:变量名=c_+变量命名规则,例如:
const char* c_szFileName;
☆【规则】对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀,且
用下划线隔离变量名,所有枚举类型都要用大写,例如:
enum EMDAYS
{
EMDAYS_MONDAY;
EMDAYS_TUESDAY;
......
};
☆【规则】对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文
意思表示其意思,用下划线分割单词,例如:
#define CM_7816_OK 0x9000;
☆【规则】为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以
为各种标识符加上能反映软件性质的前缀。
例如三维图形标准
OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL
开头。
程序风格
程序风格虽然不会影响程序的功能,但会影响程序的可读性,追求清晰、美观,是程序风格的重要构成因素。
空行
空行起着分隔程序段落的作用。
空行得体(不过多也不过少)将使程序的布局更加清晰。
空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。
☆【规则】在每个类声明之后、每个函数定义结束之后都要加空行。
参见示例;☆【规则】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方
应加空行分隔。
参见示例;
、“->”这类操作符前后不加空格;
☆【建议】 对于表达式比较长的for 语句和if 语句,为了紧凑起见可以适当地
去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d))
.*/”,而采用多行“.*/”。
怎样对研发项目进行整体管理;
2. 项目开发小组的成员之间如何以一种有效的机制进行协调;
3. 如何进行对小组成员各自承担的子项目的统一管理;
4. 如何对研发小组各成员所作的修改进行统一汇总;
5. 如何保留修改的轨迹,以便撤销错误的改动;
6. 对在研发过程中形成的软件的各个版本如何进行标识,
管理及差异识
辨。
我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理,必须使用版本控制工具。