Compare commits

...

16 Commits

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

@ -0,0 +1,307 @@
# 实验一软件项目计划个人报告作业题
## 个人基本信息
- **姓名**:范孝宝
- **学号**2023210450
- **班级**计科231
- **小组**G9组
- **角色**:开发人员
- **实验日期**2025-11-03
- **提交日期**2023-11-07
## 个人任务完成情况
### 1. 个人负责的功能模块分析
#### 开发人员(范孝宝):
- 详细分析注册登录功能的需求,包括人员注册、账号登录和密码找回三个子功能
- 描述登录功能的安全性考虑,包括密码加密存储、防暴力破解机制和用户身份验证流程
- 分析用户体验设计,包括界面简洁性、错误提示友好性和操作流程流畅性
- 分析数据验证和存储需求,确保用户信息的完整性和安全性
- 说明注册登录模块与人员交互功能、订单支付功能的交互关系
### 2. EA模型设计
- **模型图类型和用途**:我设计了需求图、用例图、甘特图三种类型,分别用于展示功能需求、用户交互、时间规划
- **模型图中的主要元素和关系**
- **需求图**:包含根需求"校园代理系统",主要模块"注册登录",以及子功能"人员注册"、"账号登录"和"密码找回"
- **用例图**:包含参与者"用户",主要用例"人员注册"、"账号登录"和"密码找回",以及它们之间的包含关系
- **甘特图**:包含各功能模块的任务分解、开始时间、结束时间、持续时间和依赖关系
- **模型图体现的设计思路**:通过分层设计将复杂功能拆分为可管理的子功能,确保模块间低耦合高内聚
**具体模型图设计和分析**
**需求图设计**
- 展示了"校园代理系统"的需求层次结构
- 顶层为"校园代理系统"
- 中层包括"注册登录"、"人员交互功能"、"订单与支付功能"等主要模块
- 底层为"注册登录"模块下的三个子功能:"人员注册"、"账号登录"和"密码找回"
- 明确了各需求间的父子关系和依赖关系
**用例图设计**
- 参与者为"用户"
- 主要用例包括:
- "人员注册":新用户创建账号
- "账号登录":已注册用户访问系统
- "密码找回":用户重置密码
- 各用例间存在逻辑顺序关系,用户需先注册才能登录
**甘特图设计**
个人甘特图:
- 时间跨度2023年11月03日至2023年11月07日
- 任务分解:
- 需求分析2天分析注册登录功能需求
- EA模型设计2天设计需求图、用例图、甘特图
- 测试用例编写1天设计6个关键测试用例覆盖正常流程、异常情况和安全性测试
- 文档编写2天编写详细的功能文档
所有模型图截图已放在附录中
### 3. 测试用例设计
请描述您设计的测试用例:
- **测试用例ID**TC001、TC002、TC003、TC004、TC005、TC006
- **测试功能**:人员注册、账号登录、密码找回
- **测试目的**:验证功能是否按预期工作,确保系统的安全性和用户体验
- **输入数据**
- 注册:用户名、密码、确认密码、邮箱
- 登录:用户名、密码
- 密码找回:用户名、邮箱、新密码、确认新密码
**功能点和边界条件覆盖**
- **功能点覆盖**:完整覆盖了人员注册、账号登录和密码找回三个核心功能
- **边界条件覆盖**
- 密码强度验证
- 邮箱格式验证
- 重复用户名检查
- 密码找回流程的安全性
- 暴力破解防护机制
**测试用例优先级和执行顺序**
- **优先级排序**TC001、TC003、TC002、TC004、TC006、TC005
- **执行顺序分析**
1. 先测试正常功能流程(注册、登录)
2. 再测试异常情况(密码不匹配、密码错误)
3. 最后测试安全性相关功能(暴力破解防护、密码找回)
4. 按照从核心功能到辅助功能,从高优先级到低优先级的顺序执行
### 4. 个人工作总结与甘特图分析
**主要工作内容和完成情况**
- 完成了注册登录模块的需求分析,明确了人员注册、账号登录和密码找回三个子功能的具体要求
- 使用EA工具设计了需求图、用例图、和甘特图全面展示了功能设计思路
- 设计了6个关键测试用例覆盖了正常流程、异常情况和安全性测试
- 编写了详细的功能文档和用户操作指南
**时间安排和进度控制分析**
- 需求分析和功能规划安排在2025-11-03实际用时2天
- EA模型设计安排在2025-11-04实际用时2天
- 测试用例编写安排在2025-11-05实际用时1天
- 文档撰写与总结安排在2025-11-05实际用时2天
**主要问题和解决方案**
1. **问题**:需求理解不清晰
**解决方案**:通过与团队成员积极讨论,明确了功能细节和边界
2. **问题**:文档撰写不规范
**解决方案**:通过查看模板文档,严格按照格式要求撰写文档
3. **问题**:测试用例设计不充分
**解决方案**:在测试用例设计阶段,考虑了边界条件和异常情况,确保了测试用例的全面性
**收获和体会**
- 深入理解了软件项目管理的重要性,特别是需求分析和计划制定的关键作用
- 掌握了EA工具的基本使用方法能够进行基本的软件建模
- 体会到团队协作的重要性,模块间的接口设计需要充分沟通
**工作质量和效率评估**
- **工作质量**:功能设计完整,测试用例覆盖全面,文档编写规范
- **工作效率**:整体按时完成,但在技术难点上投入了较多时间
- **改进措施**
- 提前进行技术预研,减少开发过程中的技术障碍
- 加强团队沟通,提前明确需求
- 优化时间管理,为复杂任务预留更多缓冲时间
### 5. 甘特图应用分析
**功能模块时间节点和工期安排**
- **需求分析和功能规划**安排在2025-11-03实际用时2天。这一阶段明确了注册登录模块的三个核心子功能人员注册、账号登录、密码找回的具体需求和技术要求
- **EA模型设计**安排在2025-11-04实际用时2天。完成了需求图、用例图等模型设计为后续开发提供了清晰的蓝图
- **测试用例编写**安排在2025-11-05实际用时1天。设计了覆盖正常流程、异常情况和安全性的测试用例
- **文档撰写与总结**安排在2025-11-05实际用时2天。完成了功能文档、用户操作指南等交付物
**与团队成员工作的依赖关系**
- 注册登录模块作为系统的基础设施,与人员交互功能、订单与支付功能等多个模块存在依赖关系
- 需求分析阶段需要与前端团队协调界面设计要求,确保用户体验一致性
- EA模型设计完成后需要与后端团队确认数据模型和接口设计
- 测试用例编写需要参考系统整体测试策略,确保测试覆盖的全面性
**关键路径对工作的影响**
- 需求分析和EA模型设计位于项目的关键路径上其进度直接影响后续所有开发活动
- 由于测试用例编写和文档撰写部分并行进行,合理安排了资源分配,避免了关键路径的延误
- 通过严格控制关键任务的时间节点,确保了整体项目进度按计划推进
**甘特图对个人工作计划的指导价值**
- **任务明确化**:甘特图将抽象的工作分解为具体的任务项,使个人工作目标清晰明确
- **时间约束感知**:帮助我合理安排每天的工作内容,避免拖延和时间浪费
- **优先级管理**:明确了各项任务的依赖关系,便于优先处理关键任务
- **进度可视化**:通过对比计划与实际进度,及时发现偏差并采取调整措施
- **资源协调**:合理安排与团队其他成员的协作时间,减少等待和沟通成本
## 实验一相关问题思考
### 问题1项目计划的重要性
**软件项目计划对软件开发过程的影响**
- **目标明确化**:项目计划将模糊的需求转化为具体、可执行的目标和任务
- **资源优化配置**:合理分配人力、时间和技术资源,避免资源浪费
- **风险提前识别**:通过计划过程识别潜在风险,提前制定应对策略
- **进度可视化**:使项目进度透明化,便于监控和管理
- **沟通协调基础**:为团队成员提供共同的工作基准和沟通平台
- **质量保障框架**:通过阶段划分和里程碑设置,确保每个阶段的质量控制
**结合校园代理系统项目的指导作用**
- **注册登录模块作为基础设施**:项目计划明确了注册登录模块作为其他功能的基础,必须优先开发
- **需求分析的严谨性**:计划确保了对注册登录功能的安全性和用户体验需求进行充分分析
- **分阶段实施策略**:将复杂的注册登录功能分解为人员注册、账号登录和密码找回三个子功能,分阶段实施
- **接口规范的提前定义**:计划阶段就明确了注册登录模块与其他模块的接口规范
- **测试策略的系统性**:项目计划将测试活动贯穿整个开发周期,确保功能质量
- **时间缓冲的预留**:为关键路径上的任务预留了缓冲时间,增强了项目的抗风险能力
### 问题2甘特图的应用价值
**甘特图在项目管理中的作用和优势**
- **直观的时间可视化**:通过条形图直观展示任务的时间安排和进度
- **任务依赖关系清晰**:明确展示任务之间的先后顺序和依赖关系
- **进度监控便捷**:可以通过计划与实际进度的对比,快速识别偏差
- **资源分配优化**:帮助识别资源冲突,合理安排团队成员工作
- **沟通效率提升**:为项目干系人提供统一、直观的进度视图
- **风险预警功能**:通过关键路径分析,提前识别可能导致项目延期的任务
**结合校园代理系统项目的进度控制**
- **关键路径管理**:甘特图帮助识别出注册登录模块是项目的关键路径,需要重点关注
- **子功能的时间管理**:详细规划了人员注册、账号登录和密码找回三个子功能的开发时间
- **模块间依赖协调**:明确了注册登录模块与人员交互功能、订单支付功能等模块的依赖关系和交付时间
- **调整措施有效实施**:基于甘特图的进度分析,及时调整工作时间,确保按时完成
- **团队协作效率提升**:甘特图使团队成员清晰了解自己的工作时间节点和交付物,增强了协作效率
甘特图在校园代理系统项目中发挥了关键作用,特别是对于注册登录这样的核心模块,通过合理的时间规划和进度监控,确保了模块的按时交付,为整个项目的顺利进行奠定了基础。
## 工具使用体会
### EAEnterprise Architect使用体会
**主要功能和操作流程**
- **需求建模**使用EA创建了校园代理系统的需求图建立了注册登录模块及其子功能的层次结构
- **用例图设计**:创建了包含用户参与者和三个主要用例的用例图,明确了功能边界
- **甘特图制作**:设计了详细的甘特图,规划了注册登录模块的开发时间和任务分解
- **操作流程**:新建项目 → 添加模型包 → 创建图表 → 添加元素 → 设置关系 → 格式化与导出
**优势和不足**
- **优势**
- 功能全面支持多种UML图表类型
- 可视化界面直观,便于理解复杂关系
- 支持模型元素间的关联和追踪
- 可以导出多种格式的图表,便于文档集成
- **不足**
- 界面较为复杂,学习曲线陡峭
- 某些操作步骤繁琐,效率不高
- 资源占用较大,运行速度有时较慢
- 版本控制集成不够流畅
**困难和解决方法**
1. **困难**初始使用时不熟悉EA的界面和功能
**解决方法**:查阅官方教程,观看视频教程,从小规模模型开始练习
2. **困难**:模型元素间的复杂关系难以梳理
**解决方法**:采用分层设计,先建立高层结构,再逐步细化
3. **困难**:图表布局调整耗时
**解决方法**使用EA的自动布局功能再进行微调
**改进建议**
- 提前学习EA的基本操作避免开发过程中的效率损失
- 使用模板和配置文件,标准化建模过程
- 定期保存和备份模型文件,防止数据丢失
- 结合项目实际需求,选择合适的图表类型,避免过度建模
### TRAE辅助工具使用体会
**功能和体验**
- 使用TRAE辅助工具生成了注册登录模块的部分技术文档
- 通过AI辅助分析需求识别了潜在的安全风险点
- 利用TRAE的代码生成功能快速创建了基础的表单验证逻辑
- 体验了自然语言交互的便捷性,减少了繁琐的手动操作
**价值和局限性**
- **价值**
- 大幅提高了文档编写效率,节省了时间
- 提供了安全编码的建议,增强了系统安全性
- 帮助快速生成原型代码,加速开发进程
- 可以基于已有代码进行分析和优化建议
- **局限性**
- 生成内容需要人工审核和调整,不能完全依赖
- 对复杂业务逻辑的理解有时不够准确
- 生成的代码需要根据项目规范进行调整
- 对特定技术栈的支持有限
**心得体会**
- TRAE辅助工具是开发过程中的有力助手但不能替代人工思考和判断
- 合理利用TRAE可以显著提高开发效率特别是在文档编写和基础代码生成方面
- 与TRAE的交互需要清晰、精确的描述才能获得高质量的输出
- 工具的持续学习和优化非常重要,以适应不断变化的开发需求
**AI辅助工具前景**
- AI辅助工具将在软件开发中扮演越来越重要的角色特别是在代码生成、文档编写和测试自动化方面
- 未来可能实现更智能的需求分析和架构设计辅助
- 人机协作将成为主流开发模式开发者需要学会有效利用AI工具
- 工具的易用性和智能化程度将不断提高,降低使用门槛
### Git版本控制使用体会
- 掌握了克隆仓库、创建分支、提交更改、推送分支等基本操作
- Git分支管理使团队能并行开发避免代码覆盖和丢失
- 提交历史便于追溯问题Pull Request促进代码审查
- 遇到冲突时通过沟通和合并工具解决,注重规范提交信息
**分支管理策略**
- **优势**
- 功能分支策略使开发更有条理,每个功能独立开发和测试
- 保护了主分支的稳定性,确保只有经过验证的代码才会合并到主分支
- 便于功能回滚,出现问题时可以快速切换回稳定版本
- **不足**
- 分支过多可能导致管理复杂
- 频繁的分支切换可能影响开发效率
- 合并操作需要谨慎,避免引入新的问题
总体而言Git是现代软件开发中不可或缺的工具合理使用Git的版本控制和分支管理功能可以显著提高团队协作效率和代码质量特别是对于注册登录这样的核心模块开发提供了可靠的代码管理保障。
## 附录
### 附录A个人设计的EA模型图
需求建模:
![alt text](需求建模.png)
用例建模:
![alt text](用例建模.png)
甘特图:
![alt text](甘特图.png)
### 附录B个人测试用例表
| 测试用例ID | 测试功能 | 测试目的 | 输入数据 | 预期结果 | 测试步骤 | 优先级 |
|-----------|---------|---------|---------|---------|---------|--------|
| TC001 | 人员注册-成功注册示例 | 验证用户使用有效信息注册的完整流程 | 用户名fanxiaobao<br>密码Aa123456<br>确认密码Aa123456<br>邮箱fan@example.com | 1. 页面显示"注册成功"提示<br>2. 自动跳转至登录页<br>3. 数据库中新增用户记录 | 1. 打开浏览器,访问系统注册页面<br>2. 在用户名输入框输入"fanxiaobao"<br>3. 在密码输入框输入"Aa123456"<br>4. 在确认密码框输入相同密码<br>5. 在邮箱输入框输入"fan@example.com"<br>6. 点击"注册"按钮<br>7. 观察页面响应和提示信息 | 高 |
| TC003 | 账号登录-成功登录示例 | 验证用户使用正确凭据登录的完整流程 | 用户名fanxiaobao<br>密码Aa123456 | 1. 页面显示"登录成功"提示<br>2. 自动跳转至用户首页<br>3. 系统记录登录日志 | 1. 打开浏览器,访问系统登录页面<br>2. 在用户名输入框输入"fanxiaobao"<br>3. 在密码输入框输入"Aa123456"<br>4. 点击"登录"按钮<br>5. 观察页面跳转和登录状态 | 高 |
| TC002 | 密码不匹配验证示例 | 验证密码与确认密码不一致时的错误提示机制 | 用户名fanxiaobao<br>密码Aa123456<br>确认密码123456<br>邮箱fan@example.com | 1. 页面显示"密码与确认密码不一致"错误提示<br>2. 注册失败,不创建用户<br>3. 输入框获得焦点,允许用户修改 | 1. 打开浏览器,访问系统注册页面<br>2. 在用户名输入框输入"fanxiaobao"<br>3. 在密码输入框输入"Aa123456"<br>4. 在确认密码框输入不同的"123456"<br>5. 在邮箱输入框输入"fan@example.com"<br>6. 点击"注册"按钮<br>7. 观察错误提示信息和系统行为 | 高 |
| TC004 | 错误密码处理示例 | 验证用户输入错误密码时的系统处理机制 | 用户名fanxiaobao<br>密码Wrong123 | 1. 页面显示"用户名或密码错误"提示<br>2. 登录失败,停留在登录页<br>3. 密码输入框清空 | 1. 打开浏览器,访问系统登录页面<br>2. 在用户名输入框输入"fanxiaobao"<br>3. 在密码输入框输入"Wrong123"<br>4. 点击"登录"按钮<br>5. 观察错误提示和系统响应 | 高 |
| TC006 | 账号安全-暴力破解防护示例 | 验证系统对连续错误登录的防护机制 | 用户名fanxiaobao<br>连续5次输入错误密码123456、abcdef、WrongPass、789012、qwerty | 1. 前4次显示"用户名或密码错误"提示<br>2. 第5次后账号被临时锁定<br>3. 提示"账号已锁定,请稍后再试"<br>4. 锁定时间过后可重新尝试登录 | 1. 打开浏览器,访问系统登录页面<br>2. 输入用户名"fanxiaobao"<br>3. 输入错误密码"123456",点击登录<br>4. 重复步骤2-3使用不同错误密码共5次<br>5. 观察第5次登录后的系统响应<br>6. 等待锁定时间后,尝试使用正确密码登录验证 | 高 |
| TC005 | 密码找回-完整流程示例 | 验证用户通过邮箱找回并重置密码的完整功能 | 用户名fanxiaobao<br>邮箱fan@example.com<br>新密码NewPass123<br>确认新密码NewPass123 | 1. 成功发送重置邮件<br>2. 页面提示"请查收邮件"<br>3. 按邮件指引重置密码后可正常登录 | 1. 打开浏览器,访问系统登录页<br>2. 点击"忘记密码"链接<br>3. 输入用户名"fanxiaobao"和邮箱"fan@example.com"<br>4. 点击"发送重置链接"按钮<br>5. 检查邮箱,点击重置链接<br>6. 设置新密码并确认<br>7. 尝试使用新密码登录系统 | 中 |
### 附录C个人工作日志
| 日期 | 工作内容 | 工作时长 | 完成情况 | 遇到的问题 | 解决方案 |
|------|---------|---------|---------|-----------|---------|
| 2023-11-03 | 需求分析和功能规划 | 8小时 | 100% | 需求描述不够详细 | 与团队沟通,明确需求 |
| 2023-11-04 | EA模型设计 | 8小时 | 100% | EA操作不熟悉 | 查阅教程,完成建模 |
| 2023-11-05 | 完成甘特图设计和测试用例编写 | 8小时 | 100% | 测试覆盖率不足 | 补充边界测试 |
| 2023-11-05 | 文档撰写 | 8小时 | 100% | 文档结构不清晰 | 参考标准模板 |
---
**提交要求**
1. 请将本报告保存为Markdown格式文件命名为"实验一软件项目计划个人报告_姓名.md"
2. 在头歌平台的个人功能分支中提交报告文件
3. 提交Pull Request给组长审查
4. 截止日期2025年11月10日
**评分标准**
1. 个人任务完成情况30分
2. EA模型设计30分
3. 实验一相关问题思考20分
4. 工具使用体会10分
5. 个人学习计划10分

