The Essential Guide toRequirements Management and Traceability

章节

什么是非功能性需求?它们如何影响产品开发?

    想象一下,你正在考虑购买一辆新车。在选购时,你会考虑几个不可商议的功能或属性,例如在汽车内置 GPS 导航系统中保存目的地,或者汽车必须是黑色。虽然你可能认为这些是“必备”功能,但它们将被视为与用户体验相关的非功能性要求。


    什么是非功能性需求 (NFR)?

    非功能性需求是软件系统的全局约束,例如开发成本、运营成本、性能、可靠性、可维护性、可移植性、稳健性等。
    与功能无关的需求,但与可靠性、效率、可用性、可维护性和可移植性等属性有关。
    在系统工程和需求工程中,非功能性需求是指定可用于判断系统运行的标准的需求,而不是特定行为。
    非功能性需求可能出现在副词或修饰从句中,例如“系统快速打印发票”或“系统*保密地打印发票”。
    软件具有非功能性需求,这些需求对于为用户创造积极的体验至关重要。如果您没有满足这些要求,您可能会遇到计划延迟、预算受挫和客户不满意的情况。
    缺乏非功能性需求的项目也可能缺乏清晰度,这可能导致项目范围模糊以及设计人员和客户期望之间的脱节。
    缺乏非功能性需求的项目也可能缺乏清晰度,这可能导致项目范围模糊以及设计人员和客户期望之间的脱节。
    非功能性需求弥补了开发人员认为客户想要的东西和客户真正想要的东西之间的差距。

    一项研究发现,软件开发成本的 60% 到 80% 涉及返工。如果非功能性需求得到很好的解决,您可以消除 50% 到 80% 的产品缺陷。

    那么,既然我们已经定义了非功能性需求,那么如何将它们有效地集成到您的产品开发过程中呢?


    非功能性需求侧重于产品的“功能”

    产品的“功能”包括质量、可靠性、可制造性、可用性、可维护性、可升级性等。有关更多信息,请参阅 SEAri MIT。

    非功能性需求侧重于用户体验。非功能性需求是定义系统质量、约束或外部接口的声明。例如,您可能希望构建一个可以管理未来扩展的系统。但仅仅这么说是不够的。您需要具体说明。相反,您可以将其定义为“构建一个可以在未来 24 个月内管理至少 50,000 名用户的系统,这样客户就不会遇到系统崩溃的挫败感。”

    此外,非功能性需求可能:

    • 遵守任何法律或遵守规则。
    • 定义软件的质量属性。
    • 确保可靠性、可用性、可扩展性等关键领域的性能。
    • 关注用户体验,使系统易于操作,并将潜在返工风险降至最低。

    就像买车一样,并不是每个人都需要相同的功能来获得出色的用户体验。你可能想要新车的加热座椅,但其他人可能想要第三排座椅。因此,你为项目定义的非功能性需求将根据客户的期望而有所不同。然而,潜在类别的列表可以为你提供一个起点,让你考虑哪些非功能性需求需要列在你的列表中。


    非功能性需求有哪些不同类型?

    将非功能性需求视为包含对用户体验很重要的属性的存储桶。请记住,它不是产品将做什么(即其功能性需求),而是项目将是什么。

    如果您选择了正确的存储桶并测量了正确的内容,那么您可以确信您交付的产品将满足客户的期望 – 因为您已经预先明确定义了这些期望。每个人都在同一页面上,当您集中管理需求时,这一点会得到进一步增强,我们将很快谈到这一点。

    现在,让我们看看非功能性需求的一些潜在类别:

    • 性能和可扩展性。所需的响应时间、基准规范和其他与性能相关的属性是什么?系统提供结果的速度有多快,以及随着工作负载的增加,性能将如何变化?
    • 操作约束。操作约束可能包括产品开发中需要考虑的任何必需的软件要求、系统要求和运行时约束。
    • 平台约束。大多数项目都包含某种平台约束。提前明确定义这些。
    • 可修改性。更改软件需要付出多少努力?提前定义这些可以帮助客户更好地规划任何潜在变化。
    • 可移植性要求和能力。将软件移动到其他平台有多难?软件在什么硬件和操作系统上运行?它是否与这些环境中的其他流程或应用程序冲突?明确定义这些元素。
    • 可靠性。软件发生故障的频率是多少?概述软件故障的任何后果以及检测错误的策略、错误更正计划等。
    • 安全性。安全性侧重于保护系统和数据的要求。入侵系统需要多少时间和精力,以及如何减轻这些风险?
    • 可用性。可用性侧重于用户体验。学习和操作系统有多难,如何改进任何潜在用途?
    • 法律。可能存在有关数据隐私、知识产权等的法律问题。

    类别因项目而异,但一些常见类别包括可用性、容量、可靠性和安全性。使用一些比较常见的开始,然后扩展到其他领域,可以帮助您为新产品开发项目构建模板。


    有哪些模板可用于跟踪和管理非功能性需求?

    软件和硬件团队在定义功能性和非功能性需求时,会在整个开发过程中进行协作。但是,当团队使用不同的工具时,这种协作就会出现问题。集中需求管理可让您节省时间、更有效地协调并确保产品开发的质量和合规性。使用单一解决方案可让您有效地:

    • 体验单一事实来源。单一事实来源在整个产品开发周期中提供更高的可见性。
    • 受益于实时迭代。在具有所有开发团队可见性和沟通能力的需求管理平台内工作,可以做出更明智的决策并提高协作能力。
    • 享受更强大的可视化。您可以更有效地可视化测试如何回溯到需求,从而提高质量和合规性。
    • 重复使用验证需求。重复使用经过验证的需求以快速在产品之间复制功能。

    集中需求管理可让您构建更强大、更有效的非功能性需求,从而改善产品开发。单一事实来源使您能够连接数据、对话和决策——所有这些都在单个系统中完成。

    结果是,您可以协作并传达有关产品开发的关键信息,从而减少返工、减少错过的最后期限并提高客户满意度。

联系表单

这将关闭于 0