Compare commits

..

8 Commits

@ -0,0 +1 @@
Subproject commit e60aed3ff6e8151d02e2f46ecb64071cf3c46986

@ -0,0 +1,215 @@
# 实验一软件项目计划个人报告
## 个人基本信息
- **姓名**:仇新宇
- **学号**2023210444
- **班级**:计科 231
- **小组**G12 组
- **角色**:项目经理
- **实验日期**2025-11-03
- **提交日期**2025-11-07
## 个人任务完成情况
### 1. 个人负责的功能模块分析
作为项目经理,我负责的核心功能模块为 "查询天气及动态展示",该模块是天气查询应用的核心功能,直接影响用户体验。模块主要包含以下子功能:
- **城市天气查询功能**:支持用户通过输入城市名称或定位获取目标城市天气
- **实时天气数据展示**:以动态方式呈现温度、天气状况、湿度、风力等实时数据
- **预报数据展示**:展示未来 7 天天气预报及小时级降水趋势,支持动态交互
- **动态效果展示**:包括天气状态动画、数据更新动画、界面切换过渡效果等
- **个性化动态设置**:允许用户开启/关闭动态效果、切换动态背景模式
### 2. EA 模型设计
#### 需求图
- **类型和用途**:需求层次图,用于展示 "查询天气及动态展示" 模块的需求层次结构和各需求间的关系,明确功能边界和优先级。
- **主要元素和关系**
- 核心需求:查询天气并动态展示(顶层需求)
- 一级子需求:实时数据查询与展示、预报数据查询与展示、动态交互效果、个性化设置
- 二级子需求:各一级需求的细化(如实时数据包括温度、天气状况等)
- 关系:采用 "包含" 关系表示需求间的层级结构,用 "依赖" 关系表示需求间的关联
- **设计思路体现**:通过层次化展示,明确核心功能与辅助功能的关系,突出 "动态展示" 作为差异化特色的设计思路,确保用户体验需求优先于其他次要需求。
#### 用例图
- **类型和用途**:用例图,用于描述模块的参与者与用例之间的关系,明确功能范围和用户交互场景。
- **主要元素和关系**
- 参与者:普通用户
- 核心用例:查询天气并动态展示
- 子用例:动态展示实时天气、动态展示预报数据、动态展示扩展信息、触发动态交互效果、设置动态展示偏好
- 关系:核心用例通过 "包含" 关系关联实时展示和预报展示等必要子用例,通过 "扩展" 关系关联个性化设置等可选功能
- **设计思路体现**:清晰区分核心功能与可选功能,突出动态展示作为核心体验的设计理念,明确用户与系统的交互边界。
#### 甘特图
- **类型和用途**:项目进度甘特图,用于规划模块开发的时间安排、任务分解和进度控制。
- **主要元素和关系**
- 任务节点需求分析、原型设计、UI 开发、功能开发、单元测试、集成测试等
- 时间轴以天为单位覆盖整个开发周期2025-11-05 至 2025-11-25
- 依赖关系:展示任务间的先后依赖(如原型设计完成后才能开始 UI 开发)
- 里程碑:需求确认、功能完成、测试通过三个关键节点
- **设计思路体现**:采用迭代开发思想,将动态展示功能拆分为基础展示和高级动画两个阶段,优先保证核心功能可用,再逐步增强用户体验。
#### 软件过程模型图
- **类型和用途**:增量模型图,说明模块采用的开发过程和方法。
- **主要元素和关系**
- 阶段:需求分析、设计、开发、测试、部署
- 增量:分为三个增量(基础查询功能、基本动态展示、高级动态交互)
- 迭代关系:每个增量均包含完整的开发流程,后一增量基于前一增量迭代
- **设计思路体现**:通过增量模型实现功能的逐步完善,先确保查询功能的稳定性,再逐步加入动态展示效果,降低开发风险。
### 3. 测试用例设计
| 测试用例 ID | 测试功能 | 测试目的 | 输入数据 | 预期结果 | 测试步骤 | 优先级 |
|------------|---------|---------|---------|---------|---------|--------|
| TC001 | 城市天气查询 | 验证查询功能正确性 | 输入 "北京市" | 正确显示北京当前天气和预报 | 1. 打开应用<br>2. 在搜索框输入 "北京市"<br>3. 点击查询<br>4. 观察显示结果 | 高 |
| TC002 | 实时天气动态展示 | 验证实时数据动态效果 | 定位至当前城市 | 温度数字平滑滚动,天气图标动态展示 | 1. 打开应用<br>2. 允许定位<br>3. 观察实时天气展示效果 | 高 |
| TC003 | 预报数据滑动展示 | 验证预报数据动态切换功能 | 左右滑动预报区域 | 平滑切换不同日期的预报数据 | 1. 进入天气详情页<br>2. 在预报区域左右滑动<br>3. 观察切换效果和数据准确性 | 中 |
| TC004 | 动态效果开关 | 验证动态效果开关功能 | 关闭 "动态效果" 设置 | 所有动态效果消失,界面静态展示 | 1. 进入设置页面<br>2. 关闭 "动态效果" 选项<br>3. 返回首页观察效果 | 中 |
| TC005 | 异常城市查询 | 验证异常输入处理能力 | 输入不存在的城市名称 "天空市" | 显示友好错误提示,不崩溃 | 1. 在搜索框输入 "天空市"<br>2. 点击查询<br>3. 观察系统反应 | 高 |
- **覆盖功能点**:测试用例覆盖了核心查询功能、动态展示效果、用户交互、异常处理等关键功能点
- **边界条件**:包括无效输入处理、功能开关切换等边界场景
- **优先级分析**:查询功能正确性和异常处理的优先级最高,确保系统稳定可用;动态效果细节优先级次之,保证核心体验
### 4. 个人工作总结与甘特图分析
#### 主要工作内容和完成情况
- 完成 "查询天气及动态展示" 模块的需求分析,明确功能边界和用户场景
- 使用 EA 工具完成需求图、用例图、甘特图和软件过程模型图的设计
- 设计了 5 个关键测试用例,覆盖核心功能和边界条件
- 制定了详细的开发计划,明确了各任务的时间节点和依赖关系
- 目前所有计划工作均按预期进度完成,需求分析和模型设计已通过小组评审。
#### 时间安排和进度控制分析
根据甘特图安排,模块开发周期为 21 天2025-11-05 至 2025-11-25目前处于需求分析和设计阶段第 1-3 天),进度符合预期。通过设置每日检查点,确保任务按计划推进。
#### 遇到的问题和解决方案
- **问题**:动态展示效果的需求描述不够清晰,团队成员理解不一致
**解决方案**:组织小组讨论,通过原型草图统一认识,形成书面需求说明
- **问题**EA 工具使用不熟练,建模效率低<br>**解决方案**:查阅教程,请教老师,组织小组内工具使用培训
#### 收获和体会
- 项目计划需要充分考虑功能优先级和资源分配,不能贪大求全
- 建模工具能有效梳理思路,提高团队沟通效率
- 测试用例设计需要从用户角度出发,考虑各种使用场景
#### 改进措施
- 提高 EA 工具使用熟练度,减少建模时间
- 加强需求调研深度,提前识别潜在需求变更
- 细化任务拆分,提高进度控制精度
### 5. 甘特图应用分析
#### 时间节点和工期安排
- **需求分析**2025-11-05 至 2025-11-073 天)
- **原型设计**2025-11-08 至 2025-11-103 天)
- **UI 开发**2025-11-11 至 2025-11-155 天)
- **功能开发**2025-11-16 至 2025-11-205 天)
- **测试与修复**2025-11-21 至 2025-11-255 天)
总工期 21 天,关键里程碑为 11 月 10 日的原型确认和 11 月 25 日的功能交付。
#### 与其他团队成员的依赖关系
- 依赖数据接口团队在 11 月 15 日前完成 API 封装
- 为前端集成团队提供 11 月 20 日前完成的功能模块
- 与测试团队协作,在 11 月 21 日前提供测试版本
#### 关键路径影响分析
本模块位于项目关键路径上,任何延期都会影响整体项目进度。特别是 UI 开发和功能开发阶段,直接决定了后续测试和集成的时间,需要重点监控。
#### 甘特图指导价值评估
甘特图清晰展示了任务安排和时间节点,帮助我:
- 合理分配时间,避免任务堆积
- 识别关键任务和依赖关系,提前规划
- 跟踪进度偏差,及时调整计划
- 向团队成员清晰传达任务安排
## 实验一相关问题思考
### 问题 1项目计划的重要性
软件项目计划是软件开发的基础和指南,它的重要性体现在:
- 明确项目目标和范围,避免开发过程中的需求蔓延
- 合理分配资源,提高开发效率
- 设定清晰的时间节点,便于进度控制
- 识别潜在风险,提前制定应对策略
以银行 ATM 系统为例,项目计划可指导后续开发:
- 通过需求分析明确取款、存款、转账等核心功能的优先级
- 规划安全模块的开发时间和测试重点,确保系统安全性
- 制定分阶段交付计划,先实现基础功能,再逐步增加高级功能
- 安排充分的集成测试时间,确保与银行核心系统的兼容性
### 问题 2甘特图的应用价值
甘特图在项目管理中的作用和优势:
- 直观展示任务时间安排,便于理解和沟通
- 清晰显示任务间的依赖关系,帮助识别关键路径
- 便于跟踪进度,及时发现延期风险
- 支持资源分配可视化,避免资源冲突
在天气查询系统项目中,甘特图的帮助体现在:
- 明确各模块开发顺序,如先开发数据接口,再开发 UI 展示
- 合理安排测试时间,确保有足够时间修复问题
- 协调团队成员工作,避免重复劳动或工作空白
- 为项目里程碑提供明确时间点,便于进度汇报和控制
## 工具使用体会
### EAEnterprise Architect使用体会
使用 EA 的主要功能包括创建需求图、用例图、甘特图和软件过程模型图,操作流程是先创建项目,再添加相应的图表元素,最后建立元素间的关系。
**EA 的优势**
- 支持多种建模语言和图表类型,满足不同阶段的建模需求
- 元素间关系管理清晰,便于维护复杂模型
- 支持团队协作和版本控制,适合团队开发
**EA 的不足**
- 界面较为复杂,新手入门难度大
- 部分操作不够直观,需要记忆较多操作步骤
- 对中文支持不够友好,偶尔出现显示问题
使用中遇到的困难主要是初期不熟悉操作界面和元素关系建立方法,通过查阅官方文档和在线教程逐步解决。建议通过实际案例练习来提高使用效率,同时可以自定义快捷键简化常用操作。
### TRAE 辅助工具使用体会
TRAE 辅助工具主要用于辅助生成项目文档,能够根据模型自动生成部分文档内容,减少手动编写的工作量。
**TRAE 的价值**
- 提高文档生成效率,减少重复劳动
- 保证文档与模型的一致性,避免两者脱节
- 提供标准化的文档模板,保证文档质量
**TRAE 的局限性**
- 自动生成的内容较为基础,需要大量人工修改和补充
- 对模型的规范性要求高,否则生成的文档质量差
- 模板定制不够灵活,难以满足特定格式需求
使用体会TRAE 作为辅助工具能有效提高文档工作效率但不能完全替代人工编写。AI 辅助工具在软件开发中前景广阔,特别是在需求分析、文档生成和测试用例设计等方面,有望大幅提高开发效率。
### Git 版本控制使用体会
使用 Git 进行版本控制的基本操作包括初始化仓库、提交修改、创建分支、合并分支和解决冲突等。
**Git 在团队协作中的重要性**
- 允许多人同时开发,避免代码冲突
- 保留完整的修改历史,便于追溯问题
- 支持分支管理,便于并行开发不同功能
- 提供代码审查机制,提高代码质量
使用中遇到的主要问题是分支合并时的代码冲突通过提前沟通分工、频繁合并和使用可视化工具解决冲突来应对。Git 分支管理策略各有优缺点,单一主分支策略简单但不适合复杂项目,多分支策略灵活但管理成本高,应根据项目规模和团队情况选择合适的策略。
## 附录
### 附录 A个人设计的 EA 模型图
![alt text](<屏幕截图 2025-11-07 131014.png>)
![alt text](<屏幕截图 2025-11-07 131340.png>)
![alt text](<屏幕截图 2025-11-07 142118.png>)
### 附录 B个人测试用例表
(同 3. 测试用例设计中的表格)
### 附录 C个人工作日志
| 日期 | 工作内容 | 工作时长 | 完成情况 | 遇到的问题 | 解决方案 |
|------|---------|---------|---------|-----------|--------|
| 2025-11-03 | 需求分析和功能模块划分 | 3 小时 | 完成 80% | 动态展示需求不明确 | 查阅竞品分析,明确效果范围 |
| 2025-11-04 | 完成需求分析,开始 EA 模型设计 | 4 小时 | 完成 100% | EA 工具操作不熟练 | 观看教程,练习基本操作 |
| 2025-11-05 | 设计需求图和用例图 | 3 小时 | 完成 100% | 用例关系梳理不清 | 参考示例,请教老师 |
| 2025-11-06 | 设计甘特图和软件过程模型图 | 3 小时 | 完成 100% | 任务时间估算不准 | 参考类似项目,团队讨论确定 |
| 2025-11-07 | 设计测试用例,撰写报告 | 4 小时 | 完成 100% | 测试场景考虑不全 | 从用户角度梳理使用场景 |

