软件和软件工程教学教材

上传人:yuzo****123 文档编号:137576223 上传时间:2020-07-09 格式:PPT 页数:29 大小:495KB
返回 下载 相关 举报
软件和软件工程教学教材_第1页
第1页 / 共29页
软件和软件工程教学教材_第2页
第2页 / 共29页
软件和软件工程教学教材_第3页
第3页 / 共29页
软件和软件工程教学教材_第4页
第4页 / 共29页
软件和软件工程教学教材_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件和软件工程教学教材》由会员分享,可在线阅读,更多相关《软件和软件工程教学教材(29页珍藏版)》请在金锄头文库上搜索。

1、Copyright Xinjun Mao,软件和软件工程,1,第1讲 软件和软件工程,毛新军 教授 计算机科学与技术系602教研室 0731-(45)73649,软件工程导论 之,用工程化的方法来开发软件,Copyright Xinjun Mao,软件和软件工程,2,本讲内容,软件(概念、特点) 软件危机(表现和根源) 软件工程(概念、目标和原则),Copyright Xinjun Mao,软件和软件工程,3,计算机软件,什么是计算机软件 计算机软件的特点,Copyright Xinjun Mao,软件和软件工程,4,可执行部分,不可执行部分,什么是计算机软件?,与计算机系统操作有关的程序以及

2、任何与之相关的文档的集合,程序,Copyright Xinjun Mao,软件和软件工程,6,什么是程序(2/2),程序设计语言具有良好、严格语法和语义 目前程序设计语言主要有以下几种类型 面向机器: 如汇编语言、机器语言等 面向过程: 如Fortran, Pascal, C等等 面向对象: 如Java等等 面向问题: 如结构化查询语言SQL等等,Copyright Xinjun Mao,软件和软件工程,7,什么是文档,文档: 记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料 需求分析文档 软件设计文挡等 编写文档目的 促进对软件的开发,管理和维护; 便于各种人员(用户,开发人员)的交

3、流,Copyright Xinjun Mao,软件和软件工程,8,文档例子,软件需求规格说明书,Copyright Xinjun Mao,软件和软件工程,9,软件特点,不会老化 逻辑产品 (智力, 无形) 维护困难和复杂(完善, 纠错,.) 生产只需复制 软件开发性质如成本、进度等难以估计 软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理,Copyright Xinjun Mao,软件和软件工程,10,本讲内容,软件(概念、特点) 软件危机(表现和根源) 软件工程(概念、目标和原则),Copyright Xinjun Mao,软件和软件工程,11,软件危机,什么是软件危机

4、软件危机的表现 产生软件危机的根源 解决危机的技术途径 解决危机的管理途径,Copyright Xinjun Mao,软件和软件工程,12,什么是软件危机,软件在开发和维护过程中遇到的一系列问题 困扰学术界和工业界 用户对软件开发缺乏信心 软件开发的高投入和高风险,Copyright Xinjun Mao,软件和软件工程,13,软件危机的表现(1 of 3),成本高 IBM 360 OS, 5000多人年,耗时4年(19631966),花费2亿多美元 美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85 美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美

5、元 计算机软件和硬件费用比,Copyright Xinjun Mao,软件和软件工程,14,软件危机的表现(2 of 3),软件质量得不到保证 软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭 软件越来越多的应用于安全犹关(safety critical)的系统,对软件质量提出更高的要求 80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误 美国阿托拉斯火箭的发射失败,原因是软件故障 英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消 日本第5代机因为软件问题在投入50亿美元后于1993年下马 由于软件质量问题导致失败的软件项目非常多

6、,Copyright Xinjun Mao,软件和软件工程,15,软件危机的表现(3 of 3),进度难以控制 项目延期比比皆是 由于进度问题而取消的软件项目较常见 只有一小部分的项目能够按期完成 维护非常困难 软件维护的多样性 软件维护的复杂性 软件维护的副作用,Copyright Xinjun Mao,软件和软件工程,16,产生软件危机的根源,逻辑产品,不同于物理产品 复杂性高 逻辑产品,逻辑复杂性,远高于硬件复杂性 软件的复杂性随规模呈指数级上升 规模大 应用扩大,代码量,1000万行,仍在不断膨胀 影响软件生产率和质量的因素比较复杂 人员的能力和水平 团队合作 缺乏有效、系统原理、原则

