公司软件开发管理制度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
X X公司软件开发管理制度
XX公司软件开发管理制度
版本:
SDM审批:
QA经理[时间]
CTO [时间]
目录
1.目的和作用 3
2.适用范围: 3
3. 参考文件 3
4.适用对象 3
5.软件开发流程 4
可行性研究与计划 4
实施 4
文档 4
应交付的文档 4
提交步骤 4
需求分析 4
实施 4
要求 5
交付文档 5
审批 5
概要设计 5
实施 5
要求 6
交付文档 6
补充说明 6
审批 6
详细设计 7
实施 7
要求 7
文档 7
审批 7
实现 7
实施与要求 7
交付文档 8
审批 8
组装测试 8
实施 8
要求 8
交付文档 8
审批 8
确认测试 9
实施 9
要求 9
交付文档 9
补充说明 9
审批 9
发布 10
过程 10
文档 10
审核 10
交接 10
6. 附录1:项目文档清单 11
1.目的和作用
本流程详细规定软件开发程的各个阶段及每一阶段的任务、要求、交付文件,使整个软件开发过程阶段清晰、要求明确、任务具体,实现软件开发过程的标准化。
2.适用范围:
公司的软件开发产品均适用。
3. 参考文件
各种文档模板
文档命名规则
交接流程
4.适用对象
软件管理人员,软件开发人员,软件维护人员
5.软件开发流程
可行性研究与计划
实施
软件开发部分析人员进行市场调查与分析,确认软件的市场需求
在调查研究的基础上进行可行性研究,写出可行性报告
评审和审批,决定项目取消或继续
若项目可行,制订初步的软件开发计划,建立项目日志
根据市场环境、公司软硬件情况预测十大风险因素
文档
应交付的文档
1)可行性研究报告*
2)初步的软件开发计划
3)十大风险列表*
4)软件项目日志*
提交步骤
1) 适用于以后各阶段的文档提交。
2) 项目相关文档用sourcesafe进行版本管理,相关书写人员可根据各文档模板形式撰写文档,正式提交的文档以存入软件管理服务器相关目录时间为准。以后每次修改都应注明修改内容。
需求分析
实施
调查被开发软件的环境
软件开发提出的需求进行分析并给出详细的功能定义
做出简单的用户原型,与用户共同研究,直到用户满意
对可利用的资源(计算机硬件、软件、人力等)进行估计,制定项目进度计划(可有相应的缓冲时间)
制定详细的软件开发计划
部门制订质量控制计划和测试计划
编写初步的用户手册
评审
要求
必须以运行环境为基础
应有用户指定人员参加
需求说明书必须明确,并经过用户确认
交付文档
1)软件需求说明书
2)用户手册(概要)*
3)更新后的软件开发计划
4)项目进度计划*
5) QA计划
6)测试计划*
7)更新后的十大风险列表*
8)软件日志*
审批
经评审通过的各项内容形成相应的文档后,提交给项目经理审核确认
软件需求说明书经项目经理确认后再提交给CTO进行审核确认。
概要设计
实施
确定目标系统的总体结构
l 对于大型系统,可按主要的软件需求划分成子系统,然后为每个系统定义功能模块及各功能模块间的关系,并描述各子系统的接口界面
l 对于一般系统,可按软件需求直接定义目标系统的功能模块及各功能模块间的关系
给出每个功能模块的功能描述,数据接口描述,外部文件及各功能模块部的关系
设计数据库或数据结构
制定各阶段开发的目标(以下称里程碑)计划
制订第一个里程碑的测试计划
评审
要求
在设计目标系统的整体结构时,应力争使其具有好的形态,各功能模块间应满足低耦合度,而各功能模块内应满足高内聚度。功能模块的作用范围应在其控制范围之内。
在设计目标系统的总体结构时,应降低模块接口的复杂性,提高目标系统的可靠性
交付文档
1)概要设计说明书
2)数据库/数据结构设计说明书
3)更新后的用户手册*
4)更新后的项目进度计划*
5)更新后的十大风险列表*
6)更新后的软件开发计划
7)更新后的软件项目日志*
补充说明
测试程序的编写需与项目经理协商根据开发小组和QA小组的工作量确定由QA组还是由开发组完成
每一个里程碑又可分为详细设计、实现、组装测试、确认测试、发布、交接等阶段。
审批
经评审通过的各项内容形成相应的文档后,提交给项目经理审核确认
数据库/数据结构设计说明书、概要设计说明书经项目经理确认后还须提交给CTO进行审核确认。
详细设计
实施
将概要设计产生的构成软件系统的各个功能模块逐步细化,形成若干个程序模块(可编程模块)
确定各程序模块之间的详细接口信息
撰写拟定单元测试计划
评审
要求
确定程序模块内的数据流或控制流,对每个程序模块必须确定所有输入、输出和处理功能。