**部分哲理
第1章大型应用软件架构与软件开发的认知体系第2章软件架构与软件开发基础
第1章大型应用软件架构与软件开发的认知体系
计算机科学从诞生起虽然仅有半个多世纪,但其发展速度却远远超出了人们的预计。任何一门学科从萌芽、发展到成熟,必须要解决哲理、原理、方法技术、工程管理和实践五个层次的问题,由此可以从这五个方面来衡量一个学科的成熟度。在这一过程中,任何方法、技术与工具都是由于要解决社会发展中的需求而产生的,而衡量其成熟度,就要看它是否真正解决了社会的需求,是否符合人们认识客观世界的规律,以及是否已建立了相应的理论和工程管理体系。就软件架构与开发而言,围绕上述五个层次的核心问题就是要研究软件开发中的方法和技术,并进一步解决相应的工程管理问题。因此,认知观在软件开发的发展史上起到了关键作用。不同的认知观决定了不同的软件架构与开发方法,认知观是原理和方法的出发点,是灵魂。我们将上述思想称为软件架构与开发的哲理。
软件行业是一种知识密集型的行业,软件开发长期以来存在“开发周期长、成本高、质量差、适应差、维护难”这五大难题,早期称为“软件危机”。“危机”震动了软件界,为此,学术界和产业界提出了一系列的技术和方���,而对这些技术与方法需要从一个客观、统一的视角进行审视。本章将从认知观的角度,来讨论软件开发方法和技术的发展历程,从而能够更好地帮助读者理解每种方法和技术的内涵。同时,也可以从哲学的高度,分析、评论与比较软件行业发展中的一些里程碑式的关键方法与技术。
1.1 面向过程思想的认知观
1.1.1 结构程序设计方法与软件工程
20 世纪60 年代末到20 世纪70 年代初,出现了大型的软件系统,如IBM360 系列机操作系统和美国三大航空公司分别开发的机票预订系统等。这给程序的设计带来了新的问题,即大型系统的研制需要花费大量的财力和人力。IBM 公司当时采用的是大兵团作战方式,类似于“大跃进”时期的人海战术。每个操作系统的
版本都要花费3000 人?年以上的工作量。可是,研制出来的产品可靠性差、错误
多,维护和修改也很困难。当时,人们称这种现象为“软件危机”。
“危机”震动了软件界。一方面,程序设计的传统习惯和工作方式导致了不清晰的程序结构,很难保证程序的可靠性;另一方面,程序设计工具的严重缺乏也使大系统的开发陷入困境。追根溯源,人们开始重新研究程序