《软件工程知识回顾概要.pptx》由会员分享,可在线阅读,更多相关《软件工程知识回顾概要.pptx(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、主要参考教材张海藩,软件工程,人民邮电出张海藩,软件工程,人民邮电出版社,版社,2010。S.L.Pfleeger,软件工程,人,软件工程,人民邮电出版社,民邮电出版社,2007.LanSommerville,软件工程(英文版第7版),SoftwareEngineering,SeventhEdition,机械工业出版社,2004.11,ISBN7-111-15309-X第1页/共96页1软件工程知识回顾第2页/共96页2023/3/303#includevoidmain()inta,b;coutab;intc;c=a/b;intd=a%b;coutna/b=cend;coutna%b=dend
2、;问题1请讨论以下C+程序的作用和不足?/I/O流库头文件/输出提示语/对a、b变量输入/变量可随用随定义/输出a除以b的商/输出a除以b的余数第3页/共96页4ITisnowoneofthelargestcorporateexpensesoutsideemployeecostsOrganizationsandgovernmentsspendanestimated$1trilliononIThardware,software,andservicesworldwide.Theaveragecompanyspendsabout4to5percentofrevenueonIT.Thecompanie
3、sthatarehighlyITdependentsuchasfinancialandtelecommunicationscompaniesspendingmorethan10percentonit.第4页/共96页5GovernmentsarebigconsumersofsoftwareTheUnitedKingdomhadmorethan100majorgovernmentITprojectsunderwaythattotaled$20.3billion.TheU.S.governmentcataloged1200civilianITprojectscostingmorethan$60bi
4、llion,plusanother$16billionformilitarysoftware.第5页/共96页6GovernmentsarebigconsumersofsoftwareAny one of these projects can cost over$1billion.For example,the computer modernization effort at the U.S.DepartmentofVeteransAffairs is projected to run$3.5billion,while automating the healthrecords of the U
5、Ks National Health Service is likely to cost more than$14.3billion for development and another$50.8billion for deployment.Such megasoftware projects are now much more common,as smaller IT operations are joined into“systems of systems.”Airtrafficcontrol is a prime example,because it relies on connect
6、ions among dozens of networks that provide communications,weather,navigation,and other data.第6页/共96页2023/3/307问题2你应如何开发一个电信业务管理系统?第7页/共96页2023/3/3081软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念vWhatissoftware?v具有以下特征的实体具有以下特征的实体(Entities)可以被看成软件。可以被看成软件。TheyAreNon-tangible,andNon-physical,butOftenIntendedtoManageT
7、angibles.HierarchicalStructureIsaCommonFeature.TheyConsistofComponentsHavingDifferentPurposes.AllAreExpectedtoRequireModification/Evolution.InterconnectionsAreKey.AnalysisandVerificationAreUniversalUnderlyingNeeds.第8页/共96页2023/3/3091软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念vWhatiscomputersoftware?v具有以下特征的软件可以被看
8、成计算机软件。具有以下特征的软件可以被看成计算机软件。有可以在计算机上运行的程序有可以在计算机上运行的程序/代码。代码。有可以被程序处理的数据。有可以被程序处理的数据。有说明文档。有说明文档。第9页/共96页2023/3/30101软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的定义软件工程的定义软软件件工工程程是是软软件件工工程程师师用用工工具具和和技技术术(方方法法),按按照照某某一一过过程程和和范范例例来来构构造造软软件件,从从而而增增强强软软件件产产品品的的质量,更有效地解决问题。质量,更有效地解决问题。第10页/共96页2023/3/30111软件工程知识回顾1
9、.1软件工程的基本概念软件工程的基本概念v软件发展的三个阶段软件发展的三个阶段高级语言出现之前高级语言出现之前(约约1946年年1956年年);高级语言出现到软件工程出现之前高级语言出现到软件工程出现之前(约约1956年年1969年年);软件工程阶段软件工程阶段(1969年至今年至今)。第11页/共96页2023/3/30121软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件工程的作用软件工程的作用解决软件危机;解决软件危机;从从技技术术和和技技术术管管理理的的角角度度来来研研究究和和探探讨讨软软件件的的设设计计、开开发发和和维维护护问问题题。但但由由于于软软件件本本身身的的特
10、特点点,软件产业既受技术影响,又受市场影响。所以我们不能说软件产业既受技术影响,又受市场影响。所以我们不能说,只要解决软件工程问题就能推进软件产业。只要解决软件工程问题就能推进软件产业。第12页/共96页2023/3/30131软件工程知识回顾1.1软件工程的基本概念软件工程的基本概念v软件危机的特征软件危机的特征从从微微观观上上看看,软软件件危危机机的的特特征征正正是是表表现现在在完完工工日日期期一一再再拖拖后后、经经费费一一再再超超支支,甚甚至至工工程程最最终终宣宣告告失失败败等等方面。方面。而从宏观上、从整个社会对软件的需求来看而从宏观上、从整个社会对软件的需求来看,软件危机的实质是软件
11、产品的供应跟不上需求的增长。软件危机的实质是软件产品的供应跟不上需求的增长。第13页/共96页2023/3/30141软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例l丹佛国际机场的行李地下传输系统丹佛国际机场的行李地下传输系统有有40004000台遥控车,台遥控车,2121英里长的钢轨,英里长的钢轨,50005000个电子眼,个电子眼,400400台无线电接收机,台无线电接收机,5656台条码机,台条码机,在在2020家航空公司、柜台和行李领取处之间传送行李。家航空公司、柜台和行李领取处之间传送行李。通过由通过由100100台计算机组成的互联网来管理该系
12、统。台计算机组成的互联网来管理该系统。投资投资1.931.93亿美元,亿美元,机场的开放时间拖了机场的开放时间拖了7 7个月以上。个月以上。第14页/共96页2023/3/30151软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例19931993年年距距伦伦敦敦9090英英里里的的塞塞兹兹韦韦尔尔核核电电站站正正式式投投入入运运行行,但但是是工工作作人人员员很很快快发发现现核核电电站站的的反反应应堆堆内内温温度度控控制制失失灵灵,这这使使得得欧欧洲洲人人口口最最为为稠稠密密的的地地区区面面临临巨巨大大危危险险。事事后后查查明明,在在反反应应堆堆的的 主主要
13、要保保护护系系统统 中中,有有一一个个1010万行代码的控制软件几乎有一半未能通过测试。万行代码的控制软件几乎有一半未能通过测试。第15页/共96页2023/3/30161软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例8080年年代代中中,加加拿拿大大一一家家原原子子能能公公司司生生产产的的、由由微微处处理理机机控控制制的的癌癌症症治治疗疗仪仪,在在美美国国和和加加拿拿大大的的多多家家医医院院使用均告失灵使用均告失灵,致使致使6 6个病人因受超剂量辐射而死亡或受到严重伤害。个病人因受超剂量辐射而死亡或受到严重伤害。第16页/共96页2023/3/3017
14、1软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例海海湾湾战战争争中中,一一个个软软件件故故障障打打乱乱了了 爱爱国国者者 导导弹弹雷雷达达跟跟踪踪系系统统,使使导导弹弹发发射射后后未未能能迎迎击击对对方方的的 飞飞毛毛腿腿 导弹导弹,反而轰击了自己的军营反而轰击了自己的军营,造成造成2828名士兵丧生、名士兵丧生、9898人受伤。人受伤。第17页/共96页2023/3/30181软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例19961996年年欧欧洲洲航航天天局局发发射射的的阿阿丽丽亚亚娜娜5 5型型火火箭箭,发发
15、射射4040秒秒钟钟后后火火箭箭爆爆炸炸,发发射射场场上上2 2名名法法国国士士兵兵当当场场死死亡亡,耗耗资资1010亿亿美美元元、历历时时9 9年年的的航航天天计计划划严严重重受受挫挫,引引起起了了国国际际宇宇航航界界的的震震惊惊。事事故故发发生生后后,专专家家组组的的调调查查分分析报告指明析报告指明,爆炸的根本原因在于惯性导航系统软件中技术要求和设计的错误。爆炸的根本原因在于惯性导航系统软件中技术要求和设计的错误。第18页/共96页2023/3/30191软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例德国电话计费系统的软件问题德国电话计费系统的软件问
16、题,造成用户需交付不合理电话费的事件造成用户需交付不合理电话费的事件,引起了公众的抗议。引起了公众的抗议。第19页/共96页2023/3/30201软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例2006年年10日日13时时28分分,中中国国民民航航信信息息网网络络股股份份公公司司在在首首都都机机场场的的离离港港系系统统发发生生故故障障,导导致致机机场场部部分分航航班班无无法法办办理理值值机机手手续续。北北京京、广广州州、深深圳圳、长长沙沙机机场场至至少少84个个离离港港航航班班发发生生延延误误。而而发发生生航航班班延延误误的机场,由于延误航班较多,机场人
17、满为患。的机场,由于延误航班较多,机场人满为患。第20页/共96页2023/3/30211软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例更多的例子更多的例子第21页/共96页2023/3/30221生命周期知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件危机举例软件危机举例更多的例子更多的例子第22页/共96页23国内失败案例资源一号02型飞行两年,在1473圈,变轨没有成功发现是潜通道问题。系统实现是分散到五个子程序,变量在前一个模块被清掉,需要姿态正常,才能开发动机。方法:把部分程序重新设计,再送上去第23页/共96页24国内失败案例三号卫
18、星2004年11月发射,12月-05.1,有四次进入异常工作模式。分析:异常指令内存传下来分析,发现是轨道计算发现寻址跳变。减法运算指令,是否带进位关系到结果正确。第24页/共96页25国内失败案例神州飞船返回的前天晚上,发现异常,发现发动机通讯有短暂不成功。神州二号发射逃逸模式,发出指令却没有转化到逃逸模式。问题:时间清零问题第25页/共96页26TheproblemonlygetsworseasITgrowsubiquitousFailurecanbedefinedasthetotalabandonmentofaprojectbeforeorshortlyafteritisdelivere
19、d.OftheITprojectsthatareinitiated,from5to15percentwillbeabandonedbeforeorshortlyafterdeliveryashopelesslyinadequate.Manyotherswillarrivelateandoverbudgetorrequiremassivereworking.FewITprojects,inotherwords,trulysucceed.第26页/共96页27WHENASOFTWAREPROJECTFAILSThe failure doesnt reflect projectsthat excee
20、d their budgetswhich most projects do,that delivered latewhich the majority are,that have to start over once a project is abandoned,or that are bug-ridden systems which have to be repeatedly reworked.发生用户诉讼的项目。包括以上所有浪费的费用,仅美国每年在软件开发上浪费的费用就在60-70 billion美元。这些钱可以发射太空飞船100次,建造由24颗卫星组成的GPS系统,或者从头研制开发Boe
21、ing 777飞机,还要剩余几billion美元。第27页/共96页2023/3/30281软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v出现大量软件开发失败的主要原因出现大量软件开发失败的主要原因A complex software system comprises individual adaptive systems whose behavior and interactions change over time.These changes are usually not centrally planned,but arise from independent proce
22、sses and decisions within and outside the complex software system.因此,软件的适应能力差是主要原因。v出现大量软件开发失败的根本原因?出现大量软件开发失败的根本原因?第28页/共96页2023/3/30291软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件工程的地位软件工程的地位v1991年年,ACM和和IEEE-CS的的计计算算学学科科教教程程CC1991专专题题组组将将软软件件工工程列为计算学科的九个知识领域之一。程列为计算学科的九个知识领域之一。v2001年年,CC2001将将计计算算科科学学划划分分为为
23、5个个相相对对独独立立的的部部分分:计计算算机机科科学,计算机工程,软件工程,信息系统和信息技术。学,计算机工程,软件工程,信息系统和信息技术。v2004年年8月月,全全世世界界500多多位位来来指指大大学学、科科研研机机构构和和企企业业的的专专家家、教教授授推推出出了了软软件件工工程程知知识识体体和和软软件件工工程程教教育育知知识识体体(SEEK),标标志志着着软软件件工程学科在世界范围正式确立。工程学科在世界范围正式确立。v2011年,教育部正式将软件工程列为一级学科。年,教育部正式将软件工程列为一级学科。第29页/共96页2023/3/30301软件工程知识回顾1.1 软件工程的基本概念
24、软件工程的基本概念v软件工程学科软件工程学科vSoftware engineering is the discipline that aims atproviding,evaluating,andimprovingmethods,techniques,processes,and tools for the development ofdefect-free software that fulfills the needs of customersanduserswithintimeandbudgetconstraints.摘自摘自PerspectivesontheFutureofSoftwar
25、eEngineering,2013第30页/共96页2023/3/30311软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件工程的十个知识域软件工程的十个知识域v软件需求软件需求软件工程基础软件工程基础v软件设计软件设计软件工程核心软件工程核心v软件构造软件构造v软件测试软件测试v软件维护软件维护v软件配置管理软件配置管理v软件工程管理软件工程管理基础设施管理,项目管理,度量和控制计划基础设施管理,项目管理,度量和控制计划v软件工程过程软件工程过程v软件工程工具和方法软件工程工具和方法v软件质量软件质量第31页/共96页2023/3/30321软件工程知识回顾1.1 软件工程
26、的基本概念软件工程的基本概念v软件工程的传统途径软件工程的传统途径生命周期方法学生命周期方法学对复杂问题进行分解对复杂问题进行分解逐步完成每个阶段的任务逐步完成每个阶段的任务阶段审查的主要标准是高质量的文档阶段审查的主要标准是高质量的文档第32页/共96页2023/3/30331软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v软件的生命周期软件的生命周期(LifeCycle):计划计划需求分析需求分析设计设计程序编写程序编写测试测试运行维护等六个步骤运行维护等六个步骤第33页/共96页2023/3/30341软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v瀑布式模型
27、瀑布式模型(waterfall model)waterfall model)系统需求分析系统需求分析软件需求分析软件需求分析设计设计编码编码测试测试维护维护第34页/共96页2023/3/30351软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v原型开发模型原型开发模型(rapid prototyping)rapid prototyping)需求分析需求分析快速设计快速设计建立原型建立原型用户评价原型用户评价原型修改原型修改原型生产产品生产产品第35页/共96页2023/3/30361软件工程知识回顾1.1 软件工程的基本概念软件工程的基本概念v面向对象生存期模型面向对象生存期模
28、型(object-oriented software engineering)第36页/共96页37软件工程模型v螺旋模型螺旋模型(spiral model)spiral model)第37页/共96页38软件工程模型v增量模型示意图第38页/共96页2023/3/30391软件工程知识回顾1.2 可行性研究可行性研究v目的:确定问题是否值得去解目的:确定问题是否值得去解v任务任务进一步分析和澄清问题的定义进一步分析和澄清问题的定义导出系统的逻辑模型导出系统的逻辑模型探索若干种解决方案,并分析各种方案的探索若干种解决方案,并分析各种方案的技术可行性技术可行性经济可行性经济可行性操作可行性操作可
29、行性对以后的行动方针提出建议对以后的行动方针提出建议第39页/共96页2023/3/30401软件工程知识回顾1.2 可行性研究可行性研究v研究目前正在使用的系统研究目前正在使用的系统现有系统的功能现有系统的功能现有系统的不足现有系统的不足现有系统的经济指标现有系统的经济指标现有系统和其它系统之间的接口情况现有系统和其它系统之间的接口情况第40页/共96页2023/3/30411软件工程知识回顾1.2 可行性研究可行性研究v导出新系统的系统流程图导出新系统的系统流程图用图形符号以黑盒子形式描述物理系统的构成。用图形符号以黑盒子形式描述物理系统的构成。v导出新系统的高层逻辑模型导出新系统的高层逻
30、辑模型数据流图数据流图描述数据在系统中流动和处理的情况描述数据在系统中流动和处理的情况描绘系统的逻辑模型描绘系统的逻辑模型数据字典数据字典第41页/共96页2023/3/3042可行性研究可行性研究风险分析风险分析v风风险险:是是由由于于从从事事某某项项特特定定活活动动过过程程中中存存在在的的不不确确定定性性而而产产生生的的经经济济或或财财务的损失,自然破坏或损伤的可能性。务的损失,自然破坏或损伤的可能性。v任任务务:针针对对不不同同项项目目结结合合具具体体风风险险分分析析方方法法,进进行行项项目目风风险险评评价价,以以采采取取有效方式进行风险管理,从而达到损失最小化的目的和效果。有效方式进行
31、风险管理,从而达到损失最小化的目的和效果。v类型类型v自然风险:是由于自然灾害(如水灾、火灾、地震、台风等)引起的项目风险。v人为风险:是指由于人为因素带来的风险,包括行为风险、政治风险、经济风险、技术风险、组织风险等。第42页/共96页2023/3/3043可行性研究可行性研究风险分析风险分析v过程过程v风风险险识识别别:项目包括那些活动;各种活动存在那些风险;风险产生的原因是什么;这些风险的主次关系;各风险之间是否相关。v风险估计:风险估计:风险发生的概率大小;风险概率的分布情况;风险估算。v风风险险评评价价:给出方案,选择规则;选出最佳方案;检验各风险因素对指标的影响;对风险对策提出建议
32、。第43页/共96页2023/3/3044可行性研究可行性研究风险分析风险分析v方法方法v风风险险识识别别:专家调查法,故障树分析法,幕景分析法。v风险估计风险估计v确定型风险估计:盈亏平衡分析,敏感性分析。v不确定型风险估计:小中取大原则,大中取小原则,遗憾原则,最大数学期望原则。v随机型风险估计v风险评价风险评价v定性风险评价方法:主观评分法,层次分析法。v定量风险评价方法;风险报酬法,决策树法,外推法,等。第44页/共96页2023/3/30451软件工程知识回顾1.2 可行性研究可行性研究v系统流程图举例系统流程图举例第45页/共96页2023/3/30461软件工程知识回顾1.2 可
33、行性研究可行性研究典型环境下各个开发阶段需要使用的典型环境下各个开发阶段需要使用的人力的百分比人力的百分比 任任 务务 人人 力力可行性研究 5需求分析10设计25编码和单元测试20综合测试40总计100第46页/共96页2023/3/30471软件工程知识回顾1.2 可行性研究可行性研究问题1?打算开发“公共场所安全监控系统的公共服务平台”,请作可行性分析。问题2?打算开发“互联网上身份证挂失系统”,请作可行性分析。问题3?某区打算开发基于云计算的社区卫生服务系统,请作可行性分析。第47页/共96页2023/3/30481软件工程知识回顾1.3 需求分析需求分析总任务总任务确定系统必须要做什
34、么?确定系统必须要做什么?第48页/共96页2023/3/30491软件工程知识回顾1.3 需求分析需求分析具体任务具体任务确定对系统的综合要求确定对系统的综合要求分析系统的数据要求分析系统的数据要求导出系统的逻辑模型:导出系统的逻辑模型:数据流图,数据字典和处理算法。数据流图,数据字典和处理算法。开发原型系统开发原型系统第49页/共96页2023/3/30501软件工程知识回顾1.3 需求分析需求分析分析的基本方法分析的基本方法结构化方法结构化方法(SA)(SA)强调过程,强调过程,围绕功能围绕功能面向对象方法面向对象方法(OOA)OOA)强调方法,强调方法,围绕对象围绕对象互补互补第50页
35、/共96页2023/3/30511软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图数据流图 处理处理+数据,但数据无关联数据,但数据无关联第51页/共96页2023/3/30521软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图细化过程举例数据流图细化过程举例第52页/共96页2023/3/30531软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图细化过程举例数据流图细化过程举例第53页/共96页2023/3/30541软件工程知识回顾1.3 需求分析需求分析_结构化结构化v数据流图举例数据流图举例第54页/共96页2023/3/30551软件工
36、程知识回顾1.3 需求分析需求分析_结构化结构化v数据字典举例数据字典举例名字:定货报表名字:定货报表别名:定货信息别名:定货信息描述:每天一次送给采购员的需要定货的零件表描述:每天一次送给采购员的需要定货的零件表定义:定货报表定义:定货报表=零件编号零件编号+零件名称零件名称+定货数量定货数量 +目前价格目前价格+主要供应者主要供应者+次要供应者次要供应者位置:输出到打印机位置:输出到打印机第55页/共96页2023/3/30561软件工程知识回顾1.3需求分析需求分析_结构化结构化v数据字典举例数据字典举例名字:定货数量名字:定货数量别名:别名:描述:某个零件一次定货的数量描述:某个零件一
37、次定货的数量定义:定货数量定义:定货数量=1数字数字5位置:定货报表位置:定货报表 定货信息定货信息第56页/共96页2023/3/30571软件工程知识回顾1.3 需求分析需求分析_结构化结构化什么是概念模型或信息模型?什么是概念模型或信息模型?按用户的观点来对数据和信息建模,按用户的观点来对数据和信息建模,即即建立数据之间的关系建立数据之间的关系。第57页/共96页2023/3/30581软件工程知识回顾1.3 需求分析需求分析_结构化结构化常用的概念模型的建模方法第58页/共96页2023/3/30591软件工程知识回顾1.3 需求分析需求分析_面向对象面向对象u将处理、数据和数据之间的
38、关系聚合在一个模型中,即类图。第59页/共96页2023/3/30601软件工程知识回顾1.3 需求分析需求分析_面向对象面向对象u对需求更直观的描述用例图第60页/共96页2023/3/3061需求分析需求分析概念模型和规范化概念模型和规范化v衡量数据聚合在一个实体或对象中是否合适的方法规范化采用分解的方法,力求使关系的语义单纯化。第61页/共96页2023/3/3062需求分析需求分析概念模型和规范化概念模型和规范化v什么是范式?表示关系的某一种级别(或消除数据冗余的程度)。第62页/共96页2023/3/3063需求分析需求分析概念模型和规范化概念模型和规范化v范式定律第一范式(1NF)
39、关系的每一个分量必须是不可分的数据项。第63页/共96页2023/3/3064需求分析需求分析概念模型和规范化概念模型和规范化v范式定律第二范式(2NF)若R 1NF,且每一个非主属性完全函数依赖于码,则R 2NF。例:运动会管理系统,下面的实体:项目(项目编号,名称,时间,场地,成绩);由于项目编号不能唯一确定成绩,故不满足2NF。项目(项目编号,名称,时间,场地,成绩,运动员);由于名称等部分函数依赖于项目编号,故不满足2NF。第64页/共96页2023/3/3065需求分析需求分析概念模型和规范化概念模型和规范化v范式定律第三范式(3NF)R中若不存在这样的码X、属性组Y及非主属性Z(Z
40、 Y)使得XY,YZ,Y/X成立,则称R 3NF。或即若R 3NF,则每一个非主属性既不部分依赖于码,也不传递依赖于码。例:裁判(裁判编号,姓名,项目编号,项目名称)假设一个裁判只能执法一个项目。项目名称项目编号裁判编号,存在传递依赖第65页/共96页2023/3/3066需求分析需求分析概念模型和规范化概念模型和规范化v范式定律的图示第66页/共96页2023/3/30671软件工程知识回顾1.3 需求分析需求分析u讨论:“互联网上身份证挂失系统”的顶层数据流图?第67页/共96页2023/3/30681软件工程知识回顾1.4 总体设计总体设计v总体设计的任务总体设计的任务划分出组成系统的物
41、理元素;划分出组成系统的物理元素;设计软件的结构。设计软件的结构。怎么从需求分析结果导出系统架构?怎么从需求分析结果导出系统架构?第68页/共96页2023/3/3069总体设计总体设计SoftwareArchitecturevSoftwarearchitectureisthedesignandspecificationofoverallsystemstructure.Itdefinesasoftwaresystemintermsofcomputationalcomponents(structure)and interactions amongthosecomponents(topology)
42、.vComponents:are identified and assigned responsibilities that client components interact with through contracted interfaces.vInteractions:specify communication and control mechanisms,and support all component interactions needed to accomplish system behavior.第69页/共96页2023/3/3070总体设计总体设计SoftwareArch
43、itecturevStructureissuesincludethedescriptionofelementsfromwhichsystemsarebuilt,interactionsamongthoseelements,thatis,interchangerepresentationsandprotocols,patternsthatguidetheircomposition,andconstraintsonthesepatterns.第70页/共96页2023/3/3071总体设计总体设计SoftwareArchitecturevArchitectureexamples procedure
44、call,sharedvariableaccess,client-serverprotocols,database-accessingprotocols,asynchronouseventmulticast,andpipedstreams.第71页/共96页2023/3/30721软件工程知识回顾1.4 总体设计总体设计v总体设计的基础总体设计的基础数据流图数据流图第72页/共96页2023/3/30731软件工程知识回顾1.4 总体设计总体设计v总体设计的基本原理总体设计的基本原理l模块化模块化l抽象抽象摩托车整车生产和零部件生产的管理过程摩托车整车生产和零部件生产的管理过程l模块独立模块独
45、立模块之间低耦合,如数据耦合,控制耦合,公共环境耦合,内容耦合模块之间低耦合,如数据耦合,控制耦合,公共环境耦合,内容耦合模块内高内聚,如功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚模块内高内聚,如功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚第73页/共96页2023/3/30741软件工程知识回顾1.4 总体设计总体设计v用层次图描述软件结构用层次图描述软件结构第74页/共96页2023/3/30751软件工程知识回顾1.4 总体设计总体设计_结构化结构化软件结构图软件结构图数据流图数据流图获得软件结构图的基本方法获得软件结构图的基本方法第75
46、页/共96页2023/3/30761软件工程知识回顾1.4 总体设计总体设计_结构化结构化v数字仪表板系统的软件结构分析低耦合:数据耦合中耦合:控制耦合高耦合:内容耦合低内聚:偶然,逻辑,时间中内聚:过程,通信高内聚:顺序,功能第76页/共96页2023/3/30771软件工程知识回顾1.4总体设计总体设计_结构化结构化v数字仪表板系统的软件结构分析第77页/共96页2023/3/3078总体设计总体设计面向数据流的设计方法面向数据流的设计方法v数字仪表板系统的第二级分解第78页/共96页2023/3/30791软件工程知识回顾1.4 总体设计总体设计_面向对象面向对象u类图第79页/共96页
47、2023/3/30801软件工程知识回顾1.4 总体设计总体设计_面向对象面向对象u为了更好地描述行为之间的关系u状态图第80页/共96页2023/3/3081总体设计总体设计讨论讨论v上述数字仪表板系统模块的独立性?v如何总体设计才能获得更好的模块独立性?第81页/共96页2023/3/30821软件工程知识回顾1.5详细设计详细设计v任务任务设计程序流程图,从而确定具体实现系统的方法。设计程序流程图,从而确定具体实现系统的方法。v基本设计方法基本设计方法采用自顶向下逐步求精的设计方法和单入口单出口的结构化设计方法。采用自顶向下逐步求精的设计方法和单入口单出口的结构化设计方法。第82页/共9
48、6页2023/3/30831软件工程知识回顾1.5 详细设计详细设计v设计方法举例设计方法举例JacksonJackson设计方法设计方法lJacksonJackson设计方法是面向数据结构的设计方法。设计方法是面向数据结构的设计方法。l根据输入输出数据结构,导出问题解法。根据输入输出数据结构,导出问题解法。第83页/共96页2023/3/30841软件工程知识回顾1.6测试测试v软件测试是指为了发现程序中的错误而执行程序的过程,并最终修正错误软件测试是指为了发现程序中的错误而执行程序的过程,并最终修正错误(调试调试)。第84页/共96页2023/3/30851软件工程知识回顾1.6测试测试v
49、讨论讨论v中中央央2 2台台20132013年年3 3月月2929日日早早上上第第一一时时间间报报道道了了一一个个汽汽车车加加装装GPSGPS防防盗盗系系统统的的消消费费者者投投诉诉案案例例。汽汽车车在在正正常行驶过程中会无故突然自行停止行驶,形成安全隐患。常行驶过程中会无故突然自行停止行驶,形成安全隐患。v讨论两个测试报告讨论两个测试报告vQWERPQWERP项目测试项目测试v信访项目测试信访项目测试第85页/共96页2023/3/30861软件工程知识回顾1.6测试测试v软件测试不可能发现软件中所有的错误。软件测试不可能发现软件中所有的错误。第86页/共96页2023/3/30871软件工
50、程知识回顾1.6测试测试v测试的方法测试的方法黑盒测试黑盒测试(功能测试功能测试):检验程序的每个功能是否正常。:检验程序的每个功能是否正常。白盒测试白盒测试(结构测试结构测试):检验程序的逻辑结构和处理过程是否正常。:检验程序的逻辑结构和处理过程是否正常。第87页/共96页2023/3/30881软件工程知识回顾1.6 测试测试v设计测试方案的基本方法设计测试方案的基本方法用黑盒法设计基本的测试方案;用黑盒法设计基本的测试方案;用白盒法设计补充的测试方案。用白盒法设计补充的测试方案。第88页/共96页2023/3/30891软件工程知识回顾1.6 测试测试v测试方案中应包括的内容测试方案中应