收藏 分销(赏)

软件系统开发与软件工程方法讲义.pptx

上传人:w****g 文档编号:10252712 上传时间:2025-04-30 格式:PPTX 页数:45 大小:328.56KB
下载 相关 举报
软件系统开发与软件工程方法讲义.pptx_第1页
第1页 / 共45页
软件系统开发与软件工程方法讲义.pptx_第2页
第2页 / 共45页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第七章,软件系统开发与软件工程方法,一、软件危机,二、软件工程,软件系统开发与软件工程方法讲义,第1页,一、软件危机,1、软件开发发展历程,1960,1970,1980,1990,早期,第二阶段 第三阶段 第四阶段,面向批处理,多用户,分布式系统,强大桌面系统,有限分布,实时,嵌入“智能”,面向对象技术,自定义软件,数据库,低成本硬件,教授系,统,开发者=使用者,软件产品,人工神经网络,并行计算,网络计算机,软件系统开发与软件工程方法讲义,第2页,一、软件危机,2、软件危机,1)案例思索1FAA失败项目,20世纪80年代中期,更换空中交通控制系统已成为美国联邦航空管理局(FAA)非常优先任务。1989年IBM企业取得更换该系统协议,截止期为,预计投入25亿美元。因为面临着极苛刻需求,该软件项目是已进行最复杂项目之一。比如,交通控制系统必须具备全局完整性而且每七天7天,天天二十四小时不能停顿工作,甚至在升级时或正常维护时,也不允许有停顿时间。任何错误数据都会引发重大伤亡,任何停机均会造成世界范围出行延误或潜在危险。该系统反应时间不能超出2-3秒。另外,该系统设计时必须考虑到允许私人飞机驾驶员继续使用旧设备,并要求软件能在未来移植到更新硬件设备上。当IBM取得该协议后,该系统主要花费为软件开发,用于硬件投入仅为8万美元。1993年,负责该项目标IBM子企业IBM联邦系统企业被IBM卖给了Loral企业。到1994年,该系统已花费了23亿美元,但还未提交系统任何程序段,而此时估算整个系统花费将增至50亿美元。1994年底,FAA不得不认可该项目失败并进行调查。作为调查结果,FAA取消或修改了系统四个主要部分。面临当前空中控制系统存在隐患,FAA不得不订购了一套作为权宜之计系统,由另一家企业开发。,你认为该项目标失败反应了什么问题?失败主要原因可能是什么?FAA为何选择取消和修改方式而不是增加资源和生产力方式?,软件系统开发与软件工程方法讲义,第3页,FAA,对此项目调查总结出原因为以下几条:,FAA,并没有明确掌握一些系统功效需求。,制订了过于急躁开发和实现计划(包含费用与进度预计),在给定软件复杂度下,没有考虑到开发商生产力,尤其是早期阶段需要投入资源。,在人月神话一书中,,Brooks,将过去,30,年大型软件项目标开发比喻为史前陷入沥青坑巨兽。恐龙、猛犸、剑齿虎等动物在焦油中挣扎,然而挣扎得越激烈,就陷得越快,最终都沉到了坑底。过去大型软件项目中,大多数开发出了可运行系统不过只有极少数满足了目标、进度和预算要求。表面上看起来没有任何一个单独问题会造成困难,每个问题都能取得处理,但这些问题纠缠和积累在一起时,团体行动就越来越慢,而且极难再看清问题本质。,软件系统开发与软件工程方法讲义,第4页,1995,年美国商业软件失败统计:,软件系统开发与软件工程方法讲义,第5页,一、软件危机,2、软件危机,案例思索2,遗传信息库建设,在正在建设遗传信息库如,假设你要开发一个管理软件。你并不是一个生物遗传方面教授,甚至对此方面知识一窍不通,你该怎样入手?要使该项目成功,你认为应该有哪些保障条件?,你问题是什么:对遗传信息管理,需要什么条件:了解遗传信息表示和管理流程,怎样实现:与遗传领域教授交流。,障碍是什么:难以沟通与交流。可能因误解产生错误需求描述。,软件系统开发与软件工程方法讲义,第6页,一、软件危机,2、软件危机,软件项目为何会失败?,软件项目失败关键问题在哪里?,答案只有一个:复杂性。,软件要处理问题本身是复杂,开发人员普通不是该问题领域教授,软件规模要求多人参加,而不一样专业领域人交流是困难,软件规模使得既要了解系统整体结构又要把握细节比较困难。,软件系统开发与软件工程方法讲义,第7页,例:,Windows,95,有1000万行代码,Windows,有5000万行代码,Exchange,和,Windows,开发人员结构,Exchange,Windows,项目经理,25人,约250人,开发人员,140人,约1700人,测试人员,350人,约3200人,软件系统开发与软件工程方法讲义,第8页,一、软件危机,2、软件危机,2)软件神话,1管理神话,神话:相关软件开发理论和方法已经很丰富,有很多可用标准与规范,因而能够确保软件开发顺利进行。,现实:理论与方法在大多数实践中并没有得到真正应用。使用者并没有对这些理论与方法建立正确认识。,神话:已经有很多强大开发工具和先进计算机硬件,这些能够确保软件开发质量与效率。,现实:这些工具并没有得到合理应用。,神话:假如我们落后于进度,能够经过增加人手来赶上。,现实:向一个已经延迟项目增加人手,只会使延迟项目愈加落后除非项目中不需要交流。生一个孩子10个月,不论有多少人。,软件系统开发与软件工程方法讲义,第9页,一、软件危机,2、软件危机,2)软件神话,1管理神话,神话:经过把软件项目外包给实现强大软件开发企业能够确保软件成功。,现实:再专业软件企业,不了解客户需求和业务流程,也不可能顺利完成软件开发项目。,软件系统开发与软件工程方法讲义,第10页,更正一个问题需付出代价,需,求,分,析,结构设计,详细设计,编码,集成测试,系统测试,现场,更正一个问题预计费用,更正一个问题预计工作量,20,200,1000,5.0,2.5,0.05,0.5,(美元),(人天),软件系统开发与软件工程方法讲义,第11页,一、软件危机,2、软件危机,2)软件神话,2客户神话,神话:有了目标系统普通性描述就能够写程序了,细节能够逐步完善。,现实:糟糕系统定义是项目失败主要原因。关于问题域、功效、行为、性能、接口、设计约束以及确认标准形式化、详细描述是必要,这些内容只能经过客户与开发者之间交流才能确定。,神话:软件需求是经常变更,而这些变更能够轻易被满足,因为软件是灵活。,现实:软件需求确实是轻易变更,但变更代价将随软件开发进度不一样而有很大差异。假如重新项目早期问题定义,需求改变则很轻易被调整,而项目后期需求变更代价可能是致命。,软件系统开发与软件工程方法讲义,第12页,一、软件危机,2、软件危机,2)软件神话,3实践者神话,神话:软件是艺术,软件开发是个人舞台。,现实:50年代可能是,现在不是。,神话:一旦写完了程序并能正常运行,我们工作就结束了。,现实:越早开始写代码,软件开发花费时间就越长。统计表明60%到80%工作量是花在将软件第一次交付给客户以后发生。,神话:程序真正运行以前,没有方法评定其质量。,现实:高质量实现来自高质量设计。从项目一开始就必须进行技术评审。,神话:项目标成功来自于可运行程序提交。软件开发过程中文档是无须要,延缓项目进度东西。,现实:软件项目标结果包含很多内容,文档是成功开发基础,也是软件质量确保。好开发质量降低了重复劳动,从而提升了效率,造成更短交付时间。,软件系统开发与软件工程方法讲义,第13页,一、软件危机,2、软件危机,3)软件危机及主要表现,软件危机指在计算机软件开发和维护过程中所碰到一系列严重问题软件开发不能满足日益增加需求;难以维护不停增加已经有软件。,1成本与进度预计,2用户需求与产品不一致,3软件可靠性差,4可维护性差,5文档资料不完整,6软件成本百分比不停上升,7开发生产率相对停滞,软件系统开发与软件工程方法讲义,第14页,一、软件危机,2、软件危机,3)软件项目成败原因分析,1)失败项目标主要原因,1用户需求不完整、被误解或经常改变,2有限用户参加,3缺乏行政支持,4缺乏技术支持,5项目计划不充分,6目标不明确,7没有足够资源(客户没有提供/开发者不具备对应生产力),2)成功项目标主要原因,1大量用户参加,2上层管理人员支持,3完整、详细项目计划,4符合实际工作进度与里程碑,5开发人员培训、交流,6良好工作环境、团体协作机制,软件系统开发与软件工程方法讲义,第15页,一、软件危机,2、软件危机,3)消除软件危机思绪,1正确观念,a),软件不是程序,软件是逻辑产品而不是实物产品,软件功效依赖于硬件和软件运行环境以及人们对它操作,软件特征:功效多样性,实现多样性,能见度低,软件结构合理性差,智力密集及知识产权保护,b),软件开发不是个体劳动,软件设计复杂性,软件系统开发与软件工程方法讲义,第16页,一、软件危机,2、软件危机,3)消除软件危机思绪,2正确过程管理与控制,软件开发技术,:软件开发方法,软件开发过程,软件工具和软件工程环境,软件工程管理,:软件管理,软件经济,软件心理,软件系统开发与软件工程方法讲义,第17页,二、软件工程,1、软件工程,将工程管理思想引入软件开发过程:,转变对软件认识:,上升,程序 系统,转变思维定式:,上升,程序员 系统工程师,(系统分析员),工程化训练,软件系统开发与软件工程方法讲义,第18页,二、软件工程,1、软件工程,将工程管理思想引入软件开发过程:,软件系统开发与软件工程方法讲义,第19页,用户,分析员,程序员,软件系统开发与软件工程方法讲义,第20页,“一个好工业,应有一套良好标准来配套”,软件工业化生产过程应具备特点:,明确工作步骤,详细详细规范化文档,明确质量评价标准,软件系统开发与软件工程方法讲义,第21页,软件产品标准化,软件开发过程标准化,软件系统开发与软件工程方法讲义,第22页,强调规范化,强调文档化,软件工程技术两个显著特点:,软件系统开发与软件工程方法讲义,第23页,二、软件工程,1、软件工程,Fritz Bauer,在,NATO,会议上给出定义:,“,软件工程是为了经济地取得可靠和能在实际机器上高效运行软件而确立和使用健全工程原理(方法)。”,软件系统开发与软件工程方法讲义,第24页,二、软件工程,1、软件工程,IEEE,【IEE83】,给出软件工程定义:,“软件工程是开发、运行、维护和修复软件系统方法。”,软件系统开发与软件工程方法讲义,第25页,二、软件工程,1、软件工程,IEEE,【IEE93】,给出了一个愈加综合定义:,“,将系统化、规范、可度量方法应用于软件开发、运行和维护过程,即将工程化应用于软件中。”,软件系统开发与软件工程方法讲义,第26页,二、软件工程,1、软件工程,软件工程是应用计算机科学、数学及管理科学等原理开发软件工程。它借鉴传统工程标准、方法,以提升质量,降低成本为目标。,软件工程所包含内容不是一成不变,而是伴随人们对软件系统研制开发和生产了解不停发展改变,,,应该用发展眼光对待。,软件系统开发与软件工程方法讲义,第27页,二、软件工程,1、软件工程,软件工程是一个层次化活动,,a),质量软件工程根基与目标,b),过程建造一个高质量软件所需完成任务框架,c),方法提供了怎样建造软件技术伎俩,d),工具为过程和方法提供自动或半自动化支持(,CASE),软件系统开发与软件工程方法讲义,第28页,工具,方法,过程,质量焦点,软件系统开发与软件工程方法讲义,第29页,二、软件工程,2、软件工程普通视图,工程:对技术(或社会)实体分析、设计、结构、验证和管理。首先要问题问题:,要处理什么问题?,实体什么特征能处理这个问题?,怎样设计该实体?,怎样构建该实体?,怎样控制和防止构建过程中错误?,怎样在用户要求修改、适应和增强时长久地支持这些实体?,定义阶段:做什么,开发阶段:怎样做,支持阶段:应对改变,项目跟踪与控制,技术评审,质量确保,软件配置管理,文档管理,复用管理,测试管理,风险管理,支持活动,软件系统开发与软件工程方法讲义,第30页,软件工程框架,可,用,性,性,性,确,正,合,算,选取适宜开发模型,采取适当设计方法,提供高质量工程支持,重视软件工程管理,基本过程,标准,目标,过,程,支,持,过,程,组,织,过,程,软件系统开发与软件工程方法讲义,第31页,软件过程评定,软件能力成熟度,CMM,1-初始级:没有过程定义,个人能力。,2-可重复级:基本项目管理过程,跟踪费用与进度,有必要规范以重复类似项目标成功。,3-定义级:过程管理文档化、标准化、集成化。使用统一文档化组织过程认可方法开发和维护软件。,4-管理级:对软件过程与产品质量进行详细地定量地搜集与评定,5-优化级:经过定量反馈不停进行过程优化与改进。,软件系统开发与软件工程方法讲义,第32页,二、软件工程,3、软件开发过程软件生命周期,软件产品或软件系统从设计、投入使用到被淘汰全过程。,软件系统开发与软件工程方法讲义,第33页,软件生存期阶段划分,(1)可行性研究与计划,(2)需求分析,(3)总体设计,(4)详细设计,(5)实现,(6)集成测试,(7)确认测试,(8)使用和维护,软件系统开发与软件工程方法讲义,第34页,二、软件工程,3、软件开发过程软件开发模型,软件开发模型是软件开发全部过程、活动和任务,结构框架,。它能直观表示软件开发全过程,明确要求要完成主要活动、任务和开发策略。,软件开发模型也常称为:,软件过程模型,软件生存期模型,软件工程范型,软件系统开发与软件工程方法讲义,第35页,二、软件工程,2、软件开发过程瀑布模型,可行性研究与计划,需求分析,设计,编码,运行维护,测试,定义,阶段,开,发,阶,段,维护阶段,软件系统开发与软件工程方法讲义,第36页,按照传统瀑布模型开发软件特点,1.阶段间含有次序性和依赖性。,2.推迟实现观点。,3.每个阶段必须完成要求文档;,每个阶段结束前完成文档审查,及早更正错误。,软件系统开发与软件工程方法讲义,第37页,二、软件工程,2、软件开发过程原型模型,建造/修改,原型,用户测试,运行原型,听取用,户意见,软件系统开发与软件工程方法讲义,第38页,采取原型模型软件生存周期,分析定义,系统需求,生成,原型,系统,设计,程序,设计,编码,测试,运 行,和维护,原型化,含原型化,软件生存期,软件系统开发与软件工程方法讲义,第39页,二、软件工程,2、软件开发过程增量模型,先完成一个系统子集开发,再按一样开发步骤增加功效(系统子集),如此递增下去直至满足全部系统需求。,系统总体设计在初始子集设计阶段就应作出构想。,软件系统开发与软件工程方法讲义,第40页,分析,增量模型,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,增量1,增量2,增量3,增量,n,增量1,交付客户,增量2,交付客户,增量3,交付客户,增量,n,交付客户,日历时间,.,软件系统开发与软件工程方法讲义,第41页,风险,分析,工程,实施,用户通信,用户,评定,产品维护项目,产品增强项目,新产品开发项目,概念开发项目,计划,建造及公布,2、软件开发过程螺旋模型,软件系统开发与软件工程方法讲义,第42页,V,1.0,功,能,时间,V,2.0,V,1.1,软件系统开发与软件工程方法讲义,第43页,二、软件工程,深入开发,实现和集成阶段,运行状态,实现阶段,计划阶段,面向对象分析阶段,需求阶段,维护期,2、软件开发过程喷泉模型,软件系统开发与软件工程方法讲义,第44页,2、软件开发过程组件模型与软件生产线,应用构件,提取车间,应用,构件库,构件生,产车间,构件库,组装,车间,领域,1,领域,2,应用,系统,.,1,2,3,4,1,基础构件,,2,功效构件,3,接口构件,,4,用户界面构件,软件系统开发与软件工程方法讲义,第45页,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服