软件工程简史
从《WCF服务编程》一书中抄下来的,感觉对面向对象、面向组件和面向服务进行了很好的解释,但是对于我而言,需要反复看才能理解。 20世纪40-50年代,第一台通用的计算机才真正问世,它主要用于国防。这个时期的计算机可以运行代码并处理某些问题,而不仅仅是单个的预定义的任务。其缺点是计算机执行的代码与机器的硬件是紧密耦合的。实际上,当初计算机的软件与硬件之间并没有明显的区别(软件一词是在1958年才提出的)。起初,这个缺点并未引起大家的关注,因为世界上还没有手提电脑,都是超大型计算机。随着计算机产品大量生产,问题出现了。在20世纪60年代早期,汇编语言的出现才真正把机器与代码解耦开来,代码可以执行在不同的机器上。但是,代码与计算机的架构关联,即编写在8位机上的程序不能运行在16位机上,因为计算机的寄存器、可用内存和内存分布都不一样。因此,维护程序的成本逐渐增加。随着计算机的广泛应用,民众和政府部门为满足有限的资源与预算,提供了更好的解决方案。 20世纪60年代,更高级别的语言,如COBOL和FORTRAN,引入了编译器的概念。开发人员可以编写更加抽象的程序,编译器可以将其转化为实际的汇编代码。编译器第一次把代码从硬件和计算机架构解耦开来。第一代语言存在的问题是代码会导致非结构化的编程,这些代码通过使用jump或者go to语句依赖于它自身的结构