系统 & 子系统 – 定义
【系统】
泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”、“整体”或“联盟”。
上面定义中包含的关键内容:
关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。
规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。
能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这样的能力。
【子系统】
由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。
系统 & 子系统 – 样例
模块 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. 运作规则是什么