7、、方法和工具的指导和辅助,Copyright Xinjun Mao,软件和软件工程,17,对软件开发的深层次认识,开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样 正如建设狗窝和高楼大厦 大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动,Copyright Xinjun Mao,软件和软件工程,18,解决危机的技术途径,20世纪60年代爆发,然而实际上软件危机随着计算机软件的产生而产生,只是在此之前其问题的严重性没有引起人们的关注和重视 提出有效的方法和工具支持软件开发 1968年提出软件工

8、程概念和思想 20世纪70年代的结构化软件开发方法 20世纪80年代的面向对象的软件开发方法 新的技术: 软件重用、快速原型、需求工程 典型技术: COM, Java, C+, J2EE, .Net, . 支撑工具和环境:Jbuilder, Visual Studio, WebLogic, ,Copyright Xinjun Mao,软件和软件工程,19,技术手段不能完全解决软件危机,到了20世纪90年代,软件危机依然存在,甚至更为严重 应用牵引技术的发展 瀑布模型 结构化软件开发方法 OO软件开发方法 技术推动应用的深化 应用的扩大和深入 应用变得越来越大和复杂,技术变得更加力不从心 错误的

9、观念“只要有好的软件开发方法和工具就能高效率地开发出高质量的软件”,Copyright Xinjun Mao,软件和软件工程,20,解决危机的管理途径,问题出在哪里? 20世纪80年代末,美国DoD和工业界开始认识到管理的重要性 美国DoD的一项研究表明,70%的项目由于管理不善导致难以控制进步、成本和质量; 进一步的研究发现:管理是影响软件项目成功开发的全局性因素,而技术只影响局部 如果软件开发组织不能对软件项目进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品,Copyright Xinjun Mao,软件和软件工程,21,本讲内容,软件(概念、特

10、点) 软件危机(表现和根源) 软件工程(概念、目标和原则),Copyright Xinjun Mao,软件和软件工程,22,软件工程,软件危机-根源-解决途径:软件工程 产生:1968年 NATO 计算机科学会议 软件工程是运用工程的、数学的、计算机等科学概念、方法和原理来指导软件开发和管理和维护的一门学科,Copyright Xinjun Mao,软件和软件工程,23,过程,方法,工具,软件工程,软件工程构成三要素,过程 管理部分 方法 技术手段 工具 自动或半自动地支持软件的开发和管理 要素之间相互关联和支持,Copyright Xinjun Mao,软件和软件工程,24,软件工程目标(1

11、/2),正确性 满足用户的需求(功能、性能等) 可靠性 具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当造成软件系统失效的能力 可维护性 便于对软件增加新功能、改进性能、修改错误、移植 可重用性 软件易于被再次使用,Copyright Xinjun Mao,软件和软件工程,25,软件工程目标(2/2),可追踪性 对软件进行正向和反向追踪的能力 可移植性 从一个环境搬迁到另一个环境 可互操作性 多个软件要素相互通讯协同完成任务能力 有效性 充分利用计算机的时间和空间资源,Copyright Xinjun Mao,软件和软件工程,26,软件工程原则(1/2),抽象

12、关注事物基本、重要的部分,忽略不相关成分 抽象可以使我们的思维聚焦于问题本质,从而简化问题,控制问题复杂度,推动复杂、庞大软件系统开发 模块化 模块是程序中一个逻辑上相对独立、具有良好的接口定义的编程单位:过程、函数、类、程序包等 模块化是指将复杂的系统分解为由一个个相对独立的模块来加以实现,有助于抽象和信息隐藏以及表示复杂的系统 信息隐藏 模块中的软件设计决策信息封装起来的技术,只知道它的功能以及对外的接口,而不知它的内部细节 有助于软件开发人员的注意力集中于更高的抽象层次,Copyright Xinjun Mao,软件和软件工程,27,软件工程原则(2/2),局部化 物理模块内集中逻辑上相

13、互关联的计算资源 确保模块内各成分关系密切而模快之间的关系松散,保证模块具有良好的独立性 一致性 整个软件系统均使用统一的符号、概念和术语 完全性 整个软件系统不丢失任何重要的成分,软件完全实现系统所需的功能、行为和性能 可验证性 软件系统应易于检查、测试和评审 实践经验的总结,Copyright Xinjun Mao,软件和软件工程,28,本讲小结,软件是程序以及相关文档的集合 软件危机的表现,根源之一在于缺乏系统的方法和工具的指导 软件工程:方法,工具和过程 软件工程的目标和原则,Copyright Xinjun Mao,软件和软件工程,29,Q & A,An Introduction to Software Engineering,Practice, Practice, and Practice,

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

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

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