3.2.1.1 需求开发的主要活动
* 确定产品所期望的用户类;
* 获取每个用户类的需求;
* 了解实际用户任务和目标以及这些任务所支持的业务需求;
* 分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息;
* 将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件;
* 了解相关质量属性的重要性;
* 商讨实施优先级的划分;
* 将所收集的用户需求编写成规格说明和模型;
* 评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。
3.2.1.2 需求管理的主要活动
* 定义需求基线;
* 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它;
* 以一种可控制的方式将需求变更融入到项目中;
* 使当前的项目计划与需求一致;
* 估计变更需求所产生影响并在此基础上协商新的承诺;
* 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪;
* 在整个项目过程中跟踪需求状态及其变更情况。
过去,我们常常认为软件需求过程由需求获取、需求分析和需求规格说明等阶段组成,然而,这种理解忽略了软件需求过程的两个重要阶段,即如何衡量软件需求的质量,以及如何处理软件需求的不断变化。今天,我们引入"需求工程"的概念,强调用工程化的方法进行需求开发和需求管理。其中,需求开发是采用有效方法获得高质量需求的过程,而需求管理则是在需求说明形成之后有效地控制其变更的过程,二者缺一不可。
需求开发包括问题获取、需求分析、编写需求规格说明和需求验证四个阶段,我们采用适当的方法收集和分析需求,把取得的结果用文档化的方式描述出来,同时还要采用有效的手段对其进行验证,以便在开发的早期及时发现和纠正需求错误。近几年的许多研究表明,需求错误导致成本放大因子可高达200倍,因此,千万不要把早期的需求错误延误到软件开发的最后阶段才去解决。
人们对复杂事物很难一下子认识清楚,往往是一个通过多次反复而演进的过程,因此,在软件开发过程中,用户的需求会不断地增加和变化。如何判断这些变化带来的影响,并且调整软件开发过程以控制和适应这种变化,成为软件开发必须解决的一个难题,也是需求管理的主要工作。在需求管理过程中,应当准确分析需求变更对项目计划和软件开发的影响,实行需求基准和版本控制管理,维护需求变更的历史记录,从而有效地控制和管理需求变化,降低由此而带来的软件开发风险。
|