系统架构设计(一):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 图
系统级功能 用例图、组件图
逻辑结构 类图、时序图
流程控制 活动图、状态图
运维部署 部署图
相关推荐
蓝天居士3 小时前
软考 系统架构设计师系列知识点之杂项集萃(83)
系统架构
姜君竹8 小时前
QT的工程文件.pro文件
开发语言·c++·qt·系统架构
PypYCCcccCc12 小时前
支付系统架构图
java·网络·金融·系统架构
和煦的13 小时前
UML、mermaid在代码中的表现形式
uml
吾日三省Java16 小时前
微服务体系下将环境流量路由到开发本机
微服务·系统架构·团队开发
Listennnn17 小时前
AI系统的构建
人工智能·系统架构
练习本19 小时前
AI架构师如何创建自己的知识库
系统架构
爱喝酸奶的桃酥1 天前
【无标题】
uml
学软件的小铃铛1 天前
ELK日志管理框架介绍
elk·系统架构
HAPPY酷2 天前
Kafka 和Redis 在系统架构中的位置
redis·kafka·系统架构