需求捕获是需求开发中的第一个活动,每个团队都必须提高需求捕获的有效性,要点在于计划性和科学性。
需求捕获的过程是人和人打交道的过程,需求捕获需要需求分析人员积极主动的去获取需求,是散网打鱼,而不是休闲钓鱼;在对用户进行需求提问时,要善于聚焦访谈话题;用户的需求是一个冰山,有很多潜在的需求我们不容易意识到,而理解业务场景有助于需求分析人员更深层次的理解用户的需求。需求捕获有很多种方法,(1)用户访谈:最常见、最基本的需求捕获技术,直接有效、形式灵活,但是要避免占用时间长和用户信息的片面性,最常见的被访谈者包括高层管理人员、中层管理人员、操作层和技术团队四类。访谈之前要有详细的用户访谈计划,访谈时要善于安排问题顺序,可以根据情况采用金字塔结构、漏斗结构和菱形结构组织问题;(2)用户调查:调查面广,可以获得更多人的反馈,但是认识不够深入,容易形而上学,它能有效的克服用户访谈中存在的片面性,先访谈再调查最合理。(3)文档考古:详细、直观的对数据流细节进行了解与分析,但是容易引起误导。另外还有情节串联板、现场观摩和联合开发,充分利用这些方法能够很好的进行需求分析。
需求捕获过程中会产生大量的信息,需要借助一些实用的工具有条理的记录下来。任务卡片是一种十分适合对业务活动级的信息收集与整理的记录工具;场景说明可以使需求人员根据信息进行抽象整理任务;另外还有用户故事、Volere白卡也是记录工具。
需求分析是需求工程中最核心的工作,而需求建模则是需求分析的主要手段。需求分析实际上是业务分析,先分解,再提炼,在这个过程中消除矛盾。行为需求+结构需求构成了整个需求的核心部分。需求建模过程比建模的结果更重要,建模可以帮助我们按照实际情况或按照我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的非那根发;给出一个指导系统构造的模版。需求分析阶段中分两个周期,第一个周期的任务是理清需求的结构框架(类领域图)和行为脉络(流程图和用例图),第二个周期的任务是对用例模型、领域模型标识出用例、领域类的细节进行填充。要根据要完成的任务选择合适的建模工具,而UML是一种统一的、标准化的建模语言,应用很广泛。每个业务事件都是一个业务流程的触发,业务流程分析是对每个业务事件进行的,分析并识别现有业务活动,确定业务活动之间的关系。数据流图也是一种建模方法,有5种基本元素,为了表达数据处理过程的数据加工情况,需要有层次结构的数据流程图。
需求描述是将需求捕获、分析的结果进行文档化的过程。在描述需求时,最常见的描述风格可以分成自然语言、图形化模型和形式化规格三种,根据不同项目、软件开发团队的特点选择不同的风格组合。有几种典型的需求规格说明书模版,阐释了“沟通决定内容,内容决定格式”,创建出符合自身项目特点、团队特点的模版。
需求验证是需求开发的最后一个环节,其目标是发现尽可能多的错误,减少因为需求的错误而带来的工作量浪费,需求验证的主要手段是Review(复查,评审),有不同正式化程度的评审,审查有一个完整的过程,包括规划、召开总体会议、做准备、召开审查会议、反攻、跟踪6个阶段。做好需求验证,必须在思想、方法、语言、人员、内容5个要点上做好相应的工作,否则会产生很多负面影响。
最近几节课老师也都在将需求捕获方面的内容,这部分很重要,通过一些案例给我们分析需求捕获过程中应该注意的问题,捕获中的方法等,并也做了实践运用用户访谈方式进行需求捕获,通过对特定的人对一个项目进行访谈,更有效、全面地获取需求,帮助我们理解需求捕获。在课上的时候可能仅仅根据几个场景案例不能很好的理解,课下通过看书、做实践可以巩固一下课上学习的内容,有更深层次的理解。