架构师必备 -- 如何画好架构图

1. 什么是架构

架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策.

架构是结构和愿景.

系统架构是概念的体现,是对物/信息的功能与形式元素之间的对应情况所做的分配,是对元素之间的关系以及元素同周边环境之间的关系所做的定义.

做好架构是个复杂的任务,也是个很大的话题,本篇就不做深入了.有了架构之后,就需要让干系人理解,遵循相关决策.

2. 什么是架构图

系统架构图是为了抽象的表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图.

3. 架构图的作用

一图胜千言.要让干系人理解,遵循架构决策,就需要把架构信息传递出去.架构图就是一个很好的载体.那么,画架构图是为了:

  • 解决沟通障碍
  • 达成共识
  • 减少歧义

4. 架构图分类

搜集了很多资料,分类有很多,有一种比较流行的是4+1视图,分别为场景视图,逻辑视图,物理视图,处理流程视图和开发视图.

  • 场景视图

    • 场景视图用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计,通常由用例图表示.
    • 场景视图用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计,通常由用例图表示.
  • 逻辑视图
    • 逻辑视图用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系统如何构建的过程,通常由UML的组件图和类图来表示.
    • 逻辑视图用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系统如何构建的过程,通常由UML的组件图和类图来表示.
  • 物理视图
    • 物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上,用于指导软件系统的部署实施过程.
    • 物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上,用于指导软件系统的部署实施过程.
  • 处理流程视图
    • 处理流程视图用于描述系统软件组件之间的通信时序,数据的输入输出,反映系统的功能流程与数据流程,通常由时序图和流程图表示.
    • 处理流程视图用于描述系统软件组件之间的通信时序,数据的输入输出,反映系统的功能流程与数据流程,通常由时序图和流程图表示.
  • 开发视图

    开发视图用于描述系统的模块划分和组成,以及细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程.

    开发视图用于描述系统的模块划分和组成,以及细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程.

    

以上5种架构视图从不同角度表示一个软件系统的不同特征,组合到一起作为架构蓝图描述系统架构.

原文地址:https://www.cnblogs.com/ukzq/p/11770455.html

时间: 2024-10-17 18:35:57

架构师必备 -- 如何画好架构图的相关文章

程序员/架构师/CTO:如何画出一张美观的架构图

作为一名程序员或架构师,有时候我们需要画一张架构图去给同Team同事或其他组的同事或者给上级/老板进行汇报.我们都梦想画的架构图,很漂亮,让人一看就眼前一亮的感觉. 在这里我们介绍一种画图的方法论,来让架构图或流程图更加清晰,层次化.首先我们来看一个网站 (https://c4model.com/).该网站提出了一个被称之为C4模型的东西.什么是C4?Context(上下文).Container(容器).Component(组件).Code(代码).C4就是代表上述一系列分层的图表,可以用这些图

互联网架构师必备技能

一.每个好架构师都是一位出色的程序员 这一点毋庸置疑,如果不是写过N年代码的优秀程序员,一定不是好的架构师.“架构师”这是一个听上去比较虚的职位,它的主要价值在于“落地”的过程中,而不是“指点江山”.eBay的架构师总结架构师在项目中的职责: 1)产品团队要做一个产品,架构师要帮助团队把技术可行性,技术方案权衡取舍一一剖析清楚: 2)技术方案权衡取舍出来了,架构师要设计整体的技术实现步骤,这个过程一定是和团队其他成员一起完成的,常见的实践是,1到2个核心成员出一个初稿,然后大家讨论完善: 3)技

架构师 必备资料

 架构师 必备资料 Apache 使用指南与实现原理.pdf: http://www.t00y.com/file/68570832 How Tomcat Works中文版.pdf: http://www.t00y.com/file/68572394 Java开发技术  在架构中体验设计模式和算法之美 高清扫描完整PDF版.pdf: http://www.t00y.com/file/68521000 jee webserver cluster.pdf: http://www.t00y.com/

JAVA架构师必备词汇和知识点

01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时.容器超时.前端超时.中间件超时.数据库超时.NoSql超时) 回滚机制(上线回滚.数据库版本回滚.事务回滚) 02 高并发 应用缓存 HTTP 缓存 多级缓存 分布式缓存 连接池 异步并发 03 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的 RocketMQ. 04 队列 任务队列 消息队列 请求队列 05扩容 单体垂直扩容

架构师必备技能:教你画出一张合格的技术架构图

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 如何用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰. 先厘清一些基础概念 1.什么是架构? 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策. 架构是

程序员必备技能:如何画好架构图?

架构图分类 搜集了很多资料,分类有很多,有一种比较流行的是4+1视图,分别为场景视图.逻辑视图.物理视图.处理流程视图和开发视图. 场景视图 场景视图用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计,通常由用例图表示. 逻辑视图 逻辑视图用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系 统如何构建的过程,通常由UML的组件图和类图来表示. 物理视图 物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可    计算机器节点上

阿里大数据架构师必备技能,你“佩奇”了嘛?

这两天真的是被<啥是佩奇>这支广告片刷屏了.佩奇明明是个喜剧角色,却把所有人都给看哭了! 中间的剧情,小孙子一句:"想要佩奇",结果爷爷就开始了满村子的寻找佩奇,到最后寻找到了小编认为是最好看的佩奇 不知道大家看了之后是什么感觉,反正我看了之后的感觉是非常感动了.不过经过几天的发酵,"佩奇"这两个字似乎有了更多的含义了!各种"佩奇"齐出不穷,女人的"佩奇"是什么样的?程序员的"佩奇"是什么样的?

架构师必备之常见面试题整理——高性能三十问!

分布式架构(一) 大型互联网架构演进过程,架构师应具备的分布式知识,主流分布式架构设计详解 分布式系统 分布式系统是一个由硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统.其拥有如下特点 分布性 对等性 并发性 缺乏全局时钟 故障总是会发生 (开心一笑) 分布式协调和分流(二) Zookeeper分布式环境指挥官,Nginx高并发分流进阶实战 应用场景 Zookeeper的功能很强大,应用场景很多,结合我实际工作中使用Dubbo框架的情况,Zookeeper主

架构师必备之高性能架构学习路线:消息中间件,Nginx,Redis等!

一)Zookeeper分布式环境指挥官 zookeeper基础 ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题.ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性. 分布式应用的优点 (1)可靠性?- 单个或几个系统的故障不会使整个系统出现故障. (2)可扩展性?- 可以在需要时增加性能,通过添加更多机器,在应用程序配置中进行微小的更改,而不会有停机