一、什么是架构图?

架构从字面意思上,是源于古代的建筑术语。把架构拆分成两个字“架”和“构”。“架”是“加”和“木”的结合,把木头加起来、连接起来就是架。“构”就是结构的意思。所以,“架构”就是把“木“按照一定的结构连接起来。

对应到软件架构,这里面的“木”代表什么,软件架构中的“结构”是什么,这些软件系统的“木”又是如何连接的?

  • 关联到软件领域,木就是系统中的要素,我们将他们称之为架构要素。架构要素可以是子系统、模块、应用服务。

  • 结构,是架构的产物。不同的软件系统会有不同的结构,这些结构是为解决不同场景而设计的。

  • 连接,通过定义架构元素之间的接口和交互关系、集成机制,实现架构元素之间的连接。连接可以是分布式调用、进程间调用、组件之间的交互关系等。

架构是一种整体与局部关系的抽象描述,架构图是将软件所有的需求进行宏观地、系统地、抽象地描述,并通过图形的颜色以及结构设计展示出来。

二、为什么要画构图?

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

  • 解决沟通障碍

  • 达成共识

  • 减少歧义

  • 进行模块化,抽象化的系统开发

  • 实现系统的可复用性、可拓展性

三、由谁来画?

架构图是由架构师进行需求分析和业务抽象所画的结果。

四、什么时间画?

架构图不仅仅包括业务架构图,还包括技术架构图和运维架构图等。不同的架构图在不同的阶段进行绘制:

  • 需求分析之后绘制业务架构图
  • 开发前绘制技术架构图、运维架构图
  • 系统部署上线前,完善运维架构图

在复杂项目开始前画,当你觉得是该画的时候画。

五、怎么画?

1.从全局上看:

(1)结构分级

  • 纵向:要有分层的概念,整体上要有层次感,上层依赖于下层,越底层,越是基础服务,更为重要;
  • 横向:并列结构,同等级别;
  • 对称:要讲究对称美,尽可能地功能结构分配均匀;
  • 虚线框和实线框的使用:多个模块,逻辑上可以归为一块时可以使用虚线框;

(2)色彩搭配

  • 颜色搭配要有所区分,不同层级、不同类型要颜色不同,但是也不能太跳脱,整体上颜色风格要一致,整体上要符合大众的审美风格。

2.从局部上分析:

  • 大小、格式:要注意大小一致,格式统一;
  • 模块划分粒度:细节要进行抽象,抽象出模块,模块的粒度要合适,不可太具体,也不可太宽泛;
  • 模块分级摆放:同一个级别的模块要统一级别,粒度大小要统一;
  • 词汇描述:用词准确,可以让开发人员或者用户理解描述的意思;
  • 命名统一:命名统一,英文名体现专业性,命名要尽可能使用短名称且一致。

有关架构图你需要了解的基础知识相关推荐

  1. 图(graph)的基础知识详解

    对于图的基础知识,我们主要分两部分: 目录 第一:图的概念 第二:图的储存和基本代码 下面我们先来看第一部分 第一部分:图的概念 定义:图示由顶点的有限的非空的集合以及顶点之间的边的集合组成的. G( ...

  2. LNMP架构(1)——LNMP的基础知识

    文章目录 一.什么是LNMP? 二.了解LNMP工作原理 三.cgi(Common Gateway Interface.通用网关接口) 四.什么是fast-cgi 五.php-fpm(php-Fast ...

  3. 森林图怎么分析_股票趋势图怎么看 这些炒股基础知识建议掌握-趋势分析-股票技巧-股票入门基础知识学习网...

    股票看趋势是投资者一贯的方法,其实这是有一定道理的.因为,趋势具有惯性,当出现向下趋势时,这将会发生向下发展的,而且这种惯性将不会在短时间内发生逆转.那么,股票趋势图怎么看呢?下面小编就带大家来简单的 ...

  4. 系统架构师学习笔记-系统开发基础知识(二)

    目录 系统规划与问题定义 需求工程 软件设计 软件测试 软件维护 软件开发环境与工具 系统规划与问题定义 软件系统的总体规划包括以下阶段: 1. 对当前系统进行初步的调查. 2. 分析和确定系统目标. ...

  5. 系统架构师学习笔记-系统开发基础知识(一)

    目录 软件开发方法 软件开发模型 软件开发方法 净室方法:净室软件工程(净室方法)是软件开发的一种形式化方法,它可以生成高质量的软件. 净室方法主要使用三种盒类型: 1. 黑盒:刻划系统或系统的某部分 ...

  6. 软考系统架构设计师 - 第 3 章 信息系统基础知识

    涉及单选题,2-6分.已阅第3小时和教程. 3.1 信息化概述 1. 信息的基本概念 控制论创始人维纳认为:信息就是信息,它既不是物质,也不是能量. 信息化的奠基者香农认为:信息是能够用来消除不确定性 ...

  7. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系

    原标题:最新版 17 幅思维导图:Python 编程之核心知识体系 导读:本文主要涵盖了 Python 编程的核心知识,展示了一系列思维导图,主要就 Python 核心基础知识进行了细致梳理.无论你是 ...

  8. 【Java从0到架构师】Linux 基础知识、常用命令

    Linux 基础知识.常用命令 Linux 基础知识 内核和发行版 常见的 Linux 发行版 Linux 的应用领域 Linux 与 Windows 的区别 Linux 常用命令 *系统目录结构 s ...

  9. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

最新文章

  1. 工具 - 硕思SWF Decompiler5.3Build528 含补丁
  2. 面试前必须要知道的Redis面试题
  3. 2.3.5 用信号量实现 进程互斥 同步 前驱关系
  4. memcache运行机制(转)
  5. 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...
  6. Lighting System Design UVA - 11400 动态规划
  7. Sql自动更新不同IP的数据库数据。(link Server)
  8. 小眼睛有多惨?美颜都懒得救你......
  9. 【Kissy WaterFall】实行手动加载数据
  10. java 指针 引用_java中的引用与c中的指针
  11. 程序员在这些地方敲代码,普通笔记本根本扛不住
  12. Grup加密(使其不能强制更改密码)
  13. [2018.10.31 T3] 玩
  14. VMware 和 linux镜像文件
  15. php 微信表情存储,emoji表情存储到数据库的方法
  16. PBFT(一):过程
  17. win10分辨率不能调整_WIN10屏幕分辨率不能调整的解决技巧
  18. P2114 起床困难综合症
  19. tex 表格内容换行_如何让latex表格中一个单元格的文字换行
  20. 大力哥谈 DALI - DT6 和 DT8 是什么鬼?

热门文章

  1. OpenCV简介及图像处理示例教程
  2. 程序员面试题精选100题(53)-C++/C#面试题(2)
  3. Coursera课程Python for everyone:Quiz: Networks and Sockets
  4. 深度学习(二十五)基于Mutil-Scale CNN的图片语义分割、法向量估计-ICCV 2015
  5. 数字图像处理:第三章 灰度直方图
  6. 锐捷云课堂助力海南农垦中学 根治计算机教室“老病根”
  7. Gartner:大数据投资增长,但计划投资的组织机构却在减少
  8. ButterKnife不同版本配置
  9. Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist的
  10. RHCE课程-RH253Linux服务器架设笔记三-Samba服务器配置(1)