教学目标

1. 理解常见架构图的分类

2. 掌握常见架构图的画法


  • 应用架构
  • 系统架构
  • 部署架构
  • 业务架构
  • 逻辑架构
  • 物理架构

画好架构图是一个合格架构师的基本素养!

目录

1. 4 + 1架构视图

2. 大厂常见架构图介绍和画法

3. 系统序列图

1.4+ 1架构视图

4 + 1架构视图 – 定义

1995年,Philippe Kruchten在《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引起了业界的极大关注,并最终被RUP采纳。

【架构实战营】模块一 2.如何画出优秀的架构图?_架构

逻辑视图:系统提供给用户的功能,对应UML的class 和state diagrams

处理视图:系统的处理过程,对应UML的sequence 和 activity diagrams

开发视图:程序员角度看系统的逻辑组成,对应UML的package diagrams

物理视图:系统工程师角度看系统的物理组成,对应UML的deployment diagrams

场景视图:用户角度看系统需要实现的需求,对应UML的use case diagrams

4 + 1架构视图 – 现状

目前国内企业很少用4+1视图来描述架构,这是为什么呢?


  • 架构复杂度增加​:1995年的系统大部分还是单体系统,现在分布式系统
  • 绑定UML图​:UML图画架构图存在问题
  • 理解困难​:4+1视图的逻辑视图、开发视图、处理视图比较容易混淆

UML画架构图的核心问题

【架构实战营】模块一 2.如何画出优秀的架构图?_架构_02

2.大厂常见架构图介绍

架构图分类

【架构实战营】模块一 2.如何画出优秀的架构图?_架构_03

业务架构

【架构实战营】模块一 2.如何画出优秀的架构图?_java_04

客户端架构、前端架构

【架构实战营】模块一 2.如何画出优秀的架构图?_uml_05

系统架构 – 简单,画1张图

【架构实战营】模块一 2.如何画出优秀的架构图?_java_06

系统架构 – 复杂,画2张图

【架构实战营】模块一 2.如何画出优秀的架构图?_序列图_07

应用架构

【架构实战营】模块一 2.如何画出优秀的架构图?_序列图_08

应用架构和系统架构的区别和联系在哪里?

应用架构 – 开源案例

【架构实战营】模块一 2.如何画出优秀的架构图?_序列图_09

部署架构

【架构实战营】模块一 2.如何画出优秀的架构图?_java_10

3.系统序列图

为什么需要系统序列图

【架构实战营】模块一 2.如何画出优秀的架构图?_序列图_11

系统序列图(System Sequence Diagram)

【架构实战营】模块一 2.如何画出优秀的架构图?_架构_12

本节思维导图

【架构实战营】模块一 2.如何画出优秀的架构图?_序列图_13

随堂测验

【判断题】


  1. 4+1视图是业界公认的规范,所以我们必须采用它来表示架构
  2. UML可以用来画架构图
  3. 某些场景下,应用架构就是系统架构
  4. 给高P汇报业务的时候优先推荐用系统架构 x 业务架构
    【思考题】
    为什么不能用一种图来展现软件系统的架构?

复盘

业务架构是高管比较关注的视图