@ -0,0 +1,368 @@
# 实验一软件项目计划小组报告
## 小组基本信息
- **小组名称**G1组
- **项目名称**:快递代取系统
- **小组组长**:董玉坤
- **小组成员**董玉坤2023210447、程璟琦2023210442、董文远2023210446、范孝宝2023210450
- **实验日期**2024-11-03至2024-11-07
- **提交日期**2024-11-08
## 一、小组任务完成情况
### 1. 项目概述与目标
#### 1.1 项目背景与意义
随着电子商务的快速发展,校园快递数量急剧增加,传统的自行取件模式面临着取件时间冲突、快递堆积等问题。本项目旨在开发一个智能快递代取系统,通过连接有取件需求的学生和愿意提供代取服务的学生,解决校园快递取件难题,提高校园快递处理效率,为师生提供便利的快递服务体验。
#### 1.2 项目目标与预期成果
- **系统目标**:开发一个安全、高效、易用的校园快递代取系统,实现快递信息发布、代取任务承接、费用支付、状态跟踪等核心功能。
- **预期成果**
- 完成系统核心功能模块开发
- 实现用户友好的界面设计
- 确保系统安全性和稳定性
- 提供完整的用户使用文档
- 支持校园内主要快递点的快递代取服务
#### 1.3 项目范围
本项目主要针对校园环境下的快递代取服务,覆盖学生用户、代取员用户和系统管理员三种角色,支持快递信息发布、代取任务管理、支付结算、数据统计等功能。系统将支持主流移动设备访问,确保用户在校园内任何地点都能便捷使用。
### 2. 功能需求分析
#### 2.1 总体功能架构
快递代取系统采用模块化设计,主要包含用户注册登录模块、人员交互功能模块、订单与支付管理模块以及数据统计与可视化模块。各模块之间通过清晰的接口进行交互,确保系统的可维护性和可扩展性。
#### 2.2 核心功能模块需求
##### 2.2.1 用户注册登录模块(负责人:范孝宝)
- **功能描述**:实现用户身份认证和账号管理功能。
- **主要功能点**
- 人员注册:支持新用户创建账号,需验证学生身份
- 账号登录:提供用户登录功能,支持记住密码
- 密码找回:提供密码重置功能,通过手机或邮箱验证
- **安全性考虑**
- 密码加密存储
- 防暴力破解机制
- 多因素身份验证
- **用户体验设计**
- 界面简洁直观
- 错误提示友好
- 操作流程流畅
##### 2.2.2 人员交互功能模块(负责人:董文远)
- **功能描述**:实现用户之间的信息交流和任务协作功能。
- **主要功能点**
- 任务发布:用户发布快递代取需求
- 任务接受:代取员查看并接受任务
- 消息通知:系统消息和用户间消息传递
- 权限管理:不同角色(学生、代取员、管理员)权限控制
- **交互流程设计**
- 用户界面原型设计
- 交互流程图绘制
- 响应式布局适配
##### 2.2.3 订单与支付管理模块(负责人:程璟琦)
- **功能描述**:实现快递代取订单的创建、管理和支付功能。
- **主要功能点**
- 订单创建:用户填写订单信息,包含取件信息、收货地址、时间要求、报酬设置等
- 订单状态管理:待支付、待接单、进行中、已完成、已取消等多种状态流转
- 支付功能:支持微信、支付宝等多种支付方式
- 订单查询与筛选:支持按状态、时间、类型等条件查询订单
- 支付记录管理:记录所有支付流水,支持查询和对账
- **业务流程**
- 订单创建 → 支付处理 → 接单匹配 → 任务执行 → 完成确认 → 评价反馈
- **安全性保障**
- 支付加密传输
- 订单状态流转控制
- 数据一致性管理
##### 2.2.4 数据统计与可视化模块(负责人:董玉坤)
- **功能描述**:实现系统数据的收集、处理、分析和可视化展示功能。
- **主要功能点**
- 数据采集:收集系统中的订单数据、用户行为数据、支付数据等
- 数据处理:对采集的数据进行清洗、转换、聚合等预处理
- 统计分析:实现订单量统计、用户活跃度分析、收入统计等核心分析功能
- 可视化展示:通过图表、仪表盘等形式直观展示分析结果
- 导出功能支持将统计数据和图表导出为Excel、PDF等格式
- **数据流程**
- 数据采集 → ETL处理 → 数据存储 → 统计分析 → 可视化展示
- **质量保障**
- 数据校验规则
- 定期数据审计
- 异常数据报警机制
#### 2.3 非功能性需求
- **性能需求**系统响应时间不超过3秒支持至少5000用户并发访问
- **安全需求**数据加密存储访问权限控制防SQL注入等安全措施
- **可用性需求**系统可用性达到99.9%支持7×24小时不间断运行
- **可扩展性需求**:模块化设计,支持功能扩展和性能扩展
- **兼容性需求**:支持主流浏览器和移动设备访问
### 3. 资源计划与分配
#### 3.1 人力资源规划
- **项目经理**:董玉坤(负责整体项目管理和数据统计与可视化模块)
- **开发人员**
- 范孝宝(负责用户注册登录模块)
- 董文远(负责人员交互功能模块)
- 程璟琦(负责订单与支付管理模块)
- **测试人员**:全体成员(负责各自模块的测试工作)
#### 3.2 工具与技术资源
- **开发工具**
- 前端HTML5、CSS3、JavaScript、React
- 后端Java、Spring Boot、MyBatis
- 数据库MySQL
- 建模工具Enterprise Architect
- **测试工具**Junit、Postman
- **版本控制**Git
- **项目管理工具**Trello、Microsoft Project
#### 3.3 资金资源规划
项目开发阶段无需外部资金,主要利用现有实验室设备和软件资源。后期运营可考虑引入校园创业基金支持。
### 4. 进度计划
#### 4.1 总体时间规划
- **需求分析阶段**2024-11-03至2024-11-042天
- **系统设计阶段**2024-11-04至2024-11-052天
- **开发实现阶段**2024-11-05至2024-11-062天
- **测试调试阶段**2024-11-06至2024-11-072天
- **文档编写与提交**2024-11-07至2024-11-081天
#### 4.2 任务分解与时间安排
| 任务ID | 任务名称 | 负责人 | 开始日期 | 结束日期 | 持续时间 | 前置任务 |
|--------|----------|--------|----------|----------|----------|----------|
| T001 | 需求分析与功能规划 | 全体成员 | 2024-11-03 | 2024-11-04 | 2天 | 无 |
| T002 | 系统架构设计 | 全体成员 | 2024-11-04 | 2024-11-05 | 2天 | T001 |
| T003 | 用户注册登录模块开发 | 范孝宝 | 2024-11-05 | 2024-11-06 | 2天 | T002 |
| T004 | 人员交互功能模块开发 | 董文远 | 2024-11-05 | 2024-11-06 | 2天 | T002 |
| T005 | 订单与支付管理模块开发 | 程璟琦 | 2024-11-05 | 2024-11-06 | 2天 | T002 |
| T006 | 数据统计与可视化模块开发 | 董玉坤 | 2024-11-05 | 2024-11-06 | 2天 | T002 |
| T007 | 系统测试与调试 | 全体成员 | 2024-11-06 | 2024-11-07 | 2天 | T003,T004,T005,T006 |
| T008 | 文档编写与提交 | 全体成员 | 2024-11-07 | 2024-11-08 | 1天 | T007 |
#### 4.3 里程碑设置
- **里程碑1**需求分析完成2024-11-04
- **里程碑2**系统设计完成2024-11-05
- **里程碑3**核心功能开发完成2024-11-06
- **里程碑4**系统测试通过2024-11-07
- **里程碑5**项目文档提交2024-11-08
### 5. 团队组织与协作
#### 5.1 团队角色与职责分配
- **项目经理(董玉坤)**:负责项目整体规划、协调各成员工作、进度监控、风险管理以及数据统计与可视化模块的开发。
- **开发人员(范孝宝)**:负责用户注册登录模块的需求分析、设计、开发和测试工作。
- **开发人员(董文远)**:负责人员交互功能模块的需求分析、设计、开发和测试工作。
- **开发人员(程璟琦)**:负责订单与支付管理模块的需求分析、设计、开发和测试工作。
#### 5.2 沟通与协作机制
- **日常沟通**每日早会15分钟同步进度和问题
- **周例会**:每周五下午进行周总结和下周计划
- **文档共享**使用Google Drive进行文档协作
- **代码协作**使用Git进行版本控制
- **即时通讯**:使用微信群进行日常沟通
#### 5.3 冲突管理策略
- **预防策略**:明确任务分工,设定清晰的目标和期望
- **解决机制**:遇到冲突时,首先进行内部讨论,如无法达成一致,由项目经理协调解决
- **反馈机制**:定期收集团队成员反馈,及时调整工作方式和分配
### 6. 风险分析与应对
#### 6.1 技术风险
- **风险1**:支付系统集成复杂,可能影响开发进度
- **应对措施**提前研究第三方支付接口文档采用成熟的SDK预留充足的集成和测试时间
- **风险2**:数据安全问题,用户敏感信息泄露
- **应对措施**实施严格的数据加密机制采用HTTPS协议定期进行安全审计
- **风险3**:系统性能问题,并发访问时响应缓慢
- **应对措施**:进行性能测试,优化数据库查询,使用缓存技术,考虑分布式架构
#### 6.2 项目管理风险
- **风险1**:需求变更频繁,导致范围蔓延
- **应对措施**:建立需求变更管理流程,评估变更影响,严格控制变更范围
- **风险2**:团队成员进度不一致,影响整体交付
- **应对措施**:加强进度监控,及时发现和解决进度滞后问题,必要时进行资源调整
- **风险3**:团队协作不畅,沟通效率低
- **应对措施**:定期组织团队建设活动,建立有效的沟通机制,提高团队凝聚力
#### 6.3 外部风险
- **风险1**:第三方服务不可用,如支付平台故障
- **应对措施**:集成多个第三方服务提供商,实现服务冗余,制定应急预案
- **风险2**:学校网络环境限制,影响系统部署
- **应对措施**:提前与学校网络中心沟通,了解网络环境要求,必要时进行技术调整
### 7. 质量保证计划
#### 7.1 质量目标
- **功能完整性**:确保所有需求功能点都已实现
- **系统稳定性**系统运行稳定无严重bug
- **性能达标**:满足规定的性能指标要求
- **用户满意度**:用户对系统使用体验满意
#### 7.2 质量控制措施
- **代码审查**:实行双人代码审查制度,确保代码质量
- **单元测试**每个模块必须编写单元测试测试覆盖率达到80%以上
- **集成测试**:各模块完成后进行集成测试,验证模块间接口正确性
- **系统测试**:完成所有功能开发后进行系统测试,验证系统功能和性能
- **用户测试**:邀请目标用户进行测试,收集反馈意见
#### 7.3 质量保证工具与方法
- **静态代码分析**使用SonarQube进行代码质量分析
- **自动化测试**使用Selenium进行前端自动化测试
- **性能测试**使用JMeter进行性能测试
- **Bug跟踪**使用Jira进行Bug管理和跟踪
## 二、EA模型设计
### 1. 组织结构图
#### 1.1 设计说明
使用Enterprise Architect设计的组织结构图展示了快递代取系统的开发团队组织结构和职责分配。该图清晰地展示了团队成员的角色、职责和汇报关系有助于明确团队协作方式。
#### 1.2 模型图中的主要元素
- **项目经理**:董玉坤,负责整体项目管理和数据统计与可视化模块
- **开发人员**
- 范孝宝:负责用户注册登录模块
- 董文远:负责人员交互功能模块
- 程璟琦:负责订单与支付管理模块
- **测试团队**:全体成员参与测试工作
#### 1.3 设计思路与特点
采用扁平化的组织结构设计,减少管理层次,提高沟通效率。项目经理负责整体协调,各开发人员独立负责各自模块,同时通过团队协作确保系统整体一致性。
### 2. 甘特图
#### 2.1 设计说明
使用Enterprise Architect设计的甘特图展示了快递代取系统开发的时间规划和任务安排。该图详细列出了每个任务的开始时间、结束时间、持续时间、负责人和前置任务有助于项目进度管理和监控。
#### 2.2 模型图中的主要元素
- **任务**:需求分析、系统设计、各模块开发、测试调试、文档编写等
- **时间线**从2024-11-03到2024-11-08的项目周期
- **里程碑**:关键时间节点,如需求分析完成、系统设计完成、功能开发完成等
- **依赖关系**:任务之间的先后顺序关系
#### 2.3 设计思路与特点
采用WBS工作分解结构方法将项目分解为可管理的任务合理安排任务顺序和资源分配。通过关键路径分析识别对项目进度影响最大的任务重点关注这些任务的执行情况。
### 3. 用例图与UCP估算
#### 3.1 设计说明
使用Enterprise Architect设计的用例图展示了快递代取系统的用户与系统交互场景。该图描述了不同角色的用户普通用户、代取员、管理员与系统功能之间的交互关系有助于明确系统功能边界。
#### 3.2 模型图中的主要元素
- **参与者**
- 用户:需要代取快递的学生
- 代取员:提供代取服务的学生
- 管理员:系统管理人员
- **用例**
- 用户管理:注册、登录、密码找回
- 任务管理:发布任务、接受任务、完成任务
- 订单管理:创建订单、查询订单、取消订单
- 支付管理:支付订单、查询支付记录
- 数据统计:查看统计报表、导出数据
- 系统管理:用户管理、权限设置、系统配置
#### 3.3 UCP估算过程
根据用例点UCP方法进行项目规模估算
- **参与者权重**用户简单1点、代取员简单1点、管理员平均2点
- **用例权重**基础用例简单5点、核心用例平均10点、复杂用例复杂15点
- **技术复杂度因子**分布式系统2、性能要求2、安全要求3、集成要求2
- **环境复杂度因子**团队经验2、开发工具3、需求稳定性1
- **UCP计算**未调整UCP × (0.65 + 0.01 × 调整因子之和)
### 4. 需求模型图
#### 4.1 设计说明
使用Enterprise Architect设计的需求模型图展示了快递代取系统的需求层次结构和依赖关系。该图从高层需求逐步分解到具体功能点有助于全面理解系统需求。
#### 4.2 模型图中的主要元素
- **根需求**:快递代取系统
- **一级需求**:用户管理、任务管理、订单管理、支付管理、数据统计、系统管理
- **二级需求**:各一级需求下的具体功能模块
- **三级需求**:具体的功能点和特性
#### 4.3 设计思路与特点
采用层次化的需求分解方法,将复杂的系统需求分解为可管理的需求单元。通过需求间的依赖关系描述,明确需求之间的关联和影响,有助于需求变更管理。
### 5. 软件过程与测试模型图
#### 5.1 设计说明
使用Enterprise Architect设计的软件过程与测试模型图展示了快递代取系统的开发流程和测试策略。该图描述了从需求分析到系统交付的完整软件开发生命周期以及各阶段的测试活动。
#### 5.2 模型图中的主要元素
- **开发阶段**:需求分析、系统设计、编码实现、测试调试、部署交付
- **测试活动**:单元测试、集成测试、系统测试、用户测试、验收测试
- **文档产出**:需求规格说明书、设计文档、测试计划、用户手册等
#### 5.3 设计思路与特点
采用迭代增量的开发模式,结合瀑布模型的严谨性和敏捷方法的灵活性。在每个开发阶段都进行相应的测试活动,确保系统质量。通过持续集成和自动化测试,提高开发效率和产品质量。
## 三、工具使用总结
### 1. Enterprise Architect工具使用情况
本项目使用Enterprise Architect进行需求建模、用例分析、项目规划和系统设计。通过EA工具团队成员能够直观地展示系统架构和业务流程提高了沟通效率和设计质量。主要使用了EA的需求图、用例图、甘特图、组织结构图等功能这些功能对于项目的规划和管理起到了重要作用。
### 2. 版本控制工具使用情况
项目使用Git进行代码版本控制通过分支管理和代码合并确保了团队成员的协作开发。使用GitHub作为代码托管平台实现了代码的远程存储和共享。
### 3. 项目管理工具使用情况
使用Trello进行任务管理和进度跟踪通过看板方式展示任务状态提高了团队协作效率。使用Microsoft Project进行项目进度计划制定通过甘特图直观展示项目时间线和任务依赖关系。
## 四、项目管理实践
### 1. 项目启动与规划
项目启动阶段,团队成员共同讨论了项目背景、目标和范围,明确了项目的业务价值和技术挑战。通过需求分析会议,收集和整理了系统需求,形成了需求规格说明书。在项目规划阶段,制定了详细的项目计划,包括时间安排、资源分配和风险管理计划。
### 2. 需求管理
建立了需求变更管理流程,对需求变更进行评估和控制。通过需求跟踪矩阵,确保每个需求都得到实现和验证。定期与利益相关者沟通,收集反馈意见,及时调整需求优先级和实现方案。
### 3. 进度管理
通过甘特图和每日进度报告,监控项目进度执行情况。对于进度滞后的任务,及时分析原因并采取措施,确保项目按时交付。设立了里程碑检查点,在每个里程碑完成后进行评审,确保项目质量。
### 4. 质量管理
建立了质量保证体系,包括代码审查、测试流程和质量标准。通过自动化测试工具,提高了测试效率和覆盖率。定期进行质量评审,及时发现和解决质量问题。
### 5. 风险管理
在项目启动阶段进行了风险识别和评估,制定了风险应对策略。在项目执行过程中,持续监控风险状态,及时调整风险管理计划。对于已发生的风险事件,采取有效的应对措施,减少对项目的影响。
## 五、项目成果与反思
### 1. 项目成果
- 完成了快递代取系统的需求分析和设计文档
- 设计了完整的EA模型包括需求图、用例图、甘特图等
- 制定了详细的项目计划和管理方案
- 建立了团队协作机制和沟通渠道
- 完成了各功能模块的初步设计和规划
### 2. 经验总结
- **团队协作**:有效的团队协作是项目成功的关键,通过明确的分工和良好的沟通,提高了工作效率
- **需求管理**:需求的准确性和完整性对项目质量至关重要,需要持续关注需求变更和验证
- **进度控制**:及时的进度监控和调整,有助于项目按时交付
- **风险管理**:提前识别和应对风险,能够减少项目执行过程中的不确定性
### 3. 改进方向
- 加强需求分析的深度和广度,确保需求的全面性和准确性
- 优化项目计划的制定方法,提高计划的可执行性
- 加强团队成员的技术培训,提高技术能力和协作水平
- 改进测试策略,提高测试覆盖率和效率
## 六、附录
### 1. 参考资料
- 《软件工程导论》第6版张海藩清华大学出版社
- 《软件项目管理》第2版王如龙清华大学出版社
- 《需求工程实践》,骆斌,高等教育出版社
### 2. 团队成员贡献说明
- **董玉坤**项目经理负责整体项目管理、数据统计与可视化模块设计和EA模型中的需求图、甘特图设计
- **范孝宝**开发人员负责用户注册登录模块设计和EA模型中的用例图设计
- **董文远**开发人员负责人员交互功能模块设计和EA模型中的组织结构图设计
- **程璟琦**开发人员负责订单与支付管理模块设计和EA模型中的软件过程与测试模型图设计
### 3. 会议记录
- **第一次会议**2024-11-03项目启动确定项目范围和团队分工
- **第二次会议**2024-11-04需求分析评审确认系统功能需求
- **第三次会议**2024-11-05系统设计评审讨论技术方案和架构设计
- **第四次会议**2024-11-07项目总结分享经验教训讨论改进方向

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

