笔记
重点是澄清几个架构设计相关的概念。
-
系统
由一群有关联的个体组成,按照某种规则运作,能完成个别元件所不能单独完成的工作的群体。
重点:
- 关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能构成一个系统。
- 规则:系统内的个体需要按照制定的规则运作。规则规定了系统内个体分工和协作的方式。
- 能力:系统具有个体所不具备的能力。产生了新的能力。
-
子系统
子系统也是由一群有关联的个体组成的系统。是更大的系统中的一部分。
-
模块
软件模块(Module)是一套一致而互相有紧密关联的软件组织。包含了程序和数据结构两部分。模块有接口,模块间可以互相调用。
重点:
- 从逻辑或者业务功能的角度拆分系统,得到的单元就是“模块”。模块具有特定的接口,通过接口对外提供功能。划分模块的主要目的是职责分离。
-
组件
自包含的、可编程的、可重用的的软件单元。软件组件可以很容易被用于组装应用程序中。
重点:
- 从物理的角度拆分系统,得到的单元就是“组件”。组件可以看做是零件。主要目的是复用,被继承到其他的组件中。是一个物理的概念。具有“独立可替换”的特点。
-
框架(framework)
为了实现某个业界标准或完成特定基本任务的软件组件规范。也指为了实现某个软件组件规范时,提供规范要求只基础功能的软件产品。
-
架构(Architecture)
软件架构的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
重点:
- 架构关注的是“结构”。
- 可以从很多的角度或维度来划分结构。所以就有了UML里的多种视图。
- 李老师修改架构的定义为:软件系统的顶层结构。