系统架构设计(一):UML与软件架构

什么是系统架构设计?

系统架构设计是对系统高层结构和行为的描述,包括:

  • 系统的各个模块(组件)
  • 模块之间的交互方式
  • 数据流动、控制流动
  • 技术选型与部署策略

系统架构常见的风格有:

  • 分层架构(Layered Architecture)
  • 微服务架构(Microservice Architecture)
  • 客户端-服务器(Client-Server)
  • 事件驱动架构(EDA)
  • 面向服务架构(SOA)

UML在系统架构设计中的作用

UML 提供了一整套图形符号来帮助我们表达系统的不同层次结构。主要包括以下几种图:

UML图类型 用途
用例图(Use Case Diagram) 描述系统与用户之间的交互
类图(Class Diagram) 描述系统中的类、接口及其关系
组件图(Component Diagram) 描述系统中各个软件组件及其依赖
部署图(Deployment Diagram) 描述系统的物理部署结构,如服务器、网络节点等
时序图(Sequence Diagram) 描述对象之间按时间顺序的消息交换
活动图(Activity Diagram) 描述业务流程或算法流程
状态图(State Diagram) 描述对象在不同状态之间的变化

系统架构设计流程 + UML 图组合实践

需求分析阶段

  • 主要产出:用例图
  • 目标:了解系统角色、功能、边界

系统架构设计阶段

  • 产出:
    • 分层结构草图(可以使用类图或组件图)
    • 技术选型(框架、数据库、消息队列等)
    • 微服务划分图(组件图 + 部署图)

模块设计阶段

  • 产出:
    • 类图(定义类、继承、接口)
    • 时序图(描述接口或服务之间的调用流程)
    • 状态图(用于处理复杂状态机逻辑)

系统部署阶段

  • 产出:
    • 部署图(展示微服务部署在哪些服务器上、如何通信)

一个完整系统示例

假设我们设计一个视频监控系统,包含如下部分:

  • 前端 Web 页面
  • 后端服务(用户认证、录像管理、实时预览)
  • 媒体服务(RTSP 转 WebRTC)
  • 数据库与存储
  • SRS 流媒体服务器

我们可以这样用 UML 来描述架构:

用例图

  • 用户 -> 登录
  • 用户 -> 预览实时视频
  • 用户 -> 查询回放录像
  • 管理员 -> 设备管理

组件图

  • 用户服务
  • 视频管理服务
  • 媒体网关(转码、拉流)
  • 存储模块
  • SRS 服务(独立组件)

部署图

text 复制代码
[客户端浏览器]
      |
   [Nginx 反向代理]
      |
[后端 API 服务群] --连接--> [数据库]
          |
       调用
          |
     [媒体网关服务] --连接--> [SRS 服务]

时序图

  • 用户点击播放 -> API 服务 -> 媒体网关 -> SRS 拉流 -> 返回 WebRTC 地址 -> 前端播放

总结

设计层级 推荐 UML 图
系统级功能 用例图、组件图
逻辑结构 类图、时序图
流程控制 活动图、状态图
运维部署 部署图
相关推荐
aiden:)2 小时前
手机状态:UML 状态图(State Diagram)的解析与绘画
软件工程·uml
aiden:)4 小时前
UML 状态图:解锁电子图书馆管理系统的高效设计
架构·软件工程·软件构建·uml
aiden:)4 小时前
UML 状态图:以网络媒体教学系统为例解析
软件工程·uml
萨达大13 小时前
软考高级-系统架构设计师 论文范文参考(一)
系统架构·论文·软考高级·soa·系统架构设计师·构件
云达闲人13 小时前
系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)案例分析与简答题、详细解析与评分要点
运维·系统架构·软考·系统架构设计师
lalajh16 小时前
论软件系统架构风格
系统架构
Bruce_Liuxiaowei20 小时前
基于Flask的网络安全渗透知识库系统架构解析
web安全·系统架构·flask
软考诸葛老师1 天前
软考高级系统架构设计师-第16章 数学与经济管理
数学建模·系统架构·系统架构设计师
蓝天居士2 天前
软考 系统架构设计师系列知识点 —— 设计模式之创建者模式
设计模式·系统架构·建造者模式