机器语言(1940年之前)
用0和1来表示机器可识别的指令和数据。
太难写、太难读、太难改
汇编语言(20世纪40年代)
符号语言,本质上面对机器,需要程序员将现实世界问题按照机器逻辑进行翻译,编写复杂!!
高级语言(20世纪50年代)
早期:Fortran、LISP、Cobol等
高级语言可以让程序员不需要关心机器底层的低级结构和逻辑,只需要关注问题和业务即可。
第一次软件危机与结构化程序设计(20世纪60年代~70年代)
软件质量下降,开发成本高昂。
银弹1:结构化程序设计方法
虽然本质上还是面向过程,但“自顶向下、逐步细化、模块化”的设计思想已经确定,将软件复杂度控制在一定范围内,逐渐成为主流。
第二次软件危机与面向对象(20世纪80年代)
本质问题是软件的生产力跟不上硬件和业务的发展。对业务的变化带来的软件扩展无能为力。
银弹2:面向对象的思想
1967年提出,80年代流行,现在已经为主流开发思想。
软件架构的历史背景
60年代提出、90年代流行。
只有规模较大的软件系统彩辉面临架构问题:
1.系统规模庞大,内部耦合严重,开发效率低
2.耦合严重,后续的扩展修改困难。
3.逻辑复杂,易出错,不好排查。