软件设计开发技术的演进

一、演进历史

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

二、演进目标

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

让软件更容易变化

让软件更容易复用

让软件更容易被理解

参考:

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

相关推荐
要做朋鱼燕几秒前
【数据结构】用堆解决TOPK问题
数据结构·算法
秋难降1 小时前
LRU缓存算法(最近最少使用算法)——工业界缓存淘汰策略的 “默认选择”
数据结构·python·算法
Jayyih3 小时前
嵌入式系统学习Day19(数据结构)
数据结构·学习
DdduZe4 小时前
8.19作业
数据结构·算法
PyHaVolask4 小时前
链表基本运算详解:查找、插入、删除及特殊链表
数据结构·算法·链表
1白天的黑夜15 小时前
链表-2.两数相加-力扣(LeetCode)
数据结构·leetcode·链表
花开富贵ii5 小时前
代码随想录算法训练营四十六天|图论part04
java·数据结构·算法·图论
熬了夜的程序员5 小时前
【LeetCode】16. 最接近的三数之和
数据结构·算法·leetcode·职场和发展·深度优先
Miraitowa_cheems5 小时前
LeetCode算法日记 - Day 15: 和为 K 的子数组、和可被 K 整除的子数组
java·数据结构·算法·leetcode·职场和发展·哈希算法
_poplar_8 小时前
08.5【C++ 初阶】实现一个相对完整的日期类--附带源码
c语言·开发语言·数据结构·c++·vscode·算法·vim