一、需求层次的划分: 三级需求理论:软件需求包括三个不同的层次—业务需求、用户需求和功能需求(也包括非功能需求)。 业务需求( business requirement):反映了组织机构或客户对系统,产品高层次的目标要求,它们在项目视图与范围文档中予以说明.用户需求(user requirement) :描述了用户使用产品必须要完成的任务,这在使用用例( use case)文档或方案脚本(场景)( scenario)说明中予以说明.需求的层次功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求. 需求获取:确定三个层次需求,对于业务层要强调明确业务总目标及使用范围;对用户层,要强调明细用户工作流程,对于功能层还要熟悉系统运行环境的限制等非显性需求。 所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求.软件需求各组成部分之间的关系。 二、用户、客户的区别 "用户"(user)是一种泛称,它可细分为"客户"(customer),"最终用户"(the end user)和"间接用户"(或称为关系人). 掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户.客户与最终用户可能是同一个人也可能不是同一个人. 三、敏捷开发中的需求管理 敏捷开发,就尽量要求有现场客户与开发人员直接讨论需求。若没有,则会有一个相当于需求分析师的岗位:商务分析师。但与需求分析师职责不尽相同。 商务分析师最重要的职责就是与客户交谈,了解和分析需求,将其制作成用户故事(用户需求)并将需求转述给程序员。同时,商务分析师也要代替客户负责功能验收测试。