系统:
- 系统是由一群有关联的个体组成,根据某种规则运作,能完成个体元件不能完成的工作的群体
- 组件和模块都是系统的组成部分
- 组件:从物理角度拆分得到的单元,划分模块的目的是单元复用
- 模块:从逻辑角度拆分得到的单元,划分模块的目的是职责分离
框架和架构
- 框架关注的是规范,指的是为了实现某个业界标准或完成特定基本任务的基础组件规范,也指为了提供规范所要求的基础功能的软件产品
- 软件架构关注的是软件系统的‘基础结构’,是软件架构的顶级结构,创造这些基础结构的准则,以及对这些结构的描述
架构设计的目的:
- 主要目的是为了解决软件系统复杂度带来的问题
- 通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计
- 架构设计并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出复杂点然后有针对性的解决问题
- 理解每个架构方案后所需要解决的复杂点,然后对比自己的业务复杂点,参考复杂点相似的方案,做到有的放矢而不是贪大求全
关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。
规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。
能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这种能力