@ -0,0 +1,336 @@
# 实验一软件项目计划个人报告
## 个人基本信息
- **姓名**:杜德志
- **学号**2023210448
- **班级**计科231
- **小组**G12组
- **角色**开发人员2
- **实验日期**2025-11-03
- **提交日期**2025-11-08
## 个人任务完成情况
### 1. 个人负责的功能模块分析
#### 开发人员2杜德志天气预告和行业应用功能模块负责人
##### 1.1 功能点详细分析
**天气预告功能模块**
- **实时天气服务**
- 提供精确到街道级别的实时温度、湿度、气压、风向风速、能见度、空气质量指数(AQI)等核心气象数据
- 支持自动定位和手动搜索两种位置获取方式
- 数据刷新频率城市中心区域5分钟/次郊区10分钟/次
- 支持多时区和国际城市天气查询
- **多日预报服务**
- 提供未来7-15天的天气预报包括每日温度范围、天气现象、降水概率、紫外线强度
- 支持24小时逐时预报每小时更新天气变化趋势
- 提供日出日落时间、月相变化等天文信息
- 支持历史天气数据查询最长可查询30天
- **天气预警服务**
- 实时监控并推送各类气象预警信息暴雨、大风、高温、寒潮等18种预警类型
- 支持按地区、预警级别、预警类型进行筛选
- 提供预警详情页面,包含预警影响范围地图可视化展示
- 预警信息推送延迟不超过60秒
- **生活指数服务**
- 提供12种生活指数穿衣、洗车、紫外线、运动、旅游、舒适度、感冒、晾晒、交通、钓鱼、化妆、空调
- 每个指数包含详细的文字说明和建议
- 指数更新频率每日3次早、中、晚
**行业应用功能模块**
- **物流行业应用**
- **智能路线规划**:基于实时和预报天气数据,综合考虑道路状况,提供最优物流路线
- **风险评估系统**对路线上的潜在天气风险进行评分1-10级高亮显示高风险路段
- **备选路线生成**当主路线存在严重天气风险时自动生成2-3条备选路线
- **延误预测模型**:基于历史数据分析和天气预报,预测可能的运输延误时间
- **车队管理接口**:支持对接第三方车队管理系统,实现批量车辆路线优化
- **农业行业应用**
- **精准农事建议引擎**:基于天气数据、土壤信息、作物类型和生长阶段,提供定制化农事建议
- **病虫害预警**:结合气象条件和历史病虫害数据,预测病虫害发生概率,提前发布预警
- **灌溉决策支持**:根据天气预报和土壤湿度监测,推荐最优灌溉时间和水量
- **农田管理系统**:支持多块农田信息管理,包括位置、面积、作物类型、种植日期等
- **产量预测模型**:基于天气趋势和作物生长状况,预测作物产量范围
- **农产品质量追溯**:记录关键农事活动与天气条件的关联,支持产品质量追溯
##### 1.2 业务流程详细分析
**天气预告功能业务流程**
1. **位置确定流程**
- 用户打开应用 → 系统自动请求位置权限 → 用户授权后获取精确位置
- 若用户拒绝授权或定位失败 → 系统提供搜索框和常用城市列表供手动选择
- 用户可保存多个常用地点,支持快速切换查询
2. **数据获取与展示流程**
- 系统根据选定位置向数据采集模块发送请求 → 数据采集模块从气象数据源获取最新数据
- 数据经处理后返回 → 前端进行格式化展示,包括图表、动画效果
- 系统记录用户查询行为,优化个性化推荐
3. **预警推送流程**
- 气象数据源发布预警信息 → 数据采集模块实时监测并处理
- 预警信息推送至用户 → 用户点击后查看详情 → 系统记录用户交互行为
- 对于高优先级预警,支持短信/电话二次提醒(用户可配置)
4. **异常处理流程**
- 若数据获取失败 → 系统显示离线缓存数据并提示网络状态
- 若数据过期 → 显示数据更新时间并提供手动刷新选项
- 若位置无效 → 给出友好提示并引导用户重新输入
**行业应用功能业务流程**
1. **物流路线规划流程**
- 物流员登录 → 输入起终点信息 → 系统计算基础路线 → 分析沿途天气数据
- 评估各路段天气风险 → 生成最优路线和备选方案 → 展示风险点和建议
- 物流员确认路线 → 系统在运输过程中持续监控天气变化 → 必要时推送路线调整建议
2. **农业应用使用流程**
- 农民注册登录 → 创建农田档案(位置、面积、作物类型等) → 系统初始化
- 日常使用:查看当地天气预报 → 获取今日农事建议 → 记录实际农事活动
- 特殊场景:接收病虫害预警 → 查看应对方案 → 跟踪防治效果
- 定期分析:系统生成农田管理报告,包含天气影响分析和改进建议
##### 1.3 用户交互设计
**天气预告功能交互设计**
- **主界面设计**:采用卡片式布局,顶部显示当前位置和实时天气,中间滑动区域展示多日预报,底部为生活指数
- **地图交互**:支持缩放、拖动操作,不同天气状况用不同颜色区分,点击地图任意位置可查看该点天气
- **搜索功能**:提供智能搜索提示,支持模糊匹配和历史搜索记录
- **个性化设置**:用户可自定义显示单位(摄氏度/华氏度、风速单位等)、预警通知方式、关注指数等
- **语音交互**:支持语音查询天气,适用于驾驶等场景
- **无障碍设计**:支持屏幕阅读器,提供高对比度模式
**行业应用功能交互设计**
- **物流应用交互**
- 路线可视化:使用地图直观展示路线,颜色编码表示风险等级
- 时间轴控件可滑动查看未来24小时沿途天气变化
- 一键分享:支持将路线和风险信息分享给团队成员
- 风险详情弹窗:点击风险点显示详细信息和应对建议
- **农业应用交互**
- 农田概览仪表板:以卡片形式展示各农田状态和今日建议
- 日历视图显示未来30天的农事活动建议和重要天气事件
- 数据图表:提供历史天气与产量关系的可视化图表
- 记录模板:提供常用农事活动的快速记录模板
- 专家咨询入口:连接农业专家,提供在线咨询服务
##### 1.4 与其他模块的接口和交互
**接口定义**
1. **与数据采集模块的接口**
- 接口类型RESTful API
- 调用频率实时天气5分钟/次预报数据1小时/次
- 数据格式JSON
- 关键接口:`/api/weather/realtime`, `/api/weather/forecast`, `/api/weather/alerts`
2. **与安全保障模块的接口**
- 用户认证接口:`/api/auth/login`, `/api/auth/verify`
- 权限验证JWT token验证机制
- 数据加密标准AES-256
3. **与读写管理模块的接口**
- 数据存储接口:`/api/storage/save`, `/api/storage/query`
- 数据同步机制:定时同步 + 事件触发同步
- 缓存策略Redis缓存热点数据
**数据流设计**
- **数据采集流**:气象数据源 → 数据采集模块 → 数据处理层 → 数据存储 → 天气预告模块
- **服务提供流**:天气预告模块 → 行业应用模块 → 用户界面
- **用户交互流**:用户操作 → 应用服务层 → 数据服务层 → 响应返回
**事件触发机制**
- 预警事件触发:当监测到新预警时,触发推送服务
- 阈值触发:当天气数据达到预设阈值时,触发行业应用的相应逻辑
- 定时任务:定期更新统计数据和历史分析
##### 1.5 非功能性需求分析
**性能需求**
- 页面加载时间≤2秒
- 数据刷新响应时间≤1秒
- 支持并发用户数10万
- 系统可用性≥99.9%
**安全需求**
- 用户数据加密存储
- 传输层安全TLS 1.3
- 定期安全审计和漏洞扫描
- 符合GDPR和国内相关数据安全法规
**可扩展性**
- 模块化设计,支持功能独立升级
- 微服务架构,便于水平扩展
- 支持新增行业应用模块的快速集成
**兼容性**
- 移动端支持Android 9.0及以上iOS 14.0及以上
- 支持主流浏览器Chrome、Firefox、Safari、Edge
- 支持响应式设计,适配不同屏幕尺寸
### 2. EA模型设计
请描述您使用EA设计的模型图
- **需求模型图**:展示天气预告和行业应用功能模块的需求层次结构和功能点之间的关系。
- **用例模型图**:描述天气预告和行业应用功能模块的参与者与用例之间的交互关系。
- **项目进度甘特图**:展示天气预告和行业应用功能模块的开发时间安排和进度控制。
#### 需求图分析
- **模型图类型和用途**:需求层次模型图,用于展示天气预告和行业应用功能模块的需求层次结构和功能点之间的关系。
- **主要元素和关系**:需求模型图包含天气需求、天气信息展示(多日预报、实时天气)、安全保障、读写管理、行业应用(农业、物流)、农业应用(灾害预警、农事建议、农田管理)、物流应用(路线规划、灾害预警)等主要元素,以及它们之间的层次关系和依赖关系。
- **设计思路体现**:通过分层结构清晰地展示了从顶层需求到底层具体功能点的分解过程,体现了模块化和层次化的设计思想,确保各功能点之间的逻辑关系清晰。
#### 用例图分析
- **模型图类型和用途**:用例关系模型图,用于描述天气预告和行业应用功能模块的参与者与用例之间的交互关系。
- **主要元素和关系**:用例图包含用户、物流员、农民等参与者,以及查询实时天气、查询多日预报、查询天气预警、获取生活指数、接收极端天气预警、规划物流路线、获取最新天气、接收农事灾害预警、查询精准农事建议、管理农田区位等用例。各参与者与相应的用例通过关联关系连接。
- **设计思路体现**:通过参与者与用例的连接,明确了不同角色对系统功能的使用需求,体现了以用户为中心的设计理念,确保系统功能能够满足不同用户群体的需求。
#### 甘特图分析
- **模型图类型和用途**:项目进度甘特图,用于展示天气预告和行业应用功能模块的开发时间安排和进度控制。
- **主要元素和关系**甘特图包含团队成员杜德志、刘佳欣、邱心雨、任务、开始日期2025年11月5日、结束日期杜德志至11月23日刘佳欣和邱心雨至12月23日和完成度等元素展示了项目的时间线和人员分配情况。
- **设计思路体现**:通过时间线清晰地展示了项目的进度规划,明确了各团队成员的工作周期,便于项目管理者和团队成员了解工作安排和进度情况,合理安排资源。
#### 软件过程模型图
- **模型图类型和用途**:增量迭代模型图,用于说明天气预告和行业应用功能模块的开发过程和方法。
- **主要元素和关系**:包含需求分析、设计、实现、测试、部署等阶段,以及各阶段之间的迭代关系,强调了增量开发和持续集成的理念。
- **设计思路体现**:采用增量迭代模型,将天气预告和行业应用功能分为多个增量进行开发,每个增量完成后进行测试和反馈,确保系统质量和用户满意度。
### 3. 测试用例设计
根据您负责的功能模块,设计测试用例:
#### 关键测试用例
1. **实时天气查询功能测试**
- 测试目的:验证实时天气信息的准确性和展示效果
- 输入数据:有效位置(如北京),选择实时天气查询
- 预期结果正确显示该地区的实时温度、湿度、风向风速、气压、能见度等信息数据更新时间不超过10分钟
- 测试步骤:打开应用→定位或搜索北京→点击实时天气→检查显示信息的完整性和准确性→验证数据更新时间戳
- 测试环境Android 13.0iOS 17.0
- 优先级:高
2. **多日天气预报查询测试**
- 测试目的:验证多日天气预报的展示和数据准确性
- 输入数据有效位置如上海选择7日天气预报
- 预期结果正确显示未来7天的天气状况包括温度范围、天气现象、降水概率、风力等级等
- 测试步骤打开应用→搜索上海→选择多日预报→查看未来7天数据→验证显示格式和内容→检查日期连续性
- 测试环境Android 13.0iOS 17.0
- 优先级:高
3. **天气预警推送测试**
- 测试目的:验证极端天气预警的推送机制
- 输入数据:在测试环境中模拟极端天气数据(暴雨预警、高温预警、大风预警)
- 预期结果系统在1分钟内推送预警信息包含预警类型、级别、影响范围、建议措施等
- 测试步骤:设置测试环境→触发极端天气数据→检查预警推送功能→验证推送内容和及时性→测试点击预警后是否正确跳转详情页
- 测试环境:测试服务器,推送测试工具
- 优先级:高
4. **物流路线规划功能测试**
- 测试目的:验证考虑天气因素的物流路线规划功能
- 输入数据起点广州、终点武汉、出发时间2025-11-20 08:00
- 预期结果:系统提供考虑天气因素的最优路线建议,包含预计到达时间、沿途天气风险点、备选路线
- 测试步骤:登录物流应用→输入起终点和时间→查看路线建议→验证天气因素是否被正确考虑→检查风险提示的准确性
- 测试环境物流应用测试版v1.0
- 优先级:中
5. **精准农事建议查询测试**
- 测试目的:验证基于天气数据的精准农事建议功能
- 输入数据:农业用户登录→选择已绑定农田(水稻田,位于江苏省)→查看农事建议
- 预期结果:显示针对该地区当前天气条件的精准农事建议,包括灌溉时机、病虫害防治、施肥建议等
- 测试步骤:登录农业应用→选择农田→查看农事建议→验证建议的相关性和实用性→检查建议是否考虑了近期天气预报
- 测试环境农业应用测试版v1.0
- 优先级:中
6. **边界测试:位置搜索输入边界值**
- 测试目的:验证系统对边界位置输入的处理能力
- 输入数据:模糊位置名称、不存在的地点名称、特殊字符输入
- 预期结果:模糊位置能正确识别并提供候选列表,不存在地点给出友好提示,特殊字符能正确处理
- 测试步骤:在搜索框输入"北上"→验证候选结果→输入"不存在的城市123#"→检查错误提示→输入特殊字符→验证系统响应
- 测试环境Android 13.0iOS 17.0
- 优先级:中
7. **异常测试:网络断开场景**
- 测试目的:验证系统在网络异常情况下的容错能力
- 输入数据:在查询过程中断开网络连接
- 预期结果:系统给出友好的网络异常提示,并能自动缓存上次查询结果供用户查看
- 测试步骤:打开应用→开始查询天气→手动断开网络→检查系统响应→恢复网络→验证自动重连功能
- 测试环境:弱网测试工具
- 优先级:高
8. **农业数据关联测试**
- 测试目的:验证天气数据与农业数据的正确关联
- 输入数据:添加多个不同作物类型的农田→查看各农田的农事建议
- 预期结果:系统为不同作物类型提供差异化的农事建议,且建议与天气数据紧密相关
- 测试步骤:添加水稻田和小麦田→输入不同的地理位置→查看各自的农事建议→验证建议的针对性差异
- 测试环境农业应用测试版v1.0
- 优先级:中
#### 功能覆盖分析
测试用例覆盖了天气预告的核心功能(实时天气、多日预报、预警推送)和行业应用的关键功能(物流路线规划、精准农事建议),同时增加了边界测试和异常测试场景,确保了功能的正确性、稳定性和用户体验。测试覆盖了以下方面:
1. **基本功能测试**:覆盖了所有核心功能点,验证基本业务逻辑
2. **用户界面测试**:验证信息展示格式和交互流程的正确性
3. **性能测试**:关注数据更新及时性和响应速度
4. **边界测试**:验证系统对边界输入的处理能力
5. **异常测试**:验证系统在异常情况下的容错能力
6. **行业应用深度测试**:验证天气数据如何有效转化为行业特定价值
执行顺序按照优先级从高到低进行,先测试基础功能和高优先级场景,再测试行业应用功能和特殊场景。每个测试用例都明确了测试环境,便于测试团队复现和执行。
### 4. 个人工作总结与甘特图分析
- **主要工作内容和完成情况**负责天气预告和行业应用功能模块的需求分析、EA模型设计和测试用例设计等工作。已完成天气预告和行业应用的需求分析报告、需求模型图、用例模型图设计以及相应的测试用例设计工作进展符合计划要求。
- **时间安排和进度控制**根据甘特图本人的工作从2025年11月5日开始到2025年11月23日结束为期19天。目前已完成大部分核心任务进度符合预期。
- **遇到的问题和解决方案**:在设计行业应用功能时,遇到了如何将通用天气数据转化为行业特定建议的问题。通过研究物流和农业领域的专业知识,与行业专家进行沟通,成功解决了数据转化和业务逻辑设计的问题。
- **收获和体会**通过本次实验深入了解了软件项目计划的重要性掌握了EA建模工具的使用方法提高了需求分析和测试用例设计的能力。同时也学习了如何将通用技术与特定行业需求相结合开发出有针对性的解决方案。
- **工作质量和效率评估**:工作质量良好,但在跨行业知识整合方面还有提升空间。改进措施包括:加强对相关行业知识的学习,提高与行业专家的沟通效率,优化设计流程。
### 5. 甘特图应用分析
- **时间节点和工期安排**本人负责的天气预告和行业应用功能模块在甘特图中安排在2025年11月5日至2025年11月23日为期19天。这一安排考虑了功能的复杂性和优先级为后续开发预留了充足的缓冲时间。
- **依赖关系分析**:天气预告功能依赖于数据采集模块提供的基础数据,而行业应用功能又依赖于天气预告功能的实现。同时,这些功能也为其他模块提供数据支持。
- **关键路径影响**:天气预告功能模块位于项目的关键路径上,其进度直接影响行业应用功能和其他依赖模块的开发进度。
- **指导价值评估**:甘特图为个人工作计划提供了清晰的时间框架和任务目标,有助于合理安排工作时间,监控进度,确保按时完成任务。通过甘特图,我能够清楚地了解自己的工作范围和时间节点,提高了工作效率。
## 实验一相关问题思考
### 问题1项目计划的重要性
- **对软件开发过程的影响**:软件项目计划是软件开发的基础,它明确了项目目标、范围、时间线和资源分配,为后续开发工作提供了指导。一个完善的项目计划可以减少风险,提高开发效率,确保项目顺利完成。
- **指导后续开发工作**:以天气服务系统项目为例,项目计划确定了系统的功能需求、技术架构、开发团队和时间安排。在开发过程中,团队成员可以根据项目计划明确自己的职责和任务,管理层可以监控项目进度,及时发现和解决问题。
### 问题2甘特图的应用价值
- **作用和优势**:甘特图是项目管理的重要工具,它以图形化的方式展示了项目的时间线和任务安排,使项目进度一目了然。甘特图的主要优势包括:直观可视化、易于理解、便于监控进度、有助于资源分配和冲突管理。
- **帮助控制项目进度**:在天气服务系统项目中,甘特图展示了各功能模块的开发时间和依赖关系。项目管理者可以通过甘特图监控各模块的进度,及时发现延误情况,调整资源分配,确保项目按时完成。
## 工具使用体会
### EAEnterprise Architect使用体会
- **主要功能和操作流程**EA提供了丰富的建模功能包括需求建模、用例建模、类图建模、序列图建模等。操作流程包括创建项目、添加模型、绘制图形、设置属性、生成报告等。
- **优势和不足**EA的优势在于功能强大、支持多种建模语言、界面友好不足在于学习曲线较陡峭、某些高级功能操作复杂。
- **困难和解决方法**:在使用过程中,遇到了模型元素关系设置和图形布局调整的困难。通过查阅帮助文档和在线教程,以及与同学交流,成功解决了这些问题。
- **改进建议**可以通过参加培训课程、阅读专业书籍、多练习实践等方式提高EA的使用效率。
### TRAE辅助工具使用体会
- **功能和体验**TRAE辅助工具提供了文档生成、代码建议等功能使用体验良好能够提高工作效率。
- **价值和局限性**TRAE在文档生成方面具有较高价值但在复杂代码生成方面还存在一定局限性。
- **心得体会**TRAE辅助工具为软件开发提供了新的思路和方法有助于提高开发效率和质量。
- **应用前景**随着AI技术的发展AI辅助工具在软件开发中的应用前景广阔将在需求分析、设计、编码、测试等各个环节发挥越来越重要的作用。
### Git版本控制使用体会
- **基本操作**使用Git进行版本控制的基本操作包括创建仓库、添加文件、提交更改、推送/pull请求、分支管理等。
- **重要性**Git在团队协作开发中具有重要作用它可以追踪代码更改、管理不同版本、解决冲突便于团队成员协同工作。
- **问题和解决方法**在使用过程中遇到了分支合并冲突的问题。通过学习Git的冲突解决机制成功解决了这些问题。
- **分支管理策略**Git分支管理策略的优点是灵活高效缺点是管理复杂。可以采用适合团队规模和项目需求的分支策略如Git Flow或GitHub Flow。
## 附录
### 附录A个人设计的EA模型图
![alt text](需求模型.png)
![alt text](用例模型.png)
![alt text](甘特图.png)
### 附录B个人测试用例表
| 测试用例ID | 测试功能 | 测试目的 | 输入数据 | 预期结果 | 测试步骤 | 测试环境 | 优先级 |
|-----------|---------|---------|---------|---------|---------|---------|--------|
| TC001 | 实时天气查询 | 验证实时天气信息的准确性和展示效果 | 有效位置(如北京),选择实时天气查询 | 正确显示该地区的实时温度、湿度、风向风速、气压、能见度等信息数据更新时间不超过10分钟 | 打开应用→定位或搜索北京→点击实时天气→检查显示信息的完整性和准确性→验证数据更新时间戳 | Android 13.0iOS 17.0 | 高 |
| TC002 | 多日天气预报查询 | 验证多日天气预报的展示和数据准确性 | 有效位置如上海选择7日天气预报 | 正确显示未来7天的天气状况包括温度范围、天气现象、降水概率、风力等级等 | 打开应用→搜索上海→选择多日预报→查看未来7天数据→验证显示格式和内容→检查日期连续性 | Android 13.0iOS 17.0 | 高 |
| TC003 | 天气预警推送 | 验证极端天气预警的推送机制 | 在测试环境中模拟极端天气数据(暴雨预警、高温预警、大风预警) | 系统在1分钟内推送预警信息包含预警类型、级别、影响范围、建议措施等 | 设置测试环境→触发极端天气数据→检查预警推送功能→验证推送内容和及时性→测试点击预警后是否正确跳转详情页 | 测试服务器,推送测试工具 | 高 |
| TC004 | 物流路线规划 | 验证考虑天气因素的物流路线规划功能 | 起点广州、终点武汉、出发时间2025-11-20 08:00 | 系统提供考虑天气因素的最优路线建议,包含预计到达时间、沿途天气风险点、备选路线 | 登录物流应用→输入起终点和时间→查看路线建议→验证天气因素是否被正确考虑→检查风险提示的准确性 | 物流应用测试版v1.0 | 中 |
| TC005 | 精准农事建议查询 | 验证基于天气数据的精准农事建议功能 | 农业用户登录→选择已绑定农田(水稻田,位于江苏省)→查看农事建议 | 显示针对该地区当前天气条件的精准农事建议,包括灌溉时机、病虫害防治、施肥建议等 | 登录农业应用→选择农田→查看农事建议→验证建议的相关性和实用性→检查建议是否考虑了近期天气预报 | 农业应用测试版v1.0 | 中 |
| TC006 | 位置搜索输入边界值 | 验证系统对边界位置输入的处理能力 | 模糊位置名称、不存在的地点名称、特殊字符输入 | 模糊位置能正确识别并提供候选列表,不存在地点给出友好提示,特殊字符能正确处理 | 在搜索框输入"北上"→验证候选结果→输入"不存在的城市123#"→检查错误提示→输入特殊字符→验证系统响应 | Android 13.0iOS 17.0 | 中 |
| TC007 | 网络断开场景测试 | 验证系统在网络异常情况下的容错能力 | 在查询过程中断开网络连接 | 系统给出友好的网络异常提示,并能自动缓存上次查询结果供用户查看 | 打开应用→开始查询天气→手动断开网络→检查系统响应→恢复网络→验证自动重连功能 | 弱网测试工具 | 高 |
| TC008 | 农业数据关联测试 | 验证天气数据与农业数据的正确关联 | 添加多个不同作物类型的农田→查看各农田的农事建议 | 系统为不同作物类型提供差异化的农事建议,且建议与天气数据紧密相关 | 添加水稻田和小麦田→输入不同的地理位置→查看各自的农事建议→验证建议的针对性差异 | 农业应用测试版v1.0 | 中 |
### 附录C个人工作日志
| 日期 | 工作内容 | 工作时长 | 完成情况 | 遇到的问题 | 解决方案 |
|------|---------|---------|---------|-----------|---------|
| 2025-11-05 | 天气预告和行业应用需求分析 | 4小时 | 已完成 | 无 | 无 |
| 2025-11-06 | EA需求模型图设计 | 6小时 | 已完成 | 模型元素关系设置 | 查阅帮助文档 |
| 2025-11-07 | EA用例模型图设计 | 5小时 | 已完成 | 无 | 无 |
| 2025-11-08 | 测试用例设计 | 4小时 | 已完成 | 无 | 无 |
| 2025-11-09 | 个人报告编写 | 6小时 | 已完成 | 无 | 无 |

