软件工程第1章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程第1章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课件
- 资源描述:
-
1、 软件工程导论软件工程导论(第第5 5版版)前言前言软件工程是计算机专业的一门重要的专业基础课,软件工程是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的它对于培养学生的软件素质,提高学生的软件开发软件开发能力能力与软件与软件项目管理能力项目管理能力具有重要的意义。具有重要的意义。1995年,年,Standish Group针对系统开发成功的研针对系统开发成功的研究表明,所有的开发项目中有究表明,所有的开发项目中有32%的项目在它们结的项目在它们结束之前被中止。此外多于一半的软件项目花费的成束之前被中止。此外多于一半的软件项目花费的成本相当于原来预算的本相当于原来预算的2
2、倍。倍。只有只有42%的软件项目完成时达到了预期的范围和的软件项目完成时达到了预期的范围和功能,事实上,许多系统只完成了部分预期的需求。功能,事实上,许多系统只完成了部分预期的需求。因此,软件的开发是一个很困难的活动,要求很因此,软件的开发是一个很困难的活动,要求很仔细的计划和执行。仔细的计划和执行。软件工程就是在这样的背景下,由许多计算机科软件工程就是在这样的背景下,由许多计算机科学家经过多方面的探索和总结而成形的,目前发展学家经过多方面的探索和总结而成形的,目前发展十分迅速。十分迅速。课程的主要内容有:课程的主要内容有:介绍软件的基本概念和软件工程的目标,通过对介绍软件的基本概念和软件工程
3、的目标,通过对传统的面向过程的软件开发方法和面向对象的软件传统的面向过程的软件开发方法和面向对象的软件开发方法的介绍,使学生掌握开发高质量软件的方开发方法的介绍,使学生掌握开发高质量软件的方法;法;通过对软件开发过程和过程管理技术的学习,使通过对软件开发过程和过程管理技术的学习,使学生了解如何进行软件质量的度量和管理,怎样进学生了解如何进行软件质量的度量和管理,怎样进行质量保证活动,从而能够有效地策划和管理软件行质量保证活动,从而能够有效地策划和管理软件开发活动。开发活动。管理的思想,工程的方法管理的思想,工程的方法 重点内容重点内容1.软件工程概念与软件工程的基本要素;软件工程概念与软件工程
4、的基本要素;2.软件开发活动以及在这些活动中经常使用的系软件开发活动以及在这些活动中经常使用的系统定义技术、软件设计技术、程序设计技术和统定义技术、软件设计技术、程序设计技术和软件测试技术;软件测试技术;3.软件开发范型以及在软件开发中典型的软件开软件开发范型以及在软件开发中典型的软件开发模型;发模型;4.软件过程及分类;软件过程及分类;5.软件工程管理以及软件规模估算、项目成本估软件工程管理以及软件规模估算、项目成本估算、软件复杂性度量等技术;算、软件复杂性度量等技术;6.软件质量、质量特征以及软件质量保证;软件质量、质量特征以及软件质量保证;7.能力成熟度模型(能力成熟度模型(CMM)。课
5、程教材课程教材软件工程导论(第软件工程导论(第5版)版)张海藩张海藩 清华大学出版社清华大学出版社参考教材:参考教材:实用软件工程(第二版)实用软件工程(第二版)郑人杰郑人杰 殷人昆殷人昆 陶永雷陶永雷 清华大学出版社清华大学出版社软件工程实验与课程设计指导软件工程实验与课程设计指导 王华王华 周丽娟周丽娟 谭小慧谭小慧 电子工业出版社电子工业出版社课程考核要求课程考核要求u课上认真听讲课上认真听讲u课后认真总结课后认真总结u高质量完成课程设计高质量完成课程设计总总 目目 录(录(1)第第1章章 软件工程学概述软件工程学概述第第2章章 可行性研究可行性研究第第3章章 需求分析需求分析第第4章章
6、 形式化说明技术形式化说明技术*第第5章章 总体设计总体设计第第6章章 详细设计详细设计第第7章章 实现实现总总 目目 录(录(2)第第8章章 维护维护第第9章章 面向对象方法学引论面向对象方法学引论第第10章章 面向对象分析面向对象分析第第11章章 面向对象设计面向对象设计*第第12章章 面向对象实现面向对象实现*第第13章章 软件项目管理软件项目管理 第第14章章 UML概述概述第第1章章 软件工程学概述软件工程学概述1.1 软件危机软件危机1.2 软件工程软件工程1.3 软件生命周期软件生命周期1.4 软件过程软件过程1.5 小结小结国家计算机软件著作权保护条例国家计算机软件著作权保护条
7、例 第二条本条例所称计算机软件第二条本条例所称计算机软件(以下简称软件以下简称软件),是指计,是指计算机程序及其有关文档。算机程序及其有关文档。第三条本条例下列用语的含义:第三条本条例下列用语的含义:(一一)计算机程序,是指为了得到某种结果而可以由计算计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序者符号化语句序列。同一计算机程序的源程序和目标程序为同
8、一作品。为同一作品。(二二)文档,是指用来描述程序的内容、组成、设计、功文档,是指用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法的文字资料和图能规格、开发情况、测试结果及使用方法的文字资料和图表等,如程序设计说明书、流程图、用户手册等。表等,如程序设计说明书、流程图、用户手册等。软件工程发展的起因:软件工程发展的起因:“软件危机软件危机”为了更有效地开发与维护软件,软件工作者在为了更有效地开发与维护软件,软件工作者在20世世纪纪60年代后期开始认真研究消除软件危机的途径,年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科从而逐渐形成了一门新兴的工程
9、学科计算机软计算机软件工程学件工程学(通常简称为软件工程通常简称为软件工程)。在计算机系统发展的早期时代在计算机系统发展的早期时代(20世纪世纪60年代中期年代中期以前以前):除了程序清单之外,没有其他文档资料保存下来。除了程序清单之外,没有其他文档资料保存下来。从从20世纪世纪60年代中期到年代中期到70年代中期:年代中期:这个时期的一个重要特征是出现了这个时期的一个重要特征是出现了“软件作坊软件作坊”,广泛使用产品软件,软件难以维护。广泛使用产品软件,软件难以维护。由此产生了由此产生了软件危机软件危机1.1 软件危机软件危机1968年北大西洋公约组织的计算机科学家在联邦德年北大西洋公约组织
10、的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了上正式提出并使用了“软件工程软件工程”这个名词,一门这个名词,一门新兴的新兴的工程学科工程学科就此诞生了!就此诞生了!软件危机是指在计算机软件的开发和维护过程中所软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。都不同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题
11、:如何概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。护数量不断膨胀的已有软件。1.1.1 软件危机的介绍软件危机的介绍(1)对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。(2)用户对用户对“已完成的已完成的”软件系统不满意的现象经软件系统不满意的现象经常发生。常发生。(3)软件产品的质量往往靠不住。软件产品的质量往往靠不住。(4)软件常常是不可维护的。软件常常是不可维护的。(5)软件通常没有适当的文档资料。软件通常没有适当的文档资料。(6)软件成本在
12、计算机系统总成本中所占的比例逐软件成本在计算机系统总成本中所占的比例逐年上升。年上升。(7)软件开发生产率提高的速度,远远跟不上计算软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。机应用迅速普及深入的趋势。在软件开发和维护的过程中存在这么多严重问题,在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。开发与维护的方法不正确有关。1.1.2 产生软件危机的原因产生软件危机的原因人们在开发和使用计算机系统的长期实践中,也确人们在开发和使用计算机系统的长期实践中,也确实积累和
13、总结出了许多成功的经验。如果坚持不懈实积累和总结出了许多成功的经验。如果坚持不懈地使用经过实践考验证明是正确的方法,许多困难地使用经过实践考验证明是正确的方法,许多困难是完全可以克服的。是完全可以克服的。目前相当多的软件专业人员对软件开发和维护还有目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。危机的主要原因。事实上,对用户要求没有完整准确的认识就匆忙着事实上,对用户要求没有完整准确的认识就匆忙着手编写程序是
14、许多软件开发工程失败的主要原因之手编写程序是许多软件开发工程失败的主要原因之一。事实上,越早开始写程序,完成它所需要用的一。事实上,越早开始写程序,完成它所需要用的时间往往越长。时间往往越长。软件生命周期软件生命周期一个软件从定义、开发、使用和维护,直到最终被一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。这个漫长的时期称为生命周期。图图1.1 引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势统计数据表明,实际上用于软件维护的费用占软件统计数据表明,实际上
15、用于软件维护的费用占软件总费用的总费用的55%70%。软件工程学的一个重要目标。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。就是提高软件的可维护性,减少软件维护的代价。为了消除软件危机,首先应该对计算机软件有一个为了消除软件危机,首先应该对计算机软件有一个正确的认识。一个软件必须由一个完整的配置组成,正确的认识。一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。事实上,软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数指令
16、序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图据结构;文档是开发、使用和维护程序所需要的图文资料。文资料。1983年年IEEE为软件下的定义是:计算机程序、方为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。序时所必需的数据。1.1.3 消除软件危机的途径消除软件危机的途径必须充分认识到软件开发不是某种个体劳动的神秘必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工
17、程项目。员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功应该推广使用在实践中总结出来的开发软件的成功的技术和方法。的技术和方法。应该开发和使用更好的软件工具。应该开发和使用更好的软件工具。软件工程正是从管理和技术两方面研究如何更好地软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。开发和维护计算机软件的一门新兴学科。概括地说,软件工程是指导计算机软件开发和维护概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正方法
18、来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。护它,这就是软件工程。人们曾经给软件工程下过许多定义,下面给出两个人们曾经给软件工程下过许多定义,下面给出两个典型的定义。典型的定义。1.2 软件工程软件工程 1.2.1 软件工程的介绍软件工程的介绍1968年在第一届年在第一届NATO会议上曾经给出了软件工程会议上曾经给出了软件工程的一个早期定义:的一个早期定义:“软件工程就是为了经济地获得软件工程就是为了经
19、济地获得可靠的且能在实际机器上有效地运行的软件,而建可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。立和使用完善的工程原理。”这个定义不仅指出了这个定义不仅指出了软件工程的目标是经济地开发出高质量的软件,而软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。使用完善的工程原理。1993年年IEEE进一步给出了一个更全面更具体的定进一步给出了一个更全面更具体的定义:义:“软件工程是:软件工程是:把系统的、规范的、可度把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,
20、也就量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;是把工程应用于软件;研究研究中提到的途径。中提到的途径。”虽然软件工程的不同定义使用了不同词句,强调虽然软件工程的不同定义使用了不同词句,强调重点也有差异,但是人们普遍认为软件工程具有重点也有差异,但是人们普遍认为软件工程具有下述的本质特性:下述的本质特性:1.软件工程关注于大型程序的构造软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性3.软件经常变化软件经常变化4.开发软件的效率非常重要开发软件的效率非常重要5.和谐地合作是开发软件的关键和谐地合作是开发软件的关键6.软件必须有效地
21、支持它的用户软件必须有效地支持它的用户7.在软件工程领域中是由具有一种文化背景的人在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品替具有另一种文化背景的人创造产品自从自从1968年在联邦德国召开的国际会议上正式提出年在联邦德国召开的国际会议上正式提出并使用了并使用了“软件工程软件工程”这个术语以来,研究软件工这个术语以来,研究软件工程的专家学者们陆续提出了程的专家学者们陆续提出了100多条关于软件工程多条关于软件工程的准则或的准则或“信条信条”。著名的软件工程专家。著名的软件工程专家B.W.Boehm综合这些学者们的意见并总结了综合这些学者们的意见并总结了TRW公司多年
22、开发软件的经验,于公司多年开发软件的经验,于1983年在一篇论文中年在一篇论文中提出了软件工程的提出了软件工程的7条基本原理。他认为这条基本原理。他认为这7条原理条原理是确保软件产品质量和开发效率的原理的最小集合。是确保软件产品质量和开发效率的原理的最小集合。1.2.2 软件工程的基本原理软件工程的基本原理 这这7条原理是互相独立的,其中任意条原理是互相独立的,其中任意6条原理的条原理的组合都不能代替另一条原理,因此,它们是缺组合都不能代替另一条原理,因此,它们是缺一不可的最小集合,然而这一不可的最小集合,然而这7条原理又是相当完条原理又是相当完备的。备的。1.用分阶段的生命周期计划严格管理用
23、分阶段的生命周期计划严格管理2.坚持进行阶段评审坚持进行阶段评审3.实行严格的产品控制实行严格的产品控制4.采用现代程序设计技术采用现代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组的人员应该少而精开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性 软件工程的目标与原则软件工程的目标与原则软件工程需要解决的问题:软件工程需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件成本、软件可靠性、软件维护、软件生产率和软件复用。软件复用。软件工程需要达到的基本目标:软件工程需要达到的基本目标:付出较低的开发成本付出较低的开发成本
24、达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发的软件易于移植开发的软件易于移植 需要较低的维护费用需要较低的维护费用 能按时完成开发、及时交付使用能按时完成开发、及时交付使用 软件工程原则软件工程原则在软件开发过程中必须遵循的软件工程原则有:在软件开发过程中必须遵循的软件工程原则有:1 1、抽象与自顶向下、逐层细化抽象与自顶向下、逐层细化 采用分层抽象采用分层抽象的方法,有效控制软件开发的复杂性。的方法,有效控制软件开发的复杂性。2 2、模块化模块化 把问题分解为若干较小的较易解决把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。的模块,有助于信息隐
25、蔽和抽象。3 3、信息隐蔽和数据封装信息隐蔽和数据封装 将模块中的软件设计将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。有助于控制修改局部化。4 4、局部化局部化 在一个物理模块内集中逻辑上相互在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的关联的计算机资源,促使聚合具有特定目的的事物。事物。5 5、一致性一致性 整个软件系统的模块使用一致的设整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明
展开阅读全文