系统架构设计(一):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 服务(独立组件)

部署图

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

时序图

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

总结

设计层级推荐 UML 图
系统级功能用例图、组件图
逻辑结构类图、时序图
流程控制活动图、状态图
运维部署部署图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值