九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版_第1页
九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版_第2页
九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版_第3页
九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版_第4页
九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

软件工程教学安排讲课学时:28软件工程教学安排讲课学时:281教材吴洁明软件工程中央电大出版社2008年12月教材吴洁明软件工程2主要内容第1条线索是从软件的特点入手,引出软件危机的概念,介绍软件危机的解决方法既本书的核心内容软件工程。第2条线索是从软件的生存期入手,介绍软件生命周期各个阶段软件的存在形式和评价标准,详细介绍软件文档写作及管理。第3条线索是从软件工程实践出发,引出可行性研究,结构化分析和设计方法、工具和步骤,最后带领大家以一个图书馆信息管理系统为例进行演练。第4条线索是从面向对象的概念入手,结合UML讲述面向对象分析和设计方法、工具和步骤,最后也是以图书馆信息管理系统为例进行实际演练。第5条线索是详细讲述软件测试的概念、方法、策略和步骤。

主要内容第1条线索是从软件的特点入手,引出软件危机的概念,介3参考书郑人杰,殷人昆,陶永雷。实用软件工程。第2版。北京:清华大学出版社,1997张海藩,软件工程导论。第4版。北京:清华大学出版社,2003卡耐基-梅隆大学软件工程研究所编著。能力成熟度模型(CMM):软件过程改进指南。刘孟仁等译。北京:电子工业出版社,2001RogerSPressman著。软件工程:实践者的研究方法。第5版。梅宏译。北京:机械工业出版社,2002IBM大学站点/university微软MSDN参考书郑人杰,殷人昆,陶永雷。实用软件工程。第2版。北京:清4第一章软件工程的概述第1软件行业怎么了?--软件危机第2软件行业的出路?--软件工程第3软件工程核心--7条基本原理第4软件工程化开发的基本过程模型第5软件开发方法简述第一章软件工程的概述第1软件行业怎么了?--软件危机51.1软件和软件危机软件是指计算机系统中与硬件相互依存的一部分,包括程序、相关数据和及其说明文档。程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的文字或图形资料。1.1软件和软件危机软件是指计算机系统中与硬件相互依存的一61.1.1软件的特点(1)软件是一种逻辑产品,是以程序和文档形式存在。(2)软件使用过程中,不会磨损、老化。(3)软件一旦研究开发成功,其生产过程就变成复制过程。(4)软件对硬件和环境有着不同程度的依赖性——软件升级和移植。(5)手工方式生产,开发人员压力大、(6)软件是复杂度最高的工业产品,但通用性差。(7)软件涉及人类社会的各行各业,涉及到领域专门知识,这对软件工程师提出了很高的要求。软件开发应该有明确的分工。(8)软件生产过程的不可见性,增加了管理的难道。(9)软件产品的生产成本主要体现在软件的开发和研制上。软件的成本昂贵。1.1.1软件的特点(1)软件是一种逻辑产品,是以程序和71.1.2软件危机1、对软件的要求:用户的需求更高、涉及的领域更广软件运行环境更加庞大软件更新换代更加频繁1.1.2软件危机1、对软件的要求:8第1节软件危机2、软件生产的现状:对软件的开发成本和进度的估计常常不正确,开发成本超出预算。开发进度不能保障,交付时间一再拖延。“已完成”的软件不满足用户的需求软件产品的质量没有保证。软件通常没有适当的文挡软件的成本不断提高,特别是软件维护成本迅速增加,已经占据软硬件总成本的40%~75%。第1节软件危机2、软件生产的现状:9软件危机3.产生软件危机的原因:与软件的特点有关与软件开发和维护的方法有关软件生产至今尚未摆脱手工生产方式。忽视需求分析和设计工作。没有规范的维护要求和记录。软件危机3.产生软件危机的原因:101.1.3软件错误导致的失败实例美国阿波罗8号太空飞船的一个软件错误,造成了存储器部分信息丢失;而阿波罗14号在飞行的10天中,出现了18个软件错误。返回1.1.3软件错误导致的失败实例美国阿波罗8号太空飞船的一111.2软件工程发展简史1.问题的引出—先看几个图例1.2软件工程发展简史1.问题的引出—先看几个图例12简陋的小屋—不用设计简陋的小屋—不用设计13新农村别墅造型图新农村别墅造型图14别墅的平面图、切面图别墅的平面图、切面图15九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版16图书馆信息管理系统需求表图书馆信息管理系统需求表17图书馆信息管理系统功能设计图书馆信息管理系统功能设计18图书馆信息管理系统物理模型设计图书馆信息管理系统物理模型设计19图书馆信息管理系统逻辑模型设计(部分)图书馆信息管理系统逻辑模型设计(部分)20图书馆信息管理系统数据设计过程设计图书馆信息管理系统数据设计过程设计21图书馆信息管理系统界面设计图书馆信息管理系统界面设计22结论:软件生产同建筑行业一样需要工程化、规模化、自动化、标准化。软件生产过程中也有中间环节(设计物理模型、逻辑模型、界面、数据、过程等等),也可以随时进行质量检查。软件生产中也需要有高效的工具。软件生产人员也可以细分为:分析员、设计员、程序员、测试员、操作员、维护人员等等。软件生产低水平的手工作坊不能适应当今的大规模软件开发需求……软件行业的出路?--软件工程结论:软件生产同建筑行业一样需要工程化、规模化、自动化、标准23软件工程发展简史1968年FritzBauer在NATO(北大西洋公约组织)会议上给出的定义:“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)”20世纪70年代形成了软件工程的概念、框架、方法和手段。80年代到90年代,研究重点是面向对象的分析和设计,称为对象工程。90年代后期,基于构件的开发方法,即第三代软件工程,也称为构件工程。软件工程发展简史1968年FritzBauer在NATO(241.3软件工程的定义和目标

1993IEEE:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。注意:软件工程研究所依据的基础理论:数学、计算机科学、经济学、工程学、管理学和心理学等学科。其中数学和计算机科学用于构造模型、分析算法;工程学用于评估成本、制定规范和标准;管理学和心理学用于进度、资源、环境、质量、成本等的分析和管理。1.3软件工程的定义和目标 1993IEEE:25软件工程研究的主要内容技术方面:研究软件开发方法、软件开发过程、软件开发工具和环境。管理方面:主要研究软件管理学、软件经济学、软件心理学。软件工程研究的主要内容技术方面:研究软件开发方法、软件开发过26软件工程的层次化

软件工程的层次化27强调规范化和文档化规范化:使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式—关注国标、行标。文档化:把软件的设计思想、设计过程和实现过程完整地记录下来,便于各类相关人员交流和沟通;使软件开发过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理;是验收、质量检测的标准和依据。强调规范化和文档化规范化:使众多的开发者遵守相同的规范,使28软件工程的目标

实现预期的软件功能,满足用户的需求。提高软件的可维护性,保障软件的质量。合理预算开发成本,控制软件开发费用。提高软件开发生产率,及时交付使用。软件工程的目标实现预期的软件功能,满足用户的需求。291.4软件工程7条基本原理原理1、用分阶段的生命周期计划严格管理项目概要计划里程碑计划项目控制计划产品控制计划测试验收计划运行维护计划1.4软件工程7条基本原理原理1、用分阶段的生命周期计30原理2、坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行。经过大量的统计数据表明,大部分错误是在编码之前造成的,其中,设计错误约占软件错误的63%,编码错误仅占37%。错误发现与改正的越晚,所需付出的代价也越高。因此,在每个阶段都应该进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。软件工程7条基本原理原理2、坚持进行阶段评审。软件工程7条基本原理31原理3、实行严格的产品控制

基准配置又称基线配置,它们是经过阶段评审后的软件配置成份。基准配置管理的思想是:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审和控制,获得批准以后才能实施修改。目的是当需求变动时,其它各阶段的文档或代码随之相应变动,以保证软件的一致性。软件工程7条基本原理原理3、实行严格的产品控制软件工程7条基本原理32原理4、采用现代程序设计技术自从提出软件工程概念后,人们一直把主要精力用于研究各种新的程序设计技术。60年代末提出了结构化程序设计技术,以后又进一步发展出结构化分析与设计技术、面向对象的分析和设计技术。实践表明,采用先进的技术既可提高软件开发和维护的效率,又可提高软件质量。软件工程7条基本原理原理4、采用现代程序设计技术软件工程7条基本原理33原理5、结果应能清楚地审查

软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,明确地规定开发小组的责任和产品标准,从而使所得到的产品有明确的标准能清楚地审查。软件工程7条基本原理原理5、结果应能清楚地审查软件工程7条基本原理34原理6、开发小组的人员应该少而精软件开发小组成员的素质应该好,人数不宜过多。素质高的人员开发效率高、质量好、错误少。开发小组人员过多,信息交流造成的通信开销会急剧增加。软件工程7条基本原理原理6、开发小组的人员应该少而精软件工程7条基本原理35原理7、承认不断改进软件工程实践的必要性遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产。但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,因此,应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。软件工程7条基本原理原理7、承认不断改进软件工程实践的必要性软件工程7条基本原理361.5软件生命周期模型软件生存周期是指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生存周期划分为:可行性研究、需求分析、设计、实现、测试、集成、维护7个阶段。在实践中,整个开发周期经常不是明显地划分,而是分析、设计、实现,再分析、再设计、再实现等迭代执行。1.5软件生命周期模型软件生存周期是指一个软件从提出开发371.可行性研究目标:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。内容:所采用的软件生命周期模型,开发人员的组织,系统解决方案。管理的目标和级别,所有的技术与工具,以及开发的进度、预算和资源分配。1.可行性研究目标:确定待开发系统的总体目标和范围,研究系统382.需求分析分析、整理和提炼所收集到的用户需求,建立完整的分析模型。将其编写成软件需求规格说明和初步的用户手册。通过评审需求规格说明书,取保对用户需求达到共同的理解与认识。需求规格说明书明确描述了软件的功能,列出软件所必须满足的约束条件,并定义软件的输入和输出接口。2.需求分析分析、整理和提炼所收集到的用户需求,建立完整的分393.设计决定软件怎么做,设计人员根据软件需求规格说明书,确定软件的体系结构,用户界面,每个模块的算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。设计过程将现实世界的问题模型转换成计算机的实现模型,设计同样需要文档化,并应当在编写程序之前评审其质量。3.设计决定软件怎么做,设计人员根据软件需求规格说明书,确定404.实现将所设计的各个模块编写成计算机可接受的程序代码,与实现有关的文档就是源程序及合适的注释。4.实现将所设计的各个模块编写成计算机可接受的程序代码,与实415.测试及集成在设计测试用例的基础上,测试软件的各个组成模块,然后将各个模块集成起来,测试整个产品的功能和性能是否以满足已有的规格说明。除此之外,还要进行系统测试和验收测试。5.测试及集成在设计测试用例的基础上,测试软件的各个组成模块426.维护软件运行过程中需要不断地进行维护,使软件持久满足用户需要。改正性维护:运行中发现软件中的错误需要修正适应性维护:为了适应变化了的软件工作环境,需做适当变更完善性维护:为了增强软件的功能需做变更预防性维护:修改软件为将来的维护各种预先做准备。6.维护软件运行过程中需要不断地进行维护,使软件持久满足用户43软件生存周期模型软件生存周期模型反映的是软件开发过程、活动和任务的结构框架。到目前为止,已经提出了多种模型,主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。软件生存周期模型软件生存周期模型反映的是软件开发过程、活动和441.5.1瀑布模型瀑布模型(waterfallmodel)是由W.Royce于1970年提出来的。瀑布模型依据软件生命周期方法学开发软件,各阶段的工作自顶向下、从抽象到具体的顺序进行。1.5.1瀑布模型瀑布模型(waterfallmodel45特点瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作为驱动的模型特点瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段46瀑布模型优缺点优点:提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要的地位。缺点:1)在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。3)作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。瀑布模型优缺点优点:提供了软件开发的基本框架,有利于大47瀑布模型适应场合瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。瀑布模型适应场合瀑布模型一般适用于功能、性能明确、完整、无重481.5.2快速原型化模型快速原型模型是为克服瀑布模型的缺点于20世纪80年代推出的。快速原型法基本思想是:由用户、客户和开发者进行快速需求分析,产生系统规格说明;根据该规格说明快速产生一个可运行的原型;运行该原型,并评价其规格说明的完整性、准确性和一致性;根据评价结果,进一步精化和细化规格说明;该过程可重复多次,直到最终的规格说明演化成与用户和客户一致的、可执行的系统为止。1.5.2快速原型化模型快速原型模型是为克服瀑布模型的缺点49

