软件工程课本讲解第1章绪论课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程课本讲解第1章绪论课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课本 讲解 绪论 课件
- 资源描述:
-
1、第第1章绪论章绪论 第第1章绪论章绪论 软件工程软件工程是计算机学科一门主要的课程,是专业人员是计算机学科一门主要的课程,是专业人员特别是从事软件开发人员必须掌握和具备的专业知识。特别是从事软件开发人员必须掌握和具备的专业知识。通过本门课程的学习,使学生全面深入地通过本门课程的学习,使学生全面深入地(1)了解软件开发过程应遵循的流程了解软件开发过程应遵循的流程,准则准则,标准和规范标准和规范.(2)掌握软件工程的基本概念,基本原理,基本方法和基本掌握软件工程的基本概念,基本原理,基本方法和基本实现技术。实现技术。(3)能运用软件工程的基本技术方法和开发工具,承当软件能运用软件工程的基本技术方法
2、和开发工具,承当软件项目开发,设计和管理。项目开发,设计和管理。(4)了解本领域出现的新概念,新技术和新方法,达到进一了解本领域出现的新概念,新技术和新方法,达到进一步提高自己的理论水平和实践能力。步提高自己的理论水平和实践能力。本教学中将强调理论和实践相结合,并通过上机实验本教学中将强调理论和实践相结合,并通过上机实验掌握软件开发的方法,加强对本门课程的理解。掌握软件开发的方法,加强对本门课程的理解。第第1章绪论章绪论 “软件工程软件工程”课程课程 第第1章绪论章绪论 转变对软件的认识:上升 程序 系统 转变思维定式:上升 程序员 系统工程师 (系统分析员)工程化训练一个一个“开发商品房开发
3、商品房”的工程例子的工程例子第第1章绪论章绪论 要求先修课程要求先修课程:高级语言程序设计,数据结构:高级语言程序设计,数据结构,数数据库原理据库原理 教材:教材:软件工程软件工程邓良松邓良松 西安电子科技清华西安电子科技清华大学出版社大学出版社 参考教材:参考教材:软件工程导论软件工程导论张海藩张海藩 清华大学清华大学出版社出版社 软件工程软件工程陆丽娜陆丽娜 经济科学出经济科学出版社版社 软件工程概论软件工程概论郑人杰等郑人杰等 清华大清华大学出版社学出版社 第第1章绪论章绪论 检索软件工程学习网站检索软件工程学习网站软件工程专家网:http:/,http:/中国UML:http:/ 上课
4、上课40学时学时+上机上机20学时学时 110周上课周上课(每周课内每周课内4个学时个学时,包括总复包括总复习习)闭卷考试闭卷考试 课程设计课程设计:(:(1-15周内)周内),占总成绩的占总成绩的20%左右,包括:左右,包括:小组总的课程报告(小组总的课程报告(3737人为一组)人为一组)每个同学的实践总结报告每个同学的实践总结报告小组上机设计并实现一个软件系小组上机设计并实现一个软件系统统 作业,作为参考作业,作为参考第第1章绪论章绪论 第第1章章 绪论绪论 1.1 1.1 软件工程的产生软件工程的产生 1.2 1.2 软件工程的过程和软件生存周期软件工程的过程和软件生存周期1.3 1.3
5、 软件生存周期模型软件生存周期模型1.4 1.4 软件开发方法软件开发方法1.5 1.5 软件开发工具软件开发工具1.6 1.6 小结小结习题习题第第1章绪论章绪论 1.1 软件工程的产生软件工程的产生 1.1.1 软件的特点软件的特点第第1章绪论章绪论(1),它与物质产品有很大的,它与物质产品有很大的区别。软件产品是看不见摸不着的,因而具有无形性。区别。软件产品是看不见摸不着的,因而具有无形性。它是脑力劳动的结晶。它以程序和文档的形式出现,它是脑力劳动的结晶。它以程序和文档的形式出现,保存在计算机存储器的磁盘和光盘介质上,通过计算保存在计算机存储器的磁盘和光盘介质上,通过计算机的运行才能体现
6、它的功能和作用。机的运行才能体现它的功能和作用。(2)。其成本主要体现。其成本主要体现在软件的开发和研制上,软件开发研制完成后,通过在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量的软件产品。复制就产生了大量的软件产品。第第1章绪论章绪论(3),不存在磨损、消耗问题。,不存在磨损、消耗问题。(4),还未完全摆,还未完全摆脱手工开发方式,大部分产品是脱手工开发方式,大部分产品是“定做定做”的。的。(5),软件成本相当昂贵。软件,软件成本相当昂贵。软件的研制工作需要投放大量的、复杂的、高强度的脑力的研制工作需要投放大量的、复杂的、高强度的脑力劳动,它的成本非常高。劳动,它的成本非常高
7、。第第1章绪论章绪论 1.1.2 软件生产的发展软件生产的发展自从第一台计算机诞生以来,就开始了软件的生产,到目前自从第一台计算机诞生以来,就开始了软件的生产,到目前为止,已经经过了为止,已经经过了程序设计程序设计、程序系统程序系统和和软件工程软件工程三个时代。三个时代。1程序设计时代程序设计时代(19461956年年)程序设计时代的生产方式是程序设计时代的生产方式是个体手工劳动个体手工劳动.使用的工具是机器语言、汇编语言;使用的工具是机器语言、汇编语言;开发方法是追求编程技巧,追求程序运行效率,使得程序难读、开发方法是追求编程技巧,追求程序运行效率,使得程序难读、难懂、难修改;难懂、难修改;
8、硬件特征是价格高、存储容量小、运行可靠性差;硬件特征是价格高、存储容量小、运行可靠性差;软件特征是只有程序、程序设计概念,不重视程序设计方法。软件特征是只有程序、程序设计概念,不重视程序设计方法。第第1章绪论章绪论 2程序系统时代程序系统时代(19561968年年)程序系统时代的生产方式是程序系统时代的生产方式是作坊式的小集团合作生产作坊式的小集团合作生产.生产工具是高级语言;生产工具是高级语言;开发方法仍旧靠个人技巧,但开始提出了结构化方法;开发方法仍旧靠个人技巧,但开始提出了结构化方法;硬件特征是:速度、容量及工作可靠性有明显提高,价格降低,硬件特征是:速度、容量及工作可靠性有明显提高,价
9、格降低,销售有爆炸性增长;销售有爆炸性增长;软件特征是:程序员数量猛增,其他行业人员大量进入这个行业,软件特征是:程序员数量猛增,其他行业人员大量进入这个行业,由于缺乏训练,开发人员素质差。大量软件开发的需求已被提出,由于缺乏训练,开发人员素质差。大量软件开发的需求已被提出,但开发技术没有新的突破,开发人员的素质和落后的开发技术不但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,因此产生了尖锐的矛盾,导适应规模大、结构复杂的软件开发,因此产生了尖锐的矛盾,导致软件危机的产生。致软件危机的产生。第第1章绪论章绪论 3软件工程时代软件工程时代(1968年至今年
10、至今)软件工程时代的生产方式是软件工程时代的生产方式是工程化的生产工程化的生产.使用数据库、开发工具、开发环境、网络、分布式、面向对使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件;象技术来开发软件;硬件特征是:向超高速、大容量、微型化以及网络化方向发硬件特征是:向超高速、大容量、微型化以及网络化方向发展展 软件特征是:开发技术有很大进步,但是未能获得突破性进软件特征是:开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机。展,软件价格不断上升,没有完全摆脱软件危机。几十年来最根本的变化体现在:(1)人们改变了对软件的看法。(2)软件的需求是软
11、件发展的动力。(3)软件工作的范围从只考虑程序的编写扩展到涉及整个软件生存周期。第第1章绪论章绪论 1.1.3 软件危机软件危机1软件危机的产生软件危机的产生高成本、低质量的软件不能适应日益增长的软件需求,从而高成本、低质量的软件不能适应日益增长的软件需求,从而引发的尖锐的矛盾即软件危机。引发的尖锐的矛盾即软件危机。一些复杂的、大型的软件开发项目被提出来,但是,软件开一些复杂的、大型的软件开发项目被提出来,但是,软件开发技术一直未能满足发展的要求。软件开发遇到的问题因找不到发技术一直未能满足发展的要求。软件开发遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件解决的办法
12、,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。危机。2软件危机的表现软件危机的表现软件危机表现在以下几方面:软件危机表现在以下几方面:(1)经费预算经常突破,完成时间一再拖延。经费预算经常突破,完成时间一再拖延。由于缺乏软件开由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定的计划,执行起来和实际情况有很大差距,使得开主观盲目制定的计划,执行起来和实际情况有很大差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,计划无法发经费一再突破。由于对工作量和开发难度估计不足,计划无法按时完成,而使
13、得开发时间一再拖延。按时完成,而使得开发时间一再拖延。第第1章绪论章绪论(2)开发的软件不能满足用户要求。开发的软件不能满足用户要求。开发初期对用户的要开发初期对用户的要求了解不够明确,未能得到明确表达。开发工作开始后,求了解不够明确,未能得到明确表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,使能及时解决,导致开发的软件不能满足用户的要求,使开发失败。开发失败。(3)开发的软件可维护性差。开发的软件可维护性差。开发过程没有统一的、开发过程没有统一的、公认的规范,软件开发人员按各
14、自的风格工作,各行其公认的规范,软件开发人员按各自的风格工作,各行其事。开发过程无完整、规范的文档,发现问题后进行杂事。开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现的错误也很乱无章的修改。程序结构不好,运行时发现的错误也很难修改,导致软件可维护性差。难修改,导致软件可维护性差。第第1章绪论章绪论(4)开发的软件可靠性差。开发的软件可靠性差。由于在开发过程中,没有确由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量格的、充分的、完全的测试,提交给用
15、户的软件质量差,在运行中暴露出大量的问题。这种不可靠的软件,差,在运行中暴露出大量的问题。这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故,造成生轻者会影响系统正常工作,重者会发生事故,造成生命财产的重大损失。命财产的重大损失。3软件危机的原因软件危机的原因 造成上述软件危机的原因概括起来有以下几方面。造成上述软件危机的原因概括起来有以下几方面。第第1章绪论章绪论(1)软件的规模越来越大,结构越来越复杂。软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。复杂程度超泛,需要开发的软件规模日益庞大,软件结构也
16、日益复杂。复杂程度超过了人所能接受的程度。过了人所能接受的程度。(2)软件开发的管理困难。软件开发的管理困难。由于软件规模大,结构复杂,又具有无形由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。性,导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。(3)软件开发费用不断增加。软件开发费用不断增加。软件生产是一种智力劳动,它是资金密软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。(4)软件开发技术落后。软件开发技术落后。在在20世
17、纪世纪60年代,人们注重一些计算机理论年代,人们注重一些计算机理论问题的研究,不注重软件开发技术的研究,用户要求的软件其复杂性与问题的研究,不注重软件开发技术的研究,用户要求的软件其复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。(5)生产方式落后。生产方式落后。软件仍然采用个体手工方式开发。根据个人习软件仍然采用个体手工方式开发。根据个人习惯和爱好工作,无章可循,无规范可依据,靠言传身教方式工作。惯和爱好工作,无章可循,无规范可依据,靠言传身教方式工作。(6)开发工具落后。开发工具落后。第第1章绪论章绪论 1.1.4
18、 软件工程软件工程为了克服软件危机,人们从其他产业的工程化生产为了克服软件危机,人们从其他产业的工程化生产得到启示,于是在得到启示,于是在1968年北大西洋公约组织的工作会议年北大西洋公约组织的工作会议上首先提出上首先提出“软件工程软件工程”的概念,的概念,提出要用工程化的思提出要用工程化的思想来开发软件。从此,软件生产进入了软件工程时代。想来开发软件。从此,软件生产进入了软件工程时代。1软件工程的定义软件工程的定义 软件工程是用科学知识和技术原理来定义、开发、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。维护软件的一门学科。其主要思想是在软件生产中用工其主要思想是在软件生产
19、中用工程化的方法代替传统手工方法。工程化的方法借用了传程化的方法代替传统手工方法。工程化的方法借用了传统的工程设计原理的基本思想,采用了若干科学的、现统的工程设计原理的基本思想,采用了若干科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到代化的方法技术来开发软件。这种工程化的思想贯穿到需求分析、设计、实现,直到维护的整个过程。需求分析、设计、实现,直到维护的整个过程。第第1章绪论章绪论 一个一个“开发商品房开发商品房”的工程例子的工程例子和一个和一个“网络游戏网络游戏”软件的开发软件的开发1.可行性分析及制定项目计划可行性分析及制定项目计划(经济、技术、社会可行性;开发进度、任务分配、
20、负责人等经济、技术、社会可行性;开发进度、任务分配、负责人等)2.需求分析(相当于软件工程里的系统分析师)需求分析(相当于软件工程里的系统分析师)(功能、性能、安全、其它需求)(功能、性能、安全、其它需求)3.总体设计(相当于软件工程里的总设计师)总体设计(相当于软件工程里的总设计师)(总体楼高、宽、长;多少间房,房的连接,总的水、暖、电走向等)(总体楼高、宽、长;多少间房,房的连接,总的水、暖、电走向等)4.详细设计(相当于软件工程里的各个设计师)详细设计(相当于软件工程里的各个设计师)(每间房的具体结构)(每间房的具体结构)5.施工(相当于软件工程里的程序员)施工(相当于软件工程里的程序员
21、)具体工程队(包工头、建筑工人)盖房具体工程队(包工头、建筑工人)盖房6.测试(相当于软件工程里的测试员)测试(相当于软件工程里的测试员)测试每一间房的水、暖、电,整体水、暖、电,防雨、防震等测试每一间房的水、暖、电,整体水、暖、电,防雨、防震等7.维护(相当于软件工程里的维护员)维护(相当于软件工程里的维护员)第第1章绪论章绪论 什么样规模的软件系统需要软件工程的思想?什么样规模的软件系统需要软件工程的思想?小型(小型(1人半年人半年2000行)以上。行)以上。第第1章绪论章绪论 例:Windows95有1000万行代码 Windows2000有5000万行代码Exchange2000和 W
22、indows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人第第1章绪论章绪论 2软件工程的性质软件工程的性质 软件工程是涉及计算机科学、工程科学、管理科学、软件工程是涉及计算机科学、工程科学、管理科学、数学等领域的一门综合性的数学等领域的一门综合性的交叉学科交叉学科。计算机科学中的。计算机科学中的研究成果均可用于软件工程,但计算机科学侧重于原理研究成果均可用于软件工程,但计算机科学侧重于原理和理论的研究,而和理论的研究,而软件工程侧重于如何建造一个软件系软件工程侧重于如何建造一个软件系统。统。软
23、件工程要用工程科学中的观点来进行费用估算,软件工程要用工程科学中的观点来进行费用估算,制定进度、计划和方案;要用管理科学中的方法和原理制定进度、计划和方案;要用管理科学中的方法和原理进行软件生产的管理;要用数学的方法建立软件开发中进行软件生产的管理;要用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。的形式化模型等。第第1章绪论章绪论 3软件工程的目标软件工程的目标软件工程是一门工程性学科,软件工程是一门工程性学科,目的是成功地建造一个目的是成功地建造一个大型软件系统。大型软件系统。所谓成功,是要达到以下几
24、个目标:付出所谓成功,是要达到以下几个目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。时完成开发任务,及时交付使用;开发的软件可靠性高。4软件工程的内容软件工程的内容软件工程研究的主要内容是指软件工程研究的主要内容是指软件开发技术软件开发技术和和软件开软件开发管理发管理两个方面。在软件开发技术中,它主要研究软件开两个方面。在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发
25、工具和环境。在软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,它主要研究软件管理学、软件经济学和软件心发管理中,它主要研究软件管理学、软件经济学和软件心理学等。理学等。第第1章绪论章绪论 5软件工程面临的问题软件工程面临的问题软件工程有许多需要解决的棘手问题,如软件工程有许多需要解决的棘手问题,如软件费用、软软件费用、软件可靠性、软件可维护性、软件生产率和软件重用件可靠性、软件可维护性、软件生产率和软件重用等。等。1)软件费用软件费用由于软件生产基本上仍处于手工状态,软件是知识高度由于软件生产基本上仍处于手工状态,软件是知识高度密集的技术的综合产物,人力资源远远不能适应这种迅
展开阅读全文