什么是架构,你理解对了吗?

2023-10-07 14:27

系统 & 子系统 – 定义

【系统】

泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”、“整体”或“联盟”。

上面定义中包含的关键内容:

  1. 关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。

  2. 规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。

  3. 能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这样的能力。

【子系统】

由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。


系统 & 子系统 – 样例

图片

模块 vs 组件 – 定义

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

从逻辑的角度来拆分系统后,得到的单元就是“模块”;
从物理的角度来拆分系统后,得到的单元就是“组件”。
划分模块的主要目的是职责分离;
划分组件的主要目的是单元复用。


图片

模块 vs 组件 – 样例

图片

框架 vs 架构 – 定义

1. 架构和框架处于不同的抽象层次上

软件架构处于较高的抽象层次上。架构代表了设计师对软件系统的定义和理解,它是系统的顶层设计,它将系统划分为一些各自独立的部件,这些部件通过规定的接口传递信息。

而框架则是定义好了一套系统结构,这套结构包含哪些类和对象,它们的主要责任是什么,它们之间怎么协作,怎么控制。所以框架是针对某个问题领域的通用解决方案,从而对开发工作起到提高效率、以及指导和规范开发活动的作用。

2. 架构和框架分别服务于不同的策略

架构是战略性的,它描述的系统部署、各部职责、战略目标、系统构成、信息传递等内容;而框架则是战术性的,它描述的是具体如何组织、实施、执行等内容。

3. 架构和框架的表现形式是不同的

架构的表现形式是“虚”的,它更多地是以模型、图文的形式存在,体现的是软件系统的设计;框架的表现形式要更“实”一些,它除了这些图文说明之外,还有可复用的代码。

图片

框架 vs 架构 – 样例

图片

4R 架构(Rank + Role + Relation + Rule)

【软件架构】

图片

分层架构 vs 架构分层


图片图片

4R 架构应用

图片

【架构师职责】

1. 确定层级2. 拆解角色3. 定义关系4. 设计规则

【架构文档内容】

1. 指明层级2. 描述角色3. 定义关系4. 展现规则

【如何学习架构】

1. 自顶向下学习2. 角色有哪些3. 角色关系如何4. 运作规则是什么