《软件工程学概述》课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件工程学概述》课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程学概述 软件 工程学 概述 课件
- 资源描述:
-
1、Software EngineeringSoftware Engineering软件工程软件工程主讲:柯胜男主讲:柯胜男整理整理ppt第第1章章 软件工程学概述软件工程学概述 1-2整理ppt2本章目标本章目标?了解软件工程学产生的背景和原因了解软件工程学产生的背景和原因?了解软件工程的基本原理、了解软件工程的基本原理、概念和方法概念和方法?掌握软件生命周期模型,掌握软件生命周期模型,为特定的项目选择适合的模型为特定的项目选择适合的模型 1-3整理ppt3问题问题为什么要提出软件工程呢?软件工程对软件开发有什么帮助呢?1-4整理ppt4主要内容主要内容n软件危机(Software Crisis
2、)n软件工程(Software Engineering)n软件生命周期(Software Life Cycle)n软件过程(Software Process)1-5整理ppt5内容线索内容线索n软件危机软件危机软件发展过程软件危机n软件危机表现n软件危机产生原因n消除软件危机的途径n软件工程n软件生命周期n软件过程 1-6整理ppt6软件发展过程软件发展过程n1950s1960s中:规模较小的程序,个体化的软件开发,只有程序清单n1960s中1970中:“软件作坊”,广泛使用产品软件“软件危机”出现了1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上
3、正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了 1-7整理ppt7软件发展过程软件发展过程n1970中1980s:微处理器的出现并广泛应用分布式系统、嵌入智能n1980s:网络迅速普及强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网格计算、虚拟组织 1-8整理ppt8软件发展过程软件发展过程n软件发展过程中存在的问题 软件开发能力不能满足人们的需要社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护 由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补
4、丁+时髦界面的方法 1-9整理ppt9问题实例问题实例日常生活:零元帐单国计民生:nWWMCCS计算机网络警报n医用系统:Therac-25医用线性加速器,严重过量辐射n军用系统:飞毛腿导弹身边n浦东移动通讯瘫痪n操作系统有趣的实验nGoogle和baidunExcel 1-10整理ppt10 1-11整理ppt11 1-12整理ppt12 美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.
5、n这个项目的负责人这个项目的负责人F.D.BrooksF.D.Brooks事后总结了他在组织开发过程中的沉事后总结了他在组织开发过程中的沉痛教训时说:痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工程序设计工作正像这样一个泥潭,作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣一批批程序员被迫在泥潭中拼命挣扎,扎,.谁也没有料到问题竟会陷入这样的困境谁也没有料到问题竟会陷入这样的困境.”.”。IBM360IBM360操作系统的历史教训成为软件
6、开发项目的典型事例为人们所记取。操作系统的历史教训成为软件开发项目的典型事例为人们所记取。问题实例问题实例 1-13整理ppt13软件危机软件危机n软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题n典型表现:开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意“软件质量不可靠 软件常常是不可维护的软件没有适当的文档资料 软件产品“供不应求”1-14整理ppt14软件危机软件危机软件成本的比例逐年上升 1-15整理ppt15产生软件危机的原因产生软件危机的原因n软件的规模加大、复杂性提高、性能增强n软件是逻辑产品,尚未完全认识其本质和特点软件缺乏“可见性”:管理和控
7、制软件开发过程相当困难不会“用坏”:错误很可能是在开发时期引入,软件维护通常意味着修改原来的设计,这就在客观上使得软件较难维护 1-16整理ppt16产生软件危机的原因产生软件危机的原因n缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法n用户和软件开发人员的理解鸿沟n错误的认识和作法:忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等 1-17整理ppt17产生软件危机的原因产生软件危机的原因 1-18整理ppt18消除软件危机的途径消除软件危机的途径n消除“软件就是程序”的错误观念一个软件必须由一个完整的配置组成软件是程序、数据及相关文档的完整集合文档
8、是开发、使用和维护程序所需要的图文资料软件软件=程序程序+数据数据+文档文档 1-19整理ppt19消除软件危机的途径消除软件危机的途径n软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目n成功的软件开发技术和方法n软件工具和软件工程支撑环境 1-20整理ppt20内容线索内容线索n软件危机n软件工程软件工程软件工程定义软件工程定义软件工程的本质特征软件工程的本质特征软件工程的基本原理软件工程的基本原理软件工程方法学软件工程方法学n软件生命周期n软件过程 1-21整理ppt21软件工程软件工程n1968NATO(North Atlantic
9、 Treaty Organization)会议,德国Garmisch Partenkirchen(加米斯帕腾基辛),计算机科学会议n软件危机根源解决途径软件工程n目的:解决“软件危机”1-22整理ppt22软件工程定义软件工程定义n“概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。”1-23整理ppt23软件工程定义软件工程定义nNATO:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完
10、善的工程原理nIEEE定义:软件工程是(1)把系统化的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径 1-24整理ppt24软件工程定义软件工程定义nBoehm(巴里.勃姆):软件(包括程序和文档)设计、实现、检查、运行、维护各个过程使用的立足于科学基础的实用方法n中国大百科全书:软件工程是应用计算机科学、数学及管理科学等原理开发软件的过程。它借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、降低成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件
11、工程是一门交叉学科 1-25整理ppt25软件工程的本质特性软件工程的本质特性n软件工程关注于大型程序的构造 1-26整理ppt26软件工程的本质特性软件工程的本质特性n软件工程的中心课题是控制复杂性n软件经常变化n开发软件的效率非常重要n和谐地合作是开发软件的关键纪律是成功地完成软件开发项目的一个关键n软件必须有效地支持它的用户n在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品 1-27整理ppt27软件工程的基本原理软件工程的基本原理n用分阶段的生命周期计划严格管理n坚持进行阶段评审错误出现的时间(63%:37%)改正错误的代价n实行严格的产品控制基线配置、变动控制
12、n采用现代程序设计技术n结果应能清楚地审查n开发小组的人员应该少而精n承认不断改进软件工程实践的必要性 1-28整理ppt28软件工程方法学软件工程方法学n软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科n通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)1-29整理ppt29软件工程方法学三要素软件工程方法学三要素软件工程软件工程过程过程方法方法工具工具 1-30整理ppt30传统方法学传统方法学n传统方法学也称为生命周期方法学或结构化范型n它采用结构化技术(结构化分析、结构化设计和结构化实现)n
13、结构化范型要么面向行为(即对数据的操作),要么面向数据 1-31整理ppt31面向对象方法学面向对象方法学n面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法n面向对象方法学具有下述4个要点面向对象方法面向对象方法=对象对象+类类+继承继承+用消息通信用消息通信 1-32整理ppt32传统方法与面向对象方法比较传统方法与面向对象方法比较n信息隐藏(Information hiding)n有利用维护软件n使得软件开发变得容易n职责驱动设计(Responsibility-driven design)或按合同设计(design by contract
14、)1-33整理ppt33内容线索内容线索n软件危机n软件工程n软件生命周期软件生命周期n软件过程 1-34整理ppt34软件生命周期软件生命周期n软件产品或系统一系列相关活动的全周期软件定义软件定义软件开发软件开发可行性分析可行性分析需求分析需求分析总体设计总体设计详细设计详细设计编编 码码测测 试试软件发布软件发布软件运行软件运行软件维护软件维护软件维护软件维护问题定义问题定义系统设计系统设计系统实现系统实现 1-35整理ppt35软件定义软件定义n1.问题定义“要解决的问题是什么?”确定用户要求解决的性质、工程的目标和规模n2.可行性研究“对于上一个阶段所确定的问题有行得通的解决办法吗?”
15、经济、技术、法律可行性、不同的方案n3.需求分析“为了解决这个问题,目标系统必须做什么”确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景 规格说明书(specification)1-36整理ppt36软件开发软件开发n4.总体设计(概要设计)“概括地说,应该怎样实现目标系统?”设计出实现目标系统的几种可能的方案。推荐一个最佳方案确定程序由哪些模块组成以及模块之间的关系n5.详细设计(模块设计)“应该怎样具体地实现这个系统呢?”设计出程序的详细规格说明确定实现模块功能所需要的算法和数据结构 1-37整理ppt37软件开发软件开发n6.编码和单元测试 写出正确的易理解、易维
16、护的程序模块并仔细测试每个模块n7.综合测试集成测试和验收测试,现场测试或平行运行 1-38整理ppt38软件维护软件维护n8.软件维护使系统持久地满足用户的需要维护工作分成以下四类n改正性维护n适应性维护n完善性维护n预防性维护 1-39整理ppt39内容线索内容线索n软件危机n软件工程n软件生命周期n软件过程软件过程 1-40整理ppt40软件过程软件过程n软件过程软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤n运用方法的顺序、文档资料、管理措施,各个阶段的里程碑n通常使用生命周期模型简洁地描述软件过程生命周期模型规定了把生命周期划分成哪些阶段及各
17、个阶段的执行顺序也称为过程模型 1-41整理ppt41过程模型过程模型n典型的过程模型瀑布模型(Waterfall model)快速原型开发模型(Rapid Prototyping model)增量模型(Incremental model)螺旋模型(Spiral model)n其它模型极限编程(eXtreme Programming)RUP(Rational Unified Process)建造修补模型(Build-and-fix model)1-42整理ppt42瀑布模型瀑布模型理想的瀑布模型理想的瀑布模型实际的瀑布模型实际的瀑布模型 1-43整理ppt43瀑布模型的特点瀑布模型的特点n阶段
18、间具有顺序性和依赖性n推迟实现的观点清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现n质量保证的观点(文档驱动)每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审 1-44整理ppt44瀑布模型的缺点瀑布模型的缺点n开发过程一般不能逆转,否则代价太大n规格说明很难理解:“我知道这是按我的要求做的,但不是我想要的样子。”n软件的实际情况必须到项目开发的后期客户才能看到 1-45整理ppt45快速原型模型快速原型模型n快速原型是一个与产品子集功能上相同的工作模型快速建立起来的可以在计算机上运行的程序它所能完成的功能往往是最终产品能完成的功能的一个子集 1-46整理ppt46
19、快速原型模型快速原型模型用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户意见户意见 1-47整理ppt47快速原型模型的特点快速原型模型的特点n快速原型的本质是“快速”n快速原型可以取代规格说明阶段,但不是设计阶段,容易适应需求的变化n有利于开发与培训的同步n开发费用低、开发周期短、维护容易且对用户更友好客户与开发者对原型理解不同准确的原型设计比较困难不利于开发人员的创新 1-48整理ppt48快速原型模型的应用范围快速原型模型的应用范围n用户需求不完全或不准确,有快速的原型开发工具n项目招投标时,可以以原型模型作为软件的开发模型n产品移植或升级或对已有产品原型进
20、行客户化工作 1-49整理ppt49比较比较n瀑布模型试图一次就获得正确的产品n快速原型频繁变化,然后废弃 1-50整理ppt50增量模型增量模型n把软件产品作为一系列增量构件来设计、编码、集成和测试构件构件:由一些代码块组成,这些代码块来自多个相互作用的模块,完成特定的功能 1-51整理ppt51增量模型的特点增量模型的特点n瀑布模型和快速原型模型的目标交付给客户一个完整的、可用的产品n增量模型的优点每个阶段交付一个可用的产品减少一个全新产品给客户带来的心理上的影响分阶段地交付产品不需要大的资金支出需求经常变化,增量模型的灵活性使其具有更加优越的适用性n增量模型的困难需要一个开放的结构,方便
21、构件的加入增量模型本身就是一个矛盾的名词 1-52整理ppt52风险更大的增量模型风险更大的增量模型 1-53整理ppt53螺旋模型螺旋模型n螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析 1-54整理ppt54简化的螺旋模型简化的螺旋模型n简化版本:瀑布模型+风险分析每个阶段之前n确定目标,可供选择的办法及其限制条件n风险分析每个阶段之后n评估n计划下一阶段 1-55整理ppt55简化的螺旋模型简化的螺旋模型 1-56整理ppt56完整的螺旋模型完整的螺旋模型风险分析制定计划客户评价实施工程累积的成本阶段 1-57整理ppt57螺旋模型的特点螺旋模型的特点n螺旋模型
展开阅读全文