如何画系统架构图 |
您所在的位置:网站首页 › 整体图是什么 › 如何画系统架构图 |
本文系转载,感谢原作者的无私分享: 作者:动力节点 链接:https://www.zhihu.com/question/27440059/answer/780182558 来源:知乎 一、 什么是架构图系统架构图是为了抽象的表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图。 二、架构图的作用一图胜千言。要让干系人理解、遵循架构决策,就需要把架构信息传递出去。架构图就是一个很好的载体。那么,画架构图是为了: 解决沟通障碍达成共识减少歧义 三、架构图分类搜集了很多资料,分类有很多,有一种比较流行的是4+1视图,分别为: 场景视图、逻辑视图、物理视图、处理流程视图开发视图。 3.1 场景视图场景视图用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计,通常由用例图表示。 逻辑视图用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系统如何构建的过程,通常由UML的组件图和类图来表示。 物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上,用于指导软件系统的部署实施过程。 处理流程视图用于描述系统软件组件之间的通信时序,数据的输入输出,反映系统的功能流程与数据流程,通常由时序图和流程图表示。 开发视图用于描述系统的模块划分和组成,以及细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程。 上面的分类是前人的经验总结,图也是从网上摘来的,那么这些图画的好不好呢?是不是我们要依葫芦画瓢去画这样一些图?先不去管这些图好不好,我们通过对这些图的分类以及作用,思考了一下,总结下来,我们认为,在画出一个好的架构图之前, 首先应该要明确其受众,再想清楚要给他们传递什么信息 ,所以,不要为了画一个物理视图去画物理视图,为了画一个逻辑视图去画逻辑视图,而应该根据受众的不同,传递的信息的不同,用图准确地表达出来,最后的图可能就是在这样一些分类里。那么,画出的图好不好的一个直接标准就是:受众有没有准确接收到想传递的信息。明确这两点之后,从受众角度来说,一个好的架构图是不需要解释的,它应该是自描述的,并且要具备一致性和足够的准确性,能够与代码相呼应。 4.1 常见问题方框代表什么?
架构是一项复杂的工作,只使用单个图表来表示架构很容易造成莫名其妙的语义混乱。 五、C4模型
如何更好的表达软件架构 下面的案例来自C4官网,然后加上了一些我们的理解。 5.1 语境图(System Context Diagram)
用途 这样一个简单的图,可以告诉我们,要构建的系统是什么;它的用户是谁,谁会用它,它要如何融入已有的IT环境。这个图的受众可以是开发团队的内部人员、外部的技术或非技术人员。即: 构建的系统是什么谁会用它如何融入已有的IT环境怎么画 中间是自己的系统,周围是用户和其它与之相互作用的系统。这个图的关键就是梳理清楚待建设系统的用户和高层次的依赖,梳理清楚了画下来只需要几分钟时间。 5.2 容器图(Container Diagram)容器图是把语境图里待建设的系统做了一个展开
用途 这个图的受众可以是团队内部或外部的开发人员,也可以是运维人员。用途可以罗列为: 展现了软件系统的整体形态体现了高层次的技术决策系统中的职责是如何分布的,容器间的是如何交互的告诉开发者在哪里写代码怎么画 用一个框图来表示,内部可能包括名称、技术选择、职责,以及这些框图之间的交互,如果涉及外部系统,最好明确边界 5.3 组件图(Component Diagram)
用途 这个图主要是给内部开发人员看的,怎么去做代码的组织和构建。其用途有: 描述了系统由哪些组件/服务组成 厘清了组件之间的关系和依赖 为软件开发如何分解交付提供了框架 5.4 类图(Code/Class Diagram)这个图很显然是给技术人员看的,比较常见,就不详细介绍了。 5.5 案例分享下面是 城市运营态势 工具的一个架构图。作为一个应该自描述的架构图,这里不多做解释了。如果有看不明白的,那肯定是还画的不够好。 写在最后 画好架构图可能有许多方法论,本篇主要介绍了C4这种方法,C4的理论也是不断进化的。但不论是哪种画图方法论,我们回到画图初衷,更好的交流,我们在画的过程中不必被条条框框所限制。简而言之,画之前想好:画图给谁看,看什么,怎么样不解释就看懂。让我们一起画出好的架构图! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |