软件开发与维护管理规范(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发与维护管理规范
1目的
通过规范软件的开发与维护过程,达到提高软件质量,降低维护成本的目的。
2范围
适用于新产品的软件开发设计以及定型产品的改进升级。
3职责与权限
3.1 研发中心负责:
a) 编制软件开发过程的实施、协调和控制工作;
b) 编制各阶段的技术文件;
c) 组织软件的测试、验收、升级和维护工作。
3.2 各部门参与软件开发过程中有关的设计评审。
4内容
4.1 软件项目的开发实施过程管理要求
4.1.1 软件项目实施过程总体要求
本部分主要要求工程师制定软件开发工作计划,对过程进行控制,一般包括以下的内容。a)工程师提交软件开发工作大纲,项目组织者对工作大纲进行评审,并提出整改意见。
b)通过评审后,工程师根据整改意见完善工作大纲,经过项目经理认可后组织项目组进行软件开发。软件开发工作按照需求分析、概要设计、详细设计、编码、测试等几个阶段进行,在开发过程中,工程师需分阶段提交相关文档。
c)在软件开发工作完成后,工程师应向项目组提交完整的软件文档,相关人员组织验收组对软件进行验收审查。
4.1.2 软件项目实施变更要求
在开发过程中,需求或设计不可避免地需要发生变更,相关变更必须提交《软件变更申请》经过项目组书面同意方可进行。在需求或设计发生变更时,需要对原有文档进行修改,并提供完整的变更记录,以使变更处于可控制的状态。
4.1.3 软件项目实施里程碑控制
本部分主要对软件开发过程中的重要节点进行控制。
项目组将分四个阶段进行把关,召开审查会。
a)需求分析(结合原型进行审查)确认;
b)概要设计+数据库设计;
c)预验收(样机测试时);
d)正式验收(产品定型后)。
4.2 软件开发
软件开发必须严格按照软件工程的要求进行。开发过程包括工程师的活动和任务。此过程由软件需求分析、概要设计、详细设计、编码、测试、验收、鉴定等活动组成。
4.3 软件的需求分析
4.3.1 需求分析
4.3.1.1需求分析要求开发人员准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约《软件需求规格说明书》的过程。
4.3.1.2 在《软件需求规格说明书》必须描述的基本问题是:功能、性能、强加于实现的设计限制、属性、外部接口。
4.3.2 需求报告评审
在软件需求分析工作完成后,软件工程师应向项目组提交《软件需求规格说明书》。项目组组织有关人员(系统客户和系统开发人员等)对需求进行评审,以决定软件需求是否完善和恰当。项目组严格验证这些需求的正确性,一般从一致性,完整性,现实性,有效性四个方面进行验证。评审完成后,就可以进入软件的设计阶段。
4.4 软件的概要设计
4.4.1 概要设计
概要设计也称为系统设计,需要确定软件的总体结构,应该由哪些模块组成,以及模块与模块之间的接口关系,软件系统主要的数据结构和出错处理设计等,同时还要制定测试方案,形成概要设计说明书,为软件的详细设计提供基础。在概要设计时一般从以下几方面来考虑,
遵循以下的流程。
4.4.3 概要设计和需求分析、详细设计之间的关系和区别
需求分析不涉及具体的技术实现,而概要设计注重于从宏观上和框架上来描述采用何种技术手段、方法来实现这些需求。详细设计相对概要设计更注重于微观上和框架内的设计,是编码的依据。概要设计是指导详细设计的依据。
4.4.4 概要设计的评审
在软件概要设计工作完成后,软件工程师应向项目组提交《软件概要设计》。评审通过后,即可进入详细设计阶段。
4.5 软件的详细设计
4.5.1详细设计
在概要设计的基础上,工程师需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。4.5.2 特例
如果软件系统比较简单,层次较少,可以不必进行专门的详细设计,而和概要设计结合起来。
4.5.3 数据库设计
如果软件产品需要使用到数据库,软件的详细设计应包括对数据库的设计。数据库设计应在软件的需求分析、软件概要设计完成之后、详细设计的其它工作之前进行,编写《数据库设计说明书》。
4.5.4 详细设计的评审
在软件详细设计完成后,软件工程师应向项目组提交《数据库设计说明书》和《软件详细设计说明书》。评审通过后,即可进入软件编码阶段。
4.6 软件的编码
4.6.1 软件编码
在软件编码阶段,工程师根据《软件详细设计说明书》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系
统的功能、性能、接口、界面等方面的要求。
作为软件工程中的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量。但程序设计语言的选择以及编码风格也对程序的可靠性,可读性,可测试性和可维护性产生深远的影响。
4.6.2 编程规范及要求
为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。
在软件编码的同时应进行单元测试。
4.7 软件的测试
软件测试流程如下。
a)制定《测试方案》
根据《软件需求规格说明书》和软件的详细设计制定《测试方案》。
b)制定《测试用例》设计
是以发现错误为目的而精心设计的一组测试数据,测试用例={输入数据+期望结构}。测试用例将用于之后的测试。
c) 编写《测试报告》。
4.8软件的鉴定验收
4.8.1 软件的鉴定验收
在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。
4.8.2 验收具体内容
验收内容应该包括:文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。文档检查检查工程师提交的文档必须齐全,质量是否过关。验收需要对软件代码进行检查,以确保其符合规范,并检查其一致性。
4.9软件升级
4.9.1 优化系统