功能需求和非功能需求有什么区别?[关闭]


282

是什么区别功能性非功能性的设计软件系统的环境要求?

给出每种情况的例子。



@TravisJ再次,让我们继续关注标签,直到完成标签燃烧的第一阶段为止。
TylerH '17

Answers:


524

有一种功能要求描述了什么软件系统应该做的,而非功能性需求放在约束如何,系统将这样做。

让我详细说明。

功能需求的一个示例是:

  • 每当满足特定条件时(例如下订单,客户签收等),系统都必须发送电子邮件。

该系统的相关非功能性需求可能是:

  • 此类活动发送的电子邮件的延迟应不超过12小时。

功能需求是描述与系统功能相关的系统行为。非功能需求详细说明了系统的性能特征

通常,非功能性需求属于以下领域:

  • 辅助功能
  • 容量,当前和预测
  • 合规
  • 文献资料
  • 灾难恢复
  • 效率
  • 效用
  • 可扩展性
  • 容错能力
  • 互通性
  • 可维护性
  • 隐私
  • 可移植性
  • 质量
  • 可靠性
  • 弹性
  • 响应时间
  • 坚固性
  • 可扩展性
  • 安全
  • 稳定性
  • 可支持性
  • 可测性

对于非功能性需求,可以在Wikipedia的条目中找到更完整的列表。

有时,非功能性需求是根据指标(即可以对系统进行度量的指标)定义的,以使其更加明确。非功能性需求可能还描述了与系统的执行无关的系统方面,而是与系统随时间的演变(例如,可维护性,可扩展性,文档等)无关。


考虑到您的声誉和专业工作经历(在撰写本文之前,我曾仔细考虑过),我会顺便告诉您:您不能 非功能性需求示例不能视为一种行为吗?还是您更想指出非功能性需求描述了行为约束的事实?
汤玛斯

1
为了澄清我的问题(可能无法回答):是否有一种方法可以更好地阐明行为构成的边界?
托马斯

加1给出电子邮件系统的漂亮示例。:)
Ahtisham '19

33

功能需求是用户希望从软件中获得的主要东西,例如,如果应用程序是银行应用程序,则该应用程序应该能够创建新帐户,更新帐户,删除帐户等。详细说明了功能需求并指定了功能需求在系统设计中

非功能性需求不是系统的直接要求,而是与可用性(以某种方式)相关,例如,对于银行应用程序而言,主要的非功能性需求将可用,应用程序应24/7可用且无停机时间如果可能的话。


27

功能要求

  1. 功能需求指定了系统或系统组件必须能够执行的功能。可以通过多种方式进行记录。最常见的是文档中的书面描述和用例。

  2. 用例可以是文本枚举列表以及描述用户操作的图表。每个用例通过一个或多个功能需求说明了行为方案。不过,分析师通常会从提出一组用例开始,分析师可以从中得出必须执行的功能要求,以允许用户执行每个用例。

  3. 功能要求是系统应该完成的任务。可能是

    • 计算方式
    • 技术细节
    • 数据处理
    • 数据处理
    • 其他特定功能
  4. 典型的功能要求将包含唯一的名称和编号,简短的摘要以及基本原理。该信息用于帮助读者理解为什么需要需求,并通过系统开发来跟踪需求。

非功能性要求

LBushkin已经解释了有关非功能需求的更多信息。我会添加更多。

  1. 非功能需求是功能需求以外的任何其他需求。这些要求指定了可用于判断系统运行的标准,而不是特定的行为

  2. 非功能性要求采用“系统应为”的形式,即系统整体或特定方面而非特定功能的整体特性。系统的总体属性通常标记开发项目成功与否之间的差异。

  3. 非功能性需求-可以分为两大类:

    • 在运行时可以观察到的执行质量,例如安全性和可用性。
    • 演化质量,例如可测试性,可维护性,可扩展性和可伸缩性,体现在软件系统的静态结构中。
  4. 非功能性要求对要开发的产品,开发过程进行了限制,并指定了产品必须满足的外部约束。
  5. IEEE-STD 830 - 1993列出13个非功能性要求被包括在一个软件需求文档。
  1. 性能要求
  2. 接口要求
  3. 操作要求
  4. 资源需求
  5. 验证要求
  6. 验收要求
  7. 文件要求
  8. 安全要求
  9. 便携性要求
  10. 质量要求
  11. 可靠性要求
  12. 可维护性要求
  13. 安全要求

需求是表示为功能需求还是非功能需求可能取决于:

  • 需求文件中包含的详细程度
  • 系统客户与系统开发人员之间存在的信任度。

例如 可能需要系统向用户显示数据库中记录数的显示。这是功能要求。此数字需要如何更新[更新]是一项非功能性要求。如果需要实时更新数量,系统架构师必须确保系统能够在可接受的记录数量更改的短间隔内更新[显示的]记录数量。

参考文献:

  1. 功能要求
  2. 非功能性要求
  3. 需求的量化和可追溯性

1
很好的解释。谢谢!
Arslan Ramay's

1
不错的答案,有很好的参考。我只想添加更新的标准,因为IEEE 830-1993被取代。最近的标准是ISO / IEC / IEEE 29148:2018 “系统和软件工程-生命周期过程-需求工程”(iso.org/standard/72089.html
注销

8

功能需求是与系统的技术功能有关的需求。

非功能性需求是指可以用来在特定条件下而非特定行为下判断系统运行的标准的需求。

例如,如果您考虑一个购物站点,则将商品添加到购物车,浏览其他商品,应用报价和交易以及成功下订单都属于功能要求。

鉴于系统在高峰时段的性能,系统从数据库中检索数据所花费的时间,用户数据的安全性,系统在大量用户登录时的处理能力属于非功能性要求。


极好的答案。
Iftekhar

3

功能要求 系统必须执行的活动

  • 业务使用用户执行的功能
  • 用例示例,如果您正在开发薪资系统所需的功能
  • 产生电子资金转帐
  • 计算佣金金额
  • 计算工资税
  • 向国税局报告减税

2

我认为功能需求是从客户端到开发人员,这与软件对用户的功能有关,非功能需求是从开发人员到客户端,即,需求不是由客户端提供的,而是由开发人员提供的,以便平稳地运行系统,例如安全性,安全性,灵活性,可伸缩性,可用性等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.