软件危机 软件危机的内涵 ■软件开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发 生 软件常常是不可维护的 ■软件常常是不可管理的 软件在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用 迅速及深入普及的速度
软件危机 ◼ 软件危机的内涵 ◼ 软件开发成本和进度的估计常常很不准确 ◼ 用户对“已完成的”软件系统不满意的现象经常发 生 ◼ 软件常常是不可维护的 ◼ 软件常常是不可管理的 ◼ 软件在计算机系统总成本中所占的比例逐年上升 ◼ 软件开发生产率提高的速度远远跟不上计算机应用 迅速及深入普及的速度
软件危机—如何解决 管理学和工程学角度—软件工程 划分阶段;加强审计;质量控制; 过程改进;结构化; 方法学和语言学角度—程序设计方法 标准的程序设计; 设计模式;设计风格;设计技巧
软件危机——如何解决 ◼ 管理学和工程学角度——软件工程 划分阶段;加强审计;质量控制; 过程改进;结构化; ◼ 方法学和语言学角度——程序设计方法 标准的程序设计; 设计模式;设计风格;设计技巧
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 机器语言是晦涩难懂的,因此需要设计另外一 种语言来写程序,它应该是符号式的或者说助 记性的。 高级语言的优越性:可扩展性;可读性;可移 植性