什么是需求分析?别再只提用户需求了

Gavin,程序员、软件架构师、企业架构师,关注智能制造。

业务需求定义了为什么要发生变化,并通过业务需求可以识别出利益相关者。利益相关者会结合自身的需要细化业务需求,进而提出对具体软件系统的需求。软件系统从实现角度平衡所有利益相关者的需求,进而设计功能以满足业务需求。下图描述了整个业务需求实现的过程(来自BABOK)。

业务需求

业务需求定义了业务要实现的目标,进而定义了开发项目或解决方案的原因。通过业务需求,可以判断项目或解决方案成功与否。并且业务需求应该是企业级的,不限定于企业内部特定群体。良好的业务需求必须是:

  • 清晰的,通常在一个非常高的层次上定义,一般是企业级。
  • 提供足够的信息和指导,以帮助确保项目满足确定的需求。
  • 理解组织的任务、目标或目标、特定的业务需求或正在处理的问题
  • 在开发业务需求之前,应该清楚地定义和理解。

利益相关者需求

利益相关者需求定义了特定利益相关者群组的需求以及他们对特定解决方案的需求。它们是从利益相关者的角度来看的,显示了对业务需求的清晰跟踪。这有时需要在不同利益相关者群体的冲突需求之间进行折衷,以实现企业的更大利益。通过这种方式,利益相关者需求是业务需求和解决方案需求之间的桥梁。几个关键点是:

  • 利益相关者需求定义了每个特定利益相关者群组希望从解决方案中得到什么
  • 利益相关者需求确定解决方案的用例
  • 利益相关者需求是业务需求和解决方案需求之间的桥梁

软件需求

软件需求描述了一个软件系统将具有哪些特性来满足利益相关者和业务的需求。换句话说,软件需求是系统或系统组件必须满足或拥有的能力,以满足合同、标准、规格说明或其他正式强加的文档。最终,我们想要实现的是在预算范围内及时开发出满足客户实际需求的高质量软件。

也许软件开发人员面临的最大挑战是与客户共享最终产品的远景。项目中的所有利益相关者——开发人员、终端用户、软件经理、客户经理——必须对产品将会是什么样子以及要做什么有一个共同的理解,否则当产品交付时,会有人感到惊讶。软件领域的意外几乎从来不是好消息。

与利益相关者需求的多个场景如何满足业务需求类似,软件需求的多个场景也可以满足利益相关者需求,因此需要将利益相关者需求转换并跟踪到软件需求。几个要点:

  • 软件需求描述了软件将支持哪些特征。
  • 从利益相关者的角度来看,软件需求可能被视为描述了软件需求将如何满足利益相关者需求,但即使从这个角度来看,它也将在逻辑上和高阶上定义解决方案,而不是给出软件实现的细节

软件需求可进一步分为:

  • 功能需求:描述软件的功能和特性。
  • 非功能性需求:定义软件的质量或软件保持有效的环境条件。 就技术系统解决方案而言,这通常指容量、速度、安全性、可用性等特征。

 

参考资料

  • 《BABOK Guide v3》

  • http://www.sqa.net/iso9126.html
  • http://ea.zhoujingen.cn/5297.html
  • https://cloud.tencent.com/developer/article/1705492

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月17日
下一篇 2021年1月17日

相关推荐