需求分析
是软件开发阶段最重要的阶段,(1)了解和澄清用户的需求 (2)严格的制定被开发的软件系统的需求规格说明书
需求的定义包括从用户的角度(系统的外部行为)以及从开发者的角度(一些内部特性)来阐述需求
关键的问题是:一定要编写需求文档,如果只有一堆邮件、会谈纪录、未整理的对话,你就确信你已经明白了用户的需求,
那完全是自欺欺人。
需求的另外一种定义认为需求是“用户所需要的并触发一个程序或者系统开发工作的说明“
有些需求分析专家拓展了这个概念:从系统外部能发现系统所具有的满足于用户的特点、功能及属性等
这些定义强调的是:产品是怎样的,而并非产品是怎样设计构造的。
而下面的定义则从用户的需要进一步转移到了系统特性:需求是指明必须实现什么的规格说明,他描述了系统的行为、特性或者属性
实在开发过程中对系统的约束。
从上面这些不同形式的定义中不难发现,并没有一个清晰的、毫无二义的“需求"属于存在,真正的需求实际上在人们的头脑中,
这个人们指的是“客户“,但一般情况下,用户并不能描述自己的需要,只有需要系统分析人员根据用户的语言描述整理出相关的
需要在进一步的与客户核对。系统分析员和客户需要确保所有项目风险承担着在描述需求的那些名词的理解上务必达成共识。
任何文档形式的需求仅仅是一个模型,一种描述而已。
需求分析的任务:
开发软件系统最为困难的部分是准确说明开发什么,最为困难的概念性工作便是编写出详细的技术需求,这包括所有面向用户,
面向机器和其他软件系统的接口,同时这也是一旦出错,将最终会给系统带来极大损害的部分,并且以后再对他修改也极为困难的