软件工程0-1.软件工程介绍.ppt
《软件工程0-1.软件工程介绍.ppt》由会员分享,可在线阅读,更多相关《软件工程0-1.软件工程介绍.ppt(44页珍藏版)》请在三一办公上搜索。
1、软件工程,第1章 软件工程介绍,1.1 软件与软件的复杂度,什么是软件?(站在软件工程的角度看)软件就是:一个或多个计算机程序,其执行时能提供所期望的功能和性能一个或多个数据结构,这些结构使得程序能够完全操纵信息一个或多个文档,这些文档描述了程序分析、设计、实现和维护的细节软件的定义:面向过程的程序=算法+数据结构面向对象的程序=对象+消息面向构件的程序=构件+构架,50年代:软件=程序60年代:软件=程序+文档(分析、设 计、测试、维护,但不包括管理文档)70年代:软件=程序+文档+数据(初始化数据、测试数据、研发数据、运行数据、维护数据、工程数据、项目管理数据等)1984年美国开始认识到软
2、件管理是一个过程管理,1991年出现CMM1.0,96年出现UML。“软件工作产品”开发过程中产生的各种软件“软件产品”最后交付的软件,1.1 软件与软件的复杂度,IEEE Standard Glossary of Software Engineering Terminology给出了有关软件的定义:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。计算机程序是计算机设备可以接受的一系列指令和说明,为计算机执行提供所需的功能和性能。数据是事实、概念或指令的结构化表示,能够被计算机设备接收、理解或处理。文档是描述程序研制过程、方法及使用的图文材料。,1.1 软件与软件的复杂度,I
3、EEE 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 软件与软件的复杂度,软件的复杂度,计算机软件发展的四个阶段:1.早期时代(60年代中期之前)程序设
5、计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。计算机的主要应用为快速计算,出现了Algol、Fortran等编程语言。2.第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。计算机的应用开始涉及到各种以非数值计算的商业业务领域,交互技术、数据库、操作系统等得到发展,出现了Pascal、Cobol等编程语言和关系数据库管理系统为标志的结构化软件技术。瀑布模型得到普遍使用。3.第三代(70年代中期之后-80年代)软件工程阶段软件开发成为一门新兴的工程学科软件工程。软件开发过程得到管理、工程化了。出现了COCOMO模型、CMM等。
6、以Smalltalk、C+为代表的面向对象技术崛起,传统的结构化技术受到严峻的考验,1.1 软件与软件的复杂度,计算机软件发展的四个阶段:4.20世纪90年代至今Internet技术的迅速发展使软件系统从封闭走向开放,异构环境下的分布式软件的开发成为一种主流需求,软件复用和构件技术成为技术热点,出现了J2EE、COM+、CORBA为代表的3个分支。现在网格计算、Web Service、云计算、普适计算(Pervasive Computing)等技术发展迅速。,1.1 软件与软件的复杂度,1.1 软件与软件的复杂度,1.1 软件与软件的复杂度,中国软件产业大事记 1984年:中国软件行业协会成立
7、,当时的电子工业部部长江泽民任名誉会长,杨天行任理事长。1985年:成立中国软件技术公司(中软总公司的前身);长城0520c微型机汉字处理软件HM和汉字排序软件SM向国外出口。1986年:电子工业部向国务院报送了关于建立和发展我国软件产业的报告。1988年第一次全国软件会议召开;金山公司、用友公司成立。1989年:北大华光激光照排系统获中国发明专利金奖。1990年:原中国计算机软件技术公司与中国计算机服务公司合并,成立中国计算机软件与技术服务总公司,开始研发自主知识产权操作系统。1991年:中华人民共和国著作权法正式实施,计算机软件保护条例颁布。1992年:计算机软件著作权登记办法颁布与实施。
8、1994年:金山、巨人、王码480等20多种流行的字处理软件进入各类办公系统中。,中国软件产业大事记 1996年:希望公司UCDOS占有当时72的中文平台市场;东软公司上市。1997年:第一届中国软件博览会召开1998年:Linux进入中国;国产财务软件占有65的国内市场份额。2000年:国务院颁布鼓励软件和集成电路产业发展的若干政策的第18号文件,双软认证启动。2001年:信息产业部与原国家计委命名11个城市的软件园为“国家软件产业基地”;金蝶、用友上市。2002年:国务院下发振兴软件产业行动纲要的47号文件,以作为对18号文精神的延续和细化,全国35所高校的示范性软件学院开始招生。2003
9、年:国内软件行业共完成销售收入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年,美国,飞往哥伦比亚城市Cali的客机失事,163人中仅4人生还原因:关于目的地坐标的、由一个字符构成的计算机命令的错误输入,两相距132英里的
10、城市坐标在南美航空表中代码相同,1.2 软件与软件危机防不胜防的软件错误,例5:1994年,英特尔奔腾浮点除法软件缺陷,导致为自己的行为道歉并花费4亿多美元更换坏芯片.原因:芯片发布前已发现问题,但管理层忽略了;软件缺陷被发现时,英特尔试图掩饰该问题的严重性;受到压力时,英特尔承诺更换芯片但要求用户证明自己受到软件缺陷的影响.,(4195835/3145727)3145727-4195835=0,例,例4:1994-1995年,迪斯尼的狮子王,第一个面向儿童的多媒体光盘游戏,投诉电话被打爆.原因:未对市场上的各种PC机型进行正确测试,软件在大众使用的常见系统中难以运行,1.2 软件与软件危机防
11、不胜防的软件错误,例7:1991年,美国爱国者导弹防御系统在几次对抗导弹战役中失利,多哈战误击毙28名美军士兵.原因:一个很小的系统时钟错误积累,可能拖延14小时并造成跟踪系统失去准确度,多哈战中系统拖延了100多个小时,例6:1999年,美国航天局火星基地登陆飞船在试图登陆火星表面时失踪.原因:为省钱而简化确定何时关闭推进器的装置,导致飞船着陆时误更改一个数据位,两个测试小组的独立工作做的很好,但从未走在一起,例,防不胜防的软件错误,软件开发成本,Cost,Testing,Requirements,Design and Implementation,1.2 软件与软件危机,60年代(软件史前
12、)的软件危机:(1)对软件开发的进度和成本无法估计(2)用户对已经开发完成的软件的满意度非常低(3)软件质量无法保证(4)软件开发后的维护工作很难进行(5)软件通常没有合适的文档资料(6)软件成本在系统总成本中所占的比例越来越高(7)软件开发的生产率跟不上需求1962年美国水手号因导航软件一个语句的语义错误,导致偏离航线,任务失败。阿波罗8号因计算机软件错误,造成存储器信息丢失。阿波罗14号在飞行的10天中,出现了18个软件错误。美国IBM公司的OS/360系统,花了几千人很多年的努力而失败,所以,在20世纪60年代,就开始提出所谓“软件危机”的概念 软件危机:软件的可靠性没有保障、维护费用不
13、断上升、进度无法预测、成本增长无法控制、程序员无限度增加等,形成软件开发局面失控的状态 而另一方面,根据摩尔定律:硬件成本每隔18个月就降低一半,例如:存储器每年降低40%、主机硬件的性价比每十年提高一个数量级软件人从60年代开始,就面临巨大的生存压力,而其中最具典型的是美国人佛雷德里克.布鲁克斯(Frederick P.Brooks JR.)和他的人月神化,1.2 软件与软件危机,软件危机的现实意义:为什么要担心软件危机?软件作为一个产业,什么时候可以开始赢利?与其他产品的历史发展不同,软件开发的历史,具有最典型的社会历史发展的特性(1)与建筑技术、制造技术、计算机硬件技术不同(2)虽然在工
14、具、技术手段上,可以同步进步(3)方法、管理水平,不会自动进步手工作坊依然普遍存在,原因是什么:什么是手工作坊:(1)个人对所负责的“局部”负责、在这个局部是完全个性化和自由的,系统就是由几个这样的“局部”构成的(2)没有任何设计文档和可用于维护的资料(3)没有评审和独立的系统测试(4)进度、成本、质量是不可预测的,1.2 软件与软件危机,人月神话(The Mythical Man-Month)一本畅销20年经久不衰、具有深远影响的书。作者美国IBM公司,被认为是IBM System/360和OS/360之父,曾担任360系统项目经理的Frederick P.Brooks博士。1975年,Br
15、ooks就在他的没有神话:软件工程的根本和次要问题(No Silver Bullet:Essence and Accidents of Software Enginerring)中预言,在10年内,没有任何编程技巧能够给软件的生产率带来数量级上的提高。10年后(1986年)Brooks博士再次发表了没有银弹的经典文章,表明:情况没有什么根本的进展。而在1996年,既人月神化发表20年后,Brooks对20年前的推断,又提出了新的认识。我们简单地介绍一下人月神化和没有银弹,1.2 软件与软件危机,在人月神话的第一章,Brooks描绘了一幅可怕的图景。在史前史中,没有别的场景比巨兽在焦油坑中垂死挣
16、扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。Brooks认为,在过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 介绍

链接地址:https://www.31ppt.com/p-6610827.html