《软件需求工程(第2版)》一3.5 确定非功能需求

简介: 本节书摘来自华章出版社《软件需求工程(第2版)》一书中的第3章,第3.5节,作者 毋国庆 梁正平 袁梦霆 李勇华,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.5 确定非功能需求

非功能需求是衡量软件能否良好运行的定性指标。因此,非功能需求也是非常重要的。但是在实际收集需求信息时,开发人员往往注重于功能性需求,而容易忽略非功能需求。这是因为非功能需求很难定义,也很含糊,如可靠性、易使用性、用户界面友好等。软件系统应具备什么样的可靠性?易使用应达到什么程度?什么样的用户界面才算是友好的?这些问题由于缺乏定量指标,因此很难根据这些需求来评价软件系统,这也是开发出来的软件系统与用户所需的软件系统之间存在差异的主要原因。
对软件系统的非功能需求有很多,此处仅列举一些用户所关心的非功能需求。
可靠性:指在给定的时间内以及规定的环境条件下,软件系统能完成所要求功能的概率。其定量指标通常用平均无故障时间和平均修复时间来衡量。
可扩充性:指软件系统能方便和容易地增加新功能,通常用增加新功能时所需工作量的大小来衡量。
安全性:主要涉及防止非法访问系统功能,防止数据丢失,防止病毒入侵和防止私人数据进入系统等。例如身份验证、用户权限、访问控制等都是与安全性相关的具体需求。
互操作性:指软件系统与其他系统交换数据和服务的难易程度。
健壮性:指软件系统或是组成部分遇到非法输入数据以及在异常情况和非法操作下,软件系统能继续运行的程度。
易使用性:指用户学习和使用软件系统功能的简易程度,也包括对系统的输出结果易于理解的程度。
可维护性:指在软件系统中发现并纠正一个故障或进行一次更改的简易程度。可维护性取决于理解、更改和测试软件的简易程度。
可移植性:指把一个软件系统从一个运行环境移植到另一个运行环境所花费的工作量的度量。

可重用性:指组成软件系统中的某个部件除了在最初开发的系统中能使用外,还可以在其他应用系统中使用的程度。
以上是在实际开发中用户可能提出的一些非功能需求。当然,随着软件系统的目标和应用领域的不同,用户提出的非功能需求可能是上述的一部分,也可能超出上述的需求。
在收集需求信息时,必须根据用户对系统的期望来确定非功能需求。如果能定量地确定非功能需求,将有助于清晰地理解用户的期望,有助于开发人员提出较合理的解决方案。然而,大多数用户并不可能提出具体的和量化的非功能需求,以及回答诸如“软件系统应该具备什么样的可靠性”或“互操作性是否重要”等这些问题。因此,开发人员在收集非功能需求信息时,要注意使用一些方法,例如:
1)将不同用户类代表提出的可能很重要的非功能需求进行综合,并根据其中的每个需求设计出许多方法,然后根据用户的回答,使这些需求更明确化。
2)开发人员与用户一起对每一个非功能需求制定可测试和可验证的具体标准。如果这些需求缺乏评价标准的话,就无法说明开发出的软件系统是否已满足这些需求。
3)设计与非功能需求相冲突的假设示例,利用反例来提示用户。

相关文章
|
6月前
|
监控 安全 BI
组态软件的功能需求分析
组态软件的功能需求分析
|
24天前
|
敏捷开发 设计模式 测试技术
【软件设计师备考 专题 】软件过程改进:提升软件开发效率和质量
【软件设计师备考 专题 】软件过程改进:提升软件开发效率和质量
62 0
|
24天前
|
敏捷开发 安全 数据挖掘
【软件设计师备考 专题 】软件过程改进模型和方法:提升软件开发效率和质量
【软件设计师备考 专题 】软件过程改进模型和方法:提升软件开发效率和质量
40 0
|
29天前
|
机器学习/深度学习 人工智能 测试技术
软件自动化测试在现代软件开发中的重要性
传统软件测试流程中,手动测试往往耗时且容易出现遗漏,随着软件规模和复杂度的不断提升,自动化测试成为了现代软件开发中不可或缺的一环。本文将探讨软件自动化测试的重要性,介绍其优势以及在现代软件开发中的应用。
11 0
|
6月前
|
测试技术
软件需求分析
一、软件需求分析 软件需求分析是软件工程中的一个关键过程,它旨在理解和明确用户对软件系统的需求,为后续的设计和开发提供基础。软件需求分析包括以下几个主要步骤: 1. 需求收集:需求收集是指通过与用户和利益相关者的沟通和交流,获取软件系统的需求信息。这可以通过面谈、访谈、问卷调查、观察等方式进行。需求收集的目标是获得用户的需求和期望,以及软件系统所需的功能和性能要求。 2. 需求分析和建模:需求分析是对收集到的需求进行分析和整理,以理解其背后的意图和目标。需求建模则是将需求信息以图形或文本形式进行描述和表达,以便于理解和沟通。常用的需求建模技术包括用例图、活动图、状态图等。 3. 需求验证和确认
340 1
sbs
|
SQL Oracle 关系型数据库
软件需求工程
前言之前看过一些系统分析相关,偏信管、软工专业的书:《系统分析与设计方法》,《软件需求》。 需求工程 部分对实际开发工作有不少帮助。相信很多开发也不太了解信管或者软工,更多关注于具体领域的前沿技术,所以这些概念应该能用到。文中部分是引用书中原文,部分是个人观点。文中产品,软件,系统是类似的含义。2020.7.10 —— by zz。需求需求一词的字典义是“被命令或强制性的东西;需要或者必要”,和软
sbs
564 1
软件需求工程
|
监控 测试技术 程序员
《软件需求工程(第2版)》一导读
许多人经过研究发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。
1116 1