《软件需求工程(第2版)》一1.2 什么是软件需求

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

1.2 什么是软件需求

“需求”这个词在日常生活中经常使用。通常的需求是指人对于客观事物需要的表现,体现为愿望、意向和兴趣,因而成为行动的一种直接原因。例如,当某个顾客向裁缝师傅订做一套服装时,这位裁缝师傅首先要获得这位顾客的一些数据,如身高、胸围、腰围、臂长和样式等,然后根据这些数据制作服装。这些数据就是该顾客订做服装的具体需求。试想,如果裁缝师傅将顾客的这些具体需求弄错或者根本不知道的情况下,无论其如何精心制作,使用多好的面料,其所做的工作都将是枉然的!因为客户可能根本不能穿,或者穿着不舒适。这个例子说明,需求对最终产品能否适用是至关重要的。同理,对于软件开发来说,软件需求就是软件用户认为其所使用的软件应该具备的功能和性能。

对于软件需求的定义,不同的研究人员有不同的看法。A Davis认为,软件需求是从软件外部可见的、软件所具有的、满足于用户的特点、功能及属性等的集合[5]。I Sommerville认为,需求是问题信息和系统行为、特性、设计和实现约束的描述的集合[7]。而M Jackson等人则认为,需求是客户希望在问题域内产生的效果[8,9]。在比较正式的文档中,IEEE软件工程标准词汇表将需求定义为[10]:①用户解决问题或达到目标所需的条件或能力;②系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力。其中①是从用户的角度定义的,②是从软件系统的角度定义的。

关于软件需求还有其他不同的定义。产生这些不同形式的定义的原因,一是需求工程的发展过程还不太长,人们的认识还在不断深入;二是真正的“需求”实际上是在人们的脑海中形成的,很难给予准确的定义。这也是导致需求工程难度很大的原因之一。不过,根据这些定义,我们可以认为软件需求是指软件系统必须满足的所有功能、性质和限制。

对于一个软件系统,不同的人对它应具有的功能和性能会有不同的需求。例如,对于文字处理系统这一软件,A先生打算将其用于编辑英文论文。于是他希望文字处理系统具有能简单地描述数学公式、检查英语单词和文法等功能。B先生则打算利用文字处理系统制作贺年卡片。他希望系统具有能处理图片和进行彩色打印的功能等。C先生则希望文字处理系统具有简单地制作中文文档和快速打印的功能等。于是,即使对于同一个文字处理系统,由于使用者的立场不同,其应具有的功能和性能也变得有所不同。因此,对于软件开发者来说,在开发一个软件系统之前,应考虑该系统的使用者有什么样的需求,该软件能解决什么问题等。否则,开发出的软件要么使用者不满意,要么根本不能使用,从而导致软件开发费用和时间的浪费。

相关文章
|
4月前
|
人工智能 程序员 开发工具
『软件工程1』详解软件是什么
该文章探讨了软件工程的基本概念,包括软件的定义、特征、软件危机的原因及其应对策略等内容。
|
7月前
|
存储 安全 数据安全/隐私保护
5款非常好用的小众软件,你值得拥有
今天为大家推荐五款不常见但好用的win10软件,它们都有着各自的特色和优势,相信你会喜欢的。
94 0
|
8月前
|
数据可视化 图形学
推荐5款知道的人不多的小众软件
今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。
95 0
|
8月前
|
存储 自然语言处理 数据安全/隐私保护
分享5款让人眼前一亮的小众软件
让你眼前一亮的软件,不一定是市面上最流行的。今天分享五款非常小众,但是十分好用的软件,它们功能强大,使用起来也非常方便。
104 0
|
存储 数据库 内存技术
分享5款十分好用的小众软件
今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。
122 1
分享5款十分好用的小众软件
|
存储 安全 网络安全
推荐5款助你高效工作的小软件
现在,有很多实用的工具和软件可以帮助我们更高效地完成各种任务。以下是5款值得推荐的工具软件,能够极大地提高我们的工作效率。
75 1
|
缓存 安全 数据可视化
这5款小众又好用的软件,你都知道吗?
我们在使用一些流行的软件的时候,往往会忽略一些知名度不高但是功能非常强大的软件,有的是因为小众,有的是因为名不见经传,总之因为不出名,有许多的好用的软件都不为大众所知道。
142 1
|
数据库管理
软件工程——什么是软件
软件工程——什么是软件
589 0
|
安全 视频直播
5款十分小众的软件,知道的人不多但却很好用
今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。
107 1
sbs
|
SQL Oracle 关系型数据库
软件需求工程
前言之前看过一些系统分析相关,偏信管、软工专业的书:《系统分析与设计方法》,《软件需求》。 需求工程 部分对实际开发工作有不少帮助。相信很多开发也不太了解信管或者软工,更多关注于具体领域的前沿技术,所以这些概念应该能用到。文中部分是引用书中原文,部分是个人观点。文中产品,软件,系统是类似的含义。2020.7.10 —— by zz。需求需求一词的字典义是“被命令或强制性的东西;需要或者必要”,和软
sbs
631 1
软件需求工程

相关实验场景

更多