《软件需求工程》 读书笔记之二
接下来我读的是需求获取, 从书中了解了几种困难。1.用户和开发人员的背景不同,立场不同,因此会存在交流困难。要解决这个问题,就要求开发人员在开展需求获取之初,尽力去研究应用的背景,理解组织的业务状况,形成一个能够和用户进行有效沟通的粗略的知识框架;2.普遍用户缺乏概括性、综合性的表述能力。为解决这个困难,要求开发人员在与用户接触之前就先行确定获取的内容主题,然后设计具体的应用环境和场景条件,让用户在执行细节业务的场景中来描述问题和表达愿望;3.用户存在认知困境。要解决这类问题,开发者就需要利用各种有效的需求获取方法和技巧,引导用户去发现用户尚未形成明确认知的知识;4.用户越俎代庖。要解决用户越俎代庖带来的困难,就要求开发者在需求获取的过程中,注意保持业务领域和解决方案的区分界限。而且越俎代庖式需求的出现,往往意味着用户还拥有一些重要的隐藏需求没有被发现,开发者就应该分析用户的深层目的,找到隐藏在背后的需求;5.缺乏用户参与。要解决缺乏用户参与的困难,就要求开发者在进行需求获取时,能够对系统的用户以及用户的替代源等相关涉众进行分析,了解他们的特征、类别、任务、取向等,并在需求获取中采取对策避免用户参与不足现象的发生。通过这几个问题的分析,了解到了需求获取过程中的困难,并且也学到了一些解决方法,应该会对以后的学习工作有帮助。
需求获取活动至少要做到:1.研究应用背景,建立初始的知识框架。2.根据获取的需要,采用必要的获取方法和技巧。3.先行确定获取的内容和主题,设定场景。4.分析用户的高(深)层目标,理解用户的意图。5.进行涉众分析,针对涉众的特点开展工作。
项目的业务目标是系统的业务需求。根据系统的高层解决方案和系统特性,可以定义系统的上下文环境,建立系统的边界。软件系统的涉众可以定义为:所有能够影响软件系统的实现,或者会被实现后的软件系统所影响的个人和团队。软件系统中常见的涉众类别有:用户、客户、开发者、管理者、领域专家、政府力量、市场力量。
需求获取方法:1.面谈;2.原型;3.观察与文档审查
1.面谈:就是在需求获取活动发生在需求工程师和用户之间的面对面的会见,它是一种使用问答格式,具有特定目的的直接会话。之后书中介绍了面谈中的问题,准备面谈的主要工作,面谈的阶段,面谈的后续工作,面谈的类别,面谈的优点和局限性,群体面谈以及和面谈相关的其他需求获取方法
2.原型:是在软件开发中被广泛使用的一种工具,在软件开发过程中的各个阶段,包括需求开发,都会使用不同类型的原型来达到不同的目的。之后书中介绍了原型的类别,原型方法,原型方法的风险。
3.观察与文档审查:用户专心于完成自己的工作,而且不需要同步地向需求工程师解释自己的工作;需求工程师则置于一旁,他们很少会打断用户的工作,同时通过观察用户的行为形成对相关信息的学习和认知。文档审查的主要获取对象包括相关产品的需求规格说明、硬数据和客户的需求文档。
通过不同的需求获取方法,这样让我们在获取需求的时候,可以通过这几种方法来进行需求的获取 这样可是使得我们更加灵活的获取需求。