需求工程概述课件_第1页
需求工程概述课件_第2页
需求工程概述课件_第3页
需求工程概述课件_第4页
需求工程概述课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、需求工程概述1讲授人:游静讲授人:游静课时:课时:48学时学时EMAIL: 2021-8-2需求工程概述2参考教材n毋国庆等,软件需求工程(第2版),机械工业出版社,2013n黄国兴等,软件需求工程,清华大学出版社,2008n于向东等,软件需求开发最佳实践,清华大学出版社,2014n霍雁等,软件需求工程,科学出版社,20122021-8-2需求工程概述3软件开发的目标软件开发的目标n软件开发的目标,简单而言,就是满足用户的需要 。n谁能准确地说出用户需要什么?客户?用户?开发者?2021-8-2需求工程概述4一些基本概念一些基本概念n用户用户(user)。q利用计算机系统所提供的服务的人(们)

2、;q直接操作计算机系统的人(们),简单地说,就是直接使用软件系统的人(们)。n客户客户(customer)。q掌握经费的人(们),通常由他(们)决定软件需求,客户可以是用户,也可以不是用户。1.正式接收新开发或修改后的硬件和软件系统的某个(些)人或组织。2021-8-2需求工程概述5一些基本概念一些基本概念n软件开发人员软件开发人员(supplier)。为客户开发软件系统的人。 n项目相关人员项目相关人员(stakeholder)。指与提出和定义软件需求相关的人,其包括所有的用户、客户、系统分析人员和软件开发人员。这些人都是软件需求的来源,只是他们站在不同的立场看待将要开发的软件系统。2021

3、-8-2需求工程概述60 软件开发过程模型(回顾)软件开发过程模型(回顾)n瀑布式模型n快速原型模型 n渐增式模型 n螺旋式模型 n面向对象的开发模型 2021-8-2需求工程概述7瀑布式模型要求用户一开始就提要求用户一开始就提出清晰完整的需求出清晰完整的需求用户的参与用户的参与程度不够程度不够2021-8-2需求工程概述8瀑布式模型不足(1)由于开发模型是线性的,要求用户一开始就提出清晰完整的需求;(早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果)(2)段间移交信息(文档)的过程中,由于个人的理解不同,容易产生误解;(3)用户的参与程度不够。2021-8-2需求工程概述9

4、快速原型模型 明明确确并并完完善善需需求求2021-8-2需求工程概述10快速原型模型优点和不足优点优点:(1)能弥补弥补瀑布模型中用户参与程度不够等不足;用户可以充分地参与到软件开发中;(2)能减少减少用户需求的遗漏以及(在软件开发后期)用户频繁修改需求的可能性 ;(4)快速快速。减少开发周期,降低成本。不足不足:(1)用户易于视原型为正式产品;(2)快速原型系统对于软件系统的开发环境要求较多,在一定程度上也影响了其使用的范围和实用价值。 (3)对于难以被模块化的系统不适用。2021-8-2需求工程概述11渐增式模型 必须在实现各个构件之前就全部完成需求分析和概要设计工作。 2021-8-2

5、需求工程概述12螺旋式模型螺旋式模型将瀑布式模型与快速原型模型结合到一起,并加上风险分析。理解这种模型的一个简便方法是把它看作在每个阶段之前都增加风险分析。2021-8-2需求工程概述13复杂复杂螺旋式模型螺旋式模型成本高成本高经验要求高经验要求高2021-8-2需求工程概述14面向对象的开发模型面向对象的开发模型 所谓面向对象就是应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念对问题进行分析和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作为运行机制的一种问题求解方法。 2021-8-2需求工程概述15面向对象的开发模型面向对象的开发模型n特点

6、 (1)有一部分分析工作必须在设计之前进行,而另外一些分析工作则需与其他部分的设计与实现工作并行地进行,因而呈现出非线性的工作方式非线性的工作方式。(2)软件系统的表达形式在整个开发模型中都是相同的,即面向对象方法中把类及其结构作为系统的表达单元,无论哪一个阶段都以渐增的方式不断地渐增的方式不断地进化或细化进化或细化这些表达单元。(3)开发模型支持软件的重用软件的重用。 2021-8-2需求工程概述16客户开发人员我们要建立一套完整的商业管理软件系统。ok, 详细谈谈您想要它做什么?可以完成商品的进、销、存管理,是总店/门店的连锁经营模式 。实现门店自动订货、供应商自动结算、卖场扫描条形码进行

