《需求工程——软件建模与分析》04

一、需求捕获过程

需要捕获的包含内容为:需求内容、需求来源、需求方法、执行获取、记录成果。下面将分点阐述其中包含的内容:

(一)需求内容:

(1)需求。主要表现为用户对系统的期望及目标,在获取中体现为涉众的问题、期望、观点、看法和态度等。

(2)问题与描述。主要用于承载和解释需求的问题域特性,表现为现实世界的业务运行情况。

(3)环境与约束。这属于一种特殊的问题域特性,其主要来源于涉众的描述和对应用环境的观察。

(二)获取信息来源:

(1)涉众。这是获取信息的主要来源,可以为业务代表、领域专家等。

(2)硬数据。主要为登记表格、单据、报表等定量文档,备忘录、日志等定性文档。

(3)相关产品。例如竞争对手的同类产品,或者 与本类产品的协同产品。

(4)重要文档。包括系统规格说明文档,竞争产品的规格说明、协作产品的规格说明。这将会成为重要的文档依据。

(5)相关法律法规、行业技术标准。主要将其作为系统参考。

(三)获取信息方法

(1)传统获取方法。包括问卷调查、面谈、文档分析等。

(2)集体获取方法。包括头脑风暴会议、JAD(joint application development,联合应用开发)、JRP(joint requirement planning,联合需求计划)登。

其中,在实际的学习中,我们就尝试过头脑风暴会议,按照步骤先写出问题、目标(’三尖刀’原则:目标、好处、度量)、涉众分析,由于是第一次进行相关讨论会议,团队之间缺少默契,掌握知识也有所差距。因此,我们采取非结构化形式,即任意提出自己的观点的形式保障了整个会议的顺利进行。头脑风暴的会议过程中,较大的收获就是,能够保障问题思考的全面性,提出了较为合理的分析方案。

(3)原型

主要应用于某些需求模糊、不确定,是一种发现并且可视化高级别的技术。主要分为两种:

①水平和垂直的原型

水平原型也称“行为原型”,探索预期系统的一些特定行为,从而达到细化需求的目的。可以让用户通过原型考虑系统功能的有效性,使用户探讨的问题更加具体化。

垂直原型也称“结构化原型”或者“概念的证明”,仅开发一部分功能,降低现阶段可能存在的开发风险。

②抛弃型原型或者进化型原型

分类依据为原型存在的生命周期。

抛弃型原型,顾名思义此原型并不作为最终产品的一部分。仅用于在探索一些问题时,试探性做出类似原型。因此不应花费太多精力。

进化型原型,利用软件迭代开发的特点,在已经清楚地定义了需求的情况下,通过渐进式开发出产品。因此对代码质量要求较高。

(4)模型驱动

常见有面向目标的方法、面向场景的方法、面向用例的方法。

(5)认知方法

通过认知的方法获取用户无法用言语表达的需求。常见有任务分析、协议分析等。

(6)基于上下文的方法

通过注重用户在一定环境下的表现行为,从而获取到信息。主要包括:观察、民族志、话语分析等。

(四)执行获取

(五)记录结果

二、需求获取注意事项

(一)合理的组织方案

一般组织方式为:确定系统边界、制定上下文图、系统用例图,通过遍历上下文图和系统用例图获取活动。有了整体的组织方案,还可将来自众多涉众的信息集成。

(二)维护项目前景和范围

用户在获取活动过程中,常常会表达出各种各样的信息,因此需求工程师需要清楚项目的前景和范围,从而引导、控制获取过程。

(三)接收获取信息的不稳定性

万事万物都具有其变化性,因此需求难免是不断变化的。

(四)控制探索性工作

对需求的可行性,进行深入和广泛的研究,在保障成本的情况下,尽可能满足用户需求。

(五)防止遗漏

为了保障需求的全面性,最好每一个涉众代表都能够表达出自己的需求,并将其进行细化,通过多种方法进行获取。检查边界值和布尔逻辑(逻辑或、逻辑与、逻辑非)。

(六)结束获取

需求信息获取肯定不是一蹴而就的,必定存在需求的更改及变化。但为满足开发工期,以及防止需求过于繁杂而导致项目失败。应该采取迭代开发,新出现的需求优先级较低,可以将其放在下一个阶段的开发过程中。

posted @ 2018-04-08 17:54  Someday&Li  阅读(519)  评论(0编辑  收藏  举报