该书共分为5个部分:需求获取,需求分析,需求的格式化与验证,需求的管理及工程管理。
首先是需求获取
需要捕获的包含内容为:需求内容、需求来源、需求方法、执行获取、记录成果。
(一)需求内容:
(1)需求。主要表现为用户对系统的期望及目标,在获取中体现为涉众的问题、期望、观点、看法和态度等。
(2)问题与描述。主要用于承载和解释需求的问题域特性,表现为现实世界的业务运行情况。
(3)环境与约束。这属于一种特殊的问题域特性,其主要来源于涉众的描述和对应用环境的观察。
(二)获取信息来源:
(1)涉众。这是获取信息的主要来源,可以为业务代表、领域专家等。
(2)硬数据。主要为登记表格、单据、报表等定量文档,备忘录、日志等定性文档。
(3)相关产品。例如竞争对手的同类产品,或者 与本类产品的协同产品。
(4)重要文档。包括系统规格说明文档,竞争产品的规格说明、协作产品的规格说明。这将会成为重要的文档依据。
(5)相关法律法规、行业技术标准。主要将其作为系统参考。
(三)获取信息方法
(1)传统获取方法。包括问卷调查、面谈、文档分析等。
(2)集体获取方法。包括头脑风暴会议、JAD(joint application development,联合应用开发)、JRP(joint requirement planning,联合需求计划)登。
其中,在实际的学习中,我们就尝试过头脑风暴会议,按照步骤先写出问题、目标(’三尖刀’原则:目标、好处、度量)、涉众分析,由于是第一次进行相关讨论会议,团队之间缺少默契,掌握知识也有所差距。因此,我们采取非结构化形式,即任意提出自己的观点的形式保障了整个会议的顺利进行。头脑风暴的会议过程中,较大的收获就是,能够保障问题思考的全面性,提出了较为合理的分析方案。
(3)原型
主要应用于某些需求模糊、不确定,是一种发现并且可视化高级别的技术。主要分为两种:
①水平和垂直的原型
水平原型也称“行为原型”,探索预期系统的一些特定行为,从而达到细化需求的目的。可以让用户通过原型考虑系统功能的有效性,使用户探讨的问题更加具体化。
垂直原型也称“结构化原型”或者“概念的证明”,仅开发一部分功能,降低现阶段可能存在的开发风险。
②抛弃型原型或者进化型原型
分类依据为原型存在的生命周期。
抛弃型原型,顾名思义此原型并不作为最终产品的一部分。仅用于在探索一些问题时,试探性做出类似原型。因此不应花费太多精力。
进化型原型,利用软件迭代开发的特点,在已经清楚地定义了需求的情况下,通过渐进式开发出产品。因此对代码质量要求较高。
(4)模型驱动
常见有面向目标的方法、面向场景的方法、面向用例的方法。
(5)认知方法
通过认知的方法获取用户无法用言语表达的需求。常见有任务分析、协议分析等。
(6)基于上下文的方法
通过注重用户在一定环境下的表现行为,从而获取到信息。主要包括:观察、民族志、话语分析等。
(四)执行获取
(五)记录结果
其次是需求获取注意事项
合理组织方案
维护项目前景及范围
防泄漏