Java系统分析与架构设计
上QQ阅读APP看书,第一时间看更新

第1章
软件需求分析技术

软件项目分为发包方(甲方)和实施方(乙方)。软件的真正使用者为企业一方(甲方),而软件的开发通常由专业的软件公司来实施(乙方)。甲方与乙方在项目实施前,都需要签订正式合同,合同签订后,开始进入需求阶段。

需求阶段,首先要进行用户需求的收集。通常由项目经理与专门的需求人员,进驻企业现场,通过实地走访、开会等形式,把用户需求整理出来。这个阶段的重要输出文档是“xxx项目用户需求说明书”。

用户需求收集整理好后,通常由系统分析师进行项目的软件需求分析。这个阶段的重要输出文档是“xxx项目软件需求分析说明书”。

注意:“xxx项目用户需求说明书”的受众是用户与开发人员,因此不能使用过于专业的计算机术语,这个文档一定要让最终用户能够直接阅读理解。“xxx项目软件需求分析说明书”的受众是代码开发工程师、测试人员、项目经理等,这个文档强调的是在“xxx项目用户需求说明书”基础上的软件需求分析,因此更具有计算机专业性,这个文档无须给直接用户阅读。另外,很多项目会把用户需求与软件需求文档合在一起来写,这时候就要充分考虑不同受众的阅读理解能力。

由于需求描述不清,开发人员与直接用户沟通不畅,从而导致软件项目不断改版,最终导致项目失败的例子屡见不鲜,因此要非常小心。以笔者多年的系统分析经验看,直接用户能够把业务需求描述清晰的非常少,因此成功的软件项目,首先是系统分析人员要能够快速理解项目需求的专业领域知识,同时要有很好的抽象能力、前瞻能力。由系统分析人员引导最终用户来描述需求,这样才能使双方满意。单纯希望最终用户能够把需求直接描述清楚,这是不现实的。

软件需求包含内容分为:项目概述、项目背景、项目目标、项目范围、项目阶段划分、项目功能特性列表、名词概念列表、业务需求描述、业务流程分解、业务功能需求描述等。大型软件项目的需求文档中,业务流程分解占有非常重要的地位。在功能需求描述中,可以使用UML用例图、UML状态图等,配合业务原形图进行详细描述。

下面,通过IBM承接的“中国石油物资采购管理信息系统”这个大型企业级项目实例,来一起学习一下软件需求文档的编写方法。注:该项目的实际需求分析文档有1000多页,此处节选了供应商管理部分的一个小模块来进行演示(由于此模块的功能有限,使用的需求分析方法也不全面,其他常用方法,会在后续文档中再补充)。