功能和非功能需求之间有什么区别?

时间:2013-05-10 05:48:38

标签: requirements system-requirements

在设计软件系统的上下文中,功能非功能性要求之间有什么区别?

为每个案例举例。

6 个答案:

答案 0 :(得分:464)

功能需求描述了软件系统应该做什么,而非功能需求会对系统将如何进行约束。

让我详细说明。

功能要求的一个例子是:

  • 系统必须在满足特定条件时发送电子邮件(例如,下订单,客户注册等)。

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

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

功能要求描述系统的行为,因为它与系统的功能有关。非功能性要求详细说明了系统的性能特征

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

  • 辅助
  • 容量,当前和预测
  • 合规
  • 文档
  • 灾难恢复
  • 效率
  • 效能
  • 扩展
  • 容错
  • 互操作性
  • 可维护性
  • 隐私
  • 可移植性
  • 质量
  • 可靠性
  • 弹性
  • 响应时间
  • 鲁棒性
  • 可扩展性
  • 安全
  • 稳定性
  • 可支持
  • 可测

Wikipedia在non-functional requirements的条目中提供了更完整的列表。

非功能性需求有时根据度量(即可以测量系统的某些内容)来定义,以使它们更加切实可行。非功能性需求还可以描述与其执行无关的系统方面,而是描述其随时间的演变(例如可维护性,可扩展性,文档等)。

答案 1 :(得分:30)

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

非功能性获取不是系统的直接要求,而是与可用性(以某种方式)相关,例如对于银行应用程序而言,主要的非功能性要求是应用程序应该全天候可用的可用性。没有停机时间,如果可能

答案 2 :(得分:21)

功能要求

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

  2. 用例可以是文本枚举列表以及描述用户操作的图表。每个用例都通过一个或多个功能要求说明了行为场景。但是,分析师通常会首先引出一组用例,分析师可以从中派生出必须实现的功能要求,以允许用户执行每个用例。

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

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

  5. 非功能性要求

    LBushkin已经解释了更多关于非功能性需求的内容。我会添加更多。

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

    2. 非功能性要求的形式为"系统应为" ,系统整体或特定方面的整体属性,而不是一个特定的功能。系统的整体属性通常标记开发项目是成功还是失败。

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

      • 执行质量,例如安全性和可用性,可在运行时观察到。
      • 进化质量,例如可测试性,可维护性,可扩展性和可伸缩性,它们体现在软件系统的静态结构中。
    4. 非功能性要求限制了 正在开发的产品,开发过程, 并指定产品必须具有的外部约束 满足。
    5. IEEE-Std 830 - 1993列出了13个要包含在软件需求文档中的非功能性需求。
    6.   
          
      1. 性能要求
      2.   
      3. 接口要求
      4.   
      5. 操作要求
      6.   
      7. 资源要求
      8.   
      9. 验证要求
      10.   
      11. 验收要求
      12.   
      13. 文件要求
      14.   
      15. 安全要求
      16.   
      17. 便携性要求
      18.   
      19. 质量要求
      20.   
      21. 可靠性要求
      22.   
      23. 可维护性要求
      24.   
      25. 安全要求
      26.   

      要求是否表示为功能性或非功能性要求可能取决于:

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

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

      参考文献:

      1. Functional requirement
      2. Non-functional requirement
      3. Quantification and Traceability of Requirements

答案 3 :(得分:7)

功能要求是与系统技术功能相关的要求。

非功能性需求是一种要求,它指定可用于判断特定条件下系统运行的标准,而不是特定行为。

例如,如果您考虑购物网站,将商品添加到购物车,浏览不同商品,应用优惠和优惠以及成功下订单都符合功能要求。

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

答案 4 :(得分:3)

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

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

答案 5 :(得分:2)

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