7、销售,管理人员可查询销售情况和库存。好的。我已经明白这个项目的大体框架,但在制订计划之前,我们必须先来收集一些需求。我不是刚告诉你我的需求了吗?您只说明了项目的概念和目标。我们需要和使用系统的业务人员进行讨论,才能了解真正的功能要求。业务人员都很忙!他们没有时间!你们可以先开发一个系统或说明一下你们现有的系统。如果我们凭空猜想用户的需求来开发系统,结果不会让人满意。我们不是采购专家和财务专家,并不真正明白您企业内部运营需要做什么。行了行了,我没有那么多时间。按我告诉你的需求开发吧,马上开始,并随时将进展情况告诉我。需求是制定项目计划的基础需求是制定项目计划的基础2021-8-2需求工程概述17

8、冰山模型美国著名心理学家麦克利兰于1973年提出了一个著名的素质冰山模型。所谓“冰山模型”,就是将人员个体素质的不同表现形式划分为表面的“冰山以上部分”和深藏的“冰山以下部分”。其中,“冰山以上部分”包括基本知识、基本技能,是外在表现,是容易了解与测量的部分,相对而言也比较容易通过培训来改变和发展。而“冰山以下部分”包括社会角色、自我形象、特质和动机,是人内在的、难以测量的部分。它们不太容易通过外界的影响而得到改变,但却对人员的行为与表现起着关键性的作用。表面需求说得清潜在需求无意识2021-8-2需求工程概述18第一章需求工程概述1.1什么是软件需求什么是软件需求1.2软件需求的分类软件需求

9、的分类1.3需求分析的重要性需求分析的重要性1.4需求规格说明需求规格说明1.5需求工程需求工程1.6需求工程面临的困难需求工程面临的困难2021-8-2需求工程概述191.1什么是软件需求什么是软件需求n软件需求的各种定义(1)A. Davis认为: 软件需求是从软件外部能发现的,软件所具有的,满足于用户的特点、功能及属性等的集合。(2)I. Sommerville认为: 需求是问题信息和系统行为、特性、设计和实现约束的描述的集合。 (3) M. Jackson等人认为: 需求是客户希望在问题域内产生的效果。2021-8-2需求工程概述201.1什么是软件需求什么是软件需求nIEEE关于软件