@ -0,0 +1,10 @@
public class Admin extends User {
public Admin(String userId, String username, String password) {
super(userId, username, password, "ADMIN");
}
@Override
public void afterLogin() {
System.out.println("管理员[" + username + "]登录成功,跳转至系统管理页面");
}
}

@ -0,0 +1,10 @@
public class Agent extends User {
public Agent(String userId, String username, String password) {
super(userId, username, password, "AGENT");
}
@Override
public void afterLogin() {
System.out.println("代取[" + username + "]登录成功,跳转至任务接取页面");
}
}

@ -0,0 +1,59 @@
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
UserService userService = new UserService();
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("\n===== 校园代取系统 =====");
System.out.println("1. 用户注册");
System.out.println("2. 用户登录");
System.out.println("0. 退出系统");
System.out.print("请选择操作:");
choice = scanner.nextInt();
scanner.nextLine(); // 消费换行符
switch (choice) {
case 1:
// 注册流程
System.out.print("请输入用户名:");
String username = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
System.out.print("请输入角色STUDENT/AGENT");
String role = scanner.nextLine();
String registerResult = userService.register(username, password, role);
System.out.println(registerResult);
break;
case 2:
// 登录流程
System.out.print("请输入用户名:");
String loginUsername = scanner.nextLine();
System.out.print("请输入密码:");
String loginPassword = scanner.nextLine();
User user = userService.login(loginUsername, loginPassword);
if (user != null) {
System.out.println("\n登录成功角色" + user.getRole());
user.afterLogin(); // 执行角色对应的登录后操作
} else {
System.out.println("\n登录失败用户名或密码错误");
}
break;
case 0:
System.out.println("退出系统成功!");
break;
default:
System.out.println("无效操作,请重新选择");
}
} while (choice != 0);
scanner.close();
}
}

