第1章 软件工程学概论18880.pptx
《第1章 软件工程学概论18880.pptx》由会员分享,可在线阅读,更多相关《第1章 软件工程学概论18880.pptx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软软 件件 工工 程程张聚礼张聚礼张聚礼张聚礼兰州理工大学计算机与通信学院兰州理工大学计算机与通信学院1第第1 1章章 软件工程学概述软件工程学概述1.0 1.0 什么是软件?什么是软件?1.1 1.1 软件危机软件危机1.2 1.2 软件工程软件工程1.3 1.3 软件生命周期软件生命周期1.4 1.4 软件过程软件过程1.5 1.5 小结小结习题习题2l l软件软件软件软件是计算机系统中与硬件相互依存的另一是计算机系统中与硬件相互依存的另一是计算机系统中与硬件相互依存的另一是计算机系统中与硬件相互依存的另一部分,部分,部分,部分,它是包括它是包括它是包括它是包括程序、数据程序、数据程序、数
2、据程序、数据及其相关及其相关及其相关及其相关文档文档文档文档的的的的完整集合。完整集合。完整集合。完整集合。l l程序程序程序程序是按是按是按是按事先设计事先设计事先设计事先设计的功能和性能要求执行的的功能和性能要求执行的的功能和性能要求执行的的功能和性能要求执行的指令序列。指令序列。指令序列。指令序列。l l数据数据数据数据是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。l l文档文档文档文档是与程序开发,维护和使用有关的图文是与程序开发,维护和使用有关的图文是与程序开发,维护和使用有关的图文是与程序开发
3、,维护和使用有关的图文材料。材料。材料。材料。1.0 1.0 什么是软件?什么是软件?3软件的表现形式:软件的表现形式:软件分为软件分为有形有形部分和部分和无形无形部分:部分:软件的有形部分:软件的有形部分:是软件的各种具体表现形是软件的各种具体表现形式式,包括包括软件文档软件文档,程序代码程序代码,二进制代码二进制代码,用户用户界面界面,输出报表输出报表等。等。软件的无形部分:软件的无形部分:是软件的内部逻辑是软件的内部逻辑,是软件是软件本身所包含的本身所包含的思想思想。4软件的分类:软件的分类:l l按软件的功能进行划分:按软件的功能进行划分:l l 系统软件系统软件l l 操作系统操作系
4、统操作系统操作系统l l 数据库管理系统数据库管理系统数据库管理系统数据库管理系统l l 设备驱动程序设备驱动程序设备驱动程序设备驱动程序l l 通信处理程序通信处理程序通信处理程序通信处理程序 等等等等5l l 支撑软件支撑软件l l文本编辑程序文本编辑程序文本编辑程序文本编辑程序l l文件格式化程序文件格式化程序文件格式化程序文件格式化程序l l磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序l l程序库系统程序库系统程序库系统程序库系统l l支持需求分析、设计、实现、测试和支持支持需求分析、设计、实现、测试和支持支持需求分析、设计、
5、实现、测试和支持支持需求分析、设计、实现、测试和支持管理的软件管理的软件管理的软件管理的软件6l l 应用软件应用软件l l 商业数据处理软件商业数据处理软件商业数据处理软件商业数据处理软件l l 工程与科学计算软件工程与科学计算软件工程与科学计算软件工程与科学计算软件l l 计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件l l 系统仿真软件系统仿真软件系统仿真软件系统仿真软件l l 智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件l l 医疗、制药软件医疗、制药软件医疗、制药软件医疗、制药软件l l 事务管理、办公自动化软件事务管理、
6、办公自动化软件事务管理、办公自动化软件事务管理、办公自动化软件l l 计算机辅助教学软件计算机辅助教学软件计算机辅助教学软件计算机辅助教学软件7l l按软件工作方式划分:按软件工作方式划分:l l 实时处理软件实时处理软件l l 分时软件分时软件l l 交互式软件交互式软件l l 批处理软件批处理软件l l按软件服务对象的范围划分:按软件服务对象的范围划分:l l 项目软件项目软件l l 产品软件产品软件即针对特定某个客户的要求,即针对特定某个客户的要求,并仅为其使用的软件。又称工并仅为其使用的软件。又称工程软件,特点是有明确的合同,程软件,特点是有明确的合同,严格的工期,约定的维护期等。严格
7、的工期,约定的维护期等。如如XXXXXX公司公司XXXXXX系统系统。即针对某一领域客户的共有需即针对某一领域客户的共有需求而开发的软件。特点是通用、求而开发的软件。特点是通用、功能丰富而冗余,通过一次性的功能丰富而冗余,通过一次性的购买行为获得等。如操作系统软购买行为获得等。如操作系统软件、数据库软件、件、数据库软件、CADCAD软件等。软件等。8软件发展阶段:软件发展阶段:l l程序设计阶段程序设计阶段 50至至60年代年代l l程序系统阶段程序系统阶段 60至至70年代年代l l软件工程阶段软件工程阶段 70年代以后年代以后9软件开发工具的变迁:软件开发工具的变迁:l l穿孔机打孔编程穿
8、孔机打孔编程 汇编语言汇编语言(Z80、M6800、8086/88)高级语言高级语言(Cobol、Basic、Dbase、Turbo C、FoxBase、Foxpro等等)C/S、B/S体系结构的开发工具体系结构的开发工具(VFP、VC、VB、Delphi、Powerbuilder、C+Builder、Oracle Developer/2000、Java、MS.net等等等等)101.1 1.1 软件危机软件危机 美国美国美国美国IBM IBM 公司在公司在公司在公司在19631963年至年至年至年至19661966年开发的年开发的年开发的年开发的IBM360IBM360机机机机的操作系统。这
9、一项目花了的操作系统。这一项目花了的操作系统。这一项目花了的操作系统。这一项目花了50005000人一年的工作量,最多人一年的工作量,最多人一年的工作量,最多人一年的工作量,最多时有时有时有时有10001000人投入开发工作,写出了近人投入开发工作,写出了近人投入开发工作,写出了近人投入开发工作,写出了近100100万行源程序。据万行源程序。据万行源程序。据万行源程序。据统计,这个操作系统统计,这个操作系统统计,这个操作系统统计,这个操作系统每次发行的新版本都是从前一版本每次发行的新版本都是从前一版本每次发行的新版本都是从前一版本每次发行的新版本都是从前一版本中找出中找出中找出中找出10001
10、000个程序错误而修正的结果个程序错误而修正的结果个程序错误而修正的结果个程序错误而修正的结果。.这个项目的负责人事后总结了他在组织开发过程中的这个项目的负责人事后总结了他在组织开发过程中的这个项目的负责人事后总结了他在组织开发过程中的这个项目的负责人事后总结了他在组织开发过程中的沉沉沉沉痛教训痛教训痛教训痛教训时说:时说:时说:时说:“.正像一只逃亡的野兽落到泥潭中做垂正像一只逃亡的野兽落到泥潭中做垂正像一只逃亡的野兽落到泥潭中做垂正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。死的挣扎,越是挣扎,陷
11、得越深,最后无法逃脱灭顶的灾难。死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,.一批批程序一批批程序一批批程序一批批程序员被迫在泥潭中拼命挣扎,员被迫在泥潭中拼命挣扎,员被迫在泥潭中拼命挣扎,员被迫在泥潭中拼命挣扎,.”Software Crisis !11软件危机软件危机 项目没有被很好地理解;计划不周,最终导致项目没有被很好地理解;计划不周,最终导致项目没有被很好地理解;计划不周,最终导致项目没有被很好地理解;计划不周,最终导致进度拖延。进度拖延。进度拖延。进度
12、拖延。例:例:例:例:在在20世纪世纪60年代后期,一位热情的年青工程师受命为一个自动化制年代后期,一位热情的年青工程师受命为一个自动化制造应用项目造应用项目“编写编写”计算机程序。选择他的理由非常简单,因为在整个计算机程序。选择他的理由非常简单,因为在整个技术小组中他是唯一参加过计算机编程培训的人。这位工程师对汇编语技术小组中他是唯一参加过计算机编程培训的人。这位工程师对汇编语言的言的IN和和OUT指令以及指令以及Fortran语言有所了解,但是却根本不懂软件工语言有所了解,但是却根本不懂软件工程,更不要说项目进度安排和跟踪了。程,更不要说项目进度安排和跟踪了。他的老板给了他一大堆相关的手册
13、,以及需要做些什么的他的老板给了他一大堆相关的手册,以及需要做些什么的口头描述口头描述。年。年轻人被告知该项目必须在两个月之内完成。轻人被告知该项目必须在两个月之内完成。他阅读了这些手册,想好了解决方法,就他阅读了这些手册,想好了解决方法,就立即编写代码立即编写代码。两周后,老板。两周后,老板将他叫到办公室询问项目进展情况。将他叫到办公室询问项目进展情况。问题出在哪里?问题出在哪里?欠缺文档欠缺文档欠缺设计,急于编程欠缺设计,急于编程欠缺设计,急于编程欠缺设计,急于编程12软件危机软件危机“非非常常好好”工工程程师师以以年年轻轻人人的的热热情情回回答答道道,“这这个个项项目目远远比我想像的简单
14、。我差不多已经完成了比我想像的简单。我差不多已经完成了75%的任务。的任务。老老板板笑笑了了,说说道道:“真真是是太太棒棒了了”然然后后他他嘱嘱咐咐年年轻轻人人继继续续努力工作,准备好一周后再汇报一次工作进度。努力工作,准备好一周后再汇报一次工作进度。一一周周后后老老板板将将年年轻轻人人叫叫到到办办公公室室,问问他他说说:“现现在在进进度度如如何?何?”“一一切切顺顺利利”年年轻轻人人回回答答说说,“但但是是我我遇遇到到了了一一些些小小麻麻烦烦。我会排除这些困难,很快就可以回到正轨上来。我会排除这些困难,很快就可以回到正轨上来。”“你觉得在最后期限之前能否完成?你觉得在最后期限之前能否完成?”
15、老板问道。老板问道。“没有问题没有问题”工程师答道。工程师答道。“我差不多已经完成了我差不多已经完成了90%”问问问问题题题题:年年轻轻工工程程师师在在整整个个项项目目工工期期内内始始终终停停留留在在90%的的进进度上,(在别人的帮助下)直到交付期限之后一个月才做完。度上,(在别人的帮助下)直到交付期限之后一个月才做完。13软件危机软件危机 没有充分的文档资料没有充分的文档资料没有充分的文档资料没有充分的文档资料(documentation)(documentation)(documentation)(documentation)人与人的人与人的交流交流比写程序困难得多。比写程序困难得多。Ma
16、nagers 评价评价,进程跟踪进程跟踪,.,.Programmers 与其它程序的通信接口与其它程序的通信接口Maintainers 维护维护14软件危机软件危机 软件可靠性软件可靠性(reliabilityreliabilityreliabilityreliability)缺少度量的标准,质量缺少度量的标准,质量无法保证。无法保证。如何保证软件产品的质量,是非常复杂困如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件。难的问题。特别对于规模庞大的软件。软件难以维护软件难以维护(maintainability)(maintainability)不易升级不易升级(evolva
17、bility)(evolvability)15软件危机的产生的原因及总结软件危机的产生的原因及总结(1)(1)对软件开发成本和进度的估计常常很不对软件开发成本和进度的估计常常很不准确。准确。拖期,拖期,项目管理经验欠缺。项目管理经验欠缺。(2)(2)用户对用户对“已完成的已完成的”软件系统不满意的软件系统不满意的现象经常发生。现象经常发生。模糊的需求模糊的需求 、闭门造车、忙于、闭门造车、忙于编程,编程,仓促上阵。仓促上阵。(3)(3)软件产品的质量往往靠不住。软件产品的质量往往靠不住。可靠性和可靠性和质量保证欠缺,质量保证欠缺,缺少测试。缺少测试。(4)(4)软件常常是不可维护的。软件常常是
18、不可维护的。设计死板,设计死板,没没有整体考虑。有整体考虑。16(5)(5)软件通常没有适当的文档资料。软件通常没有适当的文档资料。缺少设缺少设计资料、难以维护,计资料、难以维护,写文档嫌麻烦。写文档嫌麻烦。(6)(6)软件成本在计算机系统总成本中所占的软件成本在计算机系统总成本中所占的比例逐年上升。比例逐年上升。软件过于庞大,软件过于庞大,成本过高。成本过高。(7)(7)软件开发生产率提高的速度,远远跟不软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。上计算机应用迅速普及深入的趋势。跟不上计算跟不上计算机和软件技术的发展速度,机和软件技术的发展速度,技术落后。技术落后。17
19、软件开发付出代价分析软件开发付出代价分析 根据美国一些软件公司的统计资料,在后期引根据美国一些软件公司的统计资料,在后期引根据美国一些软件公司的统计资料,在后期引根据美国一些软件公司的统计资料,在后期引入一个变动比在早期引入相同变动所需付出的代价入一个变动比在早期引入相同变动所需付出的代价入一个变动比在早期引入相同变动所需付出的代价入一个变动比在早期引入相同变动所需付出的代价高高高高2 2 2 23 3 3 3个数量级。图个数量级。图个数量级。图个数量级。图1.11.11.11.1定性地描绘了在不同时期定性地描绘了在不同时期定性地描绘了在不同时期定性地描绘了在不同时期引入一个变动需要付出的代价
20、的变化趋势。引入一个变动需要付出的代价的变化趋势。引入一个变动需要付出的代价的变化趋势。引入一个变动需要付出的代价的变化趋势。维护是极端艰巨维护是极端艰巨复杂的工作,需复杂的工作,需要花费很大代价。要花费很大代价。18消除软件危机的办法消除软件危机的办法1 1、理解软件的概念:软件是程序、数据及理解软件的概念:软件是程序、数据及相关文档的完整集合。相关文档的完整集合。2 2、应该推广使用在实践中总结出来的开发应该推广使用在实践中总结出来的开发软件的成功的技术和方法软件的成功的技术和方法注意总结和积累注意总结和积累3 3、应该开发和使用更好的软件工具。应该开发和使用更好的软件工具。4 4、软件工
21、程学的一个重要目标就是提高软软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。件的可维护性,减少软件维护的代价。总之,为了解决软件危机,就要引入总之,为了解决软件危机,就要引入“软件软件工程工程”,既要有技术措施既要有技术措施(方法和工具方法和工具),又要有,又要有必要的组织管理措施。必要的组织管理措施。191.2 1.2 软件工程软件工程所谓软件工程,提倡的是一种软件开发中的系所谓软件工程,提倡的是一种软件开发中的系统思想的具体实现,是一门科学,也被称为是软件统思想的具体实现,是一门科学,也被称为是软件产业中的产业中的“软软”科学。科学。l软件工程这一概念,主要是针对软件工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 软件工程学概论18880 软件 工程学 概论 18880
限制150内