软件工程0-1.软件工程介绍

上传人:san****019 文档编号:70578304 上传时间:2019-01-17 格式:PPT 页数:44 大小:461.01KB
返回 下载 相关 举报
软件工程0-1.软件工程介绍_第1页
第1页 / 共44页
软件工程0-1.软件工程介绍_第2页
第2页 / 共44页
软件工程0-1.软件工程介绍_第3页
第3页 / 共44页
软件工程0-1.软件工程介绍_第4页
第4页 / 共44页
软件工程0-1.软件工程介绍_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件工程0-1.软件工程介绍》由会员分享,可在线阅读,更多相关《软件工程0-1.软件工程介绍(44页珍藏版)》请在金锄头文库上搜索。

1、软件工程,第1章 软件工程介绍,1.1 软件与软件的复杂度,什么是软件?(站在软件工程的角度看) 软件就是: 一个或多个计算机程序,其执行时能提供所期望的功能和性能 一个或多个数据结构,这些结构使得程序能够完全操纵信息 一个或多个文档,这些文档描述了程序分析、设计、实现和维护的细节 软件的定义: 面向过程的程序=算法+数据结构 面向对象的程序=对象+消息 面向构件的程序=构件+构架,50年代:软件=程序 60年代:软件=程序+文档(分析、设 计、测试、维护,但不包括管理文档) 70年代:软件=程序+文档+数据(初始化数据、测试数据、研发数据、运行数据、维护数据、工程数据、项目管理数据等) 19

2、84年美国开始认识到软件管理是一个过程管理,1991年出现CMM1.0,96年出现UML。 “软件工作产品”开发过程中产生的各种软件 “软件产品”最后交付的软件,1.1 软件与软件的复杂度,IEEE Standard Glossary of Software Engineering Terminology给出了有关软件的定义: 软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 计算机程序是计算机设备可以接受的一系列指令和说明,为计算机执行提供所需的功能和性能。 数据是事实、概念或指令的结构化表示,能够被计算机设备接收、理解或处理。 文档是描述程序研制过程、方法及使用的图文材料

3、。,1.1 软件与软件的复杂度,IEEE Standard Glossary of Software Engineering Terminology给出了有关软件的定义(英文版): Software. Computer programs, procedures, and possibly associated documentation and data peraining to the operation of a computer system.,1.1 软件与软件的复杂度,软件的分类: (1)按功能分:系统软件、支撑软件、应用软件 (2)按规模分:大型、中型、小型 (3)按工作方式分:实

4、时/分时、交互/批处理 (4)按服务对象分:定制软件、产品软件(或称为通用软件) (5)按销售方式分:定单软件、非定单软件,1.1 软件与软件的复杂度,软件的特征 软件是设计开发的,而不是传统意义上生产制造的 软件不会磨损 大多数软件仍然是定制的,而不是通过已有构件组装而成,虽然软件业内向着基于构件的构造模式发展 从对比的角度理解这三点: 软件是开发出来的,不是制造出来的 软件可能被“废弃”,但不会“用坏” 软件大部分是定制的,而不是装配的,1.1 软件与软件的复杂度,软件的特征 抽象性:逻辑实体,可记录,但看不到 可复制性:与开发成本相比,复制成本很低,1.1 软件与软件的复杂度,软件的复杂

5、度,计算机软件发展的四个阶段: 1. 早期时代(60年代中期之前)程序设计阶段 硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。计算机的主要应用为快速计算,出现了Algol、Fortran等编程语言。 2. 第二代(60年代中期-70年代中期)程序系统阶段 出现“软件作坊”、产品软件;“个体化”开发方法。计算机的应用开始涉及到各种以非数值计算的商业业务领域,交互技术、数据库、操作系统等得到发展,出现了Pascal、Cobol等编程语言和关系数据库管理系统为标志的结构化软件技术。瀑布模型得到普遍使用。 3. 第三代(70年代中期之后-80年代)软件工程阶段 软件开发成为一门新兴

6、的工程学科软件工程。软件开发过程得到管理、工程化了。出现了COCOMO模型、CMM等。以Smalltalk、C+为代表的面向对象技术崛起,传统的结构化技术受到严峻的考验,1.1 软件与软件的复杂度,计算机软件发展的四个阶段: 4. 20世纪90年代至今 Internet技术的迅速发展使软件系统从封闭走向开放,异构环境下的分布式软件的开发成为一种主流需求,软件复用和构件技术成为技术热点,出现了J2EE、COM+、CORBA为代表的3个分支。 现在网格计算、Web Service、云计算、普适计算(Pervasive Computing)等技术发展迅速。,1.1 软件与软件的复杂度,1.1 软件与

7、软件的复杂度,1.1 软件与软件的复杂度,中国软件产业大事记 1984年:中国软件行业协会成立,当时的电子工业部部长江泽民任名誉会长,杨天行任理事长。 1985年:成立中国软件技术公司(中软总公司的前身);长城0520c微型机汉字处理软件HM和汉字排序软件SM向国外出口。 1986年:电子工业部向国务院报送了关于建立和发展我国软件产业的报告。1988年第一次全国软件会议召开;金山公司、用友公司成立。 1989年:北大华光激光照排系统获中国发明专利金奖。 1990年:原中国计算机软件技术公司与中国计算机服务公司合并,成立中国计算机软件与技术服务总公司,开始研发自主知识产权操作系统。 1991年:

8、中华人民共和国著作权法正式实施,计算机软件保护条例颁布。 1992年:计算机软件著作权登记办法颁布与实施。 1994年:金山、巨人、王码480等20多种流行的字处理软件进入各类办公系统中。,中国软件产业大事记 1996年:希望公司UCDOS占有当时72的中文平台市场;东软公司上市。 1997年:第一届中国软件博览会召开 1998年:Linux进入中国;国产财务软件占有65的国内市场份额。 2000年:国务院颁布鼓励软件和集成电路产业发展的若干政策的第18号文件,双软认证启动。 2001年:信息产业部与原国家计委命名11个城市的软件园为“国家软件产业基地”;金蝶、用友上市。 2002年:国务院下

9、发振兴软件产业行动纲要的47号文件,以作为对18号文精神的延续和细化,全国35所高校的示范性软件学院开始招生。 2003年:国内软件行业共完成销售收入1633亿元,同比增长48.5。,1.2 软件与软件危机 防不胜防的软件错误,例,例1:1963年, 美国, 飞往火星的火箭爆炸, 损失$ 10 million. 原因: FORTRAN循环 DO 5 I = 1,3 误写为 DO 5 I = 1.3,例3:1996年,ESA的火箭处女航失败,升空后仅飞行40秒就偏离了其预定轨道,该火箭被远程控制所毁并失去她携带的4个卫星,损失达5亿美元 原因:惯性参考系方面的问题未经讨论和解决,例2:1996年

10、,美国,飞往哥伦比亚城市Cali的客机失事,163人中仅4人生还 原因:关于目的地坐标的、由一个字符构成的计算机命令的错误输入,两相距132英里的城市坐标在南美航空表中代码相同,1.2 软件与软件危机 防不胜防的软件错误,例5:1994年, 英特尔奔腾浮点除法软件缺陷,导致为自己的行为道歉并花费4亿多美元更换坏芯片. 原因:芯片发布前已发现问题,但管理层忽略了;软件缺陷被发现时,英特尔试图掩饰该问题的严重性;受到压力时,英特尔承诺更换芯片但要求用户证明自己受到软件缺陷的影响.,(4195835/3145727)3145727-4195835=0,例,例4:1994-1995年, 迪斯尼的狮子王

11、,第一个面向儿童的多媒体光盘游戏,投诉电话被打爆. 原因:未对市场上的各种PC机型进行正确测试,软件在大众使用的常见系统中难以运行,1.2 软件与软件危机 防不胜防的软件错误,例7:1991年, 美国爱国者导弹防御系统在几次对抗导弹战役中失利,多哈战误击毙28名美军士兵. 原因:一个很小的系统时钟错误积累,可能拖延14小时并造成跟踪系统失去准确度,多哈战中系统拖延了100多个小时,例6:1999年, 美国航天局火星基地登陆飞船在试图登陆火星表面时失踪. 原因:为省钱而简化确定何时关闭推进器的装置,导致飞船着陆时误更改一个数据位,两个测试小组的独立工作做的很好,但从未走在一起,例,防不胜防的软件

12、错误,软件开发成本,Cost,Testing,Requirements,Design and Implementation,1.2 软件与软件危机,60年代(软件史前)的软件危机: (1)对软件开发的进度和成本无法估计 (2)用户对已经开发完成的软件的满意度非常低 (3)软件质量无法保证 (4)软件开发后的维护工作很难进行 (5)软件通常没有合适的文档资料 (6)软件成本在系统总成本中所占的比例越来越高 (7)软件开发的生产率跟不上需求 1962年美国水手号因导航软件一个语句的语义错误,导致偏离航线,任务失败。 阿波罗8号因计算机软件错误,造成存储器信息丢失。 阿波罗14号在飞行的10天中,出

13、现了18个软件错误。 美国IBM公司的OS/360系统,花了几千人很多年的努力而失败,所以,在20世纪60年代,就开始提出所谓“软件危机”的概念 软件危机:软件的可靠性没有保障、维护费用不断上升、进度无法预测、成本增长无法控制、程序员无限度增加等,形成软件开发局面失控的状态 而另一方面,根据摩尔定律:硬件成本每隔18个月就降低一半,例如:存储器每年降低40%、主机硬件的性价比每十年提高一个数量级 软件人从60年代开始,就面临巨大的生存压力,而其中最具典型的是美国人佛雷德里克.布鲁克斯(Frederick P. Brooks JR.)和他的人月神化,1.2 软件与软件危机,软件危机的现实意义:为

14、什么要担心软件危机? 软件作为一个产业,什么时候可以开始赢利? 与其他产品的历史发展不同,软件开发的历史,具有最典型的社会历史发展的特性 (1)与建筑技术、制造技术、计算机硬件技术不同 (2)虽然在工具、技术手段上,可以同步进步 (3)方法、管理水平,不会自动进步 手工作坊依然普遍存在,原因是什么: 什么是手工作坊: (1)个人对所负责的“局部”负责、在这个局部是完全个性化和自由的,系统就是由几个这样的“局部”构成的 (2)没有任何设计文档和可用于维护的资料 (3)没有评审和独立的系统测试 (4)进度、成本、质量是不可预测的,1.2 软件与软件危机,人月神话(The Mythical Man-

15、Month) 一本畅销20年经久不衰、具有深远影响的书。 作者美国IBM公司,被认为是IBM System /360和OS/360之父,曾担任360系统项目 经理的Frederick P. Brooks博士。 1975年,Brooks就在他的没有神话: 软件工程的根本和次要问题(No Silver Bullet : Essence and Accidents of Software Enginerring)中预言,在10年内,没有任何编程技巧能够给软件的生产率带来数量级上的提高。 10年后(1986年)Brooks博士再次发表了没有银弹的经典文章,表明:情况没有什么根本的进展。 而在1996年

16、,既人月神化发表20年后,Brooks对20年前的推断,又提出了新的认识。 我们简单地介绍一下人月神化和没有银弹,1.2 软件与软件危机,在人月神话的第一章,Brooks描绘了一幅可怕的图景。在史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 Brooks认为,在过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号