@ -0,0 +1,10 @@
public class Student extends User {
public Student(String userId, String username, String password) {
super(userId, username, password, "STUDENT");
}
@Override
public void afterLogin() {
System.out.println("学生[" + username + "]登录成功,跳转至任务发布页面");
}
}

@ -0,0 +1,22 @@
public abstract class User {
protected String userId;
protected String username;
protected String password;
protected String role; // 角色STUDENT/AGENT/ADMIN
public User(String userId, String username, String password, String role) {
this.userId = userId;
this.username = username;
this.password = password;
this.role = role;
}
// Getter 和 Setter
public String getUserId() { return userId; }
public String getUsername() { return username; }
public String getPassword() { return password; }
public String getRole() { return role; }
// 抽象方法:不同角色的登录后操作
public abstract void afterLogin();
}

@ -0,0 +1,60 @@
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class UserService {
// 模拟数据库存储用户信息
private static final Map<String, User> userMap = new HashMap<>();
/**
*
* @param username
* @param password
* @param role
* @return
*/
public String register(String username, String password, String role) {
// 校验用户名是否已存在
for (User user : userMap.values()) {
if (user.getUsername().equals(username)) {
return "注册失败:用户名已被占用";
}
}
// 生成唯一用户ID
String userId = UUID.randomUUID().toString().substring(0, 8);
User user;
// 根据角色创建对应用户对象
switch (role) {
case "STUDENT":
user = new Student(userId, username, password);
break;
case "AGENT":
user = new Agent(userId, username, password);
break;
default:
return "注册失败:无效角色";
}
// 保存用户信息
userMap.put(userId, user);
return "注册成功用户ID" + userId;
}
/**
*
* @param username
* @param password
* @return null
*/
public User login(String username, String password) {
// 遍历用户信息匹配用户名和密码
for (User user : userMap.values()) {
if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
return user;
}
}
return null;
}
}

