从七十年代到现在软件架构的思想变化
目录
一、序言
二、结构化程序设计
三、面向对象程序设计
四、设计模式
五、设计原则
六、领域驱动设计
七、DCI架构模式
八、领域专用语言
九、微服务架构模式
十、小结
一、序言
20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也没有,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是自给自足的私人化的软件生产方式。
20世纪60年代中期,大容量、高速度计算机的出现,使得计算机的应用范围迅速扩大,软件开发急剧增长。高级语言逐渐流行(FORTRAN 66),操作系统开始发展(IBMSYS),第一代数据库管理系统慢慢诞生(IMS),软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。
既有自给自足的私人化的软件生产方式不能再满足要求,迫切需要改变,于是软件危机开始爆发,即落后的软件生产方式无法满足迅速增长的计算机软件需求,导致软件的开发与维护出现一系列严重的问题:
从七十年代到现在软件架构的思想变化相关推荐
- 微服务架构设计实践系列之三:软件架构设计思想
微服务架构设计实践 目 次 1 序言 2 微服务 3 软件架构设计思想 4 微服务架构设计实践 4.1 项目概述 4.2 架构准备阶段 4.3 概念架构阶段 4.4 细化架构阶段 4.4.1 业 ...
- Serverless:云时代的软件架构核心思想
作者:bluedavy 来源:HelloJava Serverless绝对是这两三年来业界最火的词(UC Berkley写的一篇新的Serverless的观点的文章里有Serverless的搜索热度和 ...
- C语言编程的准则、设计模式、软件架构及思想
文章目录 1. 概念 面向过程 面向对象 面向接口编程 模块化编程 软件分层架构 可重用性 2. 区别和联系 3. 项目代码架构思路 在文章开始之前,我们先明确一些概念,当然有些概念本身就没有统一权威 ...
- 单片机/嵌入式软件架构分层思想
以STM32裸机开发为例. 软件分层 应用层 驱动层 硬件层 固件层 ①最底层为固件层,Firmware 这一层通常是官方给的库,库函数对寄存器进行操作,例如: /*** @brief Transmi ...
- Java软件架构设计
http://blog.csdn.net/hdy007/article/details/1509910 开始的架构设计也是最难的,需要调研同类产品的情况以及技术特征,了解当前世界上对这种产品所能提供的 ...
- Serverless 是云时代软件架构的未来么?
© Ross Findon 本文来源「Hello Java」,原文标题<Serverless:云时代的软件架构核心思想>. Serverless绝对是这两三年来业界最火的词(UC Berk ...
- 软件架构设计_给非专业人士介绍——软件架构设计工作
软件架构设计 架构设计是高层设计,是设计决策之上的决策.它为决策引入的额外的约束,这种约束不产生立即可见的效果. 用一个例子来辅助我们的表述.比如你买了一间新房子,有5个房间,你的床放哪里?书柜放哪里 ...
- 软件架构设计最佳实践
软件架构设计最佳实践 课程介绍: 1.深入阐述软件架构设计的思想.方向及趋势:2.剖析软件架构的全景视图:3.结合实际案例分析架构设计过程及需求对架构的影响:4.如何实用设计模式来实现好的架构:5.实 ...
- 软件架构设计最佳实践(课程大纲)
软件架构设计最佳实践 课程介绍: 1.深入阐述软件架构设计的思想.方向及趋势: 2.剖析软件架构的全景视图: 3.结合实际案例分析架构设计过程及需求对架构的影响: 4.如何实用设计模式来实现好的架构: ...
最新文章
- 推荐MIT的电路与电子学
- RHEL6入门系列之十三,阶段练习1
- JAVA-接口和抽象类的区别
- 针对谷歌浏览器Chrome的CSS hack
- java文件拷贝时 buff给多大合适_Java复制文件
- 广义表及其存储方式简介
- 缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别
- Python 变量赋值
- 带你手撸红黑树,高级Java开发必看
- Gns3模拟器配置Cisco ASA防火墙
- easyui表格 序号如何进行自适应宽度
- python将ppt文件转换为jpg图片
- 古琴岭南派传承人:古琴是精品教育 传承无需操之过急
- supMap加载天地图
- 七缸发动机预热,docker swarm + .net core 高速飙车成功
- 计算机二级word家长回执单得分,全国计算机国家二级office课件_word第一次课.doc...
- 台式计算机怎么加一个硬盘,台式电脑硬盘怎么多安装一个?电脑安装多加一块硬盘的方法...
- po模型+unittest测试
- PowerManagerService分析(二)之updatePowerStateLocked()核心
- matplotlib+basemap画出标记地图