UML Presentation.md 15 KB

@startuml
class 用户类 {
    - 用户ID : String
    - 用户名 : String
    - 真实姓名 : String
    - 性别 : String
    - 年龄 : Number
    - 密码 : String
    - 更新时间 : Date
    - 注册时间 : Date
    + 注册() : void
    + 登录() : boolean
    + 更新个人信息() : void
    + 退出登录() : void
    + 填写问卷() : String
    + 上传文件() : void
    + 提问() : String
}

class 问题类 {
    - 问题ID : String
    - 更新时间 : Date
    - 问题描述 : String
    - 创建时间 : Date
    - 问卷ID : String
    - 问题选项 : Array
    - 问题查重ID : String
    + 修改问题() : void
    + 查询问题() : void
    + 删除问题() : void
}

class 调查问卷类 {
    - 问卷ID : String
    - 问卷标题 : String
    - 创建时间 : Date
    - 更新时间 : Date
    - 状态 : String
    - 问题 : Array
    + 修改问卷() : void
    + 查询问卷() : void
    + 删除问卷() : void
}

class 问卷填写结果类 {
    - 用户ID : String
    - 回答 : Array
    - 结果ID : String
    - 更新时间 : Date
    - 创建时间 : Date
    - 问卷ID : String
}

class 兴趣问卷填写类 {
    - 问卷ID : String
    - 用户ID : String
    + 加载问卷() : void
    + 保存用户答案() : void
    + 更新问卷() : void
    + 分析结果() : void
    + 显示结果() : String
    + 填写用户信息() : void
}

class 兴趣发掘类 {
    - 用户ID : String
    - 问答ID : Number
    - 智能体名称 : String
    - 智能体类别 : String
    - 智能体描述 : String
    - 智能体头像 : String
    - 提示词 : String
    + 分析兴趣() : void
    + 恢复分析() : void
    + 生成思维导图() : void
    + 保存思维导图() : void
    + 保存对话内容() : void
}

class 学习思维导图类 {
    - 导图ID : String
    - 用户ID : String
    - 创建时间 : Date
    - 更新时间 : Date
    - 导图标题 : String
    - 导图内容 : String
    + 修改导图() : void
    + 显示导图() : void
    + 删除导图() : void
}

class 社区类 {
    - 社区ID : String
    - 社区名称 : String
    - 社区规则 : String
    - 帖子 : Array
    + 加载帖子() : void
    + 搜索帖子() : void
    + 上传文件() : void
    + 创建帖子() : void
    + 修改帖子() : void
    + 删除帖子() : void
    + 评论帖子() : void
    + 点赞帖子() : void
    + 收藏帖子() : void
}

class 评论类 {
    - 评论ID : String
    - 帖子ID : String
    - 用户ID : String
    - 用户名称 : String
    - 用户头像 : String
    - 更新时间 : Date
    - 创建时间 : Date
    - 点赞数量 : int
    - 评论内容 : String
    + 创建评论() : void
    + 修改评论() : void
    + 删除评论() : void
}

class 帖子类 {
    - 帖子ID : String
    - 帖子标题 : String
    - 作者ID : String
    - 作者名称 : String
    - 创建时间 : Date
    - 作者头像 : String
    - 帖子图片 : String
    - 点赞数量 : int
    - 收藏数量 : int
    - 评论ID : Array
    - 评论数量 : int
    - 正文内容 : String
    - 分类 : Array
    - 简要描述 : String
    + 创建帖子() : void
    + 修改帖子() : void
    + 分享帖子() : void
    + 删除帖子() : void
}

class 测试结果分析类 {
    - 用户ID : String
    - 兴趣标签 : Array
    - 更新时间 : Date
    - 创建时间 : Date
    - 调查问卷ID : String
    - 分析状态 : String
    - 分析结果内容 : String
    + 启动分析() : void
    + 获取分析结果() : String
    + 重置分析任务() : void
}

class 社区作品展示与互动类 {
    - 帖子标题 : String
    - 作者名称 : String
    - 作者头像 : String
    - 正文图片 : String
    - 点赞数量 : int
    - 收藏数量 : int
    - 评论内容 : Array
    - 正文内容 : String
    - 分类 : Array
    + 发表评论() : void
    + 修改评论() : void
    + 删除评论() : void
    + 点赞评论() : void
    + 点赞帖子() : void
    + 收藏帖子() : void
    + 分享帖子() : void
}

class 问题解决类 {
    - 用户ID : String
    - 问答ID : Number
    - 用户输入内容 : String
    - 解决方案内容 : String
    - 智能体类别 : String
    - 提示词 : String
    + 解决问题() : void
    + 拓展内容() : void
    + 保存对话内容() : void
}

