您好,欢迎访问三七文档
软件工程基本知识简介葛君伟教授,博士(62460397,gejw@cqupt.edu.cn)主要参考教材张海藩,软件工程,人民邮电出版社,2010。S.L.Pfleeger,软件工程,人民邮电出版社,2007.LanSommerville,软件工程(英文版第7版),SoftwareEngineering,SeventhEdition,机械工业出版社,2004.11,ISBN7-111-15309-X1软件工程知识回顾2019/8/9JunweiGe4#includeiostream.hvoidmain(){inta,b;cout\ninputa,b=?\n;cinab;intc;c=a/b;intd=a%b;cout\na/b=cend;cout\na%b=dend;}问题1请讨论以下C++程序的作用和不足?//I/O流库头文件//输出提示语//对a、b变量输入//变量可随用随定义//输出a除以b的商//输出a除以b的余数CQUPT葛君伟5ITisnowoneofthelargestcorporateexpensesoutsideemployeecostsOrganizationsandgovernmentsspendanestimated$1trilliononIThardware,software,andservicesworldwide.Theaveragecompanyspendsabout4to5percentofrevenueonIT.ThecompaniesthatarehighlyITdependent—suchasfinancialandtelecommunicationscompanies—spendingmorethan10percentonit.CQUPT葛君伟6Governmentsarebigconsumersofsoftware…TheUnitedKingdomhadmorethan100majorgovernmentITprojectsunderwaythattotaled$20.3billion.TheU.S.governmentcataloged1200civilianITprojectscostingmorethan$60billion,plusanother$16billionformilitarysoftware.CQUPT葛君伟7GovernmentsarebigconsumersofsoftwareAnyoneoftheseprojectscancostover$1billion.Forexample,–thecomputermodernizationeffortattheU.S.DepartmentofVeteransAffairsisprojectedtorun$3.5billion,–whileautomatingthehealthrecordsoftheUK’sNationalHealthServiceislikelytocostmorethan$14.3billionfordevelopmentandanother$50.8billionfordeployment.Suchmegasoftwareprojectsarenowmuchmorecommon,assmallerIToperationsarejoinedinto“systemsofsystems.”–Airtrafficcontrolisaprimeexample,becauseitreliesonconnectionsamongdozensofnetworksthatprovidecommunications,weather,navigation,andotherdata.2019/8/9JunweiGe8问题2你应如何开发一个电信业务管理系统?2019/8/9CQUPT91软件工程知识回顾1.1软件工程的基本概念Whatissoftware?具有以下特征的实体(Entities)可以被看成软件。–TheyAreNon-tangible,andNon-physical,butOftenIntendedtoManageTangibles.–HierarchicalStructureIsaCommonFeature.–TheyConsistofComponentsHavingDifferentPurposes.–AllAreExpectedtoRequireModification/Evolution.–InterconnectionsAreKey.–AnalysisandVerificationAreUniversalUnderlyingNeeds.2019/8/9CQUPT101软件工程知识回顾1.1软件工程的基本概念Whatiscomputersoftware?具有以下特征的软件可以被看成计算机软件。–有可以在计算机上运行的程序/代码。–有可以被程序处理的数据。–有说明文档。2019/8/9CQUPT111软件工程知识回顾1.1软件工程的基本概念软件工程的定义软件工程是软件工程师用工具和技术(方法),按照某一过程和范例来构造软件,从而增强软件产品的质量,更有效地解决问题。2019/8/9CQUPT121软件工程知识回顾1.1软件工程的基本概念软件发展的三个阶段高级语言出现之前(约1946年~1956年);高级语言出现到软件工程出现之前(约1956年~1969年);软件工程阶段(1969年~至今)。2019/8/9CQUPT131软件工程知识回顾1.1软件工程的基本概念软件工程的作用解决软件危机;从技术和技术管理的角度来研究和探讨软件的设计、开发和维护问题。但由于软件本身的特点,软件产业既受技术影响,又受市场影响。所以我们不能说,只要解决软件工程问题就能推进软件产业。2019/8/9CQUPT141软件工程知识回顾1.1软件工程的基本概念软件危机的特征从微观上看,软件危机的特征正是表现在完工日期一再拖后、经费一再超支,甚至工程最终宣告失败等方面。而从宏观上、从整个社会对软件的需求来看,软件危机的实质是软件产品的供应跟不上需求的增长。2019/8/9CQUPT151软件工程知识回顾1.1软件工程的基本概念软件危机举例丹佛国际机场的行李地下传输系统有4000台遥控车,21英里长的钢轨,5000个电子眼,400台无线电接收机,56台条码机,在20家航空公司、柜台和行李领取处之间传送行李。通过由100台计算机组成的互联网来管理该系统。投资1.93亿美元,机场的开放时间拖了7个月以上。2019/8/9CQUPT161软件工程知识回顾1.1软件工程的基本概念软件危机举例1993年距伦敦90英里的塞兹韦尔核电站正式投入运行,但是工作人员很快发现核电站的反应堆内温度控制失灵,这使得欧洲人口最为稠密的地区面临巨大危险。事后查明,在反应堆的主要保护系统中,有一个10万行代码的控制软件几乎有一半未能通过测试。2019/8/9CQUPT171软件工程知识回顾1.1软件工程的基本概念软件危机举例80年代中,加拿大一家原子能公司生产的、由微处理机控制的癌症治疗仪,在美国和加拿大的多家医院使用均告失灵,致使6个病人因受超剂量辐射而死亡或受到严重伤害。2019/8/9CQUPT181软件工程知识回顾1.1软件工程的基本概念软件危机举例海湾战争中,一个软件故障打乱了爱国者导弹雷达跟踪系统,使导弹发射后未能迎击对方的飞毛腿导弹,反而轰击了自己的军营,造成28名士兵丧生、98人受伤。2019/8/9CQUPT191软件工程知识回顾1.1软件工程的基本概念软件危机举例1996年欧洲航天局发射的阿丽亚娜5型火箭,发射40秒钟后火箭爆炸,发射场上2名法国士兵当场死亡,耗资10亿美元、历时9年的航天计划严重受挫,引起了国际宇航界的震惊。事故发生后,专家组的调查分析报告指明,爆炸的根本原因在于惯性导航系统软件中技术要求和设计的错误。2019/8/9CQUPT201软件工程知识回顾1.1软件工程的基本概念软件危机举例德国电话计费系统的软件问题,造成用户需交付不合理电话费的事件,引起了公众的抗议。2019/8/9CQUPT211软件工程知识回顾1.1软件工程的基本概念软件危机举例2006年10日13时28分,中国民航信息网络股份公司在首都机场的离港系统发生故障,导致机场部分航班无法办理值机手续。北京、广州、深圳、长沙机场至少84个离港航班发生延误。而发生航班延误的机场,由于延误航班较多,机场人满为患。2019/8/9CQUPT221软件工程知识回顾1.1软件工程的基本概念软件危机举例——更多的例子2019/8/9CQUPT231生命周期知识回顾1.1软件工程的基本概念软件危机举例——更多的例子CQUPT葛君伟24国内失败案例…资源一号02型–飞行两年,在1473圈,变轨没有成功•发现是潜通道问题。系统实现是分散到五个子程序,变量在前一个模块被清掉,需要姿态正常,才能开发动机。•方法:把部分程序重新设计,再送上去CQUPT葛君伟25国内失败案例…三号卫星–2004年11月发射,12月-05.1,有四次进入异常工作模式。–分析:异常指令-内存传下来分析,发现是轨道计算发现寻址跳变。减法运算指令,是否带进位关系到结果正确。CQUPT葛君伟26国内失败案例神州飞船–返回的前天晚上,发现异常,发现发动机通讯有短暂不成功。神州二号–发射逃逸模式,发出指令却没有转化到逃逸模式。–问题:时间清零问题CQUPT葛君伟27TheproblemonlygetsworseasITgrowsubiquitousFailurecanbedefinedasthetotalabandonmentofaprojectbeforeorshortlyafteritisdelivered.OftheITprojectsthatareinitiated,from5to15percentwillbeabandonedbeforeorshortlyafterdeliveryashopelesslyinadequate.Manyotherswillarrivelateandoverbudgetorrequiremassivereworking.FewITprojects,inotherwords,trulysucceed.CQUPT葛君伟28WHENASOFTWAREPROJECTFAILSThefailuredoesn’treflectprojects–thatexceedtheirbudgets—whichmostprojectsdo,–thatdeliveredlate—whichthemajorityare,–thathavetostartoveronceaprojectisabandoned,or–thatarebug-riddensystemswhichhavetoberepeatedlyreworked.–发生用户诉讼的项目。包括以上所有浪费的费用,仅美国每年在软件开发上浪费的费用就在60-70billion美元。这些钱–可以发射太空飞船100次,–建造由24颗卫星组成的GPS系统,或者–从头研制开发Boeing777飞机,还要剩余几billion美元。2019/8/9CQUPT291软件工程知识回顾1.1软件工程的基本概念出现大量软件开发失败的主要原因–Acomplexsoftwaresystemcomprisesindividualadaptivesystemswhosebehaviorandinteractionschangeovertime.Thesechangesareusuallynotcentrallyplanned,butarisefromindependentprocessesanddecisionswi
本文标题:软件工程知识回顾
链接地址:https://www.777doc.com/doc-213298 .html