需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特
性)来阐述需求。关键的问题是一-定要编写需求文档。
需求的另外一种定义认为需求是“用户所需要的并能触发--个程序或系统开发工作
的说明”。有些需求分析专家拓展了这个概念:“从系统外部能发现系统所具有的满足于
用户的特点、功能及属性等”。这些定义强调的是产品是什么样的,而并非产品是怎样
设计、构造的。而下面的定义则从用户需要进一步转移到了系统特性:
需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过
程中对系统的约束。
从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的“需求”术语
存在,真正的“需求”实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,
用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出
相关的需要再进一步和客户核对。系统分析员和客户需要确保所有项目风险承担者在描
述需求的那些名词的理解上务必达成共识。
所以,需求分析在软件开发中是必不可少的。