如何确定非功能需求?

简介:

非功能需求一般和系统的状态有关而与系统需要提供的功能无关。通常是系统的“ ilities”功能,比如可扩展性(scalability)、互操作性(interoperability)、可维护性(maintainability)、移植性(portability)、性能和安全性都包括在此类。敏捷团队经常纠结于定义和估算项目的非功能需求。
  Mike Cohn建议几乎所有的非功能需求都能以用户故事表述。他给出了几个例子展示非功能需求能够适用标准的用户故事模板
  幸运的是约束/非功能需求能很容易的按用户故事处理。这里给出几个例子:
  作为客户,我要在从Windows 95之后的所有版本的Windows上运行产品。
  作为CTO,我要(新)系统使用我们已有的订单数据库而不是创建新数据库,这样我们就不用再多维护一个数据库了。
  作为用户,我要网站在99.999%的时间是可访问的,这样我就不会感到沮丧并找其它的网站来用。
  然而,Mike也警告说用户故事模板只是用来作为一个思考工具。不应该用一个固定的模板来记录所有的非功能需求。
  Jason建议不要试图在用户故事级别记录非功能需求,团队应该把它们作为(项目)大图景的一部分。按照Jason所说,在他的团队,他们尝试过在每个单独的用户故事级别记录非功能需求,但是没起到作用。他提到:
  我喜欢把这些非功能需求(NFR)用户故事写在墙上并在工作区都能看到,这样可以提醒团队在给出估算时考虑这些约束的因素。
  Mike还提出一种明确的方法来估算非功能需求。按他所说,非功能需求与两个成本相关联
  初始遵循(非功能需求)成本——团队满足非功能需求所用的工作量。比如,在sprint 5花在性能测试上的工作量。
  持续遵循(非功能需求)成本——在以后的sprint中满足非功能需求的工作量。
  一旦团队接受非功能需求作为项目的一部分(就像我们团队在sprint 5中做的),他们需要把持续达到非功能需求作为项目的提示。我认为这种成本就像上税。进行性能测试(或者说遵从任何非功能需求)产生了一些额外的开支(税)。这种开支,或者说税,是必须定期付出的。
  为了估算,Mike认为这两种成本需要单独考虑。初始遵循成本应该和任何其它的用户故事或产品backlog中的任务一样被估算。持续遵循成本,团队和product owner需要决定多久要进行一次遵循验证工作。
  例如,假设团队和product owner同意每四个两周的sprint中进行一次性能测试。团队估算每次第四个sprint有六个点的工作要做。那就是大约每个sprint1.5点。如果团队的速度(velocity)是30个点,1.5点可以认为是大约5%的税。
  Nick Xldis对遵循成本进行了一次非常有意思的观察。据Nick所说,
  如果这种税持续增长,那你的架构或流程上就有问题了,需要格外关注。这是对于技术债的很好的晴雨表。
  Scott Ambler通过提升一个独立测试团队的能力分享了管理非功能需求的想法。
  Kassab、Olga、Maya和Alain介绍了NFR大小测量方法(NFSM)来减少估算非功能需求中的不确定性。
  因此,处理非功能需求可能不是痛苦的挣扎。关键是尽早处理它们并关注持续成本。
  注意:关于非功能需求这一术语的使用有很多想法和争论。Mike Cohn称其为约束而Tom Glib强烈建议称之为质量需求。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
监控 安全 BI
组态软件的功能需求分析
组态软件的功能需求分析
|
3月前
|
缓存 算法 Java
非功能需求的测试
非功能需求的测试
39 2
|
4月前
|
数据库
系统分析与设计问题之什么是软件分析和软件设计
系统分析与设计问题之什么是软件分析和软件设计
|
测试技术
软件需求分析
一、软件需求分析 软件需求分析是软件工程中的一个关键过程,它旨在理解和明确用户对软件系统的需求,为后续的设计和开发提供基础。软件需求分析包括以下几个主要步骤: 1. 需求收集:需求收集是指通过与用户和利益相关者的沟通和交流,获取软件系统的需求信息。这可以通过面谈、访谈、问卷调查、观察等方式进行。需求收集的目标是获得用户的需求和期望,以及软件系统所需的功能和性能要求。 2. 需求分析和建模:需求分析是对收集到的需求进行分析和整理,以理解其背后的意图和目标。需求建模则是将需求信息以图形或文本形式进行描述和表达,以便于理解和沟通。常用的需求建模技术包括用例图、活动图、状态图等。 3. 需求验证和确认
427 1
|
6月前
|
设计模式 监控 架构师
如何在项目中考虑非功能需求
软件非功能需求包括性能、可靠性、安全性、易用性、可维护性、可移植性、兼容性、可重用性、可扩展性和可观察性。质量属性分为开发期和运行期,如易理解性、可扩展性、可测试性等是开发期质量,性能、安全性、易用性等是运行期质量。评估方法有ATAM(架构评估技术)、ADMEMS矩阵方法、SAAM(软件架构分析法)和CBAM(成本效益分析法)。ATAM包括建立评估小组、获取架构信息、风险承担者观点和形成最终报告四个阶段。
263 0
|
6月前
|
UED
产品服务需求分析与概念设计阶段
产品服务需求分析与概念设计阶段
122 3
|
6月前
|
运维 测试技术 API
产品服务的详细设计与开发阶段
产品服务的详细设计与开发阶段
100 2
OA系统模块设计方案
OA系统模块设计方案
159 0
如何做需求分析
什么是需求? 通俗些来讲需求就是现实和想象的差距,差距越大,需求越大。 来源网络,侵权删 如上图理想中的男朋友和现实中的男朋友,因为有差距,所以就有了类似于“如何让男人宠爱一生”之类的书、情感专栏等产品产生。
1387 0