- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软 件 需 求 工 程
Software Requirements Engineering
(第二版)
机械工业出版社
2008.9
第1章 需求工程概述
1.1 需求工程的重要性
■ 计算机应用的不断发展和深入
■ 人们对软件开发的要求和期望很高
■ 软件开发中出现的问题
例: 美国某调查公司对软件项目开发情况调查的报告和评估结果。
项目开发失败的原因:共8个,其中5个与需求相关:
(1)不完整的需求;
(2)缺乏用户的参与;
(3)不实际的客户期望;
(4)需求和需求规格说明的变更;
(5)提供许多不必要的功能。
项目失败产生的损失很大:如伦敦股票交易项目等。
1.1 需求工程的重要性
从另一个角度:为什么需要需求工程?
其是否值得学习和研究?
(1)需求问题在软件工程是一个最老的问题
(2)需求错误是最昂贵的软件错误
(3)需求错误是大量的和不断的
(4)需求错误是最危险的软件错误
总结:项目需求无疑是在软件项目前期造成麻烦的一个最大
原因,一个又一个的研究已经发现,当项目失败时,
需求问题通常正是核心问题。
在软件开发过程中,必须极早、有效地发现和解决与需求相关的问题。
为什么原来没有认识到需求工程的重要性?
对软件开发工作的认识过程
与需求相关的一些活动难以度量和评价
项目初期看不出效益
分配给需求分析的时间和费用并不充分
需求文档要求严格 需花费很多的精力
需求维护很麻烦
需求工程的形成
随着软件系统开发中出现的诸多问题,人们才逐渐认识到软件需求在整个软件开发中的重要性 。
通过一系列关于软件需求的重要学术会议进行广泛深入的研究和讨论,以及由IEEE创办的专门研究软件需求的国际期刊《Requirement Engineering》的出版。
标志着需求工程作为一门独立的子学科的正式形成
1.2 什么是软件需求
需求:指人对于客观事务需要的表现,其体现为愿望、
意向和兴趣,因而成为行动的一种直接原因。
例如:裁缝师傅制作服装
开发软件的目的
软件的作用
目标系统:计算机系统的软件。
人工系统
需求
计算机系统
1.2 什么是软件需求
软件需求的定义:
A. Davis:软件需求是从软件外部能发现的,软件所具有的,满
足于用户的特点、功能及属性等的集合。
I. Sommerville:需求是问题信息和系统行为、特性、设计
和实现约束的描述的集合。
M. Jackson等:需求是客户希望在问题域内产生的效果 。
IEEE软件工程标准:
(1)用户解决问题或达到目标所需的条件或能力;
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文
档所需具有的条件或能力。
通俗定义 :软件需求是指软件系统必须满足的所有功能、性质和
限制。
为什么会产生这些不同形式的定义 ?
原因
例如:文字处理系统
A先生:打算将其用于编辑英文论文;
B先生:则打算利用文字处理系统制作贺年卡片;
C先生:希望文字处理系统能具有简单地制作中文文档和快速打
印的功能 ;
总结:对于软件开发者来说,在开发一个软件系统之前,应考虑
该系统的利用者有什么样的需求,该软件能解决什么问题
等。否则,开发出的软件要么利用者不满意,要么根本不
能使用,从而导致软件开发成本和时间的浪费。
1.3 需求的分类
需求可以大致分类如下:
目标需求:反映组织机构或客户对系统和产品提出的高层次的
目标要求,其限定了项目的范围和项目应达到的目
标。
业务需求:主要描述软件系统必须完成的任务、实际业务或工
作流程等。软件开发人员通常可从业务需求进一步
细化出具体的功能需求和非功能需求。
功能需求:指开发人员必须实现的软件功能或软件系统应具有
的外部行为。
文档评论(0)