四十年软件工程故事2008 年 5 月 14~16 日,在德国迷人的小镇Garmisch ,举办了软件工程四十年纪念会议, Peter Naur 、Brian Randell 、M. Douglas McIlroy、Albert Endres 、Luigi Dadda等 40 年前软件工程会议的关键人物重聚旧地。40 年前的 1968年,正是在此地举行的NATO (北约)科技委员会会议上,“软件工程 ”作为正式的术语被确定下来,标志着一个新学科的开始。Peter Naur和 Brian Randell主编的会议报告中这样写道:“我们特意选择 ‘软件工程 ’这个颇具争议性的词,是为了暗示这样一种意见:软件的生产有必要建立在某些理论基础和实践指导之上——在工程学的某些成效卓著的分支中,这些理论基础和实践指导早已成为了一种传统。”软件工程这个学科还很年轻,Peter Naur和 Brian Randell今天依然健在。作为著名的编程语言归约BNF 范式中的 N,Peter Naur因设计和定义了ALGOL 60而在2005 年获得图灵奖。 因 IBM System360的工作于 1999 年获得图灵奖的Fred Brooks在《人月神话》的结尾比较了化学工程和软件工程。他认为:软件系统可能是人类所创造的最错综复杂的事物,软件工程还很年轻,需要继续探索和尝试。这四十年的过程就是探索和尝试的过程,让我们来细细品味其中的科学精神之美。软件工程是什么软件工程的定义有很多版本,比较权威的是IEEE 给出的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即,将工程应用于软件。(2 )在( 1 )中所述方法的研究。所以,软件工程远没有想象中那么高大神秘,它研究的就是我们日常开发软件的工作方式。 “程序员 ”这三个字本就属于软件工程的范围。关于软件工程和计算机科学的区别,Fred Brooks说:A scientist builds in order to learn; an engineer learns in order to build. 更详细的可以看看David Parnas的“Software Engineering Programs Are Not Computer Science Programs”和Steve McConnell所著 “ Professional Software Development”的第 4 章。或者对照一下图灵奖获得者:软件工程领域的David Parnas、Frederick P. Brooks和计算机科学领域的 Donald E. Knuth、《程序员》上期介绍的YAO 。软件是为人开发的,软件是由人开发的。正是因为人的心理难以捉摸,人的大脑处理复杂性时速度和容量的局限,我们才需要过程来规范人的行为,需要方法来帮助人脑面对...