软件工程基本原理



《软件工程基本原理》由会员分享,可在线阅读,更多相关《软件工程基本原理(49页珍藏版)》请在装配图网上搜索。
1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第1章 软件工程的基本原理,目的要求,:,认识软件工程这门课的内容和教学安排,了解计算机系统的发展历程,软件危机产生的原因及消除途径;,掌握软件工程的概念、基本原理。了解软件过程的概念,掌握瀑布模型以及软件生命周期方法学的阶段划分,了解快速原型模型、增量模型、螺旋模型、喷泉模型的基本思想。,教学目的、要求,重点、难点,教学重点:,讲述软件危机产生的原因;软件工程的概念;软件过程的概念,瀑布模型以及软件生命周期方法学的阶
2、段划分;,教学难点:,螺旋模型、喷泉模型的基本思想;,讲授内容:,计算机系统发展历程;软件危机;软件工程。软件过程的概念,瀑布模型以及软件生命周期方法学的阶段划分快速原型模型、增量模型、螺旋模型、喷泉模型。,计算机系统应用的日益普及和深化。硬件和软件的迅速发展。在计算机系统发展的早期时代所形成的一些错误概念和做法,已经严重地阻碍了计算机软件的开发,为更有效地开发和维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的方法,从而形成了计算机科学技术领域中的一们新兴学科:,计算机软件工程学,。,计算机系统已经经历了4个不同的发展阶段,计算机软件也经历了4个阶段。,60年代中期以前,:
3、,为具体应用专门编写,认为无需预先计划,规模较小,编写者和使用者是同一人,无系统化方法,无管理,人们头脑中的一个隐含过程,除程序清单无文档资料。,60年代中期到70年代中期,:第二代,多道程序、多用户系统的引入,数据库系统的出现,重要特征:软件作坊,广泛使用产品软件,但仍使用个体化软件开发方法。程序运行时发现的错误必须设法改正,用户有了新的需求时必须相应的修改程序,硬件或操作系统更新时通常需要修改程序以适应新的环境。,第一节 软件概述,一、软件的发展与特点,1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,正式提出“软件工程”。,从20世纪70年代中期开始的10
4、年,:分布式系统,局域网、广域网、宽带数字通信等对软件开发者提出了更高的要求,主要特点:出现了微处理器,及智能产品(个人计算机)。,计算机系统发展的第四代,:以硬件和软件的综合效果为主,复杂的操作系统控制的强大的桌面机及局域网、广域网,与先进的应用软件相配合,已经成为当前的主流。,计算机软件发展的三个阶段及其特点,特点,阶段,程序设计,程序系统,软件工程,软件所指,程序,程序及说明书,程序、文档、数据,主要程序设计语言,汇编及机器语言,高级语言,软件语言*,软件工作范围,程序编写,设计和测试,整个软件生命周期,需求者,程序设计者,少数用户,市场用户,开发软件的组织,个人,开发小组,开发小组及大
5、中型开发机构,软件规模,小型,中、小型,大、中、小型,特点,阶段,程序设计,程序系统,软件工程,决定质量的因素,个人技术,小组技术水平,技术与管理水平,开发技术和手段,子程序、程序库,结构化程序设计,数据库,开发工具,集成开发环境,工程化开发方法,标准和规范,网络及分布式开发,OO,技术,CASE,维护责任者,程序设计者,开发小组,专职维护人员,硬件的特征,高价、存储量小、可靠性差,降价,速度、容量、可靠性明显提高,向超高速,大容量,网络化,微型化方向发展,软件的特征,完全不受重视,软件的技术发展不能满足需求,开发技术有进步,但尚未完全摆脱软件危机,指在计算机软件开发和维护的过程中所遇到的一系
6、列严重问题。,概括的说:,如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。,具体的说:,主要有以下一些表现:,1、对软件开发成本和进度的估计常常很不准确;,2、用户对已完成的软件系统不满意的现象经常发生;,3、软件产品的质量经常靠不住;,4、软件常常是不可维护的;,5、软件通常没有适当文档资料;,6、软件成本在计算机系统总成本中中所占的比例逐年上升;,7、软件开发的生产率提高的速度,既跟不上硬件发展的速度,也远远跟不上计算机应用普及深入的趋势。,二、软件危机,IBM,公司的,OS/360,,共约,100,万条指令,花费了,5000,个人年;经费达数亿美圆,而结果却
7、令人沮丧,错误多达,2000,个以上,系统根本无法正常运行。,OS/360,系统的负责人,Brooks,这样描述开发过程的困难和混乱:,“,像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。,”,1963,年美国飞往火星的火箭爆炸,造成,1000,万美元的损失。原因是,FORTRAN,程序:,DO 5 I=1,,,3,误写为:,DO 5 I=1,.,3,1967,年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。,在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和
8、软件开发与维护的方法不正确有关。,1、软件不同于硬件,:它是计算机系统中的逻辑部件,在写出程序代码并在计算机上运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价,因此管理和控制软件开发过程相当困难。,2、软件在运行过程中不会因使用时间过长而被用坏,,如果运行中发现错误,很可能是遇到了一个在开发时期引入杂在测试阶段没能检测出来的故障,因此软件维护通常意味着改正或修改原来的设计。,产生软件危机的原因,3、软件不同于一般程序,:,规模庞大,必须有严格而科学的管理。,4、软件专业人员对软件开发和维护有不少的糊涂观念,,,在实践过程中或多或少地采用了错误的方法和技术,忽视软件需求分析的重
9、要性,认为开发软件就是写程序并使之运行,轻视软件维护,这可能是软件危机的主要原因,。,硬件/软件产品失效率曲线,磨合调整,磨损用坏,时间,失效率,修改点,实际曲线,时间,失效率,理想曲线,软件产品,硬件产品,5,200,20,2000,1000,需求分析,结构设计,详细设计,编码,集成测试,系统测试,现场,改正一个问题的估算费用/美元,改正一个问题的估算工作量/人日,0.05,0.5,2.5,改正一个问题需付出的代价,代价,早期 中期 晚期 时间,高,中,低,变更代价随时间变化的趋势,一个软件从定义、开发、使用、维护,直到最终被废弃,要经历一个漫长的时期,这就如同一个人要经过胎儿、儿童、青年、
10、中年、老年,直到最终死亡的漫长时期一样,通常把软件经历的这个漫长时期称为生存周期。,在软件开发的不同阶段进行修改需要付出的代价很不相同:,软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。,生存周期:,1、软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。,2、必须充分吸收和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别是要吸取几十年来从事计算机硬件研究和开发的经验教训。,3、应该推广使用在实践中总结出来的开发软件的成功的 技术和方法。,4、应该开发和使用更好的 软件工具。,总之,为了解决软件危机,既要有技术措施(方法
11、和工具),又要有必要的组织管理措施。软件工程.正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科.,解决软件危机的途径,软件工程,是指导计算机软件开发和维护的工程学科.采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程.,1983年,IEEE,给软件工程的定义,:,“,软件工程是开发、运行、维护和修复软件的系统方法。,”,强调,“,系统方法,”,不是,“,个人技巧,”,。,Fairly,认为,:,“,软件工程学是为了在成本限额以内按时完成开发和修
12、复软件产品所需要的系统生产和维护技术及管理学科,”,。强调,“,成本限额以内,”,及,“,技术和管理两个方面,”,。,第二节 软件工程,一、软件工程与方法学,Fritz Bauer,认为,:,“,软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用的完善的工程化原则,”,。强调,“,经济地开发出高质量的软件,应建立和使用的完善的工程化原则,”,。,1993年,IEEE,进一步给出了一个更全面的定义,:,软件工程是:(1)把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。,1、用分阶段的生命周期计划
13、严格管理,2、坚持进行阶段评审,3、实行严格的产品控制,4、采用现代程序设计技术,5、结果应能清楚的审查,6、开发小组的人员应该少而精,7、承认不断改进软件工程实践的必要性,二、软件工程的基本原理,三、软件 工程的内容,软件开发技术,软件开发方法学,瀑布模型的生命周期方法、动态需求的快速原型、面向对象的方法;,软件工具,用来开发软件的软件。,软件工程环境,支持软件开发的环境、工具及其关系;,软件工程管理,质量管理,人力管理、进度安排、质量保证、资源管理,软件工程经济学,以经济的观点研究开发过程中的经济效益:成本估算、效益分析。,软件工程包含:技术和管理。是技术和管理的紧密结合。通过计划、组织和
14、控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。,软件工程方法学包括三个要素:,方法:,完成软件开发的各项任务的技术方法;回答,“,如何做,”,的问题。,工具:,为方法的应用提供或半自动的软件支撑环境;,过程:,为了获得高质量的软件所需要完成的一系列任务的框架、规定了完成各项任务的工作步骤。,四、软件工程方法学,划分软件生存周期阶段的,基本原则,:使各阶段的任务彼此间尽可能相对独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发工程的组织管理.,面向对象方法的四个要点:对象;类;父类(基类)和子类(派生类);消息。,面
15、向对象方法学的出发点和基本原则,,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。,传统方法学(生命周期方法学)或(结构化范型):采用结构化技术(结构化分析、结构化设计、结构程序设计和结构化测试)。,第三节 软件工程过程,软件工程,过程,是为了获得高质量的软件所需要完成的一系列任务的框架,包括软件工程活动和软件管理活动。这些活动的执行可以是有序的、循环的、嵌套的,也可以有条件引发的。,在完成开发任务时必须进行一些活动,并使用适当的资源(人员、时间、计算机硬件、软件工具等),在过程结束
16、时将把输入(软件需求)转化为输出(软件产品)。,ISO9000,把过程定义为:,“,把输入转化为输出的一组彼此相关的资源和活动,”,。,过程定义了运用方法的顺序、应交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施以及标志软件开发各个阶段任务完成的里程碑。,软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等,在美国,SEI(,软件工程研究所,设在美国卡耐基-梅农大学,是致力于软件过程改进的权威机构,)提出的,“,能力成熟度模型,”,(,CMM,C,apability,M,aturity,M,odule,),中,设定了52个目标,18个关键活动域和316个关键活动,能够用来评价软件开发组织的过程能力。,工作任务,里程碑、交付物,软件质量保证点,任务集合,框架活动,公共过程框架,保护性辅助活动,软件工程过程,通过定义适合于所有软件项目的框架活动而建立。,每个集合由软件工程工作任务、软件项目里程碑、软件工作产品和交付物以及质量保证点组成。,独立于任何一个框架,从宏观上来看,所有的软件开发过程都可以看成一个循环解决问题的过程。包括4个不
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题党课讲稿:以高质量党建保障国有企业高质量发展
- 廉政党课讲稿材料:坚决打好反腐败斗争攻坚战持久战总体战涵养风清气正的政治生态
- 在新录用选调生公务员座谈会上和基层单位调研座谈会上的发言材料
- 总工会关于2025年维护劳动领域政治安全的工作汇报材料
- 基层党建工作交流研讨会上的讲话发言材料
- 粮食和物资储备学习教育工作部署会上的讲话发言材料
- 市工业园区、市直机关单位、市纪委监委2025年工作计划
- 检察院政治部关于2025年工作计划
- 办公室主任2025年现实表现材料
- 2025年~村农村保洁员规范管理工作方案
- 在深入贯彻中央8项规定精神学习教育工作部署会议上的讲话发言材料4篇
- 开展深入贯彻规定精神学习教育动员部署会上的讲话发言材料3篇
- 在司法党组中心学习组学习会上的发言材料
- 国企党委关于推动基层党建与生产经营深度融合工作情况的报告材料
- 副书记在2025年工作务虚会上的发言材料2篇