10、需求的定义(1)用户解决问题或达到目标所需的条件或能力;(用户的角度 )(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(软件系统的角度 ) 软件需求是指软件系统必须满足的所有功能、性质和限制。2021-8-2需求工程概述211.2软件需求的分类软件需求的分类n软件需求的分类(1)目标需求;(2)业务需求;(3)功能需求;(4)性能需求(非功能需求);(5)约束与限制。 反映组织或客户对系统和产品提出的反映组织或客户对系统和产品提出的高层次的目标要求,其限定了项目的高层次的目标要求,其限定了项目的范围和应达到的目标。范围和应达到的目标。描述软件系统完成的任务、

11、描述软件系统完成的任务、实际业务或工作流程等实际业务或工作流程等指开发人员必须实现的软件功能指开发人员必须实现的软件功能或软件系统应具体的外部行为或软件系统应具体的外部行为实现的软件系统功能应实现的软件系统功能应达到的技术指标,如计达到的技术指标,如计算效率和精度、可靠性、算效率和精度、可靠性、可维护性和可扩展性等可维护性和可扩展性等软件开发人员在设计和实软件开发人员在设计和实现软件系统时的限制,如现软件系统时的限制,如开发语言、使用的数据库开发语言、使用的数据库等等2021-8-2需求工程概述221.2软件需求的分类软件需求的分类n软件需求间的层次关系 2021-8-2需求工程概述231.2

12、软件需求的分类软件需求的分类n示例:文字处理系统相关需求用户使用系统能有效地纠正文档中的拼写错误,并且系统能满足用户的业务要求以及提高用户的工作效率。目标需求目标需求当找到文档中的拼写错误时,通过一个可供选择的单词表,并在选择单词表中的某一个单词后替换掉原来的单词。业务需求业务需求查找文档中的单词,并高亮度地显示出错的单词。用对话框显示可供选择的单词表。实现整个文档范围内的替换。 功能需求功能需求检查单词的速度快,准确率要求达到99,系统的有效性和可靠性要高等。非功能需求非功能需求文件内部格式要与word系统一致。开发平台为Linux系统,以及使用C语言等。约束与限制约束与限制2021-8-2

13、需求工程概述241.3需求分析的重要性需求分析的重要性2021-8-2需求工程概述25系统分析员在项目中的作用1.3需求分析的重要性需求分析的重要性2021-8-2需求工程概述261.3需求分析的重要性需求分析的重要性n1994年:31.1%的项目完成之前被取消; 52.7的项目实际花费超预算189%。n1999年:26%的项目成功,28%的项目是彻底失败,46%的项目存在费用超支、超出工期的问题。n2003年:在被调查的1.35万个项目中,34%成功,15%失败,51%受到质疑。Standish集团公司的研究报告:2021-8-2需求工程概述271.3需求分析的重要性需求分析的重要性 项目失

14、败或严重超支的8个最重要原因中有5个都与需求相关:n不完整的需求;n缺乏用户的参与;n不实际的客户期望;n需求和需求规格说明的变更;1.提供许多不必要的功能。 三种最经常使三种最经常使项目遇到困难项目遇到困难的因素的因素2021-8-2需求工程概述28需求错误的代价 Requirements timeDesignCodingUnit testAcceptance testMaintenanceStage.1-.2.512520在生命周期的不同阶段修复缺陷的相对成本 Davis A. M.研究发现,在需求阶段检查和修复一个错误所需研究发现,在需求阶段检查和修复一个错误所需的费用只有编码阶段的的费

15、用只有编码阶段的1/5到到1/10,而在维护阶段做同样的工,而在维护阶段做同样的工作所需付出的代价却是编码阶段的作所需付出的代价却是编码阶段的20倍倍2021-8-2需求工程概述29需求缺陷造成的成本增加n重新进行需求规格说明n重新设计、重新编码、重新测试n改变订单告诉用户将以一个修正后的版本来替代有缺陷的版本。n纠正活动消除由于不准确的特定系统的错误造成的危害,可能涉及到赔偿客户损失。n报废包括对于已经完成的代码、设计和测试,当发现它们是根据不正确的需求进行的时候,这些工作成果不得不被丢弃。n收回有缺陷的软件产品以及相关的用户手册。n产品赔偿或保修的成本。n重新安装新版本的成本。n重新建档的

16、成本。2021-8-2需求工程概述30高质量的需求过程带来的好处 n在开发后期和整个维护阶段的重做的工作大大减少了 。n让用户积极参与需求收集过程能使产品更富有吸引力,而且能建立起更加忠实的客户关系 。n用户的参与能弥补用户期望和开发者实际开发之间的“鸿沟”(期望差异)。 n将确定的系统需求明确地分配到各软件子系统,确保软硬件系统功能匹配适当。 n有效的变更控制也能降低需求变更带来的负面影响 。n将需求编写成清晰、无二义性的文档将会极大地有利于系统测试,确保产品质量 。2021-8-2需求工程概述311.4需求规格说明需求规格说明n需求规格说明需求规格说明是软件所应满足的全部需求全部需求,并可

17、以文档文档的方式完整和精确陈述这些需求。 n重要性需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文档。 2021-8-2需求工程概述321.4需求规格说明需求规格说明n内容需求规格说明应精确地描述一个软件系统必须提供的功能功能和性能性能,以及所要考虑的约束约束条件与限制条件与限制。 n编写方法需求规格说明也可以说是在1.2节中所定义的所有软件需求的集成,并使用某种描述语言如自然语言按照规定的书写格式编写的文档。 2021-8-2需求工程概述331.4需求规格说明需求规格说明一个好的需求规格说明应该具有的一个

18、好的需求规格说明应该具有的特征特征:完整性完整性正确性正确性可行性可行性必要性必要性划分优先级划分优先级无二义性无二义性可验证性可验证性可跟踪性可跟踪性确定性确定性2021-8-2需求工程概述341.5需求工程需求工程n需求工程 需求工程是指应用工程化工程化的方法、技术和规格来开发和管理软件的需求。 n目的要获取高质量高质量的软件需求。 最终产物需求规格说明2021-8-2需求工程概述351.5需求工程需求工程n任务 q确定待开发的软件系统的用户类用户类,并获取他们的需求信息。q分析用户的需求信息,并按软件需求的类型分类这些分类这些需求信息需求信息,同时也区别出不是需求的信息。q根据软件需求信

19、息建立软件系统的逻辑模型或需求模逻辑模型或需求模型型,并确认非功能需求和约束条件及限制非功能需求和约束条件及限制。q根据收集的需求信息和逻辑模型编写需求规格说明需求规格说明及其文档。q评审评审需求规格说明。1.当需求发生变更变更时,对需求规格说明及需求变更实施进行管理管理。2021-8-2需求工程概述36软件需求的开发和管理过程软件需求的开发和管理过程软件需求的开发和管理开发和管理过程是由导出、确导出、确认和维护软件系统需求规格说明认和维护软件系统需求规格说明的一系列活动组成的。 根据需求工程开发和管理过程可大致划分需求开发需求开发和需求管理需求管理两个阶段。其中需求开发主要产生正式的需求规格

20、说明,需求管理主要是根据需求的变化对需求规格说明的内容及版本进行管理。 2021-8-2需求工程概述37软件需求的开发和管理过程软件需求的开发和管理过程2021-8-2需求工程概述38软件需求的开发和管理过程软件需求的开发和管理过程需求工程过程可进一步划分为若干阶段。2021-8-2需求工程概述39需求开发过程的主要任务需求开发过程的主要任务(1)需求获取需求获取:确定和收集确定和收集与软件系统相关的、来自不同来源和对象的用户需求信息需求信息。(2)需求分析需求分析:对获得的用户需求信息进行分析和综合,即提炼、分析和仔细审查已收集到的用户需求信息,并找出其中的错误、遗漏或其它不足的地方,以获得

21、用户对软件系统的真正需求,建立软件系统的逻辑模型建立软件系统的逻辑模型(或需求模型)。(3)需求定义需求定义:使用适当的描述语言,按标准的格式描述软件系统的需求,并产生需求规格说明需求规格说明及其相应文档。(4)需求验证需求验证:审查和验证审查和验证需求规格说明是否正确正确和完整完整地表达了用户对软件系统的需求。2021-8-2需求工程概述40需求管需求管理过程的任务理过程的任务有效地管理软件系统的需求规格说明管理软件系统的需求规格说明及其相应文档,评估需求变更带来的潜在影响及可能的成本费用,跟踪软件需求的状态跟踪软件需求的状态,管理管理需求规格说明的版本版本等。2021-8-2需求工程概述4

22、1需求工程的内容 2021-8-2需求工程概述421.6 需求工程面临的困难需求工程面临的困难n需求获取与需求分析的困难性(1)有些需求可能用户也不是很清楚;(2)需要用户与开发人间进行充分的交流和协商;(3)需求间的冲突和矛盾的检查以及解决;(4)需求是否完整和确定;(5)合适的需求建模的方法和技术。2021-8-2需求工程概述431.6 需求工程面临的困难需求工程面临的困难n需求描述语言和规范化的困难性(1)怎样规范化用户需求;(2)规范化哪些用户需求;(3)非形式化和形式化描述语言的使用。2021-8-2需求工程概述441.6 需求工程面临的困难需求工程面临的困难n需求验证的困难性(1)

23、需求规格说明正确性的确认和验证;(2)验证的方法和技术;(3)如何进行自动验证。2021-8-2需求工程概述451.6 需求工程面临的困难需求工程面临的困难n需求管理的困难性(1)需求规格说明书的质量保证;(2)需求规格说明书的版本管理;(3)需求变更的控制。2021-8-2需求工程概述46The Standish Groupn美国专门从事跟踪IT项目成功或失败的权威机构,它每年发布CHAOS Report。报告中给出全美IT项目相关调查数据结果。n从历年的Standish Group报告分析看,导致项目失败的最重要原因与需求有关.Standish Group 的CHAOS 报告进一步证实了与成功项目最密切的因素是良好的需求管理,也就是项目的范围管理,特别是管理好项目的变更.2021-8-2需求工程概

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论