@ -0,0 +1,989 @@
# 实验二操作指南 v3.1:软件需求分析
**实验课时安排:** 2课时90分钟第一次课程+ 2课时90分钟第二次课程
> **版本信息**v3.1
> **更新日期**2025-11-09
> **更新内容**参考实验一操作V3.md格式优化文档结构调整时间估算修正编程语言为Java添加EAGitOps实验环境支持
> **适用项目**:校园代理系统
> **适用团队**G9组范孝宝,董文远,董玉坤,程璟琦)
> **预计完成时间**900分钟约15小时
> **实验环境**EAGitOpsEnterprise Architect + Git + Jenkins + SonarQube + MYSQL
**重要提示:** 本文档中的"个人功能"是通用术语,学生在完成实验时应替换为自己实际负责的具体功能。例如:
- 范孝宝同学应将"个人功能"替换为"注册登录功能"(包括人员注册、账号登录和密码找回三个子功能)
## 1. 实验环境与工具
### 1.1 EAGitOps实验环境
本实验使用EAGitOpsEnterprise Architect + Git + Jenkins + SonarQube + PostgreSQL集成环境提供完整的软件工程工具链支持。
#### 1.1.1 环境组件
| 工具类别 | 工具名称 | 版本要求 | 用途说明 |
|---------|---------|---------|---------|
| 建模工具 | Enterprise Architect | v13.0以上 | 需求建模、UML图绘制 |
| 版本控制 | Git | v2.0以上 | 代码版本管理 |
| 数据库 | MYSQL | v12.0以上 | 数据存储与管理 |
| 开发环境 | TRAE | v1.0以上 | 文档生成与代码优化 |
| 构建工具 | Maven | v3.6以上 | 项目构建与依赖管理 |
| 持续集成 | Jenkins | v2.300以上 | 自动化构建与测试 |
| 代码质量 | SonarQube | v8.0以上 | 代码质量分析 |
| 代码仓库 | Gitea | v1.16以上 | Git仓库管理服务 |
| 数据库 | MYSQL | v12.0以上 | 数据存储与管理 |
#### 1.1.2 EAGitOps环境启动顺序
1. **启动MYSQL数据库服务**
```
net start mysql
```
2. **启动Gitea代码仓库服务**
```
cd /d E:\eagitops\gitea
gitea.exe web
```
3. **启动Tomcat服务器Jenkins**
```
cd /d E:\eagitops\tomcat\bin
startup.bat
```
4. **启动SonarQube服务**
```
cd /d E:\eagitops\sonarqube\bin\windows-x86-64
StartSonar.bat
```
#### 1.1.3 EAGitOps环境访问地址
| 服务名称 | 访问地址 | 默认账号 | 默认密码 |
|---------|---------|---------|---------|
| Gitea | http://localhost:3000 | root | password |
| Jenkins | http://localhost:8080/jenkins | admin | admin |
| SonarQube | http://localhost:9000 | admin | admin |
| MYSQL | localhost:3306 | root | root |
### 1.2 环境配置要求
- **操作系统**Windows 11
- **内存要求**最低8GB推荐16GB
- **存储空间**至少20GB可用空间
- **网络要求**:稳定的互联网连接(用于工具下载和更新)
- **EAGitOps安装路径**E:\eagitops\(默认路径,可根据实际情况调整)
### 1.3 EAGitOps工具链使用指南
#### 1.3.1 环境变量配置
在使用EAGitOps工具链前需要配置以下环境变量
```batch
@echo off
REM 设置EAGitOps环境变量
set EAGITOPS_HOME=E:\eagitops
set JAVA_HOME=%EAGITOPS_HOME%\jdk
set POSTGRESQL_HOME=%EAGITOPS_HOME%\postgresql
set GIT_HOME=%EAGITOPS_HOME%\git
set SONAR_HOME=%EAGITOPS_HOME%\sonarqube
set JENKINS_HOME=%EAGITOPS_HOME%\tomcat\webapps\jenkins
REM 添加到PATH
set PATH=%JAVA_HOME%\bin;%POSTGRESQL_HOME%\bin;%GIT_HOME%\bin;%PATH%
echo EAGitOps环境变量配置完成
```
#### 1.3.2 工具链使用流程
1. **需求建模阶段**
- 使用Enterprise Architect进行需求分析和建模
- 创建UML图用例图、类图、序列图等
- 导出需求文档和模型文件
2. **代码开发阶段**
- 使用TRAE进行Java代码开发
- 使用Git进行版本控制
- 提交代码到Gitea仓库
3. **持续集成阶段**
- 配置Jenkins构建任务
- 设置自动化测试和代码质量检查
- 集成SonarQube进行代码质量分析
4. **部署运维阶段**
- 使用PostgreSQL进行数据持久化
- 通过Jenkins实现自动化部署
- 使用SonarQube监控代码质量
#### 1.3.3 EAGitOps控制面板
EAGitOps提供了便捷的GUI控制面板eagitops.au3支持以下功能
- **环境变量设置**:一键配置所有工具的环境变量
- **服务启停控制**:快速启动/停止各个服务组件
- **工具快速启动**:直接打开各种开发工具
- **状态监控**:实时查看各服务运行状态
控制面板使用方法:
1. 双击运行`eagitops.au3`文件
2. 根据需要点击相应按钮启动/停止服务
3. 使用"启动工具"菜单快速打开开发工具
4. 查看"服务状态"了解当前环境运行情况
## 时间估算与分配建议
### 总体时间安排
**实验二总时间900分钟15小时**
- 课堂时间180分钟3小时2次课程
- 课后时间720分钟12小时
### 详细时间分配
**第一次课程课堂时间90分钟1.5课时):**
- 第一阶段需求基础建模45分钟0.75课时)
- 项目词汇定义10分钟
- 需求建模15分钟
- 用例建模20分钟
- 第二阶段系统分析与设计45分钟0.75课时)
- 鲁棒建模15分钟
- 分析类图15分钟
- 界面设计15分钟
**第一次课程后补充时间360分钟6小时**
- 用例建模活动图绘制50分钟
- 行为建模25分钟
- 数据设计10分钟
- 设计类20分钟
- 测试建模20分钟
- 测试管理15分钟
- 包图10分钟
- 组件模型10分钟
- 编码建模10分钟
- 个人功能完整开发测试120分钟
- 项目报告第一部分60分钟
**第二次课程课堂时间90分钟1.5课时):**
- 第一阶段高级建模45分钟0.75课时)
- 行为建模25分钟
- 数据设计10分钟
- 设计类10分钟
- 第二阶段测试与部署45分钟0.75课时)
- 测试建模20分钟
- 测试管理15分钟
- 部署建模10分钟
**第二次课程后补充时间360分钟6小时**
- 跟踪建模10分钟
- 登录流水线20分钟
- 所有模型优化与完善60分钟
- 模型一致性检查30分钟
- 个人功能完整开发测试150分钟
- 项目报告第二部分60分钟
- 实验总结与提交30分钟
**总计900分钟15小时**
### 个人甘特图
个人甘特图是规划实验二进展的重要工具,用于跟踪个人功能完成情况和时间安排。
#### 实验一检查结果甘特图
实验一的甘特图主要用于检查结果,包含以下内容:
| 实验阶段 | 课时 | 周数 | 时间安排 |
|---------|------|------|---------|
| 软件项目计划 | 2课时 | 1周 | 11.3-11.9 |
| 软件需求分析 | 4课时 | 2周 | 11.10-11.23 |
| 软件系统设计 | 6课时 | 3周 | 11.24-12.14 |
| 软件系统编码 | 2课时 | 2周 | 12.15-12.21 |
| 软件系统测试 | 2课时 | 2周 | 12.22-12.28 |
实验一甘特图资源分配:
- 范孝宝(开发人员):负责注册登录功能开发和实现以及测试,包括人员注册、账号登录和密码找回三个子功能
#### 实验二甘特图绘制内容
实验二甘特图是计划性工具用于规划实验二的工作。使用EA工具创建包含以下内容
1. **任务分解**将实验二分解为24个主要任务对应文档中的24个章节
2. **时间安排**:为每个任务设置合理的时间期限(基于时间估算与分配建议)
3. **依赖关系**:设置多组任务间的依赖关系(如词汇定义→需求建模→用例建模等)
4. **资源分配**:为每个任务分配适当的资源(个人姓名)
#### EA创建甘特图步骤
1. **创建图表**在EA中创建新的甘特图
2. **添加24项任务**添加项目词汇定义、需求建模、用例建模等24项任务
3. **设置多组依赖关系**:建立任务间的依赖关系(如词汇定义→需求建模→用例建模等)
4. **分配资源**:为每个任务分配资源(个人姓名)
5. **导出分享**导出甘特图为PNG或PDF格式
#### 实验二甘特图与实验一甘特图的区别
1. **用途不同**
- 实验一甘特图:用于检查结果,展示已完成的工作
- 实验二甘特图:用于计划工作,规划即将完成的任务
2. **内容不同**
- 实验一甘特图展示5个实验阶段的时间安排和资源分配
- 实验二甘特图展示24个具体任务的时间安排、依赖关系和资源分配
3. **时间范围不同**
- 实验一甘特图覆盖整个学期的5个实验阶段
- 实验二甘特图仅覆盖实验二的15小时900分钟
### 时间管理建议
1. **第一次课程重点**:第一次课程主要完成基础建模工作,建立需求分析的基本框架
2. **第二次课程重点**:第二次课程主要完成行为建模和测试建模,完善需求分析
3. **课后补充完成**:课后时间主要用于活动图绘制、项目报告撰写和模型完善
4. **个人功能完整开发**个人功能完整开发测试需要充足时间第一次课程后120分钟第二次课程后150分钟确保功能完整实现
5. **重点任务**:优先完成用例建模、分析类图和行为建模,这些是需求分析的核心内容
6. **及时保存**EA模型和文档要经常保存避免意外丢失
7. **工具熟练度**提前熟悉EA工具的各项功能可显著提高建模效率
8. **模型一致性**:确保两次课程之间模型的一致性和连贯性,避免重复工作
9. **开发测试规划**:合理安排个人功能完整开发测试时间,确保有足够时间完成功能的完整开发、测试和运维
10. **合理时间分配**实验总时长为15小时课堂时间3小时课后时间12小时确保质量
11. **甘特图管理**:使用个人甘特图跟踪任务进度,及时调整计划,确保按时完成
12. **新增任务安排**:包图、组件模型和编码建模等新增任务已纳入时间分配,确保所有建模内容完整覆盖
13. **报告撰写时间**项目报告时间已优化为每次课程后60分钟确保报告质量同时避免时间浪费
## 目录
1. [时间估算与分配建议](#时间估算与分配建议)
2. [个人功能清单与团队协作](#2-个人功能清单与团队协作)
3. [项目词汇定义](#3-项目词汇定义)
4. [需求建模](#4-需求建模)
5. [用例建模](#5-用例建模)
6. [鲁棒建模](#6-鲁棒建模)
7. [分析类图](#7-分析类图)
8. [界面设计](#8-界面设计)
9. [数据设计](#9-数据设计)
10. [设计类](#10-设计类)
11. [行为建模](#11-行为建模)
12. [包图](#12-包图)
13. [组件模型](#13-组件模型)
14. [编码建模](#14-编码建模)
15. [测试建模](#15-测试建模)
16. [测试管理](#16-测试管理)
17. [部署建模](#17-部署建模)
18. [跟踪建模](#18-跟踪建模)
19. [登录流水线](#19-登录流水线)
20. [项目报告](#20-项目报告)
21. [实验提交内容](#21-实验提交内容)
22. [评分标准](#22-评分标准)
23. [注意事项](#23-注意事项)
24. [版本更新说明](#24-版本更新说明)
## 2. 个人功能清单与团队协作
### 个人功能清单
每位成员需要在feature_姓名拼音缩写分支中完成以下任务
1. **范孝宝(开发人员)**
- 负责注册登录功能的完整开发,包括人员注册、账号登录和密码找回三个子功能
- 完成相关功能的完整测试
- 完成相关功能的完整运维
- 完成相关功能的完整模型绘制
- 在feature_fxb分支中完成个人功能
### 个人功能完整开发测试流程
1. **第一次课程后个人功能完整开发测试120分钟**
- 各成员在个人功能分支中完成个人功能的完整开发
- 完成个人功能的完整测试
- 完成个人功能的完整运维
- 提交代码到个人功能分支
- 完成个人功能的完整模型绘制
- 完成个人功能的完整文档记录
- 使用TRAE辅助生成和优化文档
2. **第二次课程后个人功能完整开发测试150分钟**
- 各成员在个人功能分支中完成优化后的个人功能
- 完善个人功能的开发、测试和运维
- 提交代码到个人功能分支
- 完善个人功能的完整模型绘制
- 完善个人功能的完整文档记录
- 使用TRAE辅助生成和优化文档
### 最终提交成果物
1. **个人功能完整开发测试报告**Markdown格式
- 包含个人功能概述、开发过程、测试结果、运维情况等完整内容
- 附有EA绘制的个人功能完整模型图
- 附有个人甘特图,记录实验二进展
- 使用TRAE辅助生成和优化报告内容
2. **个人功能EA模型文件**.qea格式
- 个人功能词汇定义
![alt text](词汇.png)
- 个人功能需求模型
![alt text](需求.png)
- 个人功能用例模型
![alt text](用例.png)
- 个人功能分析类图
![alt text](分析类.png)
- 个人功能设计类图
- 个人功能行为模型
![alt text](行为.png)
- 个人功能测试模型
![alt text](测试.png)
- 个人功能部署模型等
![alt text](部署.png)
- 个人甘特图模型
1. **个人功能头歌项目仓库**
- 包含个人功能的完整文档结构
- 个人功能的完整代码和测试
- 个人功能的运维配置和说明文档
- 个人甘特图文件PNG或PDF格式
- TRAE生成的辅助文档
2. **实验二个人总结报告**
- 个人功能完整开发测试总结
- 个人工具使用心得
- 个人问题与解决方案
- 个人甘特图分析与总结
## 3. 项目词汇定义预计时间20分钟
**步骤:**
1. 打开EA软件创建新项目
2. 在项目中创建"项目词汇"包
3. 添加必要的项目词汇和定义
4. 导出词汇列表并粘贴到报告中
5. 使用TRAE辅助生成和优化词汇定义部分
**注意事项:**
- 词汇应包括系统中的关键术语和缩写
- 每个词汇应有明确的定义
- 使用EA的导出列表功能不要截图
- TRAE生成的词汇定义需要人工审查和修改
## 4. 需求建模预计时间25分钟
**步骤:**
1. 在EA中创建"需求建模"包
2. 添加系统需求项
3. 为每个需求添加详细描述
4. 建立需求之间的关联关系
5. 导出需求列表并粘贴到报告中
6. 使用TRAE辅助生成和优化需求文档
**注意事项:**
- 需求应明确、可测试、可验证
- TRAE生成的需求文档需要人工审查和修改
## 5. 用例建模预计时间60分钟
**步骤:**
1. 在EA中创建"用例建模"包
2. 识别系统参与者(如用户、系统管理员等)
3. 识别系统用例(如人员注册、账号登录、密码找回等)
4. 绘制用例图
5. 为主要用例编写用例描述
6. 绘制用例活动图:
- 在EA中选择用例右键点击并选择"新建子图"→"活动图"
- 识别活动开始点和结束点
- 添加活动节点,表示用例中的主要步骤
- 添加决策节点,表示条件判断
- 添加泳道(可选),表示不同参与者的职责
- 设置活动之间的转换关系
- 添加必要的注释和约束
- 检查活动图的完整性和正确性
7. 使用TRAE辅助生成和优化用例描述
**注意事项:**
- 用例图应包含参与者、用例和它们之间的关系
- 活动图应清晰展示用例的执行流程和决策点
- 活动图中的每个活动应对应用例描述中的步骤
- TRAE生成的用例描述需要人工审查和修改
## 6. 鲁棒建模预计时间35分钟
**步骤:**
1. 在EA中创建"鲁棒建模"包
2. 以登录为例,识别视图对象、控制对象和实体对象
3. 绘制鲁棒图
4. 使用TRAE辅助生成和优化鲁棒建模说明
**账号登录鲁棒建模示例:**
- 视图对象:用户登录界面、输入界面、错误界面、欢迎界面等
- 控制对象:用户登录成功与否控制对象
- 实体对象:用户账号、密码等属性的实体对象
**注意事项:**
- 鲁棒图是分析阶段的产物,用于初步设计系统结构
- 可保留不修改
- TRAE生成的鲁棒建模说明需要人工审查和修改
## 7. 分析类图预计时间45分钟
**步骤:**
1. 在EA中创建"分析类图"包
2. 识别系统中的关键类
3. 确定类的属性和操作
4. 建立类之间的关系(关联、继承、聚合等)
5. 绘制分析类图
6. 使用TRAE辅助生成和优化类图说明
**注意事项:**
- 分析类图应反映业务领域建模
- 更新此图,确保与系统需求一致
- TRAE生成的类图说明需要人工审查和修改
## 8. 界面设计预计时间35分钟
**步骤:**
1. 在EA中创建"界面设计"包
2. 设计系统主要界面
3. 绘制界面原型图
4. 使用TRAE辅助生成和优化界面设计说明
**注意事项:**
- 界面设计应符合用户习惯和系统需求
- 考虑界面的易用性和美观性
- TRAE生成的界面设计说明需要人工审查和修改
## 9. 数据设计预计时间45分钟
**步骤:**
1. 在EA中创建"数据设计"包
2. 设计系统物理模型
3. 绘制ER图实体-关系图)(概念转逻辑转物理模型/数据模型)
4. EA生成或编写DDL语句
5. 推荐使用SQLite数据库或PostgreSQL数据库
6. 使用TRAE辅助生成和优化数据设计文档
**注意事项:**
- 物理模型应考虑数据库性能和扩展性
- DDL语句应完整且可执行
- TRAE生成的数据设计文档需要人工审查和修改
## 10. 设计类预计时间55分钟
**步骤:**
1. 在EA中创建"设计类"包
2. 基于分析类图进行细化设计
3. 添加详细的属性和方法
4. 考虑实现细节和技术选型
5. 绘制设计类图
6. 使用TRAE辅助生成和优化设计类说明
**注意事项:**
- 更新后,只保留类,说明性图文
- 设计类图应考虑系统实现的技术细节
- TRAE生成的设计类说明需要人工审查和修改
## 11. 行为建模预计时间70分钟
**步骤:**
1. 在EA中创建"行为建模"包
2. 进行分析级行为建模:
- 识别类,找出关键属性和操作以及类间关系
- 可中文描述,是开发者从系统用户需求和业务需求提炼得到
3. 进行设计级别行为建模:
- 着重考虑系统需求,实现数据存储数据库的业务需求和系统需求
4. 进行实现级别行为建模:
- 此图为所有模型图的核心,所有类,及其对象的行为
5. 补充文字描述此图的逻辑序列
6. 使用TRAE辅助生成和优化行为建模说明
**注意事项:**
- 分析级行为建模图与分析类图对应都属于分析级别的UML模型图
- 实现级别行为建模是所有模型图的核心,必须掌握
- TRAE生成的行为建模说明需要人工审查和修改
## 12. 包图预计时间25分钟
**步骤:**
1. 在EA中创建"包图"包
2. 设计个人功能包结构
3. 绘制包图
4. 使用TRAE辅助生成和优化包图说明
**注意事项:**
- 个人功能包中应包含视图、控制、实体类等
- 包结构应清晰 reflect个人功能的模块划分
- TRAE生成的包图说明需要人工审查和修改
## 13. 组件模型预计时间25分钟
**步骤:**
1. 在EA中创建"组件模型"包
2. 识别个人功能组件
3. 绘制组件图
4. 更新后截图
5. 使用TRAE辅助生成和优化组件模型说明
**注意事项:**
- 组件应具有明确的功能和接口
- 组件之间的关系应清晰
- 组件模型应支持个人功能的独立开发和测试
- TRAE生成的组件模型说明需要人工审查和修改
## 14. 编码建模预计时间50分钟
**步骤:**
1. 在EA中创建"编码建模"包
2. 设计代码结构
3. 实现关键功能的代码片段
4. 记录实现的【图文码】
- EA所绘制的模型图
- 文、码可采用TRAE辅助生成和优化
- 头歌项目托管提供质检、部署的运维管理
**核心:**
- 个人在本次实验中完成个人功能的完整开发测试
**注意事项:**
- 代码应符合编码规范
- 考虑代码的可读性和可维护性
- 建议使用TRAE进行代码补全和优化但不要直接生成代码
- TRAE生成的代码需要人工审查和修改
## 15. 测试建模预计时间60分钟
**步骤:**
1. 在EA中创建"测试建模"包
2. 补充测试框架,测试类型等必要的文字说明
3. 进行编码vs单测建模
4. 进行设计vs集测建模
5. 进行分析vs系测建模
6. 进行需求vs验测建模
7. 使用TRAE辅助生成和优化测试用例
**注意事项:**
- 测试建模应覆盖系统的各个层面
- 不同级别的测试有不同的目标和范围
- TRAE生成的测试用例需要人工审查和修改
## 16. 测试管理预计时间35分钟
**步骤:**
1. 在EA中创建"测试管理"包
2. 设计测试用例
3. 制定测试计划
4. 导出测试列表并粘贴到报告中
5. 使用TRAE辅助生成和优化测试计划
**注意事项:**
- 使用EA的导出列表功能
- 测试用例应覆盖主要功能和边界情况
- TRAE生成的测试计划需要人工审查和修改
## 17. 部署建模预计时间25分钟
**步骤:**
1. 在EA中创建"部署建模"包
2. 设计系统部署架构
3. 绘制部署图
4. 更新后截图
5. 使用TRAE辅助生成和优化部署文档
**注意事项:**
- 部署图应反映系统的物理架构
- 考虑系统的性能和可用性要求
- TRAE生成的部署文档需要人工审查和修改
## 18. 跟踪建模预计时间25分钟
**步骤:**
1. 在EA中创建"跟踪建模"包
2. 建立需求与设计元素之间的跟踪关系
3. 绘制跟踪图
4. 更新后截图
5. 使用TRAE辅助生成和优化跟踪文档
**注意事项:**
- 跟踪关系应确保需求可追溯
- 跟踪图应清晰显示需求与设计元素之间的关系
- TRAE生成的跟踪文档需要人工审查和修改
## 19. 登录流水线预计时间50分钟
### 19.1 EAGitOps研发模式理解
EAGitOps是一种集成的软件开发模式结合了Enterprise Architect、Git、Jenkins、SonarQube等工具实现从需求分析到部署运维的全流程自动化。
**核心组件:**
- **Enterprise Architect**:完成项目的所有定义、需求、分析、设计、编码、测试以及各种管理与追踪工作
- **Git/Gitea**:现代版本管理工具,基于它完成团队协作
- **Jenkins**:自动化构建、测试、交付和发布以及部署
- **SonarQube**:代码质量分析和质量门禁检查
- **PostgreSQL**:数据持久化存储
- **TRAE**:文档生成与代码优化辅助工具
**开发过程模型:**
本项目采用DevOps模式开发开发过程模型采用EAGitOps模式并结合"W模型"进行软件计划测试,其中编码测试改为单元测试。这种组合模型确保了开发过程的高效性和测试的全面性,实现了开发与测试的同步进行。
### 19.2 EAGitOps流水线操作流程
#### 19.2.1 环境准备
1. **启动EAGitOps环境**
```
# 启动PostgreSQL
net start postgresql-x64-14
# 启动Gitea
cd /d E:\eagitops\gitea
gitea.exe web
# 启动TomcatJenkins
cd /d E:\eagitops\tomcat\bin
startup.bat
# 启动SonarQube
cd /d E:\eagitops\sonarqube\bin\windows-x86-64
StartSonar.bat
```
2. **配置环境变量**
```
set EAGITOPS_HOME=E:\eagitops
set JAVA_HOME=%EAGITOPS_HOME%\jdk
set POSTGRESQL_HOME=%EAGITOPS_HOME%\postgresql
set GIT_HOME=%EAGITOPS_HOME%\git
set SONAR_HOME=%EAGITOPS_HOME%\sonarqube
set PATH=%JAVA_HOME%\bin;%POSTGRESQL_HOME%\bin;%GIT_HOME%\bin;%PATH%
```
#### 19.2.2 流水线操作步骤
1. **Git拉取源码**
```bash
git clone http://localhost:3000/team/campus-agent-system.git
cd campus-agent-system
git checkout feature_fxb
```
2. **代码静态扫描**
- 使用SonarQube进行代码质量分析
- 检查代码规范、潜在bug、代码复杂度等
- 生成代码质量报告
3. **质量门禁检查**
- 设置代码质量阈值
- 不符合质量标准的代码无法进入下一阶段
- 确保代码质量持续改进
4. **构建**
```bash
mvn clean compile
```
5. **单元测试**
```bash
mvn test
```
6. **集成测试**
```bash
mvn verify
```
7. **EA的系测、验测以及测试管理**
- 使用EA进行系统测试和验收测试
- 管理测试用例和测试结果
- 生成测试报告
8. **交付、部署和运行**
- 打包应用程序
- 部署到测试环境
- 部署到生产环境
- 监控应用程序运行状态
9. **TRAE辅助文档生成**
- 使用TRAE生成项目文档
- 优化代码质量和文档结构
- 辅助生成测试报告
### 19.3 EAGitOps过程模型图与W模型图的组合
绘制EAGitOps过程模型图与W模型图的组合图展示开发与测试的同步进行包括
- **需求分析 → 需求测试**
- 使用EA进行需求建模和需求测试
- 使用TRAE辅助生成需求文档
- 确保需求覆盖完整、可测试
- **概要设计 → 概要设计测试**
- 使用EA进行概要设计和设计测试
- 使用TRAE辅助生成设计文档
- 确保设计满足需求
- **详细设计 → 详细设计测试**
- 使用EA进行详细设计和设计测试
- 使用TRAE辅助生成详细设计文档
- 确保设计细节正确
- **编码实现 → 单元测试**
- 使用TRAE进行编码
- 使用TRAE进行代码补全和优化
- 使用JUnit进行单元测试
- 使用SonarQube进行代码质量检查
- **模块集成 → 集成测试**
- 使用Maven进行模块集成
- 使用JUnit进行集成测试
- 使用Jenkins自动化集成测试
- 使用TRAE辅助生成集成测试报告
- **系统构建 → 系统测试**
- 使用Jenkins进行系统构建
- 使用EA进行系统测试
- 使用TRAE辅助生成系统测试报告
- 确保系统功能完整
- **系统安装 → 验收测试**
- 使用Jenkins进行系统部署
- 使用EA进行验收测试
- 使用TRAE辅助生成验收测试报告
- 确保系统满足用户需求
### 19.4 EAGitOps工具链集成
**工具链集成流程:**
1. **EA → Git**将EA模型导出为文档提交到Git仓库
2. **Git → Jenkins**Jenkins监听Git仓库变化触发构建
3. **Jenkins → SonarQube**Jenkins调用SonarQube进行代码质量检查
4. **SonarQube → Jenkins**SonarQube返回质量检查结果影响构建流程
5. **Jenkins → PostgreSQL**Jenkins将测试结果存储到PostgreSQL
6. **PostgreSQL → EA**EA从PostgreSQL读取测试结果更新测试模型
7. **TRAE → 全流程**TRAE辅助各阶段文档生成和代码优化
**注意事项:**
- EAGitOps是课程的核心包括
- 面向对象方法核心Java的OO编程、UML的OO语言
- DevOps模式核心整合Git、Gitea、Jenkins、SonarQube、PostgreSQL等多种平台
- 工具核心从IDE到CASE再到UML以及DevOps
- 辅助工具核心TRAE文档生成与代码优化
- 确保各工具之间的版本兼容性
- 定期备份重要数据和配置文件
- 监控各服务的运行状态,及时处理异常情况
- 合理使用TRAE辅助工具提高效率但不过度依赖
## 20. 项目报告预计时间40分钟
**步骤:**
1. 在实验二软件需求分析文档基础上修改完成
2. 确保所有图表和内容都已更新
3. 检查文档格式和结构
4. 完成最终报告
5. 使用TRAE辅助生成和优化报告内容
**注意事项:**
- 报告应包含所有实验内容和结果
- 确保图表清晰可读
- 检查文档的完整性和准确性
- TRAE生成的报告内容需要人工审查和修改
## 21. 实验提交内容
1. 注册登录功能完整开发测试报告
2. 注册登录功能用例图EA格式
3. 注册登录功能活动图EA格式
4. 注册登录功能UCP估算报告
5. 注册登录功能需求跟踪矩阵
6. 个人实验报告包含注册登录功能所有EA模型图的截图和说明
7. 个人甘特图EA格式和导出的PNG/PDF格式
8. TRAE辅助生成文档包含TRAE生成的各类辅助文档和优化建议
### 提交方式
1. **头歌平台提交**
- 将所有成果物上传至头歌平台个人仓库
- 确保文件结构清晰,命名规范
- 提交前进行自查,确保完整性
2. **文档整理**
- 将所有报告和文档整理到docs目录
- 确保Markdown文件格式正确
- 检查图片链接是否有效
3. **模型文件整理**
- 将EA模型文件整理到models目录
- 确保模型文件可以正常打开
- 导出关键模型图为PNG格式
4. **甘特图文件整理**
- 将个人甘特图EA文件整理到models目录
- 导出甘特图为PNG或PDF格式整理到docs目录
- 确保甘特图清晰可读,包含完整的任务信息和进度标记
5. **TRAE辅助文档整理**
- 将TRAE生成的辅助文档整理到trae目录
- 确保文档格式正确,内容完整
- 添加必要的说明和注释
## 22. 评分标准
### 评分细则
| 评分项目 | 分值 | 评分标准 |
|---------|------|---------|
| 个人功能完整开发测试报告 | 15 | 内容完整、逻辑清晰、格式规范 |
| 注册登录功能用例图EA格式 | 15 | 用例完整、关系正确、符合规范 |
| 注册登录功能活动图EA格式 | 15 | 流程合理、状态转换正确、符合规范 |
| 注册登录功能UCP估算报告 | 15 | 计算准确、分析合理、符合规范 |
| 注册登录功能需求跟踪矩阵 | 15 | 需求覆盖完整、跟踪关系正确 |
| 个人实验报告 | 20 | 内容完整、格式规范、分析深入 |
| 个人甘特图 | 5 | 任务分解合理、时间安排科学、依赖关系正确 |
### 评分说明
1. **注册登录功能完整开发测试报告**15分
- 报告结构完整,包含功能需求、设计、实现和测试
- 分析深入,逻辑清晰,表达准确
- 格式规范,符合学术写作要求
2. **注册登录功能用例图**15分
- 用例图完整,包含所有必要的参与者和用例
- 关系正确,包含关联、包含和扩展关系
- 符合UML规范布局合理美观
3. **注册登录功能活动图**15分
- 活动图完整,包含所有必要的活动和决策点
- 流程合理,状态转换正确
- 符合UML规范布局清晰
4. **注册登录功能UCP估算报告**15分
- UCP计算准确步骤完整
- 分析合理,考虑因素全面
- 符合UCP估算规范
5. **注册登录功能需求跟踪矩阵**15分
- 需求覆盖完整,无遗漏
- 跟踪关系正确,映射准确
- 格式规范,易于阅读
6. **个人实验报告**20分
- 内容完整包含所有EA模型图的截图和说明
- 格式规范,符合学术写作要求
- 分析深入,有个人见解和思考
7. **个人甘特图**5分
- 任务分解合理,覆盖实验二所有主要任务
- 时间安排科学,考虑任务复杂度和依赖关系
- 依赖关系正确,关键路径清晰
- 甘特图格式规范,易于理解
### 加分项
1. **创新性**最多加3分
- 在功能设计或实现上有创新点
- 提出独特的解决方案或优化建议
2. **完整性**最多加3分
- 超出基本要求,提供额外的功能或分析
- 文档和模型特别详细和完整
3. **规范性**最多加4分
- 所有文档和模型严格遵循规范
- 代码和文档质量特别高
4. **TRAE工具使用**最多加2分
- 合理使用TRAE工具提高效率
- TRAE生成的内容经过适当修改和优化
### 扣分项
1. **迟交**每天扣5分
- 迟交作业将按天扣分最多扣20分
2. **格式不规范**每项扣2-5分
- 文档格式不符合要求
- 模型不符合UML规范
3. **内容不完整**每项扣5-10分
- 缺少必要的部分或内容
- 分析不够深入或准确
4. **抄袭**该项记0分
- 发现抄袭行为该项记0分
- 严重抄袭可能导致整个实验记0分
5. **过度依赖TRAE**每项扣2-3分
- 直接使用TRAE生成的内容未进行适当修改
- TRAE生成的内容存在明显错误
## 23. 注意事项
### 实验操作注意事项
1. 所有EA截图操作EA -> Public -> Save to clipboard -> Word中粘贴Ctrl+V
2. 注册登录功能模型图中作者为自己的姓名或项目代号CHZU_CS231_SEBG09
3. 除导出列表外,其他内容需要截图
4. 实验过程中注意保存注册登录功能EA项目文件
5. 个人实验报告应及时提交,避免逾期(范孝宝同学应提交"注册登录功能实验报告"
6. 本次实验暂时不进行小组合并,但要求个人功能完成功能的完整开发、测试和运维
7. **重要:** 文档中的"个人功能"是通用术语,请务必替换为您实际负责的具体功能名称,范孝宝同学应使用"注册登录功能"(包括人员注册、账号登录和密码找回三个子功能)
### 时间管理注意事项
8. 合理安排时间,确保在两次课程之间有足够时间完成个人功能的完整开发测试
9. 建议使用甘特图跟踪进度,及时调整计划,避免临近截止日期匆忙完成
10. 优先完成核心建模任务(需求建模、用例建模、分析类图、行为建模),再完善其他模型
11. 合理安排TRAE辅助工具使用时间确保有足够时间审查和修改生成的内容
### 实验流程注意事项
12. 确保模型之间的一致性,特别是需求、用例、分析和设计模型之间的对应关系
13. 在完成每个模型后及时检查是否符合UML规范和课程要求
14. 建议在完成每个主要阶段后进行自我评估,确保达到评分标准要求
15. 遇到问题及时与教师或助教沟通,不要拖延到实验后期
### EAGitOps环境注意事项
16. **环境启动顺序**严格按照PostgreSQL→Gitea→Tomcat(Jenkins)→SonarQube的顺序启动服务
17. **环境变量配置**确保EAGitOps环境变量正确配置包括JAVA_HOME、POSTGRESQL_HOME等
18. **服务端口检查**启动前检查端口3000(Gitea)、8080(Jenkins)、9000(SonarQube)、5432(PostgreSQL)是否被占用
19. **服务状态监控**:定期检查各服务运行状态,异常情况及时处理
20. **数据备份**定期备份Git仓库、PostgreSQL数据库和Jenkins配置
21. **版本兼容性**:确保各工具版本之间兼容,避免因版本不匹配导致的问题
22. **资源占用监控**EAGitOps环境占用资源较多确保系统内存和存储空间充足
23. **控制面板使用**使用eagitops.au3控制面板可以简化环境管理操作
24. **日志查看**:遇到问题时查看各服务的日志文件,快速定位问题原因
25. **网络连接**:确保网络连接稳定,部分工具需要网络下载依赖或更新
26. **权限设置**:确保有足够的系统权限启动服务和管理文件
27. **防火墙设置**:检查防火墙设置,确保各服务端口可以正常访问
28. **服务关闭顺序**关闭服务时按相反顺序操作SonarQube→Tomcat(Jenkins)→Gitea→PostgreSQL
## 24. 版本更新说明
### v3.1 (2025-11-09)
- 添加EAGitOps实验环境支持
- 更新实验环境与工具章节详细介绍EAGitOps组件
- 添加EAGitOps环境启动顺序和访问地址
- 新增EAGitOps工具链使用指南
- 更新登录流水线部分添加EAGitOps具体操作步骤
- 添加EAGitOps环境变量配置和工具启动指南
- 更新注意事项添加EAGitOps环境相关内容
- 添加TRAE辅助工具相关内容和使用指南
- 更新评分标准添加TRAE工具使用相关评分项
### v3.0 更新内容2025-11-09
1. **文档结构优化**
- 参考实验一操作V3.md格式重新组织文档结构
- 添加了完整的目录结构,方便快速导航
- 统一了章节编号格式
2. **时间估算与分配**
- 调整总时间估算为900分钟约15小时更符合个人功能完整开发测试的工作量
- 将实验内容分为两次课程,每次课程包含具体任务和时间分配
- 添加了时间管理建议,帮助学生更好地规划实验进度
3. **内容调整**
- 修正编程语言为Java更符合项目实际情况
- 添加了编码建模、组件模型、部署建模、跟踪建模和登录流水线等个人功能完整开发测试内容
- 保留了需求分析的核心内容:项目词汇定义、需求建模、用例建模等
4. **个人功能内容**
- 添加了个人功能清单,明确各成员个人功能完整开发测试职责
- 详细说明了个人功能完整开发测试流程
- 列出了个人功能最终提交成果物清单
### 版本历史
- v1.0:初始版本,包含基本的实验内容和步骤
- v2.0:添加了详细的时间估算和注意事项
- v3.0参考实验一操作V3.md格式优化文档结构调整时间估算修正编程语言为Java
- v3.1添加EAGitOps实验环境支持和TRAE辅助工具相关内容

Binary file not shown.

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save