03 软件需求工程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《03 软件需求工程.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 软件需求工程 软件 需求 工程
- 资源描述:
-
1、12通过对问题及其环境的理解与分析,为问题涉及的信通过对问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的生命周期的需求分析阶段需求分析阶段。软件需求作为软件生命周期的一个阶段,其重要性越软件需求作为软件生命周期的一个阶段,其重要性越来越突出,到来越突出,到20世纪世纪80年代中期,逐步形成了软件工程的子年代中期,逐步形成了软件工程的子领域领域需求工程。需求工程。90年代后,需求工程成为软
2、件界研究的重点之一。从年代后,需求工程成为软件界研究的重点之一。从1993年起,每两年举办一次需求工程国际研讨会(年起,每两年举办一次需求工程国际研讨会(ISRE),1994年起,每两年举办一次需求工程国际会议(年起,每两年举办一次需求工程国际会议(ICRE)。一些关于需求工程的工作小组相继成立,使需求工程的研。一些关于需求工程的工作小组相继成立,使需求工程的研究得到了迅速进展。究得到了迅速进展。3内容摘要内容摘要1.1.什么是需求工程什么是需求工程?2.2.什么是软件需求工程?什么是软件需求工程?3.3.软件需求的重要性软件需求的重要性4.4.软件需求的困难软件需求的困难5.5.软件需求内容
3、软件需求内容6.6.需求工程的活动需求工程的活动4需求工程需求工程(RE)的的概念概念 是指应用已证实有效的技术、方法进行需求分析,确是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。的所有外部特征的一门学科。 需求分析专家需求分析专家 Alan Davis 把需求工程定义为把需求工程定义为“直到直到(但不包括)把软件分解为实际架构构件之前的所有(但不包括)把软件分解为实际架构构件之前的所有活动活动” RE通过合适的工具和记号系统地描述待开发系统及其通过合适的工具和记号系统地描述待
4、开发系统及其行为特征和相关约束,形成需求文档,并对用户不断行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。变化的需求演进给予支持。1 什么是需求工程什么是需求工程52.什么是软件需求工程?什么是软件需求工程? 需求工程需求工程RE可分为可分为系统需求工程系统需求工程(如果是针对由软硬件共同(如果是针对由软硬件共同组成的整个系统)和组成的整个系统)和软件需求工程软件需求工程(如果仅是专门针对纯软(如果仅是专门针对纯软件部分)。件部分)。 软件需求软件需求的基本概念的基本概念 软件需求软件需求是指用户对是指用户对目标软件系统目标软件系统在功能、行为、性在功能、行为、性能、设计
5、约束等方面的期望。宽泛地讲,需求来源于用户能、设计约束等方面的期望。宽泛地讲,需求来源于用户的一些的一些“需要需要”,这些,这些“需要需要”被分析、确认后形成完整被分析、确认后形成完整的文档,该文档详细地说明了产品的文档,该文档详细地说明了产品“必须或应当必须或应当”做什么。做什么。 软件需求工程软件需求工程是一门分析并记录是一门分析并记录软件需求软件需求的学科,它把的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开
6、发过程把这些系统需求转换成究、原型开发过程把这些系统需求转换成软件的需求描述软件的需求描述和和一些性能参数。一些性能参数。6软件需求软件需求无疑是当前软件工程中的关键问题,无疑是当前软件工程中的关键问题,没有需求就没有需求就没有软件。没有软件。需求的重要性需求的重要性Frederick BrooksFrederick Brooks在他在他19871987年经典文章年经典文章“No Silver BulletNo Silver Bullet”中阐中阐述了需求的重要性:述了需求的重要性: 开发软件系统最困难的部分就是准确说明开发什么。最困难的开发软件系统最困难的部分就是准确说明开发什么。最困难的概
7、念性工作是编写出详细的需求,包括所有面向用户、面向机概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。极大的损害,并且以后对它修改也极为困难。 需求是产品的根源,需求工作的优劣对产品影响最大。就像一条需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。河流,如果源头被污染了,那么整条河流也就被污染了。 国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌国内软件业的痼疾:人们并不清楚究竟
8、该做什么,但却一直忙碌不停地开发。不停地开发。 3.软件需求的重要性软件需求的重要性73. 软件需求的重要性软件需求的重要性 美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目进行个软件项目进行跟踪调查。跟踪调查。 分析失败的原因发现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中缺乏最终用户的缺乏最终用户的参与以及不完整的需求又是两参与以及不完整的需求又是两大首要原因,大首要原因,各占各占13%和和12%。 未完成未完成84. 软件需求的困难软件需求的困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的
9、过程之一:应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应,它的实施无疑与各个应用行业的特征密切相关。用行业的特征密切相关。非功能性需求建模技术的缺乏非功能性需求建模技术的缺乏及其与功能性及其与功能性需求有着错综复杂的联系,大大增加了需求需求有着错综复杂的联系,大大增加了需求工程的复杂性。工程的复杂性。沟通上的困难,沟通上的困难,由于系统需求分析各方面人由于系统需求分析各方面人员有不同的着眼点和不同的知识背景,给需员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。求工程的实施增加了人为的难度。客户说不清楚需求;客户说不清楚需求;需求自身经常变动;需求自身经常变动;分析人
10、员或客户理解有误。分析人员或客户理解有误。 9真正的软件需求获取如此困难(漫画)真正的软件需求获取如此困难(漫画) 10 需求工程需求工程是系统工程和软件工程的一个交叉分支,是系统工程和软件工程的一个交叉分支,涉涉及到软件系统的目标、软件系统提供的服务、软件系统的及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。求和软件能力之间的桥梁。系统目标系统目标系统服务系统服务软件约
11、束软件约束运行环境运行环境5. 软件需求内容软件需求内容11用用 户需户需 求求软软 件需件需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出软件需求的内容软件需求的内容5. 软件需求内容软件需求内容12功能需求功能需求领域需求领域需求13非功能需求非功能需求产品需求产品需求机构需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全性安全性需求需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求需求可移植可移
12、植性需求性需求非功能需求非功能需求14因此系统应该具备以下因此系统应该具备以下: 基本数据维护功能基本数据维护功能 基本业务功能基本业务功能 数据库管理功能数据库管理功能 信息查询功能信息查询功能1516171819 Herb Krasner定义了需求工程的五阶段生命周定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理求实现与验证、需求演进管理 Matthias Jarke和和Klaus Pohl提出了三阶段周期提出了三阶段周期的说法:获取、表示和验证的说法:获取、表示和验证 本书将软件需求工程细分
13、为:本书将软件需求工程细分为:需求获取、需求需求获取、需求分析与协商、系统建模、需求规约、需求验证分析与协商、系统建模、需求规约、需求验证和和需求需求管理管理六个阶段。六个阶段。 6. 需求工程的活动需求工程的活动 20需求工程中的活动可分为两大类需求工程中的活动可分为两大类: :一、需求开发一、需求开发二、需求管理二、需求管理6. 需求工程的活动需求工程的活动 21一、一、 需求开发需求开发 需求开发需求开发的任务是的任务是准确地定义未来系统的目标,确定为了满足用户的需求准确地定义未来系统的目标,确定为了满足用户的需求系统必须系统必须做什么做什么。用。用需求规格说明书需求规格说明书规范的形式
14、准确地表达用户的规范的形式准确地表达用户的需求。需求。需求开发需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。的目的是通过调查与分析,获取用户需求并定义产品需求。(1 1)需求获取)需求获取的目的是的目的是深入实际,深入实际,通过各种途径通过各种途径, ,在充分理解用户需在充分理解用户需求的基础上,求的基础上,获取用户的需求信息获取用户的需求信息。(2 2)需求分析、协商与建模)需求分析、协商与建模的目的是对各种需求信息进行分析,消除的目的是对各种需求信息进行分析,消除错误,刻画细节等。错误,刻画细节等。(3 3)需求规格说明)需求规格说明目的是根据需求获取和需求分析的结果,进一步
15、定目的是根据需求获取和需求分析的结果,进一步定义准确无误的产品需求,产生义准确无误的产品需求,产生需求规格说明书需求规格说明书。系统设计人员。系统设计人员将依据将依据需求规格说明书需求规格说明书开展系统设计工作。开展系统设计工作。(4 4)需求验证)需求验证是指开发方和客户共同对需求文档进行评审,双方对需是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。确保求达成共识后作出书面承诺,使需求文档具有商业合同效果。确保需求说明准确、完整地表达系统的主要特性。需求说明准确、完整地表达系统的主要特性。22需求获取需求获取非常困难非常困难,主要原因有:
16、,主要原因有:缺乏领域知识缺乏领域知识,应用领域的问题常常是模糊的、不应用领域的问题常常是模糊的、不精确的;精确的; 存在默认的知识存在默认的知识,如难以描述的常识问题;如难以描述的常识问题; 存在多个知识源存在多个知识源,且多知识源之间可能有冲突;且多知识源之间可能有冲突; 客户可能的偏见客户可能的偏见,如不能提供或不想告知你所需,如不能提供或不想告知你所需要了解的事情。要了解的事情。23需求获取技术需求获取技术1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专
17、题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法 还有知识工程方法等如:场记分析法、卡片分还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。类法、分类表格技术和基于模型的知识获取等。24需求获取技术需求获取技术1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷法调查法问卷法调查法 是对面谈法的补充。
18、是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法25需求获取技术需求获取技术 1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培
19、养高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法26 需求分析阶段需求分析阶段主要对收集到的需求进行提炼、主要对收集到的需求进行提炼、分析和认真审查,进行分析和认真审查,进行需求建模需求建模、对模型或原型进、对模型或原型进行行分析分析。确保所有参加人员取得一致共识。找出错。确保所有参加人员取得一致共识。找出错误、遗漏和不足,误、遗漏和不足,建立完整的分析模型建立完整的分析模型。 271 1、确定系统的综合要求、确定系统的综合要求 系统功能要求系统
20、功能要求这是最主要的需求,确定系统必须完成的所有功能。这是最主要的需求,确定系统必须完成的所有功能。 系统性能要求系统性能要求应就具体系统而定,例如可靠性、联机系统的响应时应就具体系统而定,例如可靠性、联机系统的响应时间、存储容量、安全性能等。间、存储容量、安全性能等。 系统运行要求系统运行要求主要是对系统运行时的环境要求,如系统软件、数据主要是对系统运行时的环境要求,如系统软件、数据库管理系统、外存和数据通信接口等。库管理系统、外存和数据通信接口等。 将来可能提出的要求将来可能提出的要求对将来可能提出的扩充及修改作预准备。对将来可能提出的扩充及修改作预准备。2 2、分析系统的数据要求、分析系
21、统的数据要求 软件系统本质上是信息处理系统,因此,必须考虑:软件系统本质上是信息处理系统,因此,必须考虑: 数据数据 (需要哪些数据、数据间联系、数据性质、结构)(需要哪些数据、数据间联系、数据性质、结构) 数据处理数据处理 (处理的类型、处理的逻辑功能)(处理的类型、处理的逻辑功能)3 3、导出系统的逻辑模型。、导出系统的逻辑模型。4 4、修正系统的开发计划、修正系统的开发计划通过需求对系统的成本及进度有了更精确的估算,通过需求对系统的成本及进度有了更精确的估算,可进一步修改开发计划。可进一步修改开发计划。28当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物
展开阅读全文