功能性需求与非功能性需求

功能性需求和非功能性需求之间的主要区别

  • 功能需求定义系统或其组件,而非功能需求定义软件系统的性能属性。
  • 功能需求与需求分析一起有助于识别缺失的需求,而非功能需求的优势在于它可以帮助您确保良好的用户体验和软件的易操作性。
  • 功能需求是一个动词,而非功能需求是一个属性
  • 非功能性需求的类型包括可扩展性容量、可用性、可靠性、可恢复性、数据 Integrity等,而交易更正、调整和取消、业务规则、认证要求、报告要求、管理功能、授权级别、审计跟踪、外部接口、历史数据管理、法律或监管要求是各种类型的功能需求。
功能性需求与非功能性需求
功能性需求和非功能性需求之间的区别

什么是功能需求?

在软件工程中, 功能需求 定义系统或其组件。它描述了软件必须执行的功能。功能不过是输入、行为和输出。它可以是计算、数据操作、业务流程、用户交互或任何其他定义系统可能执行的功能的特定功能。

功能要求 软件工程中的“行为描述”可以帮助您捕获系统的预期行为。此行为可以表示为功能、服务或任务,或者需要哪个系统执行。

什么是非功能性需求?

A 非功能性需求 定义软件系统的质量属性。它们代表了一组用于判断系统具体操作的标准。例如,网站加载速度有多快?

非功能性需求对于确保整个软件系统的可用性和有效性至关重要。无法满足非功能性需求可能会导致系统无法满足用户需求。

非功能性需求允许您在各种敏捷待办事项中对系统设计施加约束或限制。例如,当同时在线用户数 > 3 时,网站应在 10000 秒内加载。 Descript非功能性需求的重视程度与功能性需求同样重要。

功能需求示例

以下是软件工程中功能需求的一些示例:

  • 该软件根据 ABC 联系人管理系统自动验证客户
  • 销售系统应该允许用户记录客户的销售情况
  • 应用程序中所有窗口的背景颜色将为蓝色,并且具有十六进制 RGB 颜色值 0x0000FF。
  • 只有管​​理层员工才有权查看收入数据。
  • 软件系统应与银行API集成
  • 软件系统应该通过 第508 可访问性要求。

非功能性需求示例

以下是软件工程中非功能性需求的一些示例:

  1. 用户首次成功登录后必须立即更改初始指定的登录密码。此外,首字母不应重复使用。
  2. 员工从来不被允许更新他们的工资信息。此类尝试应报告给安全管理员。
  3. 用户访问数据项的每次不成功的尝试都应记录在审计跟踪中。
  4. 一个网站应该有足够的能力处理 20 万用户并影响其性能
  5. 该软件应该是可移植的。因此,从一种操作系统迁移到另一种操作系统不会产生任何问题。
  6. 信息隐私、限制技术出口、知识产权等应接受审计。

功能性需求和非功能性需求之间的区别

以下是软件工程中功能性需求和非功能性需求的主要区别:

参数 功能需求 非功能性需求
它是什么 动词 Attributes
需求 这是强制性的 这是非强制性的
捕捉型 它是在用例中捕获的。 它被捕获为质量属性。
最终结果 产品特点 产品特性
捕获 易于捕捉 难以捕捉
目的 帮助您验证软件的功能。 帮助您验证软件的性能。
重点领域 关注用户需求 专注于用户的期望。
文件记录 描述产品的用途 描述产品的工作原理
测试类型 功能测试,如系统、集成、端到端、 API测试等等。 非功能性测试,如性能、压力、可用性、 安全测试等等。
测试执行 测试执行在非功能测试之前完成。 功能测试后
产品信息 产品特色 产品属性

功能需求优势

以下是创建典型功能需求文档的优点/优点 -

  • 帮助您检查应用程序是否提供该应用程序的功能要求中提到的所有功能
  • 功能需求文档可帮助您定义系统或其子系统之一的功能。
  • 功能需求和需求分析有助于识别缺失的需求。它们有助于明确定义预期的系统服务和行为。
  • 在功能需求收集阶段发现的错误是最容易修复的。
  • 支持用户目标、任务或活动以轻松进行项目管理
  • 功能需求可以用用例形式或用户故事来表达,因为它们表现出外部可见的功能行为。

非功能性需求的优点

非功能测试的优点/好处 软件工程 是:

  • 非功能性需求确保软件系统遵循法律和合规规则。
  • 它们确保软件系统的可靠性、可用性和性能
  • 它们确保良好的用户体验和易于操作的软件。
  • 他们帮助制定软件系统的安全策略。