- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
I2S的E1软件工程概论
?Copyright Xinjun Mao 软件和软件工程 第1讲 软件和软件工程 本讲内容 软件(概念、特点) 软件危机(表现和根源) 软件工程(概念、目标和原则) 计算机软件 什么是计算机软件 计算机软件的特点 什么是计算机软件? 与计算机系统操作有关的程序以及任何与之相关的文档的集合 什么是程序(1/2) 程序: 由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列 程序例子 Main( ) { int i, j; // 变量定义 char Str[10]; i = i + j ; // 语句说明 ……} 什么是程序(2/2) 程序设计语言具有良好、严格语法和语义 目前程序设计语言主要有以下几种类型 面向机器: 如汇编语言、机器语言等 面向过程: 如Fortran, Pascal, C等等 面向对象: 如Java等等 面向问题: 如结构化查询语言SQL等等 什么是文档 文档: 记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料 需求分析文档 软件设计文挡等 编写文档目的 促进对软件的开发,管理和维护; 便于各种人员(用户,开发人员)的交流 文档例子 软件需求规格说明书 软件特点 不会老化 逻辑产品 (智力, 无形) 维护困难和复杂(完善, 纠错,…...) 生产只需复制 软件开发性质如成本、进度等难以估计 软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理 本讲内容 软件(概念、特点) 软件危机(表现和根源) 软件工程(概念、目标和原则) 软件危机 什么是软件危机 软件危机的表现 产生软件危机的根源 解决危机的技术途径 解决危机的管理途径 什么是软件危机 软件在开发和维护过程中遇到的一系列问题 困扰学术界和工业界 用户对软件开发缺乏信心 软件开发的高投入和高风险 软件危机的表现(1 of 3) 成本高 IBM 360 OS, 5000多人年,耗时4年(1963-1966),花费2亿多美元 美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85% 美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元 计算机软件和硬件费用比 软件危机的表现(2 of 3) 软件质量得不到保证 软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭 软件越来越多的应用于安全犹关(safety critical)的系统,对软件质量提出更高的要求 80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误 美国阿托拉斯火箭的发射失败,原因是软件故障 英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消 日本第5代机因为软件问题在投入50亿美元后于1993年下马 由于软件质量问题导致失败的软件项目非常多 软件危机的表现(3 of 3) 进度难以控制 项目延期比比皆是 由于进度问题而取消的软件项目较常见 只有一小部分的项目能够按期完成 维护非常困难 软件维护的多样性 软件维护的复杂性 软件维护的副作用 产生软件危机的根源 逻辑产品,不同于物理产品 复杂性高 逻辑产品,逻辑复杂性,远高于硬件复杂性 软件的复杂性随规模呈指数级上升 规模大 应用扩大,代码量,1000万行,仍在不断膨胀 影响软件生产率和质量的因素比较复杂 人员的能力和水平 团队合作 缺乏有效、系统原理、原则、方法和工具的指导和辅助 对软件开发的深层次认识 开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样 正如建设狗窝和高楼大厦 大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动 解决危机的技术途径 20世纪60年代爆发,然而实际上软件危机随着计算机软件的产生而产生,只是在此之前其问题的严重性没有引起人们的关注和重视 提出有效的方法和工具支持软件开发 1968年提出软件工程概念和思想 20世纪70年代的结构化软件开发方法 20世纪80年代的面向对象的软件开发方法 新的技术: 软件重用、快速原型、需求工程 典型技术: COM, Java, C++, J2EE, .Net, …. 支撑工具和环境:Jbuilder, Visual Studio, WebLogic, … 技术手段不能完全解决软件危机 到了20世纪90年代,软件危机依然存在,甚至更为严重 应用牵引技术的发展 瀑布模型 结构化软件开发方法 OO软件开发方法 技术推动应用的深化 应用的扩大和深入 应用变得越来越大和复杂,技术变得更加力不从心 错误的观念“只要有好的软件开发方法和工具就能高效率地开发出高质量的软件” 解决危机的管理途径 问题出在哪里? 20世纪8
您可能关注的文档
- FTTH培训资料[的1].ppt
- FX的2N-20GM软件参数设置手册.ppt
- FUJI编的程手册.pdf
- FZ的K-CTC调度集中系统涉及运输相关规则.ppt
- F的5互联网出口解决方案.pptx
- FOXBOR的O硬件概述2013.ppt
- FA的NUC 系统通用故障分析.doc
- F的LASH 教案.pdf
- GB-T13319-1991 形状和位的置公差 位置度公差.pdf
- GCK的低压配电柜技术协议.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)