所属章节:
第11章. 软件需求工程
第2节. 需求获取
需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是一件看上去很简单、做起来却很难的事情。需求获取是否科学、准备是否充分,对获取出来的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统的全貌。因此,需求获取只有通过系统分析师与用户的有效合作才能成功。系统分析师必须建立一个对问题进行彻底探讨的环境,而这些问题与将要开发的系统有关。让用户明确了解,对于某些功能的讨论并不意味着将在系统中实现它。
作为一名系统分析师,掌握各种不同的需求获取技术,并且熟练地在实践中运用它,是十分必要的。本节就一些最常用的需求获取技术进行展开讨论。
11.2.1 用户访谈
用户访谈是最基本的一种需求获取手段,其形式包括结构化和非结构化两种。结构化是指事先准备好一系列问题,有针对地进行;而非结构化则只是列出一个粗略的想法,根据访谈的具体情况发挥。最有效的方法是结合这两种方法进行,毕竟不可能把什么都一一计划清楚,应该保持良好的灵活性。
为了进行有效的用户访谈,系统分析师需要在三个方面进行组织,分别是准备访谈、主持访谈和访谈的后续工作。
1. 准备访谈
每一次成功的访谈都需要精心的准备。在准备访谈的过程中,首先也是最重要的步骤是确定访谈的目的;其次是确定访谈中应该包括哪些用户。这两个步骤结合得非常紧密,因此通常一起完成。参加访谈的用户数量取决于访谈的目的。通常,最好限制参加访谈的人数。例如,一次超过3个用户的访谈有可能使得讨论时间变长,这在有时候可能会适得其反。在很多情况下,系统分析师每次只和一个用户进行访谈,这对中小规模的项目尤其适用。
准备访谈的第三步是为访谈准备一些详细的问题。系统分析师可以根据已经获得的表格和报表写出一些具体的问题,并作好笔记。问题可以分为开放式问题和封闭式问题两类。所谓开放式问题,就是类似于“你如何完成这项功能”的问题,鼓励用户与系统分析师对问题进行讨论和说明;所谓封闭式问题,就是类似于“你每天处理多少张表格”的问题,可以用来获得具体的事实。一般而言,开放式问题有助于开始对问题进行讨论,并且鼓励用户说明所有的业务过程和业务规则细节。
准备访谈的最后一步是作出最终的访谈安排,并把这些安排通知所有参加者。具体的时间和地点应该事先征求被访谈者的同意。如果可能的话,应尽量选择一个安静的地点以避免外界干扰。每个参加者都应该知道访谈的目的,而且在适当的时候,参加者也应该有机会预览一下将要访谈的问题或材料。
另外,值得注意的是,系统分析师应该在访谈之前进行一些领域相关的知识培训,充分阅读相关材料,以保证自己有较专业的理解与认识,让用户能够信任自己。
更多内容请看下回。