@ -0,0 +1,136 @@
# 实验一软件项目计划个人报告作业题
## 个人基本信息
- **姓名**[刘嘉欣]
- **学号**[2023210474]
- **班级**计科231
- **小组**G12组
- **角色**[开发人员1]
- **实验日期**2025-11-03
- **提交日期**[2025.11.08]
## 个人任务完成情况
### 1. 个人负责的功能模块分析
根据您的角色分工,详细分析您负责的功能模块:
#### 如果您是项目经理
描述天气查询应用的整体架构设计思路(如前端展示层、后端服务层、数据接口层、数据存储层的分层设计)
说明项目资源分配的原则和依据(根据成员技能、功能复杂度进行任务分配)
分析项目进度控制的关键节点和方法(需求分析完成、设计文档确认、编码阶段里程碑、测试验收节点)
描述团队沟通协调的具体措施(每日简短例会、线上文档协作、代码审查机制)
#### 如果您是开发人员1刘嘉欣
详细分析天气查询和动态展示功能的需求(支持城市 / 定位查询、实时数据展示、动态刷新机制)
描述查询功能的用户体验考虑(输入联想、加载状态提示、异常反馈)
分析数据接口调用和前端渲染的技术需求
说明这两个功能与数据存储模块的交互关系(缓存机制、历史查询记录存储)
#### 如果您是开发人员2
详细分析天气预告和行业应用功能的需求(未来 7 天预告、分时段预告、农业 / 交通等行业专属提示)
描述预告功能的业务流程(数据获取、格式转换、规则引擎应用)
分析行业应用场景的个性化数据处理需求
说明这两个功能与核心查询模块的依赖关系
#### 如果您是开发人员3
详细分析数据统计和可视化功能的需求(温度趋势、降水概率分布、数据对比分析)
描述可视化功能的展示形式(折线图、柱状图、热力图等)
分析大数据量下的性能优化考虑(数据抽样、异步加载、图表缓存)
说明这两个功能与数据接口模块的交互关系
### 2. EA模型设计
请描述您使用EA设计的模型图
- 说明您设计的模型图类型和用途
- 描述模型图中的主要元素和关系4
- 解释模型图如何体现您的功能模块设计思路
- **具体要求**:请提供以下模型图的设计和分析
- 需求图:展示您负责功能模块的需求层次和关系
- 用例图:描述您负责功能模块的参与者与用例关系
- 甘特图:展示您负责功能模块的开发时间安排和进度控制
- 软件过程模型图:说明您负责功能模块的开发过程和方法
- 附上您设计的模型图截图(可放在附录)
### 3. 测试用例设计
根据您负责的功能模块,设计测试用例:
- 列出至少5个关键测试用例
- 每个测试用例包括:测试目的、输入数据、预期结果、测试步骤
- 说明测试用例覆盖的功能点和边界条件
- 分析测试用例的优先级和执行顺序
### 4. 个人工作总结与甘特图分析
- 描述您在实验一中的主要工作内容和完成情况
- 分析您负责功能模块在项目甘特图中的时间安排和进度控制
- 分析工作中遇到的主要问题和解决方案
- 总结您在本次实验中的收获和体会
- 评估您的工作质量和效率,提出改进措施
### 5. 甘特图应用分析
- 说明您负责的功能模块在甘特图中的时间节点和工期安排
- 分析您的工作与其他团队成员工作的依赖关系
- 讨论甘特图中关键路径对您工作的影响
- 评估甘特图对个人工作计划的指导价值
## 实验一相关问题思考
### 问题1项目计划的重要性
- 分析软件项目计划对整个软件开发过程的影响
- 结合银行ATM系统项目说明项目计划如何指导后续开发工作
### 问题2甘特图的应用价值
- 分析甘特图在项目管理中的作用和优势
- 结合银行ATM系统项目说明甘特图如何帮助控制项目进度
## 工具使用体会
### EAEnterprise Architect使用体会
- 描述您使用EA的主要功能和操作流程
- 分析EA在软件建模中的优势和不足
- 分享您在使用EA过程中遇到的困难和解决方法
- 提出改进EA使用效率的建议
### TRAE辅助工具使用体会
- 描述您使用TRAE辅助工具的功能和体验
- 分析TRAE在文档生成中的价值和局限性
- 分享您在使用TRAE过程中的心得体会
- 讨论AI辅助工具在软件开发中的应用前景
### Git版本控制使用体会
- 描述您使用Git进行版本控制的基本操作
- 分析Git在团队协作开发中的重要性
- 分享您在使用Git过程中遇到的问题和解决方法
- 讨论Git分支管理策略的优缺点
## 附录
### 附录A个人设计的EA模型图
[请在此处插入您设计的EA模型图截图]
### 附录B个人测试用例表
测试用例 ID 测试功能 测试目的 输入数据 预期结果 测试步骤 优先级
TC001 城市天气查询 验证正确城市的天气查询功能 北京市 显示北京当前温度、天气状况等信息 1. 打开应用 2. 输入 "北京市" 3. 点击查询 4. 查看结果 高
TC002 无效城市查询 验证无效输入的容错处理 不存在的城市名 显示 "未查询到该城市天气信息" 提示 1. 打开应用 2. 输入 "不存在的城市" 3. 点击查询 4. 查看反馈 高
TC003 7 天天气预告 验证预告功能的完整性 上海市 显示未来 7 天的日期、温度范围、天气状况 1. 查询上海市天气 2. 点击 "7 天预告" 3. 检查显示内容 中
TC004 温度趋势可视化 验证数据可视化功能 广州市(近 30 天数据) 正确显示温度趋势折线图 1. 查询广州市天气 2. 进入 "统计分析" 3. 选择 "温度趋势" 4. 检查图表 中
TC005 网络异常处理 验证无网络时的提示功能 关闭网络后查询任何城市 显示 "网络连接异常,请检查网络" 1. 关闭设备网络 2. 尝试查询天气 3. 查看反馈 高
### 附录C个人工作日志
日期 工作内容 工作时长 完成情况 遇到的问题 解决方案
2025-10-28 参与项目需求讨论,确定功能边界 2 小时 完成 行业应用场景不明确 查阅同类应用,与团队讨论确定核心场景
2025-10-30 绘制负责模块的用例图和需求图 3 小时 完成 EA 工具操作不熟练 观看教程,请教同学
2025-11-01 设计测试用例,制定开发计划 2 小时 完成 测试场景覆盖不全 参考等价类划分法补充用例
2025-11-02 编写个人报告初稿 3 小时 完成 甘特图分析不够深入 学习关键路径分析方法
---
**提交要求**
1. 请将本报告保存为Markdown格式文件命名为"实验一软件项目计划个人报告_姓名.md"
2. 在头歌平台的个人功能分支中提交报告文件
3. 提交Pull Request给组长审查
4. 截止日期2025年11月10日
**评分标准**
1. 个人任务完成情况30分
2. EA模型设计30分
3. 实验一相关问题思考20分
4. 工具使用体会10分
5. 个人学习计划10分
Loading…
Cancel
Save