需求混淆 - 作为非功能特性的功能适用性 (ISO25010)

软件测试 标准 质量评估 非功能性
2022-02-07 23:30:55

试图理解标准(ISO),但到目前为止,我发现它非常混乱。50% 的书籍说明功能性自然属于功能性需求,而另外 50% 的书籍说明功能性作为质量因素,涉及功能的非功能性方面。有些仅显示 NFR 列表并包括功能 (ISO9127) 或功能适用性 (ISO25010),有些则明确排除它们。
什么是正确的?如果这些质量模型要呈现质量因素,那么它们应该是真正的非功能性的,但它与 ISO 本身的定义相矛盾(产品或系统在指定条件下使用时提供满足陈述和隐含需求的功能的程度 = 不是明确的功能?)

Google Books 的一个例子——我真的不明白:

完整的软件质量模型包括以下非功能 性质量:

-功能适用性:产品或系统提供满足规定和隐含需求(功能要求)的功能的程度。

那么上面的定义说明了什么?那个非功能性特征实际上是功能性的吗?
但在大多数来源中,功能适用性被认为是 NFR.. 其中之一如下所示:

在此处输入图像描述

其他人说 ISO25010 根本没有解决功能要求......

编辑:所以我相信那些声称该标准处理功能的人确实是错误的,在 ISO 文档中,我发现以下内容:

模型的范围不包括纯粹的功能特性(见 C.6),但它确实包括功能适用性(见 4.2.1)。

4个回答

首先让我们看一下functional requirementISO/IEC 27000:2014 标准中术语的定义:

功能需求
指定系统或系统组件必须能够执行的功能的需求

functional requirements软件应该做什么也是如此。


然后,回到

功能适用性
产品或系统提供的功能满足明确和隐含需求(功能要求)的程度

Functional suitability是比较的测量值

  • 软件实际上可以做的事情
  • 以及软件应该做的事情。

— 这就functional suitability是非功能性需求的原因。它不仅涵盖了软件预期要做的功能,还涵盖了它的实际功能。

您可以将产品视为某人满足一系列需求的尝试。理想情况下,这些要求是某人解决实际问题的尝试。

从短视的角度来看,质量保证是关于验证产品是否满足要求。但问题中引用的定义指向了对质量更深层次的定义:产品是否真正解决了最初的问题。

功能适用性

此特性表示产品或系统在特定条件下使用时提供满足明确和隐含需求的功能的程度。该特性由以下子特性组成:

功能完整性。功能集涵盖所有指定任务和用户目标的程度。功能正确性。产品或系统以所需精度提供正确结果的程度。功能适当性。职能促进特定任务和目标完成的程度。

非功能特性

除了您将在系统中提供的明显特性和功能之外,还有其他一些实际上不做任何事情但仍然是重要特征的要求。这些被称为“非功能性需求”,有时也被称为“质量属性”。

以下是一些非功能性需求的示例:

性能要求 关于所需资源、响应时间、事务率、吞吐量、基准规范或与性能有关的任何其他方面的要求。

操作约束 列出任何运行时约束。这可能包括系统资源、人员、所需软件……

平台限制 讨论目标平台。根据用户的要求具体或通用。如果用户不关心,仍然存在平台限制。

Accuracy and Precision 对数据准确性和精确度的要求。(你知道区别吗?)注意100%的要求;他们经常花费太多。

可修改性 对软件进行更改所需工作量的要求。通常,衡量的是人员工作量(人-月)。

可移植性 将软件移动到不同的目标平台所需的努力。测量最常见的是人月或需要更改的模块的百分比。

关于软件失败频率的可靠性要求。测量值通常以 MTBF(平均故障间隔时间)表示。故障的定义必须明确。此外,不要将可靠性与可用性混为一谈,这是一种完全不同的要求。一定要详细说明软件故障的后果、如何防止故障、错误检测策略和纠正策略。

安全性 关于保护您的系统及其数据的一项或多项要求。测量可以用多种方式(努力、技能水平、时间……)来表示,以闯入系统。不要在需求文档中讨论解决方案(例如密码)。

可用性要求关于学习和操作系统的难度。要求通常以学习时间或类似指标表示。