计划需求分析原型开发原型评价最终系统设计最终系统实现用户反馈意见计划需求分析原型开发原型评价最终系统设计最终系统实现用户50原型模型优缺点优点:与用户见面快;开发成功率高,适合于需求不确定的大系统。缺点:周期长,开发成本高。原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。原型模型优缺点优点:与用户见面快;开发成功率高,适合于需求不511.5.3演化模型首先设计一个全局性框架,然后建立一个初始的稳定模型,运行该原型,并反复添加、修改和完善,逐步向目标系统进化。每一次进化,都产生一个逼近目标的新版本。该模型在进化过程中,始终强调可靠性、可维护性、适应性和效率等软件质量问题。该模型的最终成果就是投入使用的系统。开发模式是分批循环开发,每次新增功能,可以看作重复的瀑布模型特点:通过逐步迭代,建立软件系统。1.5.3演化模型首先设计一个全局性框架,然后建立一个初始521.5.4螺旋模型螺旋模型(spiralmodel)是B.Boehm于1988年提出的。它综合了瀑布模型和原型模型的优点,即将两者结合,并加入了风险分析机制。1.5.4螺旋模型螺旋模型(spiralmodel)是B53螺旋式周期螺旋模型沿着螺线旋转(一个螺旋式周期),在四个象限上分别表达四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制,选定完成目标的策略风险分析──分析所选方案,考虑如何识别和消除风险,风险角度分析该策略实施工程──实施软件开发,启动一个开发阶段客户评估──评价前一步开发工作,提出修正建议,计划下一轮的工作。螺旋式周期螺旋模型沿着螺线旋转(一个螺旋式周期),在四个象54九年级历史-第二单元-第三课-第三框-可持续发展战略课件-新人教版55螺旋模型的优点1)支持用户需求的动态变化。这就要求构造的原型的总体结构、算法、程序、测试方案应具有良好的可扩充性和可修改性。也支持软件系统的可维护性,每次维护过程只是沿螺旋模型继续多走一两个周期。螺旋模型的优点56

2)原型可看作形式的可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。3)螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力。4)螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。2)原型可看作形式的可执行的需求规格说明,易于为用户和开发57缺点1)如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;2)使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。缺点1)如果每次迭代的效率不高,致使迭代次数过多,将会增加581.5.5构件组装模型面向对象技术为基于构件的建模提供了技术保证。构件组装模型有助于软件复用,如果软件产业逐步建立和完善软件构件标准,那么构件组装模型将是实现软件生产规模化、工程化的一个最有前途模型。据统计,使用构件组装模型可以缩短70%的开发周期,节省84%的项目成本。1.5.5构件组装模型面向对象技术为基于构件的建模提供了591.6软件开发方法简述为了克服软件危机,软件工程研究人员不断探索新的软件开发方法。1.6软件开发方法简述为了克服软件危机,软件工程研究人601.6.1Yourdon方法(SA/SD方法)Yourdon

温馨提示

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

评论

0/150

提交评论