什么是架构?软件有架构?建筑也有架构?它们有什么相同点和不同点?
下面咱们就介绍一下,容易混淆的几个概念
一、系统与子系统
系统 泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是 “总体”、“整体”或“联盟”
子系统 由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。
样例:
二、模块与组件
软件模块 是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块 作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单 位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。
软件组件 自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。
样例:
三、架构与框架
软件架构 指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
软件框架 通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时, 提供规范所要求之基础功能的软件产品。
样例:
如何定义架构,有个大佬给出了一个全新的考虑维度以及组成部分,让我们来看一下
四、重新定义架构
软件架构 软件架构指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系 (Relation)和运作规则(Rule)。
这就是他所定义的4R架构,下面我们再看一下如何应用4R架构
五、4R架构应用
上图不仅指明了架构师的职责,也指出架构文档包括哪些内容:系统层级、系统角色、角色关系、规则定义等,再就是指出了如何学习架构:自顶向下、有什么角色、角色之间的关系、如何协作完成系统功能等。
今天就先介绍这么多,希望对你有所帮助,共同成长!!!