在设计软件系统时,功能和非功能性需求之间的区别是什么?
为每一种情况给出例子。
功能性需求描述了软件系统应该做什么,而非功能性需求则对系统如何做进行了约束。
让我详细说明一下。
功能性需求的一个例子是:
系统的相关非功能性需求可能是:
功能需求是描述系统的行为,因为它涉及到系统的功能。系统的非功能性需求阐述一个性能特征。
典型的非功能性需求分为以下几个方面:
一个更完整的列表可以在维基百科的非功能性需求条目中找到。
非功能性需求有时根据度量标准(例如,可以度量系统的某些东西)来定义,以使它们更具体。非功能性需求也可能描述与系统执行无关的方面,而是与系统随时间的演变有关的方面(例如,可维护性、可扩展性、文档化等)。
功能需求是用户期望从软件中得到的主要内容,例如,如果应用程序是一个银行应用程序,应用程序应该能够创建一个新帐户,更新帐户,删除帐户等,功能需求是详细的,并在系统设计中指定
非功能性需求不是直接的系统需求,而是与可用性(在某种程度上)相关,例如,对于银行应用程序,主要的非功能性需求将可用,应用程序应该全天候可用,如果可能的话,没有停机时间。
功能需求系统必须执行的活动
我认为功能性需求是从客户端到开发端,是关于软件对用户的功能,而非功能性需求是从开发人员到客户端,即需求不是由客户端给出的,而是由开发人员提供的,以顺利运行系统,例如安全性,安全性,灵活性,可伸缩性,可用性等。
功能需求指定系统或系统组件必须能够执行的功能。可以用不同的方式记录它。最常见的是文档中的书面描述和用例。
用例可以是文本枚举列表,也可以是描述用户操作的图表。每个用例通过一个或多个功能需求说明行为场景。但是,分析师通常会从引出一组用例开始,从这些用例中,分析师可以得出必须实现的功能需求,以允许用户执行每个用例。
功能需求是什么系统应该完成的任务。可能是这样
一个典型的功能性需求将包含一个唯一的名称和编号、一个简短的摘要和一个基本原理。此信息用于帮助读者理解为什么需要此需求,并通过系统开发跟踪此需求。
LBushkin已经解释了更多关于非功能需求。我会补充更多。
非功能需求是除功能需求之外的任何其他需求。这些要求指定了可用于判断系统运行的标准,而不是特定的行为。
非功能性需求形式为<强> >系统应强>,是系统整体或某一方面的整体属性而不是某一特定功能。系统的整体属性通常标志着开发项目成功或失败的区别。
性能需求 接口需求 运营性需求 资源需求 验证需求 验收要求 文档需求 安全需求 可移植性要求 质量要求 可靠性要求 可维护性需求 安全要求
需求是被表达为功能性需求还是非功能性需求取决于:
例:系统可能需要向用户显示数据库中的记录数量。这是一个功能性需求。这个数字需要更新到什么程度,是一个非功能性需求。如果数字需要实时更新,系统架构师必须确保系统能够在可接受的记录数量变化的短间隔内更新[显示]记录计数。
引用:
功能需求是指与系统的技术功能相关的需求。
非功能性需求是一种指定标准的需求,该标准可用于判断系统在特定条件下的操作,而不是特定行为。
例如,如果考虑一个购物网站,将商品添加到购物车、浏览不同的商品、应用优惠和交易以及成功下订单都属于功能需求。
其中,系统在高峰时段的性能、系统从数据库中检索数据所花费的时间、用户数据的安全性、系统在非功能性要求下处理大量用户登录的能力。