【12】需求知识整理
(一)需求分析及需求解决什么问题
需求分析的主要目的是分析并抽象描述各种需求信息,为目标系统建立一个概念模型,是在计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。是要解决目标系统“做什么”的问题。
需求分析可分为需求提出、需求描述及需求评审三个阶段。
(1)需求提出:主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。开发人员和用户确定一个问题领域,并定义一个描述该问题的系统,这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。
(2)需求描述:在问题分析阶段分析人员的主要任务是对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。
(3)需求评审:在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。
(二)需求分层
需求分为以下几个层次:业务需求、用户需求、功能需求与非功能需求。
(1)业务需求:表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。
(2)用户需求:描述的是用户的目标,或用户要求系统必须能完成的任务。即用户需求描述了用户能使用系统来做些什么。
(3)功能需求:规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求。功能需求描述了开发人员需要实现什么。
(4)非功能需求:指的是产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等。
(三)其他
获取需求的方法有很多种,常见的有用户访谈法、问卷调查法、会议讨论法、原型法、采样法等