《软件工程概述》PPT课件.ppt.ppt
《《软件工程概述》PPT课件.ppt.ppt》由会员分享,可在线阅读,更多相关《《软件工程概述》PPT课件.ppt.ppt(85页珍藏版)》请在沃文网上搜索。
1、软件工程软件工程主讲:主讲:xxx信息科学技术学院信息科学技术学院25 九月 20232答疑时间:周三周三14:0016:00(扬帆楼(扬帆楼403)*email:我的联系方式我的联系方式25 九月 20233l19951995年年,Standish Standish GroupGroup针针对对软软件件系系统统开开发发成成功功的的研研究究表表明明,所所有有的的开开发发项项目目中中有有32%32%的的项项目目在在它它们们结束之前被中止结束之前被中止。l多多于于一一半半的的软软件件项项目目花花费费的的成成本本相相当当于于原原来来预预算算的的2 2倍倍。l只只有有42%42%的的软软件件项项目目完
2、完成成时时达达到到了了预预期期的的功功能能,事实上,许多系统只完成了部分预期的需求。事实上,许多系统只完成了部分预期的需求。软件工程软件工程25 九月 20234l软软件件工工程程就就是是在在这这样样的的背背景景下下,由由许许多多计计算算机机科学家经过科学家经过多方面的探索和总结多方面的探索和总结而形成的。而形成的。l19681968年年首首次次提提出出“软软件件工工程程”,目目前前已已经经成成为为计算机软件的一个重要分支和研究方向。计算机软件的一个重要分支和研究方向。l软件的开发软件的开发是一个很是一个很困难困难的活动,要求很仔细的活动,要求很仔细的计划和执行。的计划和执行。软件工程软件工程
3、25 九月 20235通过本课程的学习,掌握软件工程的通过本课程的学习,掌握软件工程的概念概念和和技术方法技术方法,提高软件开发机构的软件开,提高软件开发机构的软件开发能力和软件过程能力,提高发能力和软件过程能力,提高软件生产率软件生产率、提高提高软件质量软件质量、降低、降低软件成本软件成本。课程对象:课程对象:软件技术人员软件技术人员、管理人员管理人员等。等。课程目的对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。25 九月 20236课程内容&软件工程软件工程概念概念与软件工程的与软件工程的基本要素基本要素;&软件开发活动及其常用的系统软件开发活动及其常用的
4、系统定义技术定义技术,软,软件件设计技术设计技术和软件和软件测试技术测试技术;&软件开发中典型的软件开发中典型的软件开发模型软件开发模型;&软件工程标准化与软件工程标准化与软件文档软件文档;&软件工程管理软件工程管理和和软件质量保证软件质量保证。教学日历教学日历掌握开发高质掌握开发高质量软件的方法量软件的方法有效地策划和管有效地策划和管理软件开发活动理软件开发活动25 九月 20237参考教材1.软件工程与软件文档写作软件工程与软件文档写作 清华大学清华大学/北京交通大学出版社北京交通大学出版社 文斌文斌 刘长青刘长青 田原田原 编著编著2.软件工程导论(第软件工程导论(第4版)版)清华大学出
5、版社,清华大学出版社,张海藩张海藩3.实用软件工程(第实用软件工程(第2版)版)清华大学出版社,郑人杰清华大学出版社,郑人杰4.软件工程软件工程 机械工业出版社机械工业出版社/中信工业出版社,中信工业出版社,Ian Sommerville 程一剑等译程一剑等译25 九月 20238课程要求 要要求求刻刻苦苦学学习习,持持之之以以恒恒的的精精神神。本本课课程程与与其其说说是是一一门门技技术术性性很很强强的的课课程程,不不如如说说更更像像一一门门管管理理学学科科的的课课程程,很很多多规规定定都都是是国国内内外外大大师师的的经经验验总总结结,不不能能误误认认为为无无用用或或现现在在用用不不上上而而放
6、放弃学习弃学习。要求学以致用,善于将要求学以致用,善于将理论与实际结合理论与实际结合,才能巩,才能巩固课内学到的知识,并能融会贯通。固课内学到的知识,并能融会贯通。25 九月 20239第一章第一章 软件工程概念软件工程概念1.11.1 软件的定义与分类软件的定义与分类1.2 1.2 软件的发展和软件危机软件的发展和软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生存周期、过程模型软件生存周期、过程模型25 九月 202310历史的回顾1946年年,第一台计算机诞生,信息技术拉开了序幕;,第一台计算机诞生,信息技术拉开了序幕;硬件芯片的集成度硬件芯片的集成度按照摩尔定律每十八个月翻
7、番;按照摩尔定律每十八个月翻番;20世纪世纪80年代,年代,微软为首的新兴软件企业微软为首的新兴软件企业开辟了独立软件开辟了独立软件产业,成为信息产业中最重要的力量;产业,成为信息产业中最重要的力量;很多传统型企业逐渐很多传统型企业逐渐“软化软化”,信息产业,信息产业“软盛软盛硬衰硬衰”;2002年,美国从业年,美国从业硬件工程师约为硬件工程师约为74000,软件工程师约为软件工程师约为675000;硬件设计过程本身出现硬件设计过程本身出现“软化软化”趋势,离不开软件的支持;趋势,离不开软件的支持;2004年年3月,盖茨的演讲月,盖茨的演讲“十年后十年后”通用化标准化专业化多样化25 九月 2
8、023111.1 1.1 软件的定义与分类软件的定义与分类n n软件由计算机软件由计算机程序程序、数据数据及及文档文档组成。组成。按事先设计的功按事先设计的功能和性能要求执能和性能要求执行的行的指令序列指令序列。使程序能够使程序能够正常操纵信正常操纵信息的息的数据结数据结构构。与程序开发、维与程序开发、维护和使用有关的护和使用有关的图文材料图文材料。25 九月 202312软件的特点软件的特点抽象性:逻辑实体抽象性:逻辑实体抽象性:逻辑实体抽象性:逻辑实体软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程无磨损性无磨损性无磨损性无磨损性退化25 九
9、月 202313抽象性抽象性抽象性抽象性软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程无磨损性无磨损性无磨损性无磨损性对硬件的依赖性对硬件的依赖性对硬件的依赖性对硬件的依赖性手工开发方式手工开发方式手工开发方式手工开发方式软件本身复杂性软件本身复杂性软件本身复杂性软件本身复杂性软件的特点软件的特点所反映的实际问题的复杂性所反映的实际问题的复杂性程序自身逻辑结构的复杂性程序自身逻辑结构的复杂性25 九月 202314抽象性抽象性抽象性抽象性软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程软件生产无明显的制造过程无磨损性无磨
10、损性无磨损性无磨损性对硬件的依赖性对硬件的依赖性对硬件的依赖性对硬件的依赖性手工开发方式手工开发方式手工开发方式手工开发方式软件本身复杂性软件本身复杂性软件本身复杂性软件本身复杂性软件高成本软件高成本软件高成本软件高成本软件的特点软件的特点25 九月 202315例:美国一家公司在例:美国一家公司在1982年计划用年计划用FORTRAN语言开发一个在语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为计算机上运行的应用程序,估计这个程序的长度为10,000条指令条指令。如果平均。如果平均每人每天每人每天可以开发出可以开发出10条指令条指令,请问:,请问:()()开发这个程序将
11、用多少开发这个程序将用多少人日人日?()()假设程序员月平均假设程序员月平均工资为工资为4000美元美元,每月按,每月按20个工作日个工作日计算,这个计算,这个软件的成本软件的成本是多少美元?是多少美元?()()1982年年VAX750计算机计算机硬件硬件价格约为价格约为125,000美元美元,在那,在那一年这个一年这个软件的成本软件的成本在总成本中占多大在总成本中占多大比例比例?()()20年后,一台性能远远优于年后,一台性能远远优于VAX750的微型的微型计算机的价格计算机的价格约为约为2000美元美元,这时软件开发生产率已提高到平均每人每天可以,这时软件开发生产率已提高到平均每人每天可以
12、开发出开发出40条指令条指令,程序员的月平均,程序员的月平均工资也涨到工资也涨到8000美元美元。如果在。如果在2002年开发上述年开发上述FORTRAN应用程序,则该应用程序,则该软件的成本软件的成本在总成本在总成本中占多大中占多大比例比例?10,000/10=1000(人日)(人日)每月工作每月工作20天,故开发这个软件用天,故开发这个软件用:1000/20=50(人月)(人月)每人工资每人工资4000元,故软件成本约为:元,故软件成本约为:4000*50=200,000(元)(元)200,000/(200,000+125,000)=61.5%2002年开发该软件的工作量为:年开发该软件的
13、工作量为:10,000/(40*20)=12.5(人月)(人月)软件成本:软件成本:8000*12.5=100,000(元)(元)软件成本所占比例:软件成本所占比例:100,000/(100,000+2,000)=98%25 九月 202316抽象性抽象性软件生产无明显的制造过程软件生产无明显的制造过程无磨损性无磨损性对计算机硬件依赖性对计算机硬件依赖性软件的软件的手工开发方式手工开发方式软件本身软件本身复杂性复杂性软件的软件的高成本性高成本性相当多的软件工作涉及相当多的软件工作涉及社会因素社会因素软件的特点软件的特点从以上分析可以看出,出现软件危机是必然的。60年代以来人们所担心的软件危机到
14、目前为止并没有真正被排除。机构体制机构体制管理方式管理方式思想观点思想观点25 九月 202317n软件软件与与硬件硬件、数据库数据库、人人、过程过程等共同构成计等共同构成计算机系统。算机系统。n软件的种类可以从几个方面进行划分软件的种类可以从几个方面进行划分:1.1.按功能分类按功能分类系统软件系统软件协调计算机系统协调计算机系统支撑软件支撑软件协助用户开发软件的工具性软件协助用户开发软件的工具性软件应用软件应用软件为特定领域开发的软件为特定领域开发的软件软件的分类软件的分类类别类别 参加人员数参加人员数 研制期限研制期限 源源程序行数程序行数 微型微型 1 14周 0.5k 小型小型 1
15、16月 1k2k中型中型 25 12年 5k50k大型大型 520 23年 50k100k甚大型甚大型 1001000 45年 1M(=1000k)极大型极大型 20005000 510年 1M10M2.按规模分类按规模分类 微型、小型、中型、大型、甚大型、极大型微型、小型、中型、大型、甚大型、极大型按工作方式分类按工作方式分类 批处理软件批处理软件批处理软件批处理软件 实时软件实时软件实时软件实时软件 分时软件分时软件分时软件分时软件 交互式软件交互式软件交互式软件交互式软件按服务对象分类按服务对象分类 项目软件项目软件项目软件项目软件 产品软件产品软件产品软件产品软件按使用频度分类按使用频
16、度分类 一次性使用软件一次性使用软件一次性使用软件一次性使用软件 频繁使用软件频繁使用软件频繁使用软件频繁使用软件也称也称定制软件定制软件,是受某,是受某特定客户特定客户的委托,由软件承包商在的委托,由软件承包商在合同的合同的约束约束下开发出来的软件。下开发出来的软件。由软件开发机构开发出来由软件开发机构开发出来直接提直接提供给市场供给市场,可以,可以公开销售公开销售。区别:区别:项目项目软件软件的的软件描述由软件描述由客户给出客户给出,开发者必须按客户,开发者必须按客户要求进行开发;而要求进行开发;而产品软件产品软件的的软件描述由开发者自己完成软件描述由开发者自己完成。25 九月 20232
17、0第一章第一章 软件工程概念软件工程概念1.1 1.1 软件的定义与分类软件的定义与分类1.2 1.2 软件的发展和软件危机软件的发展和软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生存周期、过程模型软件生存周期、过程模型25 九月 2023211.21.2 软件的发展和软件危机软件的发展和软件危机 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段 面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统 有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向对象技术面向对象技术 自定义软件自定义软件 数据库数据库 低成本硬件低成本硬
18、件 专家系统专家系统 软件产品软件产品 消费者的影响消费者的影响 人工智能人工智能 并行计算并行计算 网络计算机网络计算机195019601970198019902000软件的发展经历了四个阶段25 九月 202322由由于于缺缺乏乏软软件件开开发发经经验验和和相相关关数数据据的的积积累累,使使开开发发计计划划很很难难制制定定,在在进进度度、费费用用上上估估计计不不准准确确,引起用户不满;引起用户不满;软件需求很难确定软件需求很难确定或不确定,这一点非常关键;或不确定,这一点非常关键;开开发发过过程程缺缺乏乏统统一一、公公认认的的方方方方法法法法论论论论和和规规规规范范范范指指指指导导导导,缺
19、乏缺乏文档规范文档规范文档规范文档规范,使软件很难维护;,使软件很难维护;测试工作测试工作测试工作测试工作不充分,导致错误多,可靠性降低。不充分,导致错误多,可靠性降低。软件危机软件危机25 九月 202323软件危机的主要特征软件危机的主要特征软件软件开发周期开发周期大大超过规定日期大大超过规定日期软件软件开发成本开发成本严重超标严重超标软件软件质量质量难于保证难于保证软件难于软件难于维护维护原因原因32%32%的项目在结的项目在结束之前中止束之前中止多于一半多于一半的软件项目花费的软件项目花费的成本相当于原来的成本相当于原来预算的预算的2 2倍倍,按期、按预算完成的,按期、按预算完成的项目
20、不足项目不足20%20%。软件本身的软件本身的复杂性复杂性 软件产品的软件产品的特殊性特殊性 人们认识的人们认识的局限性局限性25 九月 202324例例1:1963年美国的火箭控制系统程序。年美国的火箭控制系统程序。把把FORTRAN语句语句 DO 5 I=1,3 写成了写成了 DO 5 I=1.3,使发往火星的火箭爆炸,造成使发往火星的火箭爆炸,造成1000多万美元的损失。多万美元的损失。例例2:IBM公司公司1966年开发的年开发的IBM360机的操作系统。机的操作系统。花花费费5000人人年年的的工工作作量量,写写出出近近100万万行行源源程程序序,却却得得到到一一个个很很不不成成功功
21、的的软软件件。每每更更新新一一次次版版本本,都都能能找找到到1000多个错误,成为多个错误,成为用之不灵、弃之可惜用之不灵、弃之可惜用之不灵、弃之可惜用之不灵、弃之可惜的系统。的系统。软件危机软件危机25 九月 202325解决软件危机的方法:按解决软件危机的方法:按工程化工程化的的原则原则和和方方法法组织软件开发工作,并制定相应的组织软件开发工作,并制定相应的标准标准。成功软件的标准成功软件的标准用户在用用户在用用户的使用是最关键的因素用户的使用是最关键的因素用户可以很容易做完要做的事用户可以很容易做完要做的事软件危机软件危机25 九月 202326第一章第一章 软件工程概念软件工程概念1.
22、1 1.1 软件的定义与分类软件的定义与分类1.2 1.2 软件的发展和软件危机软件的发展和软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生存周期、过程模型软件生存周期、过程模型25 九月 202327l软件工程就是软件工程就是采用采用工程工程的的概念、原理、技术和方概念、原理、技术和方法法来来开发和维护软件开发和维护软件,将,将工程管理技术的成功经工程管理技术的成功经验和思想与软件的开发过程验和思想与软件的开发过程、研究技术相结合,、研究技术相结合,形成一套适合于软件开发的形成一套适合于软件开发的方法、规范和技术方法、规范和技术。l软件工程的目标在于:软件工程的目标在于:提高软
23、件生产率提高软件生产率,提高软提高软件质量件质量,降低软件成本降低软件成本。1.3 1.3 软件工程软件工程25 九月 202328软件工程软件工程&软件工程是应用软件工程是应用计算机科学计算机科学、数学数学及及管理科学管理科学等原理等原理开发软件的工程开发软件的工程。它。它借鉴传统工程的原则、方法,以提高借鉴传统工程的原则、方法,以提高质量,降低成本为目的。质量,降低成本为目的。工程学科工程学科软件生产的各个方面软件生产的各个方面软件工程的内容不是软件工程的内容不是一成不变的,随着人一成不变的,随着人们对软件系统研制开们对软件系统研制开发的理解而发展。发的理解而发展。25 九月 202329
24、l计算机科学研究的是构成计算机科学研究的是构成计算机和软件系计算机和软件系统基础统基础的有关的有关理论和方法理论和方法;l软件工程研究软件工程研究软件制作中的实际问题软件制作中的实际问题;l软件工程既要软件工程既要以计算机科学理论作为坚实以计算机科学理论作为坚实的基础,又要的基础,又要有特定的软件开发方法。有特定的软件开发方法。软件工程和计算机科学软件工程和计算机科学25 九月 202330l系统工程研究复杂系统的开发、进化的各个系统工程研究复杂系统的开发、进化的各个方面,包括方面,包括硬件开发硬件开发、系统决策系统决策、过程设计过程设计、系统实施系统实施和和软件工程软件工程等等。l系统工程人
25、员要描述整个系统系统工程人员要描述整个系统,定义总的体,定义总的体系结构,集成各组件以完成整个系统,较少系结构,集成各组件以完成整个系统,较少关注各组件的工程实际问题。关注各组件的工程实际问题。软件工程和系统工程软件工程和系统工程25 九月 202331 20012001年年年年5 5月月月月ISOISO发布了发布了发布了发布了 SWEBOK SWEBOK指南指南指南指南V0.95V0.95(试用试用试用试用版)版)版)版),即,即,即,即 GGuide to the uide to the S Software oftware E Engineering ngineering B Body
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程概述 软件工程 概述 PPT 课件