文档介绍:第1章程序设计方法学简介
《程序设计方法学》
什么是……
程序设计方法学的产生
程序设计方法学的基本内容
本课程的核心内容和目的
本章的主要内容
美国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万美元。
软件危机
软件危机的内涵
软件开发成本和进度的估计常常很不准确
用户对“已完成的”软件系统不满意的现象经常发生
软件常常是不可维护的
软件常常是不可管理的
软件在计算机系统总成本中所占的比例逐年上升
软件开发生产率提高的速度远远跟不上计算机应用迅速及深入普及的速度
软件危机——如何解决
管理学和工程学角度——软件工程
划分阶段;加强审计;质量控制;
过程改进;结构化;
方法学和语言学角度——程序设计方法
标准的程序设计;
设计模式;设计风格;设计技巧
程序设计语言
一机器语言和汇编语言
(1946年)代码
00000010101111001010
000000101**********
00000011001110101000
机器语言是晦涩难懂的,因此需要设计另外一种语言来写程序,它应该是符号式的或者说助记性的。
高级语言的优越性:可扩展性;可读性;可移植性
二命令式语言
科学计算的语言
Backus[1957]为Fortran的成功预备了两个成分:记法和效率
APL是唯一使用带有专用符号的交互式键盘来编写程序的语言。
商用语言
第一个商用语言是COBOL(面向商业的公用语言的缩写)。它是一种功能很强而又极为冗长的语言
BASIC设计者的最意图体现在该语言的名字上--初学者通用的符号指令码
多用途语言
Alogol60主导20世纪60年代程序设计语言的发展。
Pascal作为教学语言扩展了Alogol
Dennis Ritchie1972年创建C语言