1 软件开发实施方案
系统开发严格按照软件工程的方法进行组织,系统的开发过程按照需求分析、系统分析与设计要求、系统编码、系统测试几个过程有序推进。下表所示系统开发流程图,采用原型及迭代方式开发,根据用户需求持续改进,直到最终用户确认满意。
1.1 开发流程总述
如下图示流程定义了我公司内部的软件开发过程,以指导和规范软件项目中开发过程的定义和相应的实施。
该过程可划分为一系列子过程,包括:软件需求分析、设计、编码、测试、验收、维护,每个子过程又由一系列任务和活动组成,如设计过程又可分为结构设计和详细设计。但是在实际开发项目中,情况仍然会是千变万化的,因此我们也并不是一成不变的死板执行一个僵化的工作流程,我们的原则是在一个规范流程的指导和约束下,根据具体工程项目的实际要求,为每一个项目评估并制定真正能够最好的满足该项目要求的开发流程。
开始《软件需求规格说明书》(初稿)《系统测试计划》《系统测试案例》(初稿)《用户手册》(概要)《追溯表一》软件需求分析N:改进《软件需求规格说明书》《系统测试计划》《系统测试案例》《个人评审记录》《评审报告》同行评审通过Y结构设计《结构设计说明书》(初稿)《集成测试计划》《集成测试案例》(初稿)《用户手册》(初稿)《追溯表一》N:改进评审通过Y《结构设计说明书》《集成测试计划》《集成测试案例》《个人评审记录》《评审报告》《详细设计说明书》(初稿)《单元测试计划》《单元测试案例》(初稿)《用户手册》(修改稿)《追溯表一》《详细设计说明书》《单元测试计划》《单元测试案例》《用户手册》(修改稿)《个人评审记录》《评审报告》详细设计N:改进评审通过Y源代码、源代码文件清单《单元测试报告》(经过审批)《软件问题状态登记表》《软件问题报告单》编码集成测试《集成工作单》《集成测试工作单》《集成测试报告》(经过审批)《软件问题状态登记表》《软件问题报告单》集成的软件系统《系统测试报告》(经过审批)《软件问题状态登记表》《软件问题报告单》《系统管理员使用说明书》(经过审批)《安装手册》(经过审批)《用户手册》(经过审批软件系统(系统测试通过)系统测试验收 验收测试报告《软件问题报告单》《软件问题状态登记表》 验收报告 可交付产品《软件需求规格说明书》(升级版)《客户需求登记表》《客户需求统计表》《设计说明书》(升级版)《软件问题报告单》《软件问题状态登记表》《软件维护实施计划》 维护后的软件系统维护结束
图 1.1-1 软件开发流程总图
在应用系统软件开发项目中,我们仍将遵循这一思想,这一点将在随后的项目开发实施计划部分有具体的体现,在这里和下面的相关章节中,我们仍将围绕着这个完整的开发流程来分析说明,以此来阐明我们对项目开发的完整过程管理思想和相关实践。下面我们对这个软件开发工作流程进行简要地分解说明。
1.2 软件需求分析
(1)概述
由于应用系统与众多相关应用软件需要进行交互,因此需要先对这些应用系统进行分别梳理,充分做好需求调研工作,编写经项目单位认可并评审通过的《系统需求规格说明书》。
软件需求分析是按照项目定义的软件开发过程,根据系统分配给软件的需求(见《系统需求规格说明书》),进行软件质量特性规格说明的过程。该过程包括进一步明确软件运行环境,明确对软件的功能、性能和数据要求,以及软件与硬件、软件与软件之间的接口要求等,并对软件需求进行验证和文档化,即完成对软件需求的分析与规格定义。
本元素在整个过程中的位置如下图所示:
系统分配给软件的需求 软件需求分析 结构设计 图示:软件需求分析在软件开发过程中的位置
(2)入口准则和出口准则
1)入口准则
要素 客户需求(《系统需求规格说明书》) 判断准则 已由CCB批准为基线 已进入配置库 2)出口准则
要素 判断准则 已经过审查 软件需求规格说明书 已批准为基线 已进入配置库 系统测试计划 系统测试案例 用户手册(概要) 追溯表一 已经过审查 已获得批准 已进入配置库 已编写 已填写 (3)评审
评审《软件需求规格说明书》,具体评审过程见《评审程序文件》,对软件需求的评审准则包括:
● 系统需求和系统设计的可追溯性; ● 与系统需求的一致性; ● 内部一致性; ● 可测试性; ● 软件设计的可行性; ● 运作和维护的可行性。
对软件需求中的问题,与系统工程组或客户一起确定和审查,根据审查结果对软件需求进行适当的修改,必要时按基线变更控制的要求对客户需求进行相应的修改。对软件需求规格说明书进行同行评审。
审查、批准软件需求规格说明书。
将软件需求规格说明书置于配置管理之下。 (4)工作产品
● 《软件需求规格说明书》 ● 《系统测试计划》 ● 《系统测试案例》 ● 《用户手册》 ● 《追溯表》 (5)职责
● 项目经理:负责组建软件需求分析组;确定是否需要对有关人员进行培训;负责软件需求规格说明书的审查和批准。 ● 软件需求分析组:软件需求分析的主要承担者,负责完成本过程元素要求产生的所有工作产品。
● 系统测试负责人:负责组织软件系统测试组对软件需求进行分析,审查软件需求的可测试性;参与软件需求规格说明书的审查和批准。
● 质量保证人员:参与工作产品的审查,统计缺陷,并对软件需求分析过程进行审计。
● 系统开发组:配合处理涉及客户需求的软件需求问题。 ● 客户:必要时参与软件需求规格说明书的审查和批准。