软件设计开发技术的演进

一、演进历史

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 云原生架构

二、演进目标

让软件更容易验证其正确性

让软件更容易变化

让软件更容易复用

让软件更容易被理解

参考:

一文读懂软件开发流程的演变过程(软件开发经历的三个演变过程) | 项目管理软件---集团管控系统---宇凡软件

相关推荐
m0_547486662 天前
《数据结构教程》全套 PPT课件2026
数据结构
tryxr2 天前
矩阵的几种基础变换
java·数据结构·算法·矩阵
mmmmath_32 天前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
All for pursuit.2 天前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode
All for pursuit.2 天前
【栈-5】84.柱状图中最大的矩形
数据结构·c++·算法·leetcode
渡我白衣2 天前
HttpRequest与HttpResponse的实现
服务器·数据结构·c++·人工智能·tcp/ip·机器学习·caffe
晴天的雨.9922 天前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
淡海水3 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
Logic1013 天前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
2401_839080543 天前
C++常见八股
数据结构·c++·算法