本书的第二部分叙述了需求获取的内容,主要从什么是需求获取、确定项目的前景与范围、涉众分析与硬数据采样、基于用例/场景模型展开用户需求获取以及需求获取的方法等方面进行介绍。
对于一个初学者来说,了解什么是需求获取很重要。需求获取是进行需求收集的一个活动,它从人员、资料和环境中得到系统开发所需要的相关信息。在已有的各项软件工程实践状况调查中,缺乏用户参与被一致认为是导致软件失败的一个重要需求问题,也是需求获取中的一个常见困难。导致缺乏用户参与的原因很多,主要有:①用户数量太多,选择困难。②用户认识不足,不愿参与。③用户情绪地址,消极参与。④没有明确的用户。总之,要解决缺乏用户参与的困难,就要求开发者在进行需求获取时,能够对系统用户以及用户的替代源等相关涉众进行分析,了解他们的特征、类别、任务和取向等,并在获取中采取对策避免用户参与不足现象的发生。
需求活动的步骤主要有以下几点:①确定待获取信息的内容;②确定待获取信息的来源;③确定应采用的获取方法;④执行获取;⑤记录成果。
需求工程需要获取的内容主要有三种:①需求。它是获取的主要对象,是系统期望达到的目标。它主要来源于用户、客户、领悟专家等相关涉众。②问题域描述。它是用来承载和解释需求的问题域特性,主要是现实世界的业务运行状况。它可以从涉众的业务描述中获得,也可以从业务运行所产生的各种数据文档中获得。③环境与约束。它属于一种特殊的问题域特性,限定了解系统部署的环境和条件,主要来源于涉众的描述和对应用环境的观察。
信息来源于涉众、硬数据、相关产品、重要文档、相关技术标准和法规。获取信息的方法有传统方法、集体获取方法、原型、模型驱动方法、认知方法、基于上下文的方法。。