回答

收藏

plantuml绘制提示词

提示词工程 提示词工程 181 人阅读 | 0 人回复 | 2025-07-08

  1. PlantUML 常用图表示例代码
  2. 1. 时序图 (Sequence Diagram) 示例代码
  3. 时序图展示了对象之间交互的顺序。

  4. @startuml
  5. autonumber "<b>[00]"

  6. participant 用户 as User
  7. actor 系统 as System
  8. database 数据库 as DB

  9. User -> System: 登录请求 (用户名, 密码)
  10. activate System

  11. alt 验证成功
  12.     System -> DB: 查询用户信息 (用户名)
  13.     activate DB
  14.     DB --> System: 返回用户数据
  15.     deactivate DB
  16.     System --> User: 登录成功消息
  17. else 验证失败
  18.     System --> User: 登录失败消息
  19. end

  20. opt 登出操作
  21.     User -> System: 登出请求
  22.     activate System
  23.     System --> User: 登出确认
  24.     deactivate System
  25. end

  26. deactivate System
  27. @enduml

  28. 2. 活动图 (Activity Diagram) 示例代码
  29. 活动图展示了业务流程或操作的步骤顺序和条件分支。

  30. @startuml
  31. start

  32. :用户发起订单;
  33. if (有库存?) then (是)
  34.     :扣减库存;
  35.     fork
  36.         :处理支付;
  37.     fork again
  38.         :生成订单;
  39.     end fork
  40.     :通知用户订单成功;
  41. else (否)
  42.     :提示库存不足;
  43.     stop
  44. endif

  45. :完成订单;

  46. repeat
  47.     :查询物流状态;
  48.     backward: 物流更新;
  49. repeat while (订单未送达?) is (否) not (是)

  50. :用户确认收货;
  51. stop
  52. @enduml

  53. 3. 用例图 (Use Case Diagram) 示例代码
  54. 用例图描述了系统外部用户(参与者)与系统功能(用例)之间的关系。

  55. @startuml
  56. left to right direction

  57. actor 顾客 as Customer
  58. actor 管理员 as Admin

  59. package "在线购物系统" {
  60.     usecase (浏览商品) as Browse
  61.     usecase (添加商品到购物车) as AddToCart
  62.     usecase (下订单) as PlaceOrder
  63.     usecase (支付订单) as PayOrder
  64.     usecase (管理商品) as ManageProducts
  65.     usecase (管理用户) as ManageUsers
  66. }

  67. Customer --> Browse
  68. Customer --> AddToCart
  69. Customer --> PlaceOrder
  70. Customer --> PayOrder

  71. Admin --> ManageProducts
  72. Admin --> ManageUsers

  73. PlaceOrder .> PayOrder : <<include>>
  74. ManageProducts ..> ManageUsers : <<extend>>
  75. @enduml

  76. 4. 类图 (Class Diagram) 示例代码
  77. 类图展示了系统中类、接口以及它们之间静态结构和关系。

  78. @startuml
  79. class User {
  80.     - userId: String
  81.     - username: String
  82.     + email: String
  83.     --
  84.     + login(password: String): boolean
  85.     + logout(): void
  86. }

  87. class Order {
  88.     - orderId: String
  89.     - orderDate: Date
  90.     - totalAmount: double
  91.     --
  92.     + calculateTotal(): double
  93. }

  94. class Product {
  95.     - productId: String
  96.     - name: String
  97.     - price: double
  98.     - stock: int
  99.     --
  100.     + updateStock(quantity: int): void
  101. }

  102. User "1" -- "0..*" Order : places
  103. Order "1" -- "1..*" Product : contains >
  104. @enduml

  105. 5. 状态图 (State Diagram) 示例代码
  106. 状态图描述了对象在生命周期内可能经历的所有状态,以及状态之间的转换。

  107. @startuml
  108. scale 350 width

  109. [*] --> 空闲

  110. state 空闲 {
  111.     [*] --> 等待输入
  112.     等待输入 --> 处理中 : 用户操作
  113.     处理中 --> 等待输入 : 操作完成
  114. }

  115. state 处理中 {
  116.     选择请求 --> 执行任务 : [任务类型A]
  117.     选择请求 --> 错误处理 : [任务类型B]
  118.    
  119.     -- 并发状态 --
  120.     state 子任务A {
  121.         [*] --> 启动
  122.         启动 --> 运行中 : 初始化完成
  123.         运行中 --> 完成 : 任务A完成
  124.     }
  125.     ||
  126.     state 子任务B {
  127.         [*] --> 待命
  128.         待命 --> 进行中 : 接收数据
  129.         进行中 --> 待命 : 数据处理完毕
  130.     }
  131. }

  132. 处理中 --> 完成 : 所有任务完成
  133. 完成 --> [*]
  134. 错误处理 --> 空闲 : [用户重试] / 重置
  135. @enduml
复制代码


分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

148 积分
26 主题
热门推荐