软件工程导论 精.ppt
《软件工程导论 精.ppt》由会员分享,可在线阅读,更多相关《软件工程导论 精.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程导论 第1页,本讲稿共79页1.张海藩张海藩.软件工程导论软件工程导论.北京:清华大学出版社北京:清华大学出版社,2008.2.郑人杰郑人杰.软件工程概论软件工程概论.北京:清华大学出版社北京:清华大学出版社,2003.3.史济民史济民.软件工程原理方法与应用软件工程原理方法与应用.北京:北京:高等教育出版社高等教育出版社,2002.4.邓良松等邓良松等.软件工程(第二版)软件工程(第二版).西安:西安电子科技大学出版社,西安:西安电子科技大学出版社,2004.5.Software Engineering,6th EditionSoftware Engineering,6th Edit
2、ion Sommerville.I.Sommerville.I.(影印版影印版影印版影印版)机械工业出版社机械工业出版社机械工业出版社机械工业出版社 2003.4.2003.4.教材及主要参考书:教材及主要参考书:教材及主要参考书:教材及主要参考书:第2页,本讲稿共79页第一第一章章 软件工程学概述软件工程学概述 1 11.1 1.1 软件危机软件危机1.31.3 软件生命周期软件生命周期1.5 1.5 小结小结1.41.41.41.4 软件过程软件过程1.2 1.2 1.2 软件工程软件工程软件工程第3页,本讲稿共79页软件是计算机系统的重要组成部分;软件是逻辑产品,需要计算机硬件和系统软件
3、的支撑;软件是计算机控制系统的指挥中枢;软件是信息转换器,它能对信息进行加工、处理或变换;软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;第4页,本讲稿共79页软件软件 定义定义能够完成预定功能和性能的可执行的指令指令(计算机程序)软件是软件是使得程序能够适当地操作信息的数据结构数据结构描述程序的操作和使用的文档文档第5页,本讲稿共79页现在,被普遍接受的软件的定义是:软件软件(softwaresoftware)是计算机系统中与硬件是计算机系统中与硬件(hardwarehardware)相互依存的另一部分,它包括程序相互依存的另一部分,它包括
4、程序(programprogram)、相关数据相关数据(datadata)及其说明文档及其说明文档(documentdocument)。Software=Program+Data+Document第6页,本讲稿共79页软件 软件特征软件是一种逻辑实体,具有抽象性软件是一种逻辑实体,具有抽象性软件没有明显的制造过程软件没有明显的制造过程软件在使用过程中,没有磨损、老化的问题软件在使用过程中,没有磨损、老化的问题 软件对硬件和环境有着不同程度的依赖性软件对硬件和环境有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效
5、率低 软件是复杂的,而且以后会更加复杂软件是复杂的,而且以后会更加复杂 软件的成本相当昂贵软件的成本相当昂贵 大多数软件是自定的,而不是通过已有的构件组装而来的大多数软件是自定的,而不是通过已有的构件组装而来的软件工作牵涉到很多社会因素软件工作牵涉到很多社会因素 第7页,本讲稿共79页 2008年,我国软件产业继续保持高速增长态势,实现产年,我国软件产业继续保持高速增长态势,实现产业收入达业收入达1935.5亿元,同比增长亿元,同比增长31.2%,比电子信息制造业,比电子信息制造业高出高出11.4个百分点。其中,软件产品收入个百分点。其中,软件产品收入703.9亿元,仍亿元,仍为软件产业的主要
6、组成部分;软件技术服务增长最快,为软件产业的主要组成部分;软件技术服务增长最快,达达356.3亿元,同比增长亿元,同比增长48.2%。在之前的。在之前的7年,我国软年,我国软件产业收入从件产业收入从2001年的年的796亿元增长到亿元增长到2007年的年的5834亿亿元,增长了元,增长了6.3倍,占全球软件产业的份额也从倍,占全球软件产业的份额也从1.5%上上升到升到8.7%。第8页,本讲稿共79页国外软件企业的人才结构畸畸形形的的人人才才结结构构?高高层层管理管理员员程序程序员员软软件开件开发员发员系系统统分析分析员员图图1.1 国外人才结构图国外人才结构图第9页,本讲稿共79页 我国的软件
7、人才却呈橄榄形(缺少高级管理者和基础程序员),必我国的软件人才却呈橄榄形(缺少高级管理者和基础程序员),必须多发展须多发展“塔基塔基”(软件蓝领),才能形成合理的软件人才结构。(软件蓝领),才能形成合理的软件人才结构。图图1.2 软件人员从业结构软件人员从业结构第10页,本讲稿共79页拉布雷阿的拉布雷阿的焦油坑(Mural of La Brea Tar Pits)图图1.3 拉布雷阿的焦油坑拉布雷阿的焦油坑第11页,本讲稿共79页在未来的十年内,无论是在技术还是管理方法上,都看不出有任何突破性的进步,能够独自保证在十年内大幅度地提高软件的生产率、可靠性和简洁性。There is no sing
8、le development,in either technology or management technique,which by itself promises even one order-of-magnitude improvement within a decade in productivity,in reliability,in simpllicity.No Silver Bullet?第12页,本讲稿共79页 微软公司,测试人员与开发人员数量之比一般为微软公司,测试人员与开发人员数量之比一般为1.51.52.52.5左右,即一个开发人员背后有两位左右测试人员在工作,左右,即
9、一个开发人员背后有两位左右测试人员在工作,以保证软件产品的质量。在以保证软件产品的质量。在WINDOWS2000WINDOWS2000开发团队中,微软用开发团队中,微软用了了250250多个项目经理、多个项目经理、17001700多个开发人员,而内部测试人员则多个开发人员,而内部测试人员则达到达到32003200人,比前两者的之和还要多。有关机构的研究表明,人,比前两者的之和还要多。有关机构的研究表明,国外软件开发机构国外软件开发机构40%40%的工作量花在软件测试上,测试费用占的工作量花在软件测试上,测试费用占项目总费用的项目总费用的30%30%至至50%50%。对于一些要求高可靠、高安全的
10、软。对于一些要求高可靠、高安全的软件,测试费用可能相当于整个项目费用的件,测试费用可能相当于整个项目费用的3 3至至5 5倍。倍。软件产品软件产品的高质量,主要依赖科学的软件测试。的高质量,主要依赖科学的软件测试。第13页,本讲稿共79页1.11.1软件危机软件危机“软软件件危危机机”(Software Software crisiscrisis)的的出出现现是是由由于于软软件件的的规规模模越越来来越越大大,复复杂杂度度不不断断增增加加,软软件件需需求求量量增增大大。而而软软件件开开发发过过程程是是一一种种高高密密集集度度的的脑脑力力劳劳动动,软软件件开开发发的的模模式式及及技技术术不不能能适
11、适应应软软件件发发展展的的需需要要。致致使使大大量量质质量量低低劣劣的的软软件件涌涌向向市市场场,有有的的花花费费大大量量人人力力财力,而在开发过程中就夭折。财力,而在开发过程中就夭折。1.1 1.1 1.1 1.1 软件危机软件危机软件危机软件危机第14页,本讲稿共79页1.1.1 软件危机的介绍软件危机的介绍1.11.1软件危机软件危机一一.什么是软件危机什么是软件危机?软软件件危危机机是是指指在在计计算算机机软软件件的的开开发发和和维维护护过程中所遇到的一系列严重问题。过程中所遇到的一系列严重问题。二二.软件危机的表现形式软件危机的表现形式1.对软件开发成本和进度的估计常常很不准确对软件
12、开发成本和进度的估计常常很不准确;2.用户对用户对“已完成的已完成的”软件系统不满意的现象软件系统不满意的现象经常发生经常发生;3.软件产品的质量往往靠不住软件产品的质量往往靠不住,Bug一大堆,一大堆,Patch一个接一个一个接一个;第15页,本讲稿共79页4.软件常常是不可维护的软件常常是不可维护的;5.软件通常没有适当的文档资料软件通常没有适当的文档资料;6.软件成本在计算机系统总成本中所占的比例软件成本在计算机系统总成本中所占的比例逐年上升逐年上升;7.软件开发生产率提高的速度跟不上计算机应用软件开发生产率提高的速度跟不上计算机应用普及的趋势。普及的趋势。1.11.1软件危机软件危机二
13、二.软件危机的表现形式软件危机的表现形式(续续)第16页,本讲稿共79页1.1.2 产生软件危机的原因(软件开发人员的错误观点)“有一个对目标的概括描述就足以着手编写程序了,许多细节可有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充以在以后再补充”“所谓软件开发就是编写程序并设法使它运行所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动动”“软件投入生产性运行以后需要的维护工作并不多,而且维护是一软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容
14、易做的简单工作件很容易做的简单工作”1.11.1软件危机软件危机第17页,本讲稿共79页1.1.2 产生软件危机的原因产生软件危机的原因1.软件缺乏软件缺乏“可见性可见性”,软件的开发过程的进展情软件的开发过程的进展情况难以衡量况难以衡量,软件质量难以评价软件质量难以评价;2.软件维护意味着改正或修改原来的设计软件维护意味着改正或修改原来的设计,使维护较难使维护较难;3.软件规模大软件规模大,须由多人分工合作须由多人分工合作,管理难度大管理难度大;4.软件专业人员对软件开发和维护有糊涂观念软件专业人员对软件开发和维护有糊涂观念,常采用常采用错误的方法和技术错误的方法和技术;错误的认识和做法主要
15、表现,(1)忽视软件需求分析的重要性;(2)忽视软件维护1.11.1软件危机软件危机第18页,本讲稿共79页1.11.1软件危机软件危机4.选择好的软件开发工具。选择好的软件开发工具。1.端正认识端正认识,纠正纠正“软件就是程序软件就是程序”的错误观念的错误观念;2.认识到软件开发是组织良好、管理严密,各类人员认识到软件开发是组织良好、管理严密,各类人员协同配合、共同完成的工程项目;协同配合、共同完成的工程项目;3.多使用已成功的技术和方法多使用已成功的技术和方法,探索更有效的方法探索更有效的方法;1.1.3 消除软件危机的途径消除软件危机的途径第19页,本讲稿共79页1.2 软件工程软件工程
16、1.21.2软件工程软件工程1.2.1 软件工程的介绍软件工程的介绍1.什么是软件工程什么是软件工程?为了经济的获得为了经济的获得可靠的可靠的,在实际机器上,在实际机器上高效运行的高效运行的软软件,而建立和使用的好的件,而建立和使用的好的工程原则。工程原则。采用工程的概念、原理、技术和方法来开发采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,以经济地开发出高质量的软件并有效地维护它,这就是这就
17、是软件工程软件工程。第20页,本讲稿共79页2.软件工程三要素 过程、方法和工具软件工程软件工程过程过程方法方法工具工具1.21.2软件工程软件工程第21页,本讲稿共79页软件工程软件工程过程过程方法方法工具工具 软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的 研究。将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。为软件工程的过程和方法提供自动化或半自动化的工具支持贯穿软件开发的各个环节完成项目的技术手段(传统方法学、面向对象方法学)第22页,本讲稿共79页3.3.软件工程发展阶段软件工程发展阶
18、段软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:4)4)4)4)第四代软件工程第四代软件工程第四代软件工程第四代软件工程 构件工程构件工程构件工程构件工程3)3)3)3)第三代软件工程第三代软件工程第三代软件工程第三代软件工程 过程工程过程工程过程工程过程工程2)2)2)2)第二代软件工程第二代软件工程第二代软件工程第二代软件工程 对象工程对象工程对象工程对象工程1)1)1)1)第一代软件工程第一代软件工程第一代软件工程第一代软件工程 传统的软件工程传统的软件工程传统的软件工程传统的软件工程1.21.2软件工程软件工程第23页,本讲稿共79页软件工程的发展已经历了四个
19、重要阶段:软件工程的发展已经历了四个重要阶段:1)1)1)1)第一代软件工程第一代软件工程第一代软件工程第一代软件工程 传统的软件工程传统的软件工程传统的软件工程传统的软件工程 2)2)2)2)第二代软件工程第二代软件工程第二代软件工程第二代软件工程 对象工程对象工程对象工程对象工程 3)3)3)3)第三代软件工程第三代软件工程第三代软件工程第三代软件工程 过程工程过程工程过程工程过程工程 4)4)4)4)第四代软件工程第四代软件工程第四代软件工程第四代软件工程 构件工程构件工程构件工程构件工程 60年代末到70年代为了克服“软 件 危 机”(Software crisis)提出“软件工程”的
20、名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。1.21.2软件工程软件工程3.3.软件工程发展阶段软件工程发展阶段第24页,本讲稿共79页1.软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:1)1)1)1)第一代软件工程第一代软件工程第一代软件工程第一代软件工程 传统的软件工程传统的软件工程传统的软件工程传统的软件工程 2)2)2)2)第二代软件工程第二代软件工程第二代软件工程第二代软件工程 对象工程对象工程对象工程对象工程 3)3)3)3)第三代软件工程第三代软件工程第三代软件工程第三代软件工程 过程工程过程工程过程工
21、程过程工程 4)4)4)4)第四代软件工程第四代软件工程第四代软件工程第四代软件工程 构件工程构件工程构件工程构件工程 80年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。1.21.2软件工程软件工程3.3.软件工程发展阶段软件工程发展阶段第25页,本讲稿共79页1.软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:1)1)1)1)第一代软件工程第一代软件工程第一代软件工程第一代软件工程 传统的软件工程传统的软件工程传统的软件工程传统的软件工程 2)2)2)2)第二代软件工程第二代软件工
22、程第二代软件工程第二代软件工程 对象工程对象工程对象工程对象工程 3)3)3)3)第三代软件工程第三代软件工程第三代软件工程第三代软件工程 过程工程过程工程过程工程过程工程 4)4)4)4)第四代软件工程第四代软件工程第四代软件工程第四代软件工程 构件工程构件工程构件工程构件工程 80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。1.21.2软件工程软件工程3.3.软件工程发展阶段软件工程发展阶段第26页,本讲稿共79页1.软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重
23、要阶段:1)1)1)1)第一代软件工程第一代软件工程第一代软件工程第一代软件工程 传统的软件工程传统的软件工程传统的软件工程传统的软件工程 2)2)2)2)第二代软件工程第二代软件工程第二代软件工程第二代软件工程 对象工程对象工程对象工程对象工程 3)3)3)3)第三代软件工程第三代软件工程第三代软件工程第三代软件工程 过程工程过程工程过程工程过程工程 4)4)4)4)第四代软件工程第四代软件工程第四代软件工程第四代软件工程 构件工程构件工程构件工程构件工程 90年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以
24、此达到提高效率和质量,降低成本的目的。称为构件工程。1.21.2软件工程软件工程3.3.软件工程发展阶段软件工程发展阶段第27页,本讲稿共79页 4.软件工程目标软件工程目标 在给定成本、进度的前提下,开发出具有:在给定成本、进度的前提下,开发出具有:有效性有效性、可修改性、可修改性、可靠性、可靠性、可理解性、可维护性、可重可理解性、可维护性、可重用性、可适应性、用性、可适应性、可追踪性可追踪性、可移植性、可移植性、可互操作性可互操作性 并满足用户需求的软件产品。并满足用户需求的软件产品。5.软件工程基本原则软件工程基本原则 在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:在软件开发
25、过程中,为了达到软件开发目标,必须遵循下列原则:抽象抽象 模块化模块化 信息隐藏信息隐藏 局部化局部化 一致性一致性 完全性完全性 可验证性可验证性1.21.2软件工程软件工程第28页,本讲稿共79页1.21.2软件工程软件工程6.软件工程的特性软件工程的特性(1)软件工程关注于大型程序的构造软件工程关注于大型程序的构造;(2)软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性;(3)软件经常变化软件经常变化;(4)开发软件的效率非常重要开发软件的效率非常重要;(5)和谐地合作是开发软件的关键和谐地合作是开发软件的关键;(6)软件必须有效地支持它的用户软件必须有效地支持它的用户;(7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程导论 软件工程 导论
限制150内