第1讲软件及软件工程.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?Copyright Xinjun Mao 软件和软件工程 第1讲 软件和软件工程 毛新军 教授 xjmao@nudt.edu.cn 计算机科学与技术系602教研室 0731-(45)73649 本讲内容 软件(概念、特点) 软件危机(表现和根源) 软件工程(概念、目标和原则) 计算机软件 什么是计算机软件 计算机软件的特点 什么是计算机软件? 与计算机系统操作有关的程序以及任何与之相关的文档的集合 什么是程序(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软件开发方法 技术推动应用的深化 应用的扩大和深入 应用变得越来越大和复杂,技术变得更加力不从心 错

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档