告别UML绘图烦恼:用AI轻松生成专业用例图
深度解析在线选课管理系统,手把手教你用PlantUML绘制标准用例图
为什么UML图让人如此头疼?
对于学生来说,编写毕业设计文档中的各种UML图是最让人头疼的事情之一,相信各位读者对此深有体会。同样,对于程序员而言,编写验收文档中的UML图也是一项艰巨的任务。
传统的UML绘图工具往往操作复杂,学习成本高,而且修改起来极其不便。但今天,我要向大家介绍一种全新的解决方案——使用自然语言描述需求,让AI自动生成专业的UML图!
实战演练:在线选课管理系统
让我们通过一个完整的实例,展示如何使用deepseek从需求描述到生成标准用例图的全过程。
🎓 学习收获
通过这个完整案例,你不仅学会了:
- ✅ 如何从需求描述中识别参与者和用例
- ✅ 如何分析用例间的包含和扩展关系
- ✅ 如何用PlantUML语法描述用例图
- ✅ 如何生成专业的UML可视化图表
更重要的是,你掌握了一种高效的UML设计方法——用自然语言描述需求,让AI协助完成技术实现。
🎯 系统需求概述
在线选课管理系统核心需求:
- 教师功能:选择本学期要教授的课程,每位教师最多只能上报4门课程
- 教务管理:协调确认教师课程,创建学期课程目录表并向学生公布
- 学生选课:每个学生最多选修4门课程;每门课程最多10人,最少3人
- 自动控制:人数达到10人时停止注册;选课结束后自动取消少于3人的课程
- 信息查询:教师可查询所教课程的学生花名册
- 数据维护:教务管理人员维护学生、教师和课程的信息
🔍 第一步:识别系统参与者
参与者(Actor)是指与系统交互的外部实体。通过分析需求,我们识别出4个主要参与者:
| 参与者 | 主要职责 |
|---|---|
| 学生 | 选修课程、查看课程目录 |
| 教师 | 申报授课课程、查询学生花名册 |
| 教务管理人员 | 维护信息、协调课程、发布目录 |
| 系统 | 自动执行业务规则(满员停选、人数不足取消) |
📋 第二步:定义系统用例
用例是系统为参与者提供的价值功能单元:
学生服务用例:
浏览课程目录- 查看可选课程列表选修课程- 选择要学习的课程查看我的选课- 管理个人选课记录
教师服务用例:
申报授课课程- 提交本学期授课意向查看我的授课课程- 管理教学任务查询学生花名册- 查看课程学生名单
管理服务用例:
维护学生信息- 管理学生基本信息维护教师信息- 管理教师基本信息维护课程信息- 管理课程库信息协调确认教师课程- 审核教师授课申请发布课程目录- 生成学期课程表
系统自动用例:
自动关闭已满课程- 人数达上限时关闭选课自动取消人数不足课程- 人数不足时自动取消
🔗 第三步:分析用例关系
包含关系(Include)
选修课程→浏览课程目录(选课前必须浏览)申报授课课程→浏览课程目录(申报前查看可选课程)
扩展关系(Extend)
选修课程←自动关闭已满课程(条件触发)选修课程←自动取消人数不足课程(条件触发)
🎨 第四步:生成PlantUML代码
基于以上分析,我们得到完整的PlantUML代码:
@startuml
left to right direction
skin rose
actor 学生
actor 教师
actor 教务管理人员
actor 系统 as System
usecase "浏览课程目录" as BrowseCatalog
usecase "选修课程" as RegisterCourse
usecase "查看我的选课" as ViewMyCourses
usecase "申报授课课程" as ApplyCourse
usecase "查看我的授课课程" as ViewMyTeaching
usecase "查询学生花名册" as ViewRoster
usecase "维护学生信息" as MaintainStudent
usecase "维护教师信息" as MaintainTeacher
usecase "维护课程信息" as MaintainCourse
usecase "协调确认教师课程" as ConfirmTeaching
usecase "发布课程目录" as PublishCatalog
usecase "自动关闭已满课程" as CloseFullCourse
usecase "自动取消人数不足课程" as CancelUnderEnrolled
学生 --> BrowseCatalog
学生 --> RegisterCourse
学生 --> ViewMyCourses
RegisterCourse .> BrowseCatalog : include
教师 --> BrowseCatalog
教师 --> ApplyCourse
教师 --> ViewMyTeaching
教师 --> ViewRoster
ApplyCourse .> BrowseCatalog : include
教务管理人员 --> MaintainStudent
教务管理人员 --> MaintainTeacher
教务管理人员 --> MaintainCourse
教务管理人员 --> ConfirmTeaching
教务管理人员 --> PublishCatalog
System --> CloseFullCourse
System --> CancelUnderEnrolled
RegisterCourse ..> CloseFullCourse : extends
RegisterCourse ..> CancelUnderEnrolled : extends
@enduml
第五步:可视化呈现
将上述代码复制到 PlantUML在线编辑器 中,即可生成专业的用例图:
同样方式实现的类图如下:
@startuml
skinparam groupInheritance 2
skinparam roundcorner 15
skinparam class {
BackgroundColor White
BorderColor #4A90D9
ArrowColor #4A90D9
}
title 在线选课管理系统 - 类图
' 实体类
class 用户 {
- 用户ID: String
- 姓名: String
- 邮箱: String
- 密码: String
+ 登录(): Boolean
+ 修改密码(): void
}
class 学生 {
- 学号: String
- 年级: String
- 专业: String
- 已选课程数: int
+ 选课(): Boolean
+ 退选(): Boolean
+ 查看已选课程(): List<课程>
}
class 教师 {
- 工号: String
- 职称: String
- 所属院系: String
- 已申报课程数: int
+ 申报课程(): Boolean
+ 撤销申报(): Boolean
+ 查询花名册(): List<学生>
}
class 教务管理员 {
- 管理员ID: String
- 权限级别: int
+ 维护用户信息(): void
+ 协调课程(): void
+ 发布课程目录(): void
+ 生成报表(): void
}
class 课程 {
- 课程ID: String
- 课程名称: String
- 课程代码: String
- 学分: int
- 课程描述: String
- 最大容量: int
- 最小开课人数: int
- 当前人数: int
- 状态: String
+ 检查容量(): Boolean
+ 更新状态(): void
+ 增加学生(): Boolean
+ 移除学生(): Boolean
}
class 选课记录 {
- 记录ID: String
- 选课时间: Date
- 状态: String
+ 创建选课记录(): void
+ 取消选课(): void
}
class 课程目录 {
- 学期: String
- 发布日期: Date
- 状态: String
+ 添加课程(): void
+ 移除课程(): void
+ 发布目录(): void
}
' 控制类
class 选课控制器 {
- 选课开始时间: Date
- 选课结束时间: Date
+ 处理选课请求(): Boolean
+ 处理退选请求(): Boolean
+ 验证选课条件(): Boolean
+ 自动关闭满员课程(): void
+ 自动取消人数不足课程(): void
}
class 课程管理控制器 {
+ 处理课程申报(): Boolean
+ 处理课程协调(): void
+ 更新课程状态(): void
+ 生成花名册(): List<学生>
}
' 关系定义
用户 <|-- 学生
用户 <|-- 教师
用户 <|-- 教务管理员
教师 "1" -- "*" 课程 : 教授 >
课程 "1" -- "*" 选课记录 : 拥有 >
学生 "1" -- "*" 选课记录 : 拥有 >
课程目录 "1" -- "*" 课程 : 包含 >
选课控制器 ..> 课程 : 依赖
选课控制器 ..> 学生 : 依赖
选课控制器 ..> 选课记录 : 依赖
课程管理控制器 ..> 课程 : 依赖
课程管理控制器 ..> 教师 : 依赖
课程管理控制器 ..> 教务管理员 : 依赖
' 约束条件注释
note top of 学生
**约束条件:**
- 最多选修4门课程
end note
note top of 教师
**约束条件:**
- 最多申报4门课程
end note
note top of 课程
**约束条件:**
- 每门课程最多10人
- 最少3人开课
- 状态包括:待确认、已发布、
选课中、已满员、已取消
end note
note top of 选课控制器
**业务规则:**
- 人数达到10人时停止注册
- 选课结束后自动取消
少于3人的课程
end note
@enduml