需求工程概述_2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章需求工程概述软件学院代飞2013.春主要内容1.1需求工程的重要性1.2需求工程有用吗?1.3什么是需求工程?1.3.1需求工程的目标、对象、过程、任务1.3.2为什么软件产品需要需求工程?1.1为什么需要需求工程?从软件开发的困难看!软件项目失败的案例(1992年)PerformingRightsSociety(演出演绎协会)PROMS项目,花费1100万英镑之后被放弃。其中糟糕的需求工程是项目失败的一个主要因素,包括未能以普通人能够理解和检查的形式表达软件需求。(1990)WessexRegionalInformationSystemsPlan(地区信息系统),RISP项目,花费4300万英镑后被放弃。其主要原因包括缺乏对项目范围的清晰定义。与客户沟通的问题需求的边界问题软件项目失败的案例(续)(1993年)LondonStockExchange(伦敦股票交易)TAURUS项目,花费7500万英镑后被取消。许多问题源于未能协调不一致的需求。(1992年)LondonAmbulanceServiceDespatchSystem(伦敦救护车服务派遣系统),在运行两天后被关闭,源于对社会服务领域的需求没有分析清楚。不一致需求的管理问题需求不清晰的问题近期的软件失效案例2008年6月30日,北京奥运会门票系统在提交使用的当天即发生瘫痪,原因之一是对系统用户数的预测不足。网站浏览量平均为:2200次/秒以上提交的门票申请:200000张/秒以上非功能性需求描述不足近期的软件失效案例(续)无法访问;无法登录订票;登录订票后,扣款成功但购票不成功。美国StandishGroup调查报告调查时间:1995年调查范围:美国全国范围的软件项目(365家公司的8380个项目)总体结果:Success,16.2%Challenged,52.7%Impaired,31.1%美国StandishGroup调查报告成功大公司的项目成功率只有9%;中型和小型公司的项目成功率分别为16.2%和28%;有问题大公司项目有61.5%是有问题的;中型和小型公司的有问题的项目分别为46.7%和50.4%;完全失败29.5%的大公司项目被取消;中型和小型公司中被取消的项目分别占37.1%和21.6%。成功项目的影响要素问题项目的影响要素失败项目的影响要素用户参与15.9%缺少用户输入12.8%不完整的需求说明13.1%高层管理支持13.9%不完整的需求说明12.3%缺少用户输入12.4%清晰的需求说明13.0%需求变化11.8%缺乏资源10.6%正确的项目计划9.6%缺乏高层管理支持7.5%不切实际的期望9.9%切合实际的期望8.2%技术能力不足7.0%缺乏高层管理支持9.3%细化的项目里程碑7.7%缺乏资源6.4%需求变化8.7%员工能力7.2%不切实际的期望5.9%缺乏计划8.1%主人翁精神5.3%目标不清晰5.3%额外的无用功能7.5%清晰的目标和前景2.9%不现实的时间要求4.3%缺乏IT管理6.2%努力工作2.4%新技术的影响3.7%技术能力不足4.3%其他13.9%其他23.0%其他13.1%项目成功/失败因素分析(95年)需求因素用户参与(用户输入)高层管理支持清晰的需求说明切合实际的期望清晰的目标和前景需求变化额外的无用功能综合来看,需求因素对成功项目的影响指数为53.9%对问题项目的影响指数为55.6%对失败项目的影响指数为60.9%其它一些调查结果A.Davis(SoftwareRequirement,1993)以后修正需求错误比在需求阶段修正它要多花200倍的代价。Brooks(1987)构件软件最困难的阶段是精确地决定要构建什么(需求)欧洲软件协会ESI(1996)-17个国家3800公司的调查大多数(50%)被发现的问题是在需求规格说明和管理中评述R.Glass(softwarerunaways,1998)项目需求无疑是在软件项目前期造成麻烦的一个最大原因。一个又一个研究表明,当项目失败时,需求问题正是核心问题。面对的问题应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关;规模大、交互复杂。可能超越人仅靠经验能够认识的问题的范围;软件项目的成功除了技术因素外,还与社会因素、沟通相关;缺乏需求开发和管理的银弹。1.2需求工程有用吗?从发展现状看!StandishGroup报告(2000年)数字的变化成功率从1995年的16.2%增长到28%;面临问题的项目从1995年的52.1%减少到49%;项目的失败率从1995年的31%减少到23%。在软件项目中引入需求工程方法和技术对提高软件开发的质量和软件项目的成功率具有明显的影响。StandishGroup报告(2000年)新的IT项目成功的十大因素与需求相关因素有5项:用户参与(16%)清楚的业务目标(12%)尽可能小的问题范围(10%)稳定的基本需求(6%)形式化方法(6%)需求工程方法的有效性、可行性以及实施的质量仍然直接决定和影响软件项目的质量。1.3什么是需求工程?需求工程的定义。破题需求构造任何人工制品之前,其意图(为什么需要它?它将用于何处?期望是什么?)。工程工程化的方法;有效的技术;规范化、标准化的生产过程;规范化、标准化的产品,强调最终产品的实用性和目的性。需求工程是所有需求处理活动的综合,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应。1.3.1需求工程(内容和目标)内容:需求开发和需求管理;目标:需求规格说明书(软件需求规约或功能规格说明);当需求发生变更时,对需求规格说明进行管理。需求工程的研究对象研究对象:需求工程过程需求获取需求分析需求描述需求验证需求管理需求开发过程需求管理过程需求工程的任务问题域软件工程软件影响需求工程定义所需解决的问题其他构建软件解决问题1.3.2软件需求需要工程化方法吗?大部分工业产品都不需要需求工程有形的;可度量的;目的和产品形态有直接对应。为什么软件产品需要需求工程?低成本高利润工程必须要考虑设计的消耗/产出平衡,特别是针对那些需要使用资源的问题。解决方案:工程强调成熟解决方案的设计,通常是针对稳定的人工制品而言,即产品是有形的和度量的,其目标和产品形态有直接的对应关系;解决实际问题:工程师处理的问题常常是和人相关的,工程一般关注于通过技术的进步来提高人类生活的质量。运用科学知识:区别工程与其它设计的关键区别在于它要系统地使用分析技术,这些技术具有科学和数学的背景,工程使用这些技术分析问题,同时也对创建解决方案具有指导作用。软件产品的特殊性软件没有固定的形态;软件不好度量;目标与软件之间没有可直接对应的产品形态。特殊性给软件开发带来困难对与人紧密耦合的问题进行描述具有内在的复杂性,从而给理解软件的意图带来困难:没有确定的问题构形;问题解决方案的构造过程没有硬性的终止规则;问题解决方案没有对错之分,只有好坏之分;不存在对问题解决方案的客观的检测手段。软件开发的不变定律需求一直在变;开发过程充满了各种不确定性;软件维护永远不会终止。软件项目的成功无法保证,致使软件工程不像传统工程那样成功。软件开发的本质困难软件所要解决的问题具有:复杂性可变性不可预见性软件工程固有的困难软件开发的本质困难(续)软件:是作为一种创造性活动开发出来的产品;是由工匠(而不是艺术家)创造的工艺品。软件不是重复性制造活动的产物这样的人工制品需要需求工程存在各种各样的不确定因素谢谢!

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功