软件设计开发技术的演进

一、演进历史

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

二、演进目标

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

让软件更容易变化

让软件更容易复用

让软件更容易被理解

参考:

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

相关推荐
平平无奇。。。44 分钟前
解密完全二叉树顺序存储之堆结构
c语言·数据结构·visual studio
ゞ 正在缓冲99%…1 小时前
leetcode142.环形链表II
数据结构·链表
岑梓铭2 小时前
《考研408数据结构》第一章复习笔记
数据结构·笔记·考研·408
lifallen2 小时前
Hadoop MapOutputBuffer:Map高性能核心揭秘
java·大数据·数据结构·hadoop·算法·apache
散1123 小时前
01数据结构-B树练习及B+树特点
数据结构·b树
书院门前细致的苹果4 小时前
MySQL 中的 B+树和 B树的区别详解
数据结构·数据库·mysql
半桔4 小时前
【STL源码剖析】二叉世界的平衡:从BST 到 AVL-tree 和 RB-tree 的插入逻辑
java·数据结构·c++·算法·set·map
塔中妖5 小时前
【华为OD】分割数组的最大差值
数据结构·算法·华为od
凯子坚持 c6 小时前
Redis 核心数据结构:String 类型深度解析与 C++ 实战
数据结构·c++·redis
songx_996 小时前
leetcode29( 有效的括号)
java·数据结构·算法·leetcode