@startuml
class 用户类 {
- 用户ID : String
- 用户名 : String
- 密码 : String
- 个人信息 : String
- 注册时间 : Date
+ 注册() : void
+ 登录() : boolean
+ 更新个人信息() : void
+ 提问(String) : void
+ 分享成果(Result) : void
}
class 问题类 {
- 问题ID : String
- 问题描述 : String
- 问题选项 : List<String>
+ 问题修改() : void
+ 问题查询() : void
}
class 学习进度类 {
- 进度ID : String
- 用户 : 用户类
- 学习时间 : Date
- 学习进度 : double
- 学习建议 : String
- 学习状态 : String
+ 记录进度() : void
+ 获取进度() : String
+ 提醒学习() : void
}
class 学习资源类 {
- 资源ID : String
- 资源类型 : String
- 资源名称 : String
- 资源内容 : Object
+ 上传资源() : void
+ 下载资源() : void
+ 展示资源() : void
+ 修改资源() : void
+ 删除内容() : void
}
class 社区类 {
- 社区ID : String
- 社区名称 : String
- 社区规则 : String
- 帖子 : List<帖子类>
+ 创建帖子(帖子类) : void
+ 修改帖子(帖子类) : void
+ 删除帖子(帖子类) : void
+ 评论帖子(帖子类, 评论类) : void
+ 点赞帖子(帖子类) : void
+ 收藏帖子(帖子类) : void
}
class 会员类 {
- 会员ID : String
- 用户 : 用户类
- 会员有效期 : Date
- 特权信息 : String
+ 会员注册() : void
+ 验证会员() : boolean
+ 会员续费() : void
}
class 广告类 {
- 广告ID : String
- 广告内容 : String
- 广告投放位置 : String
- 投放时间 : Date
- 投放目标 : String
+ 创建广告() : void
+ 广告投放() : void
+ 广告效果统计() : void
}
class 评论类 {
- 评论ID : String
- 帖子ID : String
- 用户ID : String
- 点赞数量 : int
- 评论内容 : String
+ 创建评论() : void
+ 修改评论() : void
+ 删除评论() : void
}
class 数据类 {
- 数据ID : int
- 数据类型 : String
- 数据名称 : String
- 数据内容 : Object
+ 数据收集() : void
+ 数据存储() : void
+ 数据分析() : void
+ 数据脱敏() : void
}
class 帖子类 {
- 帖子ID : String
- 用户ID : String
- 点赞数量 : int
- 收藏数量 : int
- 评论内容 : List<评论类>
- 正文内容 : String
+ 创建帖子(帖子类) : void
+ 修改帖子(帖子类) : void
+ 分享帖子(帖子类) : void
+ 删除帖子(帖子类) : void
}
class 测试结果分析类 {
- 分析任务ID : String
- 分析状态 : String
- 分析结果数据 : 数据类
- 分析开始时间 : Date
- 分析结束时间 : Date
+ 启动分析() : void
+ 获取分析结果() : 数据类
+ 更新分析状态() : void
+ 重置分析任务() : void
}
class 兴趣测试类 {
- 测试ID : String
- 测试问题 : List<问题类>
- 测试名称 : String
- 所属用户ID : String
- 测试创建时间 : Date
- 测试状态 : String
- 测试结果记录 : String
+ 开始测试() : void
+ 收集答案() : void
+ 获取测试问题() : List<问题类>
+ 获取所属用户ID() : String
+ 更新测试状态() : void
+ 保存测试结果() : void
}
class 学习资源推荐类 {
- 推荐任务ID : String
- 目标用户ID : String
- 资源推荐列表 : List<学习资源类>
- 推荐策略名称 : String
- 推荐时间 : Date
+ 启动推荐() : void
+ 获取推荐资源列表() : List<学习资源类>
+ 更新推荐策略() : void
+ 添加推荐资源() : void
+ 重置推荐任务() : void
}
class 学习资源管理类 {
- 资源管理任务ID : String
- 资源内容 : List<学习资源类>
- 资源分类列表 : List<String>
- 资源更新时间 : Date
- 资源操作日志 : String
- 资源索引 : Map<String, 学习资源类>
+ 修改资源() : void
+ 删除资源() : void
+ 添加资源() : void
+ 查询资源() : List<学习资源类>
+ 获取资源分类() : List<String>
+ 查看资源操作日志() : String
}
class 学习进度跟踪类 {
- 跟踪任务ID : String
- 关联用户ID : String
- 课程学习进度列表 : List<学习进度类>
- 进度更新时间 : Date
- 学习计划 : String
- 进度预警阈值 : int
- 预警信息列表 : List<String>
+ 初始化跟踪() : void
+ 记录进度() : void
+ 获取学习进度() : List<课程学习进度类>
+ 更新学习计划() : void
+ 获取预警信息() : List<String>
+ 清除预警信息() : void
}
class 社区互动类 {
- 互动任务ID : String
- 社区ID : String
- 帖子列表 : List<帖子类>
- 用户互动记录 : List<String>
- 热门帖子阈值 : int
- 热门帖子列表 : List<帖子类>
- 互动时间 : Date
+ 发布帖子() : void
+ 评论帖子() : void
+ 点赞帖子() : void
+ 收藏帖子() : void
+ 获取帖子列表() : List<帖子类>
+ 获取热门帖子列表() : List<帖子类>
+ 获取用户互动记录() : List<String>
}
class 兴趣测试界面类 {
- 界面ID : String
- 当前测试任务ID : String
- 用户答案列表 : List<String>
- 界面状态 : String
- 测试开始时间 : Date
+ 初始化界面() : void
+ 显示测试问题() : void
+ 接收用户答案() : void
+ 提交测试结果() : void
+ 获取界面状态() : String
}
class 学习资源推荐展示 {
- 展示区域ID : String
- 推荐任务ID : String
- 资源展示列表 : List<学习资源类>
- 用户交互记录 : List<String>
- 展示更新时间 : Date
+ 初始化展示() : void
+ 更新展示资源() : void
+ 记录用户交互() : void
+ 获取展示资源列表() : List<学习资源类>
}
class 学习资源上传类 {
- 任务ID : String
- 上传文件列表 : List<学习资源类>
- 上传进度列表 : List<Integer>
- 上传状态 : String
+ 初始化上传() : void
+ 添加上传文件() : void
+ 开始上传() : void
+ 暂停上传() : void
+ 恢复上传() : void
+ 获取上传进度() : List<Integer>
+ 获取上传状态() : String
}
class 学习资源下载类 {
- 任务ID : String
- 下载资源链接列表 : List<String>
- 下载进度列表 : List<Integer>
- 下载状态 : String
+ 初始化下载() : void
+ 添加下载资源链接() : void
+ 开始下载() : void
+ 暂停下载() : void
+ 恢复下载() : void
+ 获取下载进度() : List<Integer>
+ 获取下载状态() : String
}
class 学习计划展示类 {
- 展示ID : String
- 关联用户ID : String
- 学习计划数据 : List<数据类>
- 展示格式 : String
- 进度标记列表 : List<学习进度类>
- 展示更新时间 : Date
+ 初始化展示() : void
+ 更新展示数据() : void
+ 切换展示格式() : void
+ 标记学习进度() : void
+ 获取学习计划数据()
}
class 社区作品展示与互动 {
- 展示区域ID : String
- 社区ID : String
- 作品列表 : List<帖子类>
- 展示排序方式 : String
- 用户互动记录 : List<String>
- 展示更新时间 : Date
+ 初始化展示() : void
+ 更新展示作品() : void
+ 评论作品() : void
+ 收藏作品() : void
+ 获取作品列表() : List<帖子类>
+ 切换展示排序() : void
}
'聚合关系
用户类 "1" *-- "0..*" 学习进度类
用户类 "1" *-- "0..*" 帖子类
用户类 "1" *-- "0..*" 评论类
用户类 "1" *-- "0..*" 会员类
问题类 "1" *-- "0..*" 兴趣测试类
学习资源类 "1" *-- "0..*" 学习资源管理类
学习资源类 "1" *-- "0..*" 学习资源推荐类
帖子类 "1" *-- "0..*" 社区类
帖子类 "1" *-- "0..*" 社区互动类
评论类 "1" *-- "0..*" 帖子类
'组合关系
学习进度跟踪类 "1" -- "0..*" 学习进度类 : 包含
社区互动类 "1" -- "0..*" 帖子类 : 包含
社区互动类 "1" -- "0..*" 评论类 : 包含
学习资源上传类 "1" -- "0..*" 学习资源类 : 包含
学习资源下载类 "1" -- "0..*" 学习资源类 : 包含
学习计划展示类 "1" -- "0..*" 数据类 : 包含
学习计划展示类 "1" -- "0..*" 学习进度类 : 包含
@enduml
@startuml
actor 用户
boundary 兴趣测试界面
control 兴趣测试
control 测试结果分析层
用户 -> 兴趣测试界面: 请求开始测试
兴趣测试界面 -> 兴趣测试界面: 初始化界面()
兴趣测试界面 -> 兴趣测试: 获取测试问题()
兴趣测试 -> 兴趣测试界面: 返回测试问题列表
兴趣测试界面 -> 兴趣测试界面: 显示测试问题()
用户 -> 兴趣测试界面: 回答问题
兴趣测试界面 -> 兴趣测试界面: 接收用户答案()
兴趣测试界面 -> 兴趣测试: 收集答案()
兴趣测试 -> 兴趣测试: 更新测试状态()
兴趣测试 -> 兴趣测试界面: 提示已完成所有问题回答
兴趣测试界面 -> 测试结果分析层: 提交测试结果()
测试结果分析层 -> 测试结果分析层: 启动分析()
测试结果分析层 -> 测试结果分析层: 获取分析结果()
测试结果分析层 -> 兴趣测试: 保存测试结果()
兴趣测试 -> 兴趣测试界面: 显示测试结果
兴趣测试界面 -> 用户: 展示测试结果
@enduml
@startuml
actor 用户
control 学习资源推荐
boundary 学习资源推荐展示
用户 -> 学习资源推荐: 进入学习页面(触发推荐)
学习资源推荐 -> 学习资源推荐: 启动推荐()
学习资源推荐 -> 学习资源推荐: 获取推荐资源列表()
学习资源推荐 -> 学习资源推荐展示: 传递推荐资源列表
学习资源推荐展示 -> 学习资源推荐展示: 初始化展示()
学习资源推荐展示 -> 用户: 展示推荐资源
用户 -> 学习资源推荐展示: 与推荐资源交互(如点击查看详情等)
学习资源推荐展示 -> 学习资源推荐展示: 记录用户交互()
@enduml
@startuml
actor 用户
boundary 学习资源上传
control 学习资源管理
用户 -> 学习资源上传: 选择要上传的资源
学习资源上传 -> 学习资源上传: 初始化上传()
学习资源上传 -> 学习资源上传: 添加上传文件()
学习资源上传 -> 学习资源管理: 开始上传()
学习资源管理 -> 学习资源管理: 添加资源()
学习资源管理 -> 学习资源上传: 返回上传进度及状态更新
学习资源上传 -> 学习资源上传: 更新上传进度显示
学习资源上传 -> 用户: 展示上传进度
学习资源管理 -> 学习资源上传: 上传完成通知
学习资源上传 -> 用户: 提示上传成功
@enduml
@startuml
actor 用户
boundary 社区作品展示与互动
control 社区互动
用户 -> 社区作品展示与互动: 编写帖子内容并点击发布
社区作品展示与互动 -> 社区互动: 发布帖子()
社区互动 -> 社区互动: 添加帖子到帖子列表
社区互动 -> 社区作品展示与互动: 返回发布成功及更新后的帖子列表
社区作品展示与互动 -> 社区作品展示与互动: 更新展示作品()
社区作品展示与互动 -> 社区作品展示与互动: 展示新发布的帖子
用户 -> 社区作品展示与互动: 对帖子进行点赞操作
社区作品展示与互动 -> 社区互动: 点赞帖子()
社区互动 -> 社区互动: 更新帖子点赞数及热门帖子列表(若满足条件)
社区互动 -> 社区作品展示与互动: 返回更新后的点赞数等信息
社区作品展示与互动 -> 社区作品展示与互动: 更新展示点赞数
@enduml
@startuml
actor 用户
boundary 学习计划展示
control 学习进度跟踪
用户 -> 学习计划展示: 进入学习计划展示页面
学习计划展示 -> 学习计划展示: 初始化展示()
学习计划展示 -> 学习进度跟踪: 请求获取学习计划数据
学习进度跟踪 -> 学习进度跟踪: 获取学习计划数据()
学习进度跟踪 -> 学习计划展示: 返回学习计划数据
学习计划展示 -> 学习计划展示: 更新展示数据()
学习计划展示 -> 用户: 展示学习计划详情(含进度标记等)
用户 -> 学习计划展示: 完成部分学习任务,触发进度更新
学习计划展示 -> 学习计划展示: 标记学习进度()
学习计划展示 -> 学习进度跟踪: 传递进度更新信息
学习进度跟踪 -> 学习进度跟踪: 更新学习计划相关信息
学习进度跟踪 -> 学习计划展示: 返回更新后的学习计划数据
学习计划展示 -> 学习计划展示: 更新展示数据()
学习计划展示 -> 用户: 展示更新后的学习计划详情
@enduml
@startuml
actor 用户
boundary 学习资源下载
control 学习资源管理
用户 -> 学习资源下载: 选择要下载的资源
学习资源下载 -> 学习资源下载: 初始化下载()
学习资源下载 -> 学习资源下载: 添加下载资源链接()
学习资源下载 -> 学习资源管理: 开始下载()
学习资源管理 -> 学习资源管理: 准备下载资源(验证权限等)
学习资源管理 -> 学习资源下载: 返回下载进度更新信息
学习资源下载 -> 学习资源下载: 更新下载进度显示
学习资源下载 -> 用户: 展示下载进度
学习资源管理 -> 学习资源下载: 下载完成通知
学习资源下载 -> 用户: 提示下载成功并提供资源保存路径(或自动打开等操作)
@enduml
@startuml
[*] --> 未登录
未登录 --> 登录中 : 用户输入用户名和密码,点击登录按钮
登录中 --> 已登录 : 验证通过
登录中 --> 未登录 : 验证失败(用户名或密码错误等)
已登录 --> 已注销 : 用户点击注销按钮
已注销 --> 未登录
@enduml
(二)学习资源状态图
@startuml
[*] --> 资源未上传
资源未上传 --> 资源上传中 : 用户发起资源上传操作
资源上传中 --> 资源已上传 : 上传完成
资源上传中 --> 资源未上传 : 上传失败(网络问题、权限不足等)
资源已上传 --> 资源展示中 : 符合展示条件,被推荐展示
资源展示中 --> 资源已删除 : 执行删除操作
资源已删除 --> 资源未上传
资源已上传 --> 资源修改中 : 用户发起资源修改操作
资源修改中 --> 资源已上传 : 修改完成
资源修改中 --> 资源已上传 : 修改失败(格式不符、权限问题等)
@enduml
(三)帖子状态图
@startuml
[*] --> 帖子未发布
帖子未发布 --> 帖子发布中 : 用户编写内容,点击发布按钮
帖子发布中 --> 帖子已发布 : 发布成功
帖子发布中 --> 帖子未发布 : 发布失败(违反社区规则、系统故障等)
帖子已发布 --> 帖子正常 : 无异常情况
帖子正常 --> 帖子被修改 : 用户发起修改操作
帖子被修改 --> 帖子正常 : 修改完成
帖子正常 --> 帖子被删除 : 用户或管理员执行删除操作
帖子被删除 --> 帖子未发布
帖子正常 --> 帖子热门 : 满足热门条件(点赞、评论等达到阈值)
帖子热门 --> 帖子正常 : 热度下降,不再满足热门条件
@enduml
@startuml
start
:用户进入兴趣测试界面;
:初始化界面;
:请求获取测试问题;
:返回测试问题列表;
:显示测试问题;
while (所有问题回答完毕) is (true)
:用户->兴趣测试界面类: 回答问题;
:接收用户答案;
:传递用户答案,收集答案;
end while
:更新测试状态;
:提交测试结果;
:传递结果,请求启动分析;
:启动分析;
:获取分析结果;
:返回分析结果;
:保存测试结果;
:通知展示测试结果;
:展示测试结果;
stop
@enduml
@startuml
start
:用户选择要上传的学习资源;
:初始化上传;
:添加上传文件;
:开始上传;
while (上传未完成) is (true)
:获取上传进度;
:更新上传进度显示;
end while
:获取上传状态;
if (上传成功) then (true)
:提示用户上传成功;
else (false)
:提示用户上传失败及原因;
endif
stop
@enduml
@startuml
start
:用户进入社区,编写帖子内容;
:发布帖子;
:创建帖子;
:获取帖子列表;
:更新展示作品;
:展示帖子列表给用户;
while (用户进行互动操作) is (true)
if (用户点赞帖子) then (true)
:点赞帖子;
else if (用户评论帖子) then (true)
:评论帖子;
else if (用户收藏帖子) then (true)
:收藏帖子;
endif
:获取热门帖子列表;
:更新展示作品;
:展示更新后的帖子列表给用户;
end while
stop
@enduml