260 lines
7.5 KiB
Markdown
260 lines
7.5 KiB
Markdown
|
|
## 子系统关系图示例
|
|||
|
|
|
|||
|
|
### 1. 系统上下文图(System Context Diagram)
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TD
|
|||
|
|
subgraph 外部实体
|
|||
|
|
User[用户]
|
|||
|
|
CustomerSystem[客户系统]
|
|||
|
|
SupplierSystem[供应商系统]
|
|||
|
|
PaymentGateway[支付网关]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 核心系统
|
|||
|
|
MainSystem[主系统]
|
|||
|
|
|
|||
|
|
subgraph 子系统A[子系统A - 订单管理]
|
|||
|
|
OrderService[订单服务]
|
|||
|
|
InventoryService[库存服务]
|
|||
|
|
PricingService[定价服务]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 子系统B[子系统B - 用户管理]
|
|||
|
|
AuthService[认证服务]
|
|||
|
|
ProfileService[用户档案服务]
|
|||
|
|
PermissionService[权限服务]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 子系统C[子系统C - 数据分析]
|
|||
|
|
ReportService[报表服务]
|
|||
|
|
AnalyticsService[分析服务]
|
|||
|
|
DashboardService[仪表盘服务]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 子系统D[子系统D - 通知中心]
|
|||
|
|
EmailService[邮件服务]
|
|||
|
|
SMSGateway[短信网关]
|
|||
|
|
PushService[推送服务]
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 数据存储
|
|||
|
|
DB[(数据库)]
|
|||
|
|
Cache[(缓存)]
|
|||
|
|
LogStorage[(日志存储)]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%% 外部实体连接
|
|||
|
|
User --> MainSystem
|
|||
|
|
CustomerSystem <--> MainSystem
|
|||
|
|
SupplierSystem <--> MainSystem
|
|||
|
|
PaymentGateway <--> MainSystem
|
|||
|
|
|
|||
|
|
%% 主系统与子系统连接
|
|||
|
|
MainSystem --> OrderService
|
|||
|
|
MainSystem --> AuthService
|
|||
|
|
MainSystem --> ReportService
|
|||
|
|
MainSystem --> EmailService
|
|||
|
|
|
|||
|
|
%% 子系统内部连接
|
|||
|
|
OrderService --> InventoryService
|
|||
|
|
OrderService --> PricingService
|
|||
|
|
AuthService --> ProfileService
|
|||
|
|
AuthService --> PermissionService
|
|||
|
|
ReportService --> AnalyticsService
|
|||
|
|
ReportService --> DashboardService
|
|||
|
|
EmailService --> SMSGateway
|
|||
|
|
EmailService --> PushService
|
|||
|
|
|
|||
|
|
%% 子系统与数据存储连接
|
|||
|
|
OrderService --> DB
|
|||
|
|
InventoryService --> DB
|
|||
|
|
ProfileService --> DB
|
|||
|
|
PermissionService --> DB
|
|||
|
|
AnalyticsService --> DB
|
|||
|
|
|
|||
|
|
PricingService --> Cache
|
|||
|
|
AuthService --> Cache
|
|||
|
|
|
|||
|
|
EmailService --> LogStorage
|
|||
|
|
SMSGateway --> LogStorage
|
|||
|
|
PushService --> LogStorage
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 子系统交互流程图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
sequenceDiagram
|
|||
|
|
participant Client as 客户端
|
|||
|
|
participant Main as 主系统
|
|||
|
|
participant Order as 订单子系统
|
|||
|
|
participant User as 用户子系统
|
|||
|
|
participant Payment as 支付子系统
|
|||
|
|
participant Notify as 通知子系统
|
|||
|
|
participant DB as 数据库
|
|||
|
|
|
|||
|
|
Client->>Main: 请求创建订单
|
|||
|
|
Main->>User: 验证用户身份和权限
|
|||
|
|
User->>DB: 查询用户信息
|
|||
|
|
DB-->>User: 返回用户数据
|
|||
|
|
User-->>Main: 验证通过
|
|||
|
|
|
|||
|
|
Main->>Order: 创建订单请求
|
|||
|
|
Order->>DB: 查询库存
|
|||
|
|
DB-->>Order: 返回库存状态
|
|||
|
|
|
|||
|
|
alt 库存充足
|
|||
|
|
Order->>DB: 锁定库存
|
|||
|
|
Order->>Payment: 发起支付请求
|
|||
|
|
Payment->>DB: 创建支付记录
|
|||
|
|
DB-->>Payment: 支付记录创建成功
|
|||
|
|
Payment-->>Order: 支付已发起
|
|||
|
|
Order->>DB: 更新订单状态为"等待支付"
|
|||
|
|
Order-->>Main: 订单创建成功
|
|||
|
|
Main->>Notify: 发送订单确认通知
|
|||
|
|
Notify-->>Client: 推送订单确认消息
|
|||
|
|
else 库存不足
|
|||
|
|
Order-->>Main: 库存不足
|
|||
|
|
Main-->>Client: 返回错误信息
|
|||
|
|
end
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 子系统依赖关系图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph LR
|
|||
|
|
subgraph 基础服务层
|
|||
|
|
ConfigSvc[配置服务]
|
|||
|
|
LogSvc[日志服务]
|
|||
|
|
SecuritySvc[安全服务]
|
|||
|
|
CommonLib[公共库]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 核心业务层
|
|||
|
|
UserMgmt[用户管理子系统]
|
|||
|
|
ProductMgmt[产品管理子系统]
|
|||
|
|
OrderMgmt[订单管理子系统]
|
|||
|
|
PaymentMgmt[支付管理子系统]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 应用服务层
|
|||
|
|
API_Gateway[API网关]
|
|||
|
|
MobileApp[移动应用服务]
|
|||
|
|
WebPortal[Web门户服务]
|
|||
|
|
ReportSvc[报表服务]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph 集成层
|
|||
|
|
ExternalAPI[外部API集成]
|
|||
|
|
MessageQueue[消息队列]
|
|||
|
|
EventBus[事件总线]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%% 依赖关系
|
|||
|
|
UserMgmt --> ConfigSvc
|
|||
|
|
UserMgmt --> LogSvc
|
|||
|
|
UserMgmt --> SecuritySvc
|
|||
|
|
UserMgmt --> CommonLib
|
|||
|
|
|
|||
|
|
ProductMgmt --> ConfigSvc
|
|||
|
|
ProductMgmt --> LogSvc
|
|||
|
|
ProductMgmt --> CommonLib
|
|||
|
|
|
|||
|
|
OrderMgmt --> UserMgmt
|
|||
|
|
OrderMgmt --> ProductMgmt
|
|||
|
|
OrderMgmt --> LogSvc
|
|||
|
|
OrderMgmt --> ConfigSvc
|
|||
|
|
OrderMgmt --> CommonLib
|
|||
|
|
|
|||
|
|
PaymentMgmt --> OrderMgmt
|
|||
|
|
PaymentMgmt --> LogSvc
|
|||
|
|
PaymentMgmt --> SecuritySvc
|
|||
|
|
PaymentMgmt --> ConfigSvc
|
|||
|
|
|
|||
|
|
API_Gateway --> UserMgmt
|
|||
|
|
API_Gateway --> ProductMgmt
|
|||
|
|
API_Gateway --> OrderMgmt
|
|||
|
|
API_Gateway --> PaymentMgmt
|
|||
|
|
API_Gateway --> SecuritySvc
|
|||
|
|
|
|||
|
|
MobileApp --> API_Gateway
|
|||
|
|
WebPortal --> API_Gateway
|
|||
|
|
ReportSvc --> UserMgmt
|
|||
|
|
ReportSvc --> OrderMgmt
|
|||
|
|
ReportSvc --> ProductMgmt
|
|||
|
|
|
|||
|
|
UserMgmt --> ExternalAPI
|
|||
|
|
PaymentMgmt --> ExternalAPI
|
|||
|
|
OrderMgmt --> MessageQueue
|
|||
|
|
PaymentMgmt --> MessageQueue
|
|||
|
|
UserMgmt --> EventBus
|
|||
|
|
OrderMgmt --> EventBus
|
|||
|
|
ProductMgmt --> EventBus
|
|||
|
|
PaymentMgmt --> EventBus
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. C4模型系统上下文图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TD
|
|||
|
|
subgraph 系统边界
|
|||
|
|
System[企业资源规划系统]
|
|||
|
|
|
|||
|
|
subgraph 功能模块
|
|||
|
|
HR[人力资源管理]
|
|||
|
|
Finance[财务管理]
|
|||
|
|
Inventory[库存管理]
|
|||
|
|
Sales[销售管理]
|
|||
|
|
Production[生产管理]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
System --> HR
|
|||
|
|
System --> Finance
|
|||
|
|
System --> Inventory
|
|||
|
|
System --> Sales
|
|||
|
|
System --> Production
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%% 系统间关系
|
|||
|
|
HR <--> Finance: 薪资数据
|
|||
|
|
Sales <--> Finance: 订单数据
|
|||
|
|
Sales <--> Inventory: 库存查询
|
|||
|
|
Production <--> Inventory: 物料需求
|
|||
|
|
Production <--> Finance: 成本核算
|
|||
|
|
|
|||
|
|
%% 外部系统
|
|||
|
|
ExtCRM[外部CRM系统] <--> Sales: 客户数据
|
|||
|
|
ExtSupplier[供应商系统] <--> Inventory: 采购数据
|
|||
|
|
ExtBank[银行系统] <--> Finance: 支付结算
|
|||
|
|
|
|||
|
|
%% 用户
|
|||
|
|
HR_User[HR人员] --> HR
|
|||
|
|
Finance_User[财务人员] --> Finance
|
|||
|
|
Inventory_User[仓库人员] --> Inventory
|
|||
|
|
Sales_User[销售人员] --> Sales
|
|||
|
|
Prod_User[生产人员] --> Production
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 说明
|
|||
|
|
|
|||
|
|
以上子系统关系图展示了不同类型的系统间关系表示方法:
|
|||
|
|
|
|||
|
|
1. **系统上下文图**:展示了系统的整体架构,包括核心子系统、外部实体和数据存储之间的关系。适合高层次架构设计。
|
|||
|
|
|
|||
|
|
2. **子系统交互流程图**:使用时序图展示子系统之间的交互过程和消息传递顺序,适合描述业务流程中的系统协作。
|
|||
|
|
|
|||
|
|
3. **子系统依赖关系图**:展示了子系统之间的依赖关系,包括基础服务、核心业务、应用服务和集成层的层次结构。
|
|||
|
|
|
|||
|
|
4. **C4模型系统上下文图**:遵循C4模型方法论,展示了企业级系统中的子系统边界和它们之间的关系。
|
|||
|
|
|
|||
|
|
### Mermaid图表类型选择建议
|
|||
|
|
|
|||
|
|
对于展示子系统之间的关系,推荐使用以下Mermaid图表类型:
|
|||
|
|
|
|||
|
|
- **graph TD/LR**:适用于系统上下文图、依赖关系图等静态关系展示
|
|||
|
|
- **sequenceDiagram**:适用于展示子系统间的交互流程和消息传递
|
|||
|
|
- **flowchart**:适用于展示更复杂的业务流程和子系统协作
|
|||
|
|
- **classDiagram**:如果需要展示子系统的类结构和它们之间的关系
|
|||
|
|
|
|||
|
|
选择图表类型时,应根据具体需求考虑:是需要展示静态结构关系,还是动态交互过程;是需要高层次概览,还是详细的交互细节。
|