[摘要] 软件需求开发作为软件项目管理的前期工作,贯穿项目过程的始终,能够实现软件开发最终产品同需求的最佳结合。本文应用项目管理理论,将软件需求开发过程划分为需求获取、需求分析、编写软件需求规格和需求验证四个阶段,并设计了软件需求开发管理模型。该模型能够提高软件需求开发管理效率,确保软件开发能够按进度,低成本,高质量地完成。
[关键词] 项目管理 软件需求开发 进度 成本 质量 管理模型
一、引言
软件需求开发是软件工程的一个重要环节,在软件生命周期中的需求、设计、编码、测试和维护等各个阶段中,需求开发处于软件工程的开始部分,它提供构建软件项目的根基,决定软件开发成果满足客户需求的匹配程度。软件需求开发环节的失误会随着开发进度的扩大而蔓延,资料表明,软件项目中由于需求开发管理混乱而造成的返工开销几乎占了总开发的50%。本文应用项目管理理论分析软件需求开发阶段的系统构成,并设计管理模型来提高软件需求开发的管理效率。
二、软件需求开发管理过程
由于计算机技术的迅速发展,使得软件需求具有模糊性、不确定性、变化性、主观性等特点,并带来软件需求开发管理的复杂性。软件需求开发是一定的组织利用有限的资源在规定的时间内完成,可以作为项目来进行管理,其管理过程由需求获取、需求分析、编写软件需求规格和需求验证四个阶段构成。
1.需求获取
需求获取是在问题和最终解决方案之间架设桥梁,其主要任务是和用户方的领导层、业务层人员进行沟通,获取用户的具体需求,并了解用户的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等具体情况,同用户建立起良好的沟通渠道和方式。软件需求获取的方法有:与用户交谈,向用户提问题;参观用户的工作流程,观察用户的操作;用户工作的情景分析;现有系统的问题报告和改进要求,事件和响应;市场调查和向用户群体发调查问卷;与同行、专家交谈,听取他们的意见;分析已经存在的同类软件产品,提取需求;从现有产品或竞争产品的文档中提取需求;从行业标准、规则中提取需求;从 Internet上搜查相关资料等。
2.需求分析
需求分析主要通过建立业务模型的方式来描述用户的功能需求,为客户、用户、开发方等不同参与者提供一个交流的渠道。业务模型可以映射出软件产品的核心需求,即功能需求。功能需求应描述软件提供的功能和服务、对输入的响应,并描述特定条件下的系统构成等。软件产品本身可能还存在与业务无直接关系的非功能需求,具体与系统的总体特性有关,如可靠性、响应时间、存储空间等。非功能需求定义系统提供服务或功能的约束,包括时间约束、空间约束、开发过程约束及应遵循的标准等。通常这两类需求构成软件需求的总集。
3.编制软件需求规格
软件需求规格的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础,需求分析完成的标志就是提交一份完整的软件需求规格说明书。软件需求规格说明书以一种开发人员可用的技术形式阐述软件必须提供的功能和具备的性能,以及必须考虑的限制条件。软件项目客户通过软件需求规格了解软件项目能够提供的软件产品,检查软件需求是否满足需要;项目管理人员根据软件需求规格制定项目的开发计划和管理过程;软件开发人员通过软件需求规格理解要开发的产品及具体要开发的内容;软件测试人员通过软件需求规格验证软件。
4.需求评审
编写的软件需求规格说明书还应当进行需求评审,确保需求确定的科学性。可采用下列指标进行评审:
(1)正确性:每条需求都正确代表构建软件系统所要完成的