用户类 "1" -- "*" 问卷填写结果类 : 填写问卷产生结果
用户类 "1" -- "*" 兴趣问卷填写类 : 参与兴趣问卷填写
用户类 "1" -- "*" 兴趣发掘类 : 发起兴趣发掘
用户类 "1" -- "*" 学习思维导图类 : 操作学习思维导图
用户类 -- 社区类 : 参与社区活动
用户类 "1" -- "*" 评论类 : 发表评论
用户类 "1" -- "*" 帖子类 : 创建帖子
用户类 "1" -- "*" 测试结果分析类 : 产生测试结果分析
用户类 "1" -- "*" 问题解决类 : 进行问题解决
调查问卷类 "1" -- "*" 问题类 : 包含问题
调查问卷类 "1" -- "*" 问卷填写结果类 : 对应问卷填写结果
调查问卷类 "1" -- "*" 兴趣问卷填写类 : 作为兴趣问卷填写对象
兴趣发掘类 --> 学习思维导图类 : 生成并保存思维导图
社区类 "1" -- "*" 帖子类 : 包含帖子
帖子类 "1" -- "*" 评论类 : 拥有评论
社区作品展示与互动类 --> 帖子类 : 展示和操作帖子信息
社区作品展示与互动类 --> 评论类 : 展示和操作评论信息
问题解决类 --> 问题类 : 依赖问题信息解决问题
调查问卷类 "1" -- "*" 测试结果分析类 : 对应测试结果分析
@enduml

时序图

一、用户参与兴趣测试并获取分析结果时序图

@startuml
actor 用户
participant 兴趣问卷填写类
participant 问卷填写结果类
participant 测试结果分析类

用户 -> 兴趣问卷填写类: 加载问卷()
兴趣问卷填写类 -> 兴趣问卷填写类: 加载问卷数据
兴趣问卷填写类 -> 用户: 显示问卷
用户 -> 兴趣问卷填写类: 填写用户信息()
用户 -> 兴趣问卷填写类: 保存用户答案()
兴趣问卷填写类 -> 问卷填写结果类: 保存回答
问卷填写结果类 -> 兴趣问卷填写类: 返回保存成功
兴趣问卷填写类 -> 测试结果分析类: 分析结果()
测试结果分析类 -> 测试结果分析类: 执行分析任务
测试结果分析类 -> 兴趣问卷填写类: 返回分析结果
兴趣问卷填写类 -> 用户: 显示结果()
@enduml

二、用户进行兴趣发掘并生成学习思维导图及学习思维导图展示时序图

@startuml
actor 用户
participant 兴趣发掘类
participant 学习思维导图类

用户 -> 兴趣发掘类: 分析兴趣()
兴趣发掘类 -> 兴趣发掘类: 执行兴趣分析
兴趣发掘类 -> 兴趣发掘类: 生成思维导图()
兴趣发掘类 -> 学习思维导图类: 保存思维导图(导图数据)
学习思维导图类 -> 学习思维导图类: 保存导图数据
学习思维导图类 -> 兴趣发掘类: 返回保存成功
兴趣发掘类 -> 用户: 显示思维导图()
兴趣发掘类 -> 学习思维导图类: 获取思维导图()
学习思维导图类 -> 兴趣发掘类: 返回思维导图数据
兴趣发掘类 -> 用户: 展示思维导图数据
@enduml

三、用户进入社区查看帖子并进行点赞评论时序图

@startuml
actor 用户
participant 社区类
participant 帖子类
participant 评论类

用户 -> 社区类: 加载帖子()
社区类 -> 帖子类: 获取帖子列表
帖子类 -> 社区类: 返回帖子列表数据
社区类 -> 用户: 显示帖子列表
用户 -> 帖子类: 选择帖子
帖子类 -> 用户: 显示帖子详情
用户 -> 帖子类: 点赞帖子()
帖子类 -> 帖子类: 更新点赞数量
帖子类 -> 用户: 返回点赞成功
用户 -> 评论类: 创建评论(评论内容)
评论类 -> 评论类: 保存评论数据
评论类 -> 帖子类: 更新评论列表
帖子类 -> 用户: 返回评论成功
@enduml

四、用户进行问题解答并生成对应解答方案以及同类型拓展时序图

@startuml
actor 用户
participant 问题解决类

