资源描述
软件开发与维护管理规范
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 优化系统
软件优化、 升级变更步骤需填写《软件变更申请表》, 经评审、 同意后方可实施。
4.9.2 报废处理
软件报废步骤需填写《软件报废申请表》, 提交副总经理审批后方可实施。
4.10软件维护
4.10.1 软件数据库管理
假如软件项目含有数据库, 需要制订计划对数据库进行日常维护。
4.10.2 故障分析处理
产品交付后出现软件问题, 由售后技术支持人员或者研发人员对出现问题地方进行故障分析, 统计故障, 填写《软件故障统计表》, 并对软件进行维护修改。
5 相关文件
5.1 《设计变更控制程序》
6 统计表单
6.1 《软件需求规格说明书》
6.2 《软件测试说明书》
6.3 《软件概要设计》
6.4 《UI计划书》
6.5 《软件具体设计说明书》
6.6 《数据库设计说明书》
6.7 《测试方案》
6.8 《测试用例》
6.9 《测试汇报》
6.10 《软件变更表》
6.11 《软件报废申请表》
6.12 《软件故障统计表》
6.13 《软件评审表》
展开阅读全文