需求分析方法

一、目标

需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。

实例化需求是一组方法,它以一种对开发开发团队有所帮助的方式(理想情况下表现为可执行的测试)描述计算机系统的功能和行为,让不懂技术的利益相关者也可以理解,即使客户的需求在不断变化,它也具有很好的可维护性,可以保持需求的相关性。从而帮助团队交付正确的软件产品。

在我看来,这就是这套方法最牛的地方——帮助团队交付正确的软件产品正确这个词,说起来简简单单,但实现起来却真的很难。

实例化需求:让团队沟通无障碍,交付无差错 - 知乎

将不明确的,不清晰的、表述不清的,转换成可测试、可开发、场景描述准确的需求说明。

分析的几个角度:

1、等价替换

2、创新方案

3、追根溯源,弄清用户最原始的诉求,挖掘深层次的需求

需求实例化怎么做

1、从目标中获取范围。

与客户沟通协作,以用户的业务目标为起始,通过团队协作找出可以实现目标的范围。

Tip1:不要把用户自以为的解决方案当做系统需求。问他为什么,想解决什么问题。由你的团队讨论解决方案,划定范围。
Tip2:需要牢记业务目标,为什么做这件事情,因为开发团队很容易把关注焦点转移到怎么做上。

2、从协作中制订需求说明。

协作是关键词。目的是让项目的干系人,包括产品、设计、开发以及测试都参与进来,发挥整个团队的知识和经验,排除理解的不一致性,尽量减少个人认知造成的局限。

3、举例说明。

举例说明是项目需求交流过程中不可或缺的,团队中的人领域背景不同,对同一个事物的理解也可能不尽相同,通过举例说明的方式可以让目标更一致

在书中,作者提出,功能模块的例子必须具有精确性(不是简单的是或否的答案,使用具体的例子)、真实性(使用真实数据,从客户那儿获取真实的例子)、完整性(使用不同的数据组合去试验,利用其他方式去检验和测试),并易于理解(不用试验所有组合,寻找隐含的概念)。

4、提炼需求说明。

虽然协作过程中的需求讨论可以建立大家对相关领域的共识,但得到的实例往往包含很多不必要的细节。关键实例是从这些实例中提炼出来的,虽然精简但足以说明业务的实例。并且这些提炼好的实例本身就可以当作交付的验收条件。

5、在不修改需求的前提下,用自动化测试来验证需求。

6、频繁验证。

7、利用工具,提取组织良好的、易于寻找的、前后一致的活文档。

维护需求文档,通常是件让人头疼的事情。过于繁琐的需求文档会让人丧失维护的动力。可是,系统的重构和更新又偏偏需要这样一份文档。怎么办呢?所幸的是,实例化需求为我们提供了这样一种省时省力的方式——从自动化测试用例中提取文档!

二、原则

为了促进软件研发工作的规范化、科学化,软件领域提出了许多软件开发与说明的方法,如结构化方法、原型化法、面向对象方法等。这些方法有的很相似。在实际需求分析工作中.每一种需求分析方法都有独特的思路和表示法,基本都适用下面的需求分析的基本原则。

(1)侧重表达理解问题的数据域和功能域。对新系统程序处理的数据,其数据域包括数据流、数据内容和数据结构。而功能域则反映它们关系的控制处理信息。

(2)需求问题应分解细化,建立问题层次结构。可将复杂问题按具体功能、性能等分解并逐层细化、逐一分析。

(3)建立分析模型。模型包括各种图表,是对研究对象特征的一种重要表达形式。通过逻辑视图可给出目标功能和信息处理间关系,而非实现细节。由系统运行及处理环境确定物理视图,通过它确定处理功能和数据结构的实际表现形式。

转自 需求分析(软件工程学术语)_百度百科

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值