用户 -> 问题解决类: 提问(用户输入内容)
问题解决类 -> 问题解决类: 解决问题()
问题解决类 -> 问题解决类: 根据智能体类别和提示词处理问题
问题解决类 -> 问题解决类: 生成解决方案内容
问题解决类 -> 用户: 返回解决方案内容
问题解决类 -> 问题解决类: 拓展内容()
问题解决类 -> 问题解决类: 生成拓展内容
问题解决类 -> 用户: 返回拓展内容
问题解决类 -> 问题解决类: 保存对话内容(用户输入内容, 解决方案内容, 拓展内容)
问题解决类 -> 问题解决类: 执行保存操作
@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

用例图

@startuml
actor 用户

package "用户管理" {
    usecase "注册" as UC1
    usecase "登录" as UC2
    usecase "更新个人信息" as UC3
    usecase "退出登录" as UC4
}

package "问卷管理" {
    usecase "填写问卷" as UC5
    usecase "修改问卷" as UC11
    usecase "查询问卷" as UC12
    usecase "删除问卷" as UC13
    usecase "修改问题" as UC8
    usecase "查询问题" as UC9
    usecase "删除问题" as UC10
}

package "兴趣问卷流程" {
    usecase "加载问卷" as UC14
    usecase "保存用户答案" as UC15
    usecase "更新问卷" as UC16
    usecase "分析结果" as UC17
    usecase "显示结果" as UC18
    usecase "填写用户信息" as UC19
}

package "兴趣发掘流程" {
    usecase "分析兴趣" as UC20
    usecase "恢复分析" as UC21
    usecase "生成思维导图" as UC22
    usecase "保存思维导图" as UC23
    usecase "保存对话内容" as UC24
}

package "学习思维导图管理" {
    usecase "修改导图" as UC25
    usecase "显示导图" as UC26
    usecase "删除导图" as UC27
}

package "社区管理" {
    usecase "加载帖子" as UC28
    usecase "搜索帖子" as UC29
    usecase "上传文件(社区)" as UC30
    usecase "创建帖子" as UC31
    usecase "修改帖子" as UC32
    usecase "删除帖子" as UC33
    usecase "评论帖子" as UC34
    usecase "点赞帖子" as UC35
    usecase "收藏帖子" as UC36
}

package "评论管理" {
    usecase "创建评论" as UC37
    usecase "修改评论" as UC38
    usecase "删除评论" as UC39
}

package "测试结果分析管理" {
    usecase "启动分析" as UC40
    usecase "获取分析结果" as UC41
    usecase "重置分析任务" as UC42
}

package "社区作品展示与互动管理" {
    usecase "发表评论" as UC43
    usecase "修改评论" as UC44
    usecase "删除评论" as UC45
    usecase "点赞评论" as UC46
    usecase "点赞帖子" as UC47
    usecase "收藏帖子" as UC48
    usecase "分享帖子" as UC49
}

package "问题解决管理" {
    usecase "解决问题" as UC50
    usecase "拓展内容" as UC51
    usecase "保存对话内容" as UC52
}

用户 -- UC1
用户 -- UC2
用户 -- UC3
用户 -- UC4
用户 -- UC5
用户 -- UC8
用户 -- UC9
用户 -- UC10
用户 -- UC11
用户 -- UC12
用户 -- UC13
用户 -- UC14
用户 -- UC15
用户 -- UC16
用户 -- UC17
用户 -- UC18
用户 -- UC19
用户 -- UC20
用户 -- UC21
用户 -- UC22
用户 -- UC23
用户 -- UC24
用户 -- UC25
用户 -- UC26
用户 -- UC27
用户 -- UC28
用户 -- UC29
用户 -- UC30
用户 -- UC31
用户 -- UC32
用户 -- UC33
用户 -- UC34
用户 -- UC35
用户 -- UC36
用户 -- UC37
用户 -- UC38
用户 -- UC39
用户 -- UC40
用户 -- UC41
用户 -- UC42
用户 -- UC43
用户 -- UC44
用户 -- UC45
用户 -- UC46
用户 -- UC47
用户 -- UC48
用户 -- UC49
用户 -- UC50
用户 -- UC51
用户 -- UC52
@enduml
@startuml
[开始] --> [显示问卷说明] --> [填写基本信息] --> [加载问卷问题]
    --> [显示问卷问题] --> [选择答案] --> [保存进度?]
    -->|是|--> [保存进度] --> [提交问卷]
    -->|否|--> [提交问卷]
    --> [验证所有问题是否已回答?]
    -->|否|--> [提示用户完成所有问题] --> [返回显示问卷问题]
    -->|是|--> [分析结果] --> [显示分析结果] --> [结束]
@enduml