软件开发流程规范.doc
《软件开发流程规范.doc》由会员分享,可在线阅读,更多相关《软件开发流程规范.doc(39页珍藏版)》请在咨信网上搜索。
1、软件开发流程规范V1.0德联软件有限责任公司编制人: 侯秀美 审核人: 2015 年 8 月 19 日目录目录0一、概述2二、开发流程规范32.1 系统软硬件开发环境32.2 系统架构(系统组成)52.3 系统功能模块设计62.4 系统功能开发流程图62.5 开发修改记录7三、开发代码规范83.1 文件结构83.1.1 文件信息声明83.1.2 头文件的结构103.1.3 定义文件的结构113.1.4 头文件的作用123.1.5 目录结构133.2 命名规则133.2.1 共性原则133.2.2 Windows变量命名规则143.3 程序风格163.3.1 空行173.3.2 代码行183.3
2、.3 代码行内的空格193.3.4 对齐203.3.5 长行拆分223.3.6 修饰符的位置233.3.7 注释233.4 函数设计263.4.1 参数的规则263.4.2 返回值的规则273.4.3 函数内部实现的规则303.4.4 其它建议323.4.5 使用断言323.4.6 引用与指针的比较333.5 变量类型定义35四、软件测试规范364.1 单元测试364.2 系统测试374.6 业务测试384.7 验收测试384.8 用户现场测试38五、软件版本管理394.1版本管理的必要性39一、概述本文制定烟台开发区德联软件有限责任公司计算机软件开发规范文档。本规范的目的是使公司软件开发项目
3、阶段清晰、要求明确、任务具体、编写的代码规范,使之规范化、系统化和工程化,向公司内从事软件开发的工程师和管理人员提出一系列规范和要求,从而有利于开发过程的控制和管理,提高所开发软件系统的质量,缩短开发时间,减少开发和维护费用,以保证项目高质量、顺利进行。本规范包含:开发流程规范和开发代码规范等,开发流程规范需要技术开发人员编写相关内容,希望每个技术人员形成习惯,如有新的内容更新会及时通知大家,如有好的规范要求也可通知编制人员及时更新。本规范为烟台开发区德联软件有限责任公司内部材料,严禁其他商业应用。二、开发流程规范接受开发任务,详细阅读软件技术规范或技术文档,如对技术文档有疑义或者不清楚的地方
4、及时与项目总工或用户沟通,根据文档和沟通内容编写项目开发计划,必须包括但不限于系统软硬件开发环境、系统架构、系统功能模块设计、系统功能开发流程图、开发修改记录。2.1 系统软硬件开发环境开发环境的搭建,最好形成文档,便于以后同样工作的使用。开发人员要明确系统开发拟采用的数据库、操作系统、开发语言、开发工具、服务器等(具体到版本)。明确整个系统开发工作流程,至少应该包括以下流程。2.2 系统架构(系统组成)确定系统整体体系架构,各层次之间的数据流的连接,确定软件服务器的硬件配置及用户硬件资源配置, 确定与用户软件平台的统一协调。 开发人员在绘制架构图时给出基本框架,能反映出基本意义即可,可以直接
5、用文字代替例子中的图片。图1 系统逻辑架构图举例图2 物理架构图举例2.3 系统功能模块设计给出系统的主要功能模块,每个模块所包含的功能。图3 图书管理系统模块规划图举例2.4 系统功能开发流程图给出系统主要功能的业务流程图。图4 系统功能业务流程图举例2.5 开发修改记录1. 开发代码做好备份(可以在完成一个重大功能之后,或者按时间周期性进行备份),以免由于不可抗力导致代码不可修复。2.在每次重大修改之后要做好记录(改动的具体细节),修改前的版本要及时备份,可以方面随时还原系统。修改日期修改内容是否备份备注三、开发代码规范在研究项目团队协作开发的情况下(这里的团队协作也适合于应用项目的开发)
6、,编程时应该强调的一个重要方面是程序的易读性,在保证软件速度等性能指标能满足用户需求的情况下,能让其他程序员容易读懂你所编写的程序。若研究项目小组的所有开发人员都遵循统一的、鲜明的一套编程风格,可以让协作者、后继者和自己一目了然,在很短的时间内看清楚程序结构,理解设计的思路,大大提高代码的可读性、可重用性、程序健壮性、可移植性、可维护性。制定本编程规范的目的是为了提高软件开发效率及所开发软件的可维护性,提高软件的质量。本规范由程序风格、命名规范、注释规范、程序健壮性、可移植性、错误处理以及软件的模块化规范等部分组成。此规范以C/C+程序设计讨论。3.1 文件结构每个C+/C程序通常分为两个文件
7、。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C+/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C+程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。3.1.1 文件信息声明文件信息声明位于头文件和定义文件的开头(参见示例3-1),主要内容有:(1) 版权信息;(2) 文件名称,项目代码,摘要,参考文献;(3) 当前版本号,作者/修改者,完成日期;(4) 版本历史信息;(5) 主要函数描述。/ Copyright
8、(c) 2015, DeLianSoftCompany YanTai/ All rights reserved./ Filename :filename.h/ Project Code :The project code about this file/ Abstract :Describe the content of this file summarily/ Reference :./ Version :1.1/ Author :the name of author(mender)/ Accomplished date : September 2, 2004/ Replaced versi
9、on : 1.0 / Original Author : the name of original author(mender)/ Accomplished date : September 10, 2003/ Main functions :/Function 1 Return code Function name(Parameter Explain)/Function 2 Return code Function name(Parameter Explain)/./Function n Return code Function name(Parameter Explain)/示例3-1 文
10、件信息声明 【规则3.1-1】文件信息声明以两行斜杠开始,以两行斜杠结束,每一行都以两个斜杠开始; 【规则3.1-2】文件信息声明包含五个部分,各部分之间以一空行间隔; 【规则3.1-3】在主要函数部分描述了文件所包含的主要函数的声明信息,如果是头文件,这一部分是可以省略的。3.1.2 头文件的结构头文件由三部分内容组成: (1) 头文件开头处的文件信息声明(参见示例3-1);(2) 预处理块;(3) 函数和类结构声明等。假设头文件名称为 filesystem.h,头文件的结构参见示例3-2。 【规则3.2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处
11、理块;“#ifndef”或者“#define”后以TAB键代替SPACE键做空格;如果头文件名称是由多个单词组成,则各单词间以下划线“_”连接,例如有头文件名称为“filesystem.h”,则定义如下:“#ifndef_FILE_SYSTEM_H_”; 【规则3.2-2】用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索); 【规则3.2-3】用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索); 【建议3.2-1】头文件中只存放“声明”而不存放“定义”; 【建议3.2-1】头文件中应包含所有定义文件所定义的
12、函数声明,如果一个头文件对应多个定义文件,则不同定义文件内实现的函数要分开声明,并作注释以解释所声明的函数从属于那一个定义文件; 【建议3.2-3】宏定义和函数声明分离,在两个头文件中定义,如果没有类成员函数,可以将类和结构的定义与函数声明分离,也就是说一个头文件专用于宏定义,一个头文件专用于类和结构的定义,一个头文件专用于函数声明; 【建议3.2-4】在C+ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。头文件的结构如下:/文件信息声明见示例3-1,此处省略。#
13、ifndef_FILE_SYSTEM_H_/avoid referencing the file filesystem.h repeat#define_FILE_SYSTEM_H_#include /reference standard head file#include “myheader.h” /reference non-standard head filevoid Function1();/global function declareclass CBox /class structure decalre;#endif示例3-2 C+/C头文件的结构3.1.3 定义文件的结构定义文件有
14、三部分内容:(1) 定义文件开头处的文件信息声明(参见示例3-1);(2) 对一些头文件的引用;(3) 程序的实现体(包括数据和代码)。假设定义文件的名称为 filesystem.c,定义文件的结构参见示例3-3。/文件信息声明见示例3-1,此处省略。#include “filesystem.h”/reference a head file/global function realizationvoid Function1()/class member function realizationvoid CBox:Draw()示例3-3 C+/C定义文件的结构3.1.4 头文件的作用早期的编程语
15、言如Basic、Fortran没有头文件的概念,C+/C语言的初学者虽然会用使用头文件,但常常不明其理。这里对头文件的作用略作解释:(1) 通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码;(2) 头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。3.1.5 目录结构如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件
16、分别保存于不同的目录,以便于维护。例如可将头文件保存于include目录,将定义文件保存于source目录(可以是多级目录)。如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。3.2 命名规则比较著名的命名规则当推“匈牙利” 命名法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。“匈牙利”法最大的缺点是烦琐,例如int i, j, k; float x, y
17、, z;倘若采用“匈牙利”命名规则,则应当写成int iI, iJ, ik; / 前缀 i表示int类型float fX, fY, fZ; / 前缀 f表示float类型如此烦琐的程序会让绝大多数程序员无法忍受。总的说来,没有一种命名规则可以让所有的程序员赞同,且命名规则对软件产品而言并不是“成败悠关”的事,而且在不同的平台和不同的环境下编写的程序所应遵循的规则也不尽相同,所以我们只是追求制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。3.2.1 共性原则本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2.2节 【规则3.2.1
18、-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”; 【规则3.2.1-2】标识符的长度应当符合“min-length & max-information”原则; 【规则3.2.1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致; 【规则3.2.1-4】程序中不要出现仅靠大小写区分的相似的标识符。 【规则3.2.1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解; 【规则3.2.1-6】变量的名字应当使用“名词”或者“形容词名词”; 【规则3.2.1-7】全局函数的名字应当使用“动词”或者“动词名词”(动宾词组)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 流程 规范
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。