《实用软件工程》PPT课件_第1页
《实用软件工程》PPT课件_第2页
《实用软件工程》PPT课件_第3页
《实用软件工程》PPT课件_第4页
《实用软件工程》PPT课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

软件工程,软件工程齐治昌高等教育出版社(1997),教材,软件工程,软件工程导论(第三版)张海藩清华大学出版社(1997),参考书目,软件工程,实用软件工程(第二版)郑人杰殷人昆陶永雷清华大学出版社(1996),软件工程-实践者的研究方法(英文版第四版)RogerS.Pressman机械工业出版社,参考书目,参考书目,FundamentalsofSoftwareEngineeringCarloGhezzi,MehdiJazayeri,DinoMandrioliPrentice-Hall,Inc.(1991),SoftwareEngineering,TheoryandPracticeShariLawrencePfleeger,Prentice-Hall,Inc.(1998),软件工程近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门、生产部门、和服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。展望二十一世纪,软件仍将成为驱动任何事情从基础教育到遗传工程取得新进展的动力。学习研究工程化的软件开发方法,使开发过程更加规范。,什么是软件软件的分类软件的发展软件危机软件生存期软件工程软件工程的目的和要求,软件工程,软件是与计算机系统操作有关的程序、规程、规则及任何与之相关的文档及数据。程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据及其结构文档是与程序开发,维护和使用有关的图文材料,什么是软件?,软件的特点,软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性软件的生产与硬件不同,在它的开发过程中没有明显的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性软件的开发至今尚未完全摆脱手工的开发方式软件本身是复杂的实际问题的复杂性程序逻辑结构的复杂性软件成本相当昂贵相当多的软件工作涉及到社会因素,软件的分类,按软件的功能进行划分:系统软件操作系统数据库管理系统设备驱动程序通信处理程序等,支撑软件文本编辑程序文件格式化程序磁盘向磁带向数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件,应用软件商业数据处理软件工程与科学计算软件计算机辅助设计制造软件系统仿真软件智能产品嵌入软件医疗、制药软件事务管理、办公自动化软件计算机辅助教学软件,按软件规模进行划分:类别参加人员数研制期限源程序行数微型114周0.5k小型116月1k2k中型2512年5k50k大型52023年50k100k甚大型100100045年1M(=1000k)极大型20005000510年1M10M,按软件工作方式划分:实时处理软件分时软件交互式软件批处理软件按软件服务对象的范围划分:项目软件产品软件,按使用的频度进行划分:一次使用频繁使用按软件失效的影响进行划分:高可靠性软件一般可靠性软件,软件发展阶段,程序设计阶段50至60年代为具体运用专门编写小规模的程序程序系统阶段60至70年代软件作坊的出现沿用个体软件开发方法使得软件不可维护出现软件危机软件工程阶段70年代以后70年代中期80年代分布式系统、计算机网络、嵌入式系统发展80年代末开始面向对象、专家系统、人工智能的应用,软件危机(SoftwareCrisis),表现-对软件开发成本和进度的估算很不准确-用户对“已完成”软件系统不满意的现象经常发生开发人员与用户交流不充分-质量不可靠缺乏质量保证技术(审查、复审和测试)-软件常常是不可维护的-没有适当的文档资料-软件成本比重逐年上升-供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,原因-用户需求描述不准确-理解问题-管理人员缺乏经验-开发人员的疏漏-缺乏方法学支持-软件本身的特殊性和人类的智力障碍解决软件危机的途径-技术措施(方法和工具)-组织管理措施,例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.,这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,SoftwareCrisis!,项目没有被很好地理解;计划不周,最终导致进度拖延。,例1.Inthelate1960s,abright-eyedyoungengineer*waschosento“write”acomputerprogramforanautomatedmanufacturingapplication.Thereasonforhisselectionwassimple.Hewastheonlypersoninhistechnicalgroupwhohadattendedacomputerprogrammingseminar.HeknewtheinsandoutsofassemblerlanguageandFortran,butnothingaboutsoftwareengineeringandevenlessaboutprojectschedulingandtracking.*Ifyourewonderingwhetherthisstoryisautobiographical,itis!,问题出在哪里?,Hisbossgavehimtheappropriatemanualsandaverbaldescriptionofwhathadtobedone.Hewasinformedthattheprojectmustbecompletedintwomonths.Hereadthemanuals,consideredhisapproach,andbeganwritingcode.Aftertwoweeks,thebosscalledhimintohisofficeandaskedhowthingsweregoing.“Reallygreat,”saidtheyoungengineerwithyouthfulenthusiasm,“ThiswasmuchsimplerthanIthought.Improbablycloseto75percentfinished.”Thebosssmiled.“Thatsreallyterrific,”hesaid.Hethentoldtheyoungengineertokeepupthegoodworkandplantomeetagaininaweekstime.,Aweeklaterthebosscalledtheengineerintohisofficeandasked,“Wherearewe?”“Everythingsgoingwell,”saidtheyoungster,“butIverunintoafewsmallsnags.Illgetthemironedoutandbebackontracksoon.”“Howdoesthedeadlinelook?”thebossasked.“Noproblem,”saidtheengineer.“Imcloseto90percentcomplete.”Ifyouvebeenworkinginthesoftwareworldformorethanafewyears,youcanfinishthestory.Itllcomeasnosurprisethattheyoungengineerstayed90percentcompletefortheentireprojectdurationandonlyfinished(withthehelpofothers)onemonthlate.,例2:Intheearly1980s,theUnitedStatesInternalRevenueService(IRS)hiredSperryCorporationtobuildanautomatedfederalincometaxformprocessingsystem.AccordingtotheWashingtonPost,the“systemhasprovedinadequatetotheworkload,costnearlytwicewhatwasexpectedandmustbereplacedsoon”(Sawyer1985).In1985,anextra$90millionwasneededtoenhancetheoriginal$103millionworthofSperryequipment.Inaddition,becausetheproblempreventedtheIRSfromreturningrefundstotaxpayersbythedeadline,theIRSwasforcedtopay$40.2millionininterestand$22.3millioninovertimewagesforitsemployeeswhoweretryingtocatchup.,In1996,thesituationhadnotimproved.TheLosAngelesTimesreportedonMarch29thattherewasstillnomasterplanforthemodernizationofIRScomputers,onlyasix-thousand-pagetechnicaldocument.CongressmanJimLightfootcalledtheproject“a$4-billionfiascothatisflounderingbecauseofinadequateplanning”(Vartabedian1996).,Myth:Ifwegetbehindschedule,wecanaddmoreprogrammersandcatchup.Reality:Softwaredevelopmentisnotamechanisticprocesslikemanufacturing.InthewordsofBrooks,“addingpeopletoalatesoftwareprojectmakesitlater.”,没有充分的文档资料(documentation)Myth:Theonlydeliverableforasuccessfulprojectistheworkingprogram.Reality:Aworkingprogramisonlyonepartofasoftwareconfigurationthatincludesprograms,documents,anddata.Documentationformsthefoundationforsuccessfuldevelopmentand,moreimportant,providesguidanceforthesoftwaremaintenancetask.,VITAL!,人与人的交流比写程序困难得多。,Managersevaluate,trackprogress,.ProgrammerscommunicatetoeachotherMaintainers,软件可靠性(reliability)缺少度量的标准,质量无法保证。如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件,如:.,ThesoftwaresupportingtheAmericanspaceshuttleconsistsof3millionlinesofcode,includingcomputersonthegroundcontrollingthelaunchandtheflight;therewereonehundredthousandlinesofcodeintheshuttleitselfin1985.PresidentReagansproposedStrategicDefenseInitiative(SDI)isestimatedtorequire10to100millionlinesofcode.Manycomputerscientistsandsoftwareengineerscontinuetobelievethereisnowaytowriteandtestthesoftwaretoguaranteeadequatereliability.,软件难以维护(maintainability)不易升级(evolvability),Myth:Oncewewritetheprogramandgetittowork,ourjobisdone.Reality:Someoneoncesaidthat“thesooneryoubeginwritingcode,thelongeritlltakeyoutogetdone.”Industrydataindicatethatbetween50and70percentofalleffortexpendedonaprogramwillbeexpendedafteritisdeliveredtothecustomerforthefirsttime.,BettermanagementDifferentteamorganizationsBetterlanguages&toolsUniformcodingconventions必须意识到:“软件”编程,它有自己的生命周期(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。,“软件工程”(SoftwareEngineering)NATOConference,Garmisch,Germany,1968.,解决问题的想法:,软件工程过程,软件规格说明:规定软件的功能及其运行的限制软件开发:产生满足规格说明的软件软件确认:确认软件能够完成客户提出的要求软件演进:为满足客户的变更要求,软件必须在使用的过程中演进,软件工程过程的特性,易理解性可见性可支持性可接受性,可靠性健壮性可维护性速度,软件生存期lifecycle,软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护,瀑布模型,RETURN,制定计划,确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源(硬件,软件,人力等)、成本、效益、开发进度制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析和定义,对用户提出的要求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审,软件设计,概要设计把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护运行

温馨提示

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

最新文档

评论

0/150

提交评论