在设计软件系统时,功能性需求和非功能性需求之间的区别是什么?

为每一种情况给出例子。


功能性需求描述了软件系统应该做什么,而非功能性需求则限制了系统如何做。

让我详细说明一下。

功能性需求的一个例子是:

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

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

从这样的活动发送电子邮件的延迟应该不超过12小时。

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

典型的非功能性需求分为以下几个方面:

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

在维基百科的非功能性需求条目中有一个更完整的列表。

非功能性需求有时根据度量标准(例如,可以度量系统的某些东西)来定义,以使它们更具体。非功能性需求也可能描述与系统执行无关的方面,而是与系统随时间的演变有关的方面(例如,可维护性、可扩展性、文档化等)。

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

非功能性需求不是直接的系统需求,而是与可用性(在某种程度上)相关,例如,对于银行应用程序,主要的非功能性需求将可用,应用程序应该全天候可用,如果可能的话,没有停机时间。

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

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

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

功能需求

Functional requirements specifies a function that a system or system component must be able to perform. It can be documented in various ways. The most common ones are written descriptions in documents, and use cases. Use cases can be textual enumeration lists as well as diagrams, describing user actions. Each use case illustrates behavioural scenarios through one or more functional requirements. Often, though, an analyst will begin by eliciting a set of use cases, from which the analyst can derive the functional requirements that must be implemented to allow a user to perform each use case. Functional requirements is what a system is supposed to accomplish. It may be Calculations Technical details Data manipulation Data processing Other specific functionality A typical functional requirement will contain a unique name and number, a brief summary, and a rationale. This information is used to help the reader understand why the requirement is needed, and to track the requirement through the development of the system.

非功能性需求

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

Non-functional requirements are any other requirement than functional requirements. This are the requirements that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. Non-functional requirements are in the form of "system shall be ", an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed. Non-functional requirements - can be divided into two main categories: Execution qualities, such as security and usability, which are observable at run time. Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system. Non-functional requirements place restrictions on the product being developed, the development process, and specify external constraints that the product must meet. The IEEE-Std 830 - 1993 lists 13 non-functional requirements to be included in a Software Requirements Document.

性能需求 接口需求 运营性需求 资源需求 验证需求 验收要求 文档需求 安全需求 可移植性要求 质量要求 可靠性要求 可维护性需求 安全要求

需求是被表达为功能性需求还是非功能性需求取决于:

在需求文档中包含的细节级别上 存在于系统客户和应用程序之间的信任程度 系统开发人员。

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

引用:

功能性需求 非功能性需求 的量化和可追溯性 需求

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

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

例如,如果考虑一个购物网站,将商品添加到购物车、浏览不同的商品、应用优惠和交易以及成功下订单都属于功能需求。

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