教学目标
- 掌握架构的准确定义
- 能够区分架构相关的易混淆的概念
- 系统
- 子系统
- 架构
- 框架
- 模块
- 组件
目录
1. 系统与子系统
2. 架构与框架
3. 模块与组件
4. 架构定义和剖析
1.系统与子系统
系统 & 子系统 – 定义
系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”。
子系统:由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。
系统 & 子系统 – 样例
2.模块与组件
模块 vs 组件 – 定义
软件模块(Module)
是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。
软件组件
自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。
模块 vs 组件 – 样例
3.架构与框架
框架 vs 架构 – 定义
软件框架(Software framework)
通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
软件架构(Software Architecture)
指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
框架 vs 架构 – 样例
4.重新定义架构
4R架构 – Rank + Role + Relation + Rule
软件架构指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系
(Relation)和运作规则(Rule)
复盘
1.系统从逻辑拆分可以得到模块,而模块是为了职责分离。
2.系统从物理拆分可以得到组件,而组件是为了单元复用。
3.架构可以简单的理解为从顶层进行设计,将不同层级进行分层,每层借据不同的问题,而其中包含不同的角色,角色之间按照某种关系进行交互,按照一定的规则运作。