一、演进历史
1950+ 面向机器编程:基于图灵机模型的计算机,机器语言与汇编语言
1960+ 函数式编程:Lisp语言,以lamda演算为理论基础的编程语言
1966 过程化编程:取消goto,结构化编程,流程图建模,软件 = 算法 + 数据结构
1970+ 模块化架构: PASCAL,C,UNIx的封装,依赖大规模开发
1974 MVC架构: UI与逻辑解耦,分层架构
1978 数据建模:关系数据库,实体关系,ER建模
1980+ 面向对象编程: C++,逻辑复用,抽象接口
1986 并发与容错 :并发,高容错架构
1991 Linux系统:自由,开放,可裁剪
1993+ 组件化架构:COM
1994 设计模式:面向对象应对的软件设计问题的解决方案
1995 4+1视图:场景视图,逻辑视图,开发视图,运行视图,物理视图
1997 UML:用例图,静态图,行为图,交互图,实现图
1998 服务化架构
1999 四色建模
2001 MDA :模型驱动架构
2001 敏捷开发:TDD,重构,持续继承,代码表达力,演进式设计
2003 领域驱动设计:领域建模。通用语言,战略战术设计,代码模型一直性
2007 MBSE SysML:建模语言,建模工具,建模方法,形式验证
2009 DCI架构:MVC的补充
2010+ 编程语言的演进: C++11,java8,Go,异步与并发,安全性
2012 微服务架构
2013 docker:轻量级虚拟化
2013 事件架构与建模
2015 云原生架构
二、演进目标
让软件更容易验证其正确性
让软件更容易变化
让软件更容易复用
让软件更容易被理解
参考: