UML 软件分析设计与建模大作业 · 完整项目仓库
本仓库包含「启航AI」大学生职业生涯规划系统的 全部开发产物:源代码、四次迭代的设计文档与UML模型、成果汇报材料,以及课程案例教程。
「启航AI」是一套面向在校大学生的智能职业生涯规划系统。系统依托大语言模型(LLM),通过多维度心理测评生成精准的用户画像,并结合行业数据为用户提供个性化的职业规划方案,覆盖从自我认知到求职落地的完整链路。
| 模块 | 说明 |
|---|---|
| 登录认证 | 用户名密码登录,Token 认证机制 |
| 用户信息 | 学校/专业/GPA + 实习/项目/竞赛经历 CRUD |
| 用户画像 | MBTI 性格测试 / 霍兰德职业兴趣 / 胜任力评估 + 雷达图 |
| 招聘信息 | 20 条大厂岗位数据,支持筛选与收藏 |
| 职业规划 | 职业规划时间轴、就业方向推荐、岗位匹配、技能提升建议 |
| 模拟面试 | AI 驱动的多轮对话面试 + 评估报告 |
| 简历优化 | 上传简历 → AI 优化改写 → 三栏对比 → 评分 |
| 系统管理 | 用户管理、数据统计看板、系统日志 |
- 前端:Vue 3 + Vite + TypeScript + Pinia + Element Plus + ECharts
- 后端:Django 4.x + Django REST Framework + SQLite
- 大模型:Mock 模式(内置丰富模拟回复)/ 支持接入任意 OpenAI 兼容 API
UML-Major-Project/
│
├── qihang-ai-demo/ # 🖥️ 源代码(仅是demo)
│ ├── backend/ # Django 后端
│ ├── frontend/ # Vue 3 前端
│ └── README.md # 代码项目说明
│
├── 第一次迭代0403——用例文本_用例图_领域模型/ # 📋 第一次迭代(4月3日)
│ ├── 设计文档0403——第一次汇报.docx
│ ├── 基于Web端的大学生职业规划系统--启航AI.pptx
│ ├── FURPS+ 领域模型.md
│ ├── 用例图/ # 4 张用例图(用户/档案/规划/管理)
│ └── 领域模型 v1/ # 3 张领域模型图
│
├── 第二次迭代0424——用例模块更新_操作契约_逻辑架构和UML包图/ # 📋 第二次迭代(4月24日)
│ ├── 设计文档0424——第二次汇报.docx
│ ├── 职业生涯规划模块迭代设计说明_用例_操作契约.docx
│ ├── 第二次汇报.pptx
│ └── 逻辑架构和包图/ # 逻辑架构图 + 包图
│
├── 第三次迭代0529——成果汇报_演讲稿_7种图/ # 📋 第三次迭代(5月29日)
│ ├── 启航AI_软件建模设计文档_v3.2.docx
│ ├── 启航AI_汇报演讲稿.md
│ ├── 启航AI——大学生职业生涯规划系统成果汇报.pptx
│ ├── UML图/ # SSD、活动图、状态图
│ └── StarUML模型文件/ # 10 个 .mdj 模型 + 导出图
│
├── 第四次迭代0531——两大设计模式(GRASP+GoF)/ # 📋 第四次迭代(5月31日)
│ ├── 启航AI_软件建模设计文档_v4.0.docx
│ └── 启航AI_软件建模设计文档_v4.0.pdf
│
└── 软件分析设计与建模案例教程.pdf # 📚 课程参考教程
完成系统的需求分析,产出用例文本和初始领域模型。
产出物:
- 用例图 ×4:用户模块、用户档案模块、职业发展规划模块、系统信息库与管理模块
- 领域模型 ×3:学生画像与规划建议、平台运营、招聘推荐与优化
- FURPS+ 需求分析文档
- 汇报 PPT
细化核心模块的用例描述,补充操作契约,建立逻辑架构。
产出物:
- 职业生涯规划模块迭代设计说明(含用例更新与操作契约)
- 逻辑架构图 + UML 包图
- 汇报 PPT
完成全部 UML 建模、代码开发与系统演示。
产出物:
- SSD(系统顺序图):用例14 生成用户画像、用例18 查看职业规划建议
- 活动图:完整业务流程(图5-3)
- 状态机图:用户画像生命周期(图5-4)
- 部署图:系统部署架构(图5-5)
- 设计类图:职业生涯规划模块
- 用例图补充:用例25、26
- StarUML 源文件(.mdj)× 10
- 完整可运行的源代码系统
- 成果汇报 PPT + 演讲稿
在前三次迭代的基础上,从「职责分配」和「结构与协作」两个角度对系统进行设计模式分析,说明启航AI系统在架构设计中遵循的 GRASP 9 大原则和应用的 GoF 经典设计模式。
产出物:
- 设计文档 v4.0(docx + pdf)
GRASP 原则应用(4.3.1)— 9 大原则:
| # | 原则 | 系统应用 |
|---|---|---|
| 1 | 创建者 | User 作为聚合根,负责创建 UserProfile、CareerPlanReport 等业务对象 |
| 2 | 专家 | MBTIResult.calculate() 等计算方法内聚在各自的测评实体内部 |
| 3 | 控制器 | UserProfileController / CareerPlanController 等 Django REST 视图统一协调 HTTP 请求 |
| 4 | 低耦合 | 通过 Repository / Adapter 接口隔离数据库和外部 API,变化影响半径最小化 |
| 5 | 高耦合 | 每个 Service 只负责单一业务领域,职责内聚 |
| 6 | 多态 | LLMService 接口 + MockLLMService / OpenAICompatibleLLMService 双实现,运行时通过配置切换 |
| 7 | 纯虚构 | LLMAnalysisService、PromptBuilder 等为高内聚而虚构的纯服务类 |
| 8 | 间接 | 通过 LLMService 接口间接调用外部大模型 API,不直接依赖具体供应商 |
| 9 | 防止变异 | Adapter / Repository / Strategy 接口封装外部变化点(LLM 供应商、数据库、匹配算法等) |
GoF 设计模式应用(4.3.2)— 涵盖全部 23 种模式:
- 创建型(5 种):单例模式(LLMService 全局唯一)、原型模式(模板岗位克隆)、工厂方法(LLMServiceFactory)、抽象工厂(AssessmentFactory)、建造者(PromptBuilder 链式 API)
- 结构型(7 种):代理模式(Nginx 反向代理)、适配器(OpenAICompatibleLLMService 统一不同 LLM 供应商)、桥接(LLMService 与 LLMProvider 解耦)、装饰器(DRF @permission_classes 装饰器)、外观(CareerPlanService 统一入口)、享元(岗位标签/城市枚举复用)、组合(提升建议树形结构)
- 行为型(11 种):模板方法(BaseLLMService 定义算法骨架)、策略(MatchScoreStrategy 多种匹配算法)、命令(Celery Task 异步任务封装)、职责链(Django 中间件链)、状态(UserProfile 生命周期状态机)、观察者(UserProfileUpdated 事件驱动)、中介者(Service 层协调 Controller 与 Repository)、迭代器(Django ORM QuerySet)、访问者(简历结构多维分析)、备忘录(测评中断恢复)、解释器(PromptTemplate 占位符 / 岗位筛选 DSL)
详细的环境配置和启动步骤请参见 qihang-ai-demo/README.md。
简要步骤:
# 1. 进入代码目录
cd qihang-ai-demo
# 2. 启动后端
cd backend
pip install -r requirements.txt
python seed.py # 初始化演示数据
python manage.py runserver # http://localhost:8000
# 3. 启动前端(新终端)
cd frontend
npm install
npm run dev # http://localhost:3000演示账号:
| 角色 | 用户名 | 密码 |
|---|---|---|
| 学生 | demo_student |
demo1234 |
| 管理员 | admin |
admin1234 |
| 编号 | 图名 | 类型 | 位置 |
|---|---|---|---|
| 图1 | 用户模块用例图 | 用例图 | 第一次迭代/用例图/ |
| 图2 | 用户档案模块用例图 | 用例图 | 第一次迭代/用例图/ |
| 图3 | 职业发展规划模块用例图 | 用例图 | 第一次迭代/用例图/ |
| 图4 | 系统信息库与管理模块用例图 | 用例图 | 第一次迭代/用例图/ |
| 图2-3 | 职业发展规划模块用例图(补充25、26) | 用例图 | 第三次迭代/StarUML模型文件/ |
| 图2-4 | 系统信息库与管理模块用例图 | 用例图 | 第三次迭代/StarUML模型文件/ |
| 图5-3 | 启航AI完整业务流程活动图 | 活动图 | 第三次迭代/UML图/ & StarUML模型文件/ |
| 图5-4 | 用户画像生命周期状态机图 | 状态机图 | 第三次迭代/UML图/ & StarUML模型文件/ |
| 图5-5 | 系统部署架构部署图 | 部署图 | 第三次迭代/StarUML模型文件/ |
| — | 职业生涯规划模块设计类图 | 设计类图 | 第三次迭代/StarUML模型文件/ |
| — | SSD 用例14 生成用户画像 | 系统顺序图 | 第三次迭代/UML图/ |
| — | SSD 用例18 查看职业规划建议 | 系统顺序图 | 第三次迭代/UML图/ |
- Python 3.10+
- Node.js 18+(推荐 20 LTS)
- npm 9+
- StarUML(可选,用于编辑 .mdj 模型文件)
本项目为大学课程作业,仅供学习交流使用。