大话软件工程:需求分析与软件设计
上QQ阅读APP看书,第一时间看更新

5.3 工程分解

需求工程的工程分解分为两个阶段,即需求调研阶段和需求分析阶段,见图5-5。

图5-5 需求工程分解

5.3.1 工程分解1——需求调研

需求调研阶段的主要工作有两个:需求调研,资料汇总。

(1)需求调研:利用问卷、现状构成图、访谈记录、既存表单的方式收集客户的需求。

(2)资料汇总:将调研过程中收集到的资料进行汇总,形成需求调研资料汇总,作为需求分析阶段的分析依据。

5.3.2 工程分解2——需求分析

需求分析阶段的主要工作有两个:需求分析,资料汇总。

(1)需求分析:基于需求调研资料分析客户的需求,最终确认系统需要实现的功能。

(2)资料汇总:将分析成果资料进行汇总,形成需求规格说明书,作为后续的各个设计阶段的输入。

5.3.3 需求调研与需求分析

1.需求调研

目的主要是收集、记录客户对信息化的需求,重点是对内容的“记录”,而不是“分析”或是“设计”,避免因为分析与设计融入了需求分析师个人的见解,需求调研阶段的资料一定要保持其“原始性”(使用需求模板是为了使记录内容标准化、格式化)。

2.需求分析

在对需求调研资料的理解基础之上,进行了抽提、归类、梳理,同时根据分析补全了调研时的断点,并且采用比较规范的方式进行了表述,重要的是:需求分析师通过对目标需求、业务需求等高端需求的分析加入了个人的理解,以及对企业信息化提升有价值的意见,所以需求分析的结果与原始记录之间会发生不同,需求分析师的理解代表了软件开发团队的理解,并以此为基础向客户进行确认,最终稿就形成了向下一个设计环节的输入资料。

所以说,需求分析师的能力会最终影响到信息系统的内容、技术、成本和周期等。

3.二者的关系

两者都采用非技术设计用语描述,需求调研采用“客户用语”进行记录,需求分析采用“业务设计用语”表达分析的结果。在工作目的上两者有所不同,例如:

需求分析做的业务流程图必须具有业务的完整性,且符合业务流程的标准表达方式;而需求调研收集到的业务流程图可能是片段的、不连续的流水账。

需求分析对需求实体的内容进行了抽提、分类,建立了需求体系表;需求调研阶段不要求这个梳理,只进行原始的收集和记录即可(要保留原始状态)。

需求分析成果的作用有两个:向前端的客户确认,向后端输出设计依据;需求调研的成果仅仅是向需求分析提供资料。

两者最大的区别如下。

(1)需求调研:着眼于对原始需求的收集、记录。

(2)需求分析:着眼于从整体上理解、归集、确认,需求分析不是对需求调研的重复。

如果在实际的操作中调研和分析为同一人所做,那么也建议需求调研的资料里不加入个人意见,以保持资料的原始性,否则需求出现失真时,无法进行追溯以判断原因。

5.3.4 需求工程资料的应用

需求工程阶段完成的资料对后续的各个设计阶段的影响如图5-6所示。

图5-6 需求工程资料的应用

(1)需求调研:收集、梳理客户的原始需求。

(2)需求分析:调研资料只提供给需求分析,不能被设计所直接引用(可以参考)。

(3)概要设计:要完整地对需求分析的结果全面覆盖,给出规划。

(4)详细设计:原则上是针对概要设计的成果进行细节设计。

(5)应用设计:对需求分析中关于应用方面的要求给出系统实现的方法。

(6)技术设计:对需求分析成果中的非功能性需求、技术需求做出响应。

(7)、(8)开发~测试:不能将需求分析的成果作为开发与测试的依据(可以参考)。

(X)系统验收:客户对系统的最终验收是依据需求规格说明书进行的。