第1章 程序设计方法学简介
第1章 程序设计方法学简介
程序设计方法学》 什么是
《程序设计方法学》 什么是……
本章的主要内容 程序设计方法学的产生 程序设计方法学的基本内容 ■本课程的核心内容和目的
◼ 程序设计方法学的产生 ◼ 程序设计方法学的基本内容 ◼ 本课程的核心内容和目的 本章的主要内容
软件危机的产生 1962年7月22日美国一个计划飞往金星的飞船水手1号在升空290秒之 后坠毁。经调査发现,地面控制计算机中一段运行程序执行了类似这 样的代码: If not雷达发现火箭then不调整火箭的飞行路线。然 而程序员一个不小心漏掉了not,导致了这些事故的发生 美国IBM公司在1963年至1966年开发的IB360机的操作系统。这 项目花了5000人一年的工作量,最多时有1000人投入开发工作, 写出了近100万行源程序。据统计,这个操作系统每次发行的新版本 都是从前一版本中找出1000个程序错误而修正的结果 1995年SEI统计,美国共取消了810亿美元的商业软件项目,其中 31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的 时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内
美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这 一项目花了5000人一年的工作量,最多时有1000人投入开发工作, 写出了近100万行源程序。据统计,这个操作系统每次发行的新版本 都是从前一版本中找出1000个程序错误而修正的结果。 1995年SEI统计,美国共取消了810亿美元的商业软件项目,其中 31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的 时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内。 1962年7月22日美国一个计划飞往金星的飞船水手1号在升空290秒之 后坠毁。经调查发现,地面控制计算机中一段运行程序执行了类似这 样的代码:If not 雷达发现火箭 then 不调整火箭的飞行路线。然 而程序员一个不小心漏掉了not,导致了这些事故的发生 软件危机的产生
软件危机的产生 2000年 Tech Republic公司发表了有关IT项目的调查结果。 该调查是以北美的1375个IT专家为对象实施问卷调查进行的 根据此调査,IT项目中有40%失败,这些项目的平均成本每年 花费100万美元
软件危机的产生 2000年Tech Republic公司发表了有关IT项目的调查结果。 该调查是以北美的1375个IT专家为对象实施问卷调查进行的。 根据此调查,IT项目中有40%失败,这些项目的平均成本每年 花费100万美元
软件危机 软件危机的内涵 ■软件开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发 生 软件常常是不可维护的 ■软件常常是不可管理的 软件在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用 迅速及深入普及的速度
软件危机 ◼ 软件危机的内涵 ◼ 软件开发成本和进度的估计常常很不准确 ◼ 用户对“已完成的”软件系统不满意的现象经常发 生 ◼ 软件常常是不可维护的 ◼ 软件常常是不可管理的 ◼ 软件在计算机系统总成本中所占的比例逐年上升 ◼ 软件开发生产率提高的速度远远跟不上计算机应用 迅速及深入普及的速度
软件危机—如何解决 管理学和工程学角度—软件工程 划分阶段;加强审计;质量控制; 过程改进;结构化; 方法学和语言学角度—程序设计方法 标准的程序设计; 设计模式;设计风格;设计技巧
软件危机——如何解决 ◼ 管理学和工程学角度——软件工程 划分阶段;加强审计;质量控制; 过程改进;结构化; ◼ 方法学和语言学角度——程序设计方法 标准的程序设计; 设计模式;设计风格;设计技巧
Fortran I Smolita lk rascal 程序 C(K&R) Smal italk 80 设计 Common Lisp SML Eiffel Tcl Scheme R4Rs Python Haskel 语言 OCaml Java2《v1.2)c++(so
程序 设计 语言
机器语言和汇编语言 ■原始的冯.诺依曼机器(1946年)代码 00000010101111001010 00000010111111001000 00000011001110101000 机器语言是晦涩难懂的,因此需要设计另外 种语言来写程序,它应该是符号式的或者说助 记性的 高级语言的优越性:可扩展性;可读性;可移 植性
一 机器语言和汇编语言 ◼ 原始的冯.诺依曼机器(1946年)代码 00000010101111001010 00000010111111001000 00000011001110101000 机器语言是晦涩难懂的,因此需要设计另外一 种语言来写程序,它应该是符号式的或者说助 记性的。 高级语言的优越性:可扩展性;可读性;可移 植性
二命令式语言 科学计算的语言 Backus[1957]为Foan的成功预备了两个成分:记法和效率 APL是唯一使用带有专用符号的交互式键盘来编写程序的语言。 商用语言 第一个商用语言是 COBOL(面向商业的公用语言的缩写)。它是 种功能很强而又极为冗长的语言 BASIC设计者的最意图体现在该语言的名字上-初学者通用的符号 指令码 多用途语言 Aogo|60主导20世纪60年代程序设计语言的发展。 Pasca作为教学语言扩展了 Algol Dennis ritchie1972年创建C语言
二 命令式语言 ◼ 科学计算的语言 Backus[1957]为Fortran的成功预备了两个成分:记法和效率 APL是唯一使用带有专用符号的交互式键盘来编写程序的语言。 ◼ 商用语言 第一个商用语言是COBOL(面向商业的公用语言的缩写)。它是一 种功能很强而又极为冗长的语言 BASIC设计者的最意图体现在该语言的名字上--初学者通用的符号 指令码 ◼ 多用途语言 Alogol60主导20世纪60年代程序设计语言的发展。 Pascal作为教学语言扩展了Alogol Dennis Ritchie1972年创建C语言