《软件需求工程(第2版)》一第1章 需求工程概述1.1需求工程的重要性

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

第1章 需求工程概述

1.1需求工程的重要性

随着计算机应用的不断发展和深入,软件系统的日益大型化、复杂化,软件的开发成本越来越高,软件开发的风险也越来越大。Standish集团公司的研究报告称:在美国,每年用于软件开发的费用在一千亿美元以上,其中,大型公司开发一个软件项目的平均成本为2322万美元,中等大小的公司为1331万美元,小型公司则为434万美元。调查显示,31%的项目在完成之前被取消,进一步研究的结果还表明:527%的项目实际所花费的成本为预算成本的189%[1]。根据该公司的另一项分析,项目失败或严重超支的8个最重要原因中有5个都与需求相关:需求不完整、缺乏用户的参与、客户期望不实际、需求和需求规格说明的变更、提供许多不必要的功能[2]。

一些具体的案例令人触目惊心:伦敦股票交易项目TAURUS,在花费了数百万英镑之后于1993年被取消(项目失败的总损失估计达到几亿英镑)。调查结果显示,许多问题源于未能协调那些不一致的需求[3]。Swanick空中交通控制系统原计划在1998年完工,但直到2001年尚未交付使用,额外开支高达1亿英镑以上。经官方调查,发现其中的一个主要原因在于“缺乏健壮的需求规格说明导致无法继续进行系统实现”[4]。
与此同时,另外的一些调查和研究显示:一个与需求相关的错误发现和解决越迟,其修复的代价越昂贵。ADavis研究发现,在需求阶段检查和修复一个错误所需的费用只有编码阶段的1/5到1/10,而在维护阶段做同样的工作所需付出的代价却是编码阶段的20倍[5]。这意味着在维护阶段修复一个错误的代价与需求阶段修复一个同样的错误的代价的比值可高达200∶1。
诸如此类的调查研究目前已有很多。虽然项目失败涉及的原因多种多样,但正如RGlass所说,“项目需求无疑是在软件项目前期造成麻烦的一个最大原因。一个又一个的研究已经发现,当项目失败时,需求问题通常正是核心问题。”[6]因此,在软件开发过程中,必须及早、有效地发现和解决与需求相关的问题。
在很长一段时间里,人们并没有充分认识到软件需求的作用,软件工程界也一直没有将需求工程作为一个独立的部分进行深入的分析和研究。直到上世纪90年代中期,随着软件系统开发中出现诸多问题,人们才逐渐认识到软件需求在整个软件开发中的重要性。通过一系列关于软件需求的重要学术会议进行广泛而深入的研究和讨论,由IEEE创办的专门研究软件需求的国际期刊《Requirement Engineering》的出版发行标志着需求工程作为一门独立的子学科正式形成。

相关文章
|
22天前
|
敏捷开发 安全 数据挖掘
【软件设计师备考 专题 】软件过程改进模型和方法:提升软件开发效率和质量
【软件设计师备考 专题 】软件过程改进模型和方法:提升软件开发效率和质量
40 0
|
5月前
|
数据挖掘 项目管理 计算机视觉
PMBOK泛读(第七章) - 项目成本管理(二)
PMBOK泛读(第七章) - 项目成本管理(二)
32 0
|
5月前
|
数据挖掘 项目管理 数据库
PMBOK泛读(第七章) - 项目成本管理(一)
PMBOK泛读(第七章) - 项目成本管理(一)
38 0
|
11月前
|
自然语言处理 数据安全/隐私保护 开发者
「需求工程」需求工程—需求规范(第3部分)
「需求工程」需求工程—需求规范(第3部分)
|
11月前
|
测试技术
「需求工程」需求工程——需求验证(第4部分)
「需求工程」需求工程——需求验证(第4部分)
|
11月前
|
SQL 自然语言处理 安全
「需求工程」需求工程-介绍(第1部分)
「需求工程」需求工程-介绍(第1部分)
sbs
|
SQL Oracle 关系型数据库
软件需求工程
前言之前看过一些系统分析相关,偏信管、软工专业的书:《系统分析与设计方法》,《软件需求》。 需求工程 部分对实际开发工作有不少帮助。相信很多开发也不太了解信管或者软工,更多关注于具体领域的前沿技术,所以这些概念应该能用到。文中部分是引用书中原文,部分是个人观点。文中产品,软件,系统是类似的含义。2020.7.10 —— by zz。需求需求一词的字典义是“被命令或强制性的东西;需要或者必要”,和软
sbs
563 1
软件需求工程
08.需求工程
脑图如下所示
666 0