从零开始学架构

2019-02-20  本文已影响3人  visionarywind

源起

软件发展历程

机器语言

直接使用二进制码 0 和 1 来表示机器可以识别的指令和数据
开发难度大/可读性差/可维护性差

汇编语言

用助记符代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址
面向机器,不同CPU的汇编指令和结构是不同的

高级语言

Fortran、LISP、Cobol
机器无关性,关注具体的问题和业务

结构化程序设计

第一次软件危机

软件质量低下、项目无法如期完成、项目严重超支等,因为软件而导致的重大事故时有发生

结构化程序设计

结构化程序设计的主要特点是抛弃goto语句,采取“自顶向下、逐步细化、模块化”的指导思想
本质上还是一种面向过程的设计思想,将软件的复杂度控制在一定范围

面向对象

第二次软件危机

软件的“扩展”变得非常复杂
根本原因还是在于软件生产力远远跟不上硬件和业务的发展

面向对象

软件架构

问题域

软件架构发展

“模块”“对象”“组件”本质上都是对达到一定规模的软件进行拆分,差别只是在于随着 软件的复杂度不断增加,拆分的粒度越来越粗,拆分的层次越来越高

架构基础

基本概念

系统与子系统

软件模块与组件

模块和组件都是系统的组成部分,从不同的角度拆分系统

软件框架与架构

架构设计目的

设计误区

设计目的

解决软件系统复杂度带来的问题

上一篇 下一篇

猜你喜欢

热点阅读