收藏 分销(赏)

SE01第1章软件工程资料PPT课件.ppt

上传人:w****g 文档编号:9875824 上传时间:2025-04-11 格式:PPT 页数:49 大小:330.50KB 下载积分:12 金币
下载 相关 举报
SE01第1章软件工程资料PPT课件.ppt_第1页
第1页 / 共49页
SE01第1章软件工程资料PPT课件.ppt_第2页
第2页 / 共49页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,/49,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,Software Engineering,授课教师:杜文峰,Email:duwf,QQ:28114639,软件工程,1,.,一、课程简介,课程性质:计算机科学与技术专业基础课程。,课程目的:让学生掌握,软件工程,的基本思想、途径和方法,为从事计算机软件开发、维护和应用奠定良好的基础。,2,.,SWEBOK 2004(,Software Engineering,Body of Knowledge,IEEE,制定),的十个领域,软件需求,软件设计,软件构造,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过程,软件工程工具和方法,软件质量,3,.,Software Engineering 2004,SEEK,(Software Engineering Education Knowledge,,,IEEE,和,ACM,制定,),的,10,个知识领域,计算基础,数学和工程基础,职业实践,软件建模与分析,软件设计,软件验证与确认,软件进化,软件过程,软件质量,软件管理,4,.,二、课程任务及目标,从,实用,的角度讲述软件工程的基本原理、概念和技术,强调软件开发过程的方法研究,掌握软件,分析,、,设计,、,实现,和,测试,的基本技术以及面向对象分析和设计的基本方法,通过,课程实践,,实际运用软件工程的技术和方法,掌握,团队开发,的工作方法,5,.,三、课程内容,第一篇:软件工程与软件过程,(1-2章),第二篇:传统方法学,(3-5章,结构化分析、设计和实现),第三篇:面向对象方法学,(6-9章,面向对象分析、设计和实现),第四篇:软件项目管理,(10-13章,软件项目的计划、组织和控制),第五篇:高级课题,(14-16章,,UML、,软件重用),6,.,四、,课程安排,理论,内容:基本原理、方法和技术,形式:讲授、讨论、随堂练习和测验,实践(阶段性项目),内容:构造一个应用系统利用传统方法和面向对象方法进行分析、设计、编码、测试),形式:分组(组员不得超过,5,人)、分任务(,分析,、,设计,)、分阶段(,结构化,方法、,OO,方法),实际例子示范,7,.,五、相关课程,数据结构与算法,面向对象程序设计,操作系统,数据库原理与技术,软件测试,软件项目管理,软件体系结构,8,.,六、选用主教科书及参考教材,主教科书,软件工程第二版,,,张海,藩编,著,,人民邮电出版社,200,6,参考教材,软件工程 实践者的研究方法第,6,版,,,Roger S.Pressman,著,,机械工业出版社,200,7,参考教材,Software Engineering,8,th,Edition,,,Ian Sommerville,著,,机械工业出版社,200,6,9,.,七、课程成绩计算方式,1、课程设计,(,团队设计,3-13,周,,14-16,周报告,)(30-40,分,),(开学两周内确定分组,并确定课程设计项目内容),2、平时考勤(按学校条例,缺勤达到一定的程度,可以取消其考试资格,),(,10,分),3、期末大作业,(50-60,分,),10,.,第一篇:软件工程与软件过程,第1章 软件工程,1.1 软件危机,1.2,软件工程,第2章 软件过程,2.1 软件生命周期的基本任务,2.2 瀑布模型,2.3 快速原型模型,2.4 增量模型,2.5 螺旋模型,2.6 喷泉模型,11,.,FAQs(,Frequently Asked Questions),什么是软件,什么是软件危机,什么是软件工程,软件工程和计算机科学有何区别,软件工程和系统工程有何区别,12,.,软件,(,software),:,计算机系统中与硬件,(,hardware),相互依存的另一部分,包括,程序,(,program),:按事先设计的功能和性能要求执行的指令序列,数据,(,data),:使程序能正常操纵信息的数据结构,文档,(,document),:与程序开发,维护和使用有关的图文材料,一、软件,13,.,1 软件危机,1.1 计算机系统与软件的发展历程,1.2 软件危机的含义,1.3 产生软件危机的原因,1.4 消除软件危机的途径,14,.,1960,1970,1980,1990,2000,计算机软件发展历程,早期,专用小程序,面向批处理,自定义软件,编写者=使用者,第二阶段,多用户,实时,数据库,软件作坊,小型软件产品,第三阶段,分布式系统,嵌入,“,智能,”,低成本硬件,消费者的影响,第四阶段,强大的桌面系统,面向对象技术,ES/AI,并行计算,网络计算机,15,.,软件开发的发展过程,计算机系统与计算机应用发展,软件数量多规模大,软件成本高质量低,个体化软件开发,软件维护困难,软件危机,软件工程,|,独唱-小合唱-合唱-万人大合唱,软件不可维护,简单程序,较复杂程序,软件,软件产品,16,.,Exchange2000,和,Windows2000,开发人员结构,Exchange2000,(1000,万行代码,),项目经理:25 人,开发人员:140人,测试人员:350人,Windows2000,(5000万行代码),项目经理:25,0,人,开发人员:1,700,人,测试人员:3,200,人,17,.,1.2 软件危机的含义,软件危机,指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。,1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了,“,软件危机,”,(,software crisis),这个名词。,概括来说,软件危机包含两方面问题:,如何开发软件,以满足不断增长,日趋复杂的需求;,如何维护数量不断膨胀的软件产品。,18,.,19,.,软件危机典型表现,对软件开发成本和进度的估计很不准确。开发成本超出预算,实际进度比预定计划一再拖延,用户对,“,已完成,”,系统不满意的现象经常发生,软件产品质量靠不住。,Bug,一大堆,,Patch,一个接一个,软件的可维护程度非常低,软件通常没有适当的文档资料,软件的成本比重不断提高,软件开发生产率的提高赶不上硬件的发展和人们需求的增长,20,.,1979,年,美国,US Government Accounting Office,对政府项目进行了调查,其中,9,个软件项目的结果如下:,21,.,软件危机的例子,IBM 360,系统,开发时间:1963-1966年,投入人力:,5000,人年,代码量:,100万,行,每个版本都是从上一个版本找出,1000,个错误而修订的结果,正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷的越深,最后无法逃脱灭顶的灾难。,22,.,1971,年,美国全球军事指挥控制系统,硬件,1,亿美元,软件,7.2,亿美元,,1968,年,美国软件总投资,60,亿美元。,美国空军计算机系统的数据:软件投资所占比例为:,1955,年,,18%,1970,年,,60%,1975,年,,72%,1980,年,,80%,1985,年,,85%,23,.,24,.,1.3 产生软件危机的原因,客观:软件本身特点,逻辑部件(缺乏可见性),没有明显的制造过程,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性,软件本身是复杂的,实际问题的复杂性,程序逻辑结构的复杂性,软件成本相当昂贵,规模庞大(大系统的定义:50万行,1000万行,),25,.,主观:开发与维护方法不正确,忽视需求分析(工作量占总工作量,40%-50%,),软件开发=程序编写(工作量占总工作量,10%-20%,),忽视测试阶段的工作,轻视软件维护(维护费用占总费用,55%-70%,),26,.,1.4 消除软件危机的途径,正确认识,软件是程序、数据及相关文档的完整集合,软件开发是各类人员共同完成的工程项目,组织管理,工程项目管理方法,技术措施,软件开发技术与方法,软件工具,CASE,计算机辅助软件工程(,Computer-Aided Software Engineering,),27,.,二、软件工程,2.1 什么是软件工程,2.2 软件工程的基本原理,2.3 软件工程方法学,28,.,软件工程要解决的主要问题,为了消除软件危机,从,管理,和,技术,两方面研究如何更好地开发和维护计算机软件,软件开发的无计划性,软件需求不充分,软件开发过程无规范,软件产品无评价手段,29,.,2.1 什么是软件工程,1968年秋,,NATO(,北约)的科技委员会召集近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱,“,软件危机,”,的对策。会上首次提出,软件工程,的概念。,概括地说,,SE,是指导计算机软件开发与维护的工程学科。,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的,管理,措施和当前能够得到的最好的,技术,方法结合起来,以经济地开发出高质量的软件并有效地维护它。,30,.,软件工程的几个定义,IEEE83,年,给出的软件工程定义:,“,软件工程是开发、运行、维护和修复软件的,系统,方法。,”,Fritz Bauer,在,NATO,会议上给出的定义:,“,软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件而确立和使用的完善的,工程,化原则。,”,31,.,软件工程的几个定义,IEEE93,年给出了更加综合的定义:,(1,),将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;,(2,),研究(1,)中提到的方法,。,32,.,2.2 软件工程的基本原理,目前有100多条关于软件工程的准则,其中最出名的是著名软件工程专家,B.W.Boehm,在1983年提出的7条基本原理。,33,.,1.用分阶段的生命周期计划严格管理,统计表明,不成功的软件项目中有一半左右是由于,计划,不周造成的。,Boehm,认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。,34,.,2.坚持进行阶段评审,大部分错误是在编码之前造成的(设计错误占软件错误的63%,编码错误仅占37%)。,错误发现与改正得越晚,所需付出的代价越高。,因此,在每个阶段都进行严格的评审,以便尽早发现软件开发过程中的错误,35,.,变更的成本,36,.,3.实行严格的产品控制,在软件开发过程中不要随意改变需求,但在实际中用户往往会提出需求变更,需要采取科学的产品控制技术来顺应这种要求。,目前主要实行基准配置管理。基准配置是指经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。,对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。,37,.,4.采用现代程序设计技术,实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。,80年代及以前:结构化分析、设计技术,90年代:面向对象分析、设计技术,38,.,5.结果应能清楚地审查,软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。,根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查。,39,.,6.开发小组的人员应该少而精,开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。,开发小组人员数目的增加,使相互交流复杂、费用增加。,40,.,7.承认不断改进软件工程实践的必要性,遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。,积极主动采纳新的软件技术,且不断总结经验。,41,.,2.3 软件工程方法学,软件工程方法学,:,软件生命周期全过程中使用的一整套技术的集合,。,它包括三要素:,方法:完成软件开发各项任务的技术方法,工具:为方法的运用提供自动的或半自动的软件支撑环境,过程:为获得高质量的软件所需要完成的一系列任务的工作步骤,42,.,43,.,传统方法学,“生命周期方法学”或结构化范型,采用结构化技术(结构化分析、结构化设计、结构化程序实现、结构化测试)来完成软件开发的各项任务。,从时间角度将软件开发和维护的复杂问题进行分解,把软件生命周期的全过程依次划分为若干个阶段,每个阶段有相对独立的任务,然后顺序地逐步完成每个阶段的任务。,44,.,面向对象方法学,对象(,Objects):,融合了数据及在数据上的操作行为的统一的软件构件,类(,Classes):,对具有相同数据和相同操作的一组相似对象的定义,继承(,Inheritance):,在类等级中,下层派生类自动拥有上层基类中定义的数据和操作的现象,消息(,Messages):,对象彼此间仅能通过发送消息互相联系,面向对象方法=对象+类+继承+消息,45,.,剩下两个问题,计算机科学侧重理论和基础,而软件工程则侧重于软件开发和交付的实际活动,系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。软件工程只是它的一部分。,46,.,对软件存在着许多错误的观点,我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。,如果我们已经落后于计划,可以增加更多的程序员来赶上进度。,项目需求总是在不断变化,但这些变化能够很容易地满足,因为软件是灵活的。,有了对目标的一般描述就足以开始写程序了,我们以后可以再补充细节。,一旦我们写出了程序并使其正常运行,我们的工作就结束了。人们有时认为,只有差的软件产品才需要维护。,一个成功的项目唯一应该提交的就是运行程序。,47,.,48,.,IEEE(,美国电气与电子工程师协会,Institute of Electrical&Electronic Engineers),ACM(,美国计算机协会,,Association for Computing Machinery),49,.,
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服