当前位置: 首页 > news >正文

4.20课后作业2

科技政策查询手机端系统 - PSP 记录与项目总结
一、PSP2.1 时间记录表格

  1. 预估时间记录
PSP2.1 Personal Software Process Stages 预估时间(分钟)
Planning 计划 30
· Estimate ・估计这个任务需要多少时间 30
Development 开发 480
· Analysis ・需求分析 (包括学习新技术) 60
· Design Spec ・生成设计文档 40
· Design Review ・设计复审 (和同事审核设计文档) 20
· Coding Standard ・代码规范 (为目前的开发制定合适的规范) 10
· Design ・具体设计 60
· Coding ・具体编码 180
· Code Review ・代码复审 30
· Test ・测试(自我测试,修改代码,提交修改) 80
Reporting 报告 90
· Test Report ・测试报告 40
· Size Measurement ・计算工作量 20
· Postmortem & Process Improvement Plan ・事后总结,并提出过程改进计划 30
合计 600
  1. 实际时间记录
    | PSP2.1 | Personal Software Process Stages | 实际时间(分钟) |
    | --------------------------------------- | -------------------------------- | -------- |
    | Planning | 计划 | 25 |
    | · Estimate | ・估计这个任务需要多少时间 | 25 |
    | Development | 开发 | 540 |
    | · Analysis | ・需求分析 (包括学习新技术) | 70 |
    | · Design Spec | ・生成设计文档 | 45 |
    | · Design Review | ・设计复审 (和同事审核设计文档) | 15 |
    | · Coding Standard | ・代码规范 (为目前的开发制定合适的规范) | 10 |
    | · Design | ・具体设计 | 70 |
    | · Coding | ・具体编码 | 200 |
    | · Code Review | ・代码复审 | 40 |
    | · Test | ・测试(自我测试,修改代码,提交修改) | 90 |
    | Reporting | 报告 | 100 |
    | · Test Report | ・测试报告 | 45 |
    | · Size Measurement | ・计算工作量 | 20 |
    | · Postmortem & Process Improvement Plan | ・事后总结,并提出过程改进计划 | 35 |
    | | 合计 | 665 |
    二、测试用例设计(共 12 个)
    测试环境
    数据库:MySQL 8.0,包含policy表(含 10 条测试数据)
    服务器:Tomcat 10.1
    测试设备:手机浏览器(Chrome Mobile、Safari)
    测试用例列表
    | 序号 | 测试目的 | 输入 | 预期结果 | 实际结果 | 是否通过 |
    | ---- | ------------- | -------------------- | -------------------------------- | ------------------ | ---- |
    | 1 | 关键字模糊查询(政策名称) | 关键字:科技创新 | 显示政策名称包含 “科技创新” 的 2 条政策 | 显示 2 条匹配政策,名称、文号正确 | ✅ |
    | 2 | 关键字模糊查询(全文) | 关键字:研发投入 | 显示正文包含 “研发投入” 的 1 条政策 | 显示 1 条匹配政策,正文内容正确 | ✅ |
    | 3 | 多条件组合查询 | 关键字:科技,发布机构:河北省科学技术厅 | 显示同时满足两个条件的 2 条政策 | 显示 2 条匹配政策,条件均符合 | ✅ |
    | 4 | 政策分类筛选 | 选择分类:企业 | 显示分类为 “企业” 的 1 条政策 | 显示 1 条匹配政策,分类正确 | ✅ |
    | 5 | 分页功能(第一页) | 无参数(默认第一页) | 显示前 10 条政策,分页栏显示 “第 1 页 / 共 1 页” | 显示 10 条政策,分页信息正确 | ✅ |
    | 6 | 分页功能(边界测试) | 页码:0 | 自动修正为第 1 页,显示前 10 条政策 | 显示第 1 页数据,无报错 | ✅ |
    | 7 | 政策详情查看 | 点击政策名称:关于促进科技创新的若干政策 | 打开新窗口,显示该政策的标题、文号、全文等完整信息 | 新窗口显示完整详情,信息正确 | ✅ |
    | 8 | 空关键字查询 | 关键字:(空格) | 显示所有政策(共 10 条) | 显示 10 条政策,无过滤 | ✅ |
    | 9 | 无匹配数据查询 | 关键字:测试123456 | 显示 “暂无符合条件的政策” | 显示提示信息,无报错 | ✅ |
    | 10 | 非法参数处理 | 页码:abc | 自动修正为第 1 页,显示前 10 条政策 | 显示第 1 页数据,无报错 | ✅ |
    | 11 | 特殊字符查询 | 关键字:冀政发[2022] | 显示文号包含 “冀政发 [2022]” 的 1 条政策 | 显示 1 条匹配政策,文号正确 | ✅ |
    | 12 | 新窗口打开验证 | 点击任意政策名称 | 浏览器打开新标签页,显示详情页 | 新标签页正常打开,详情页加载成功 | ✅ |
    程序正确性验证说明
    通过以下方式确保程序正确:
    功能覆盖:测试用例覆盖了核心功能(模糊查询、分类筛选、分页、详情查看)、边界情况(空数据、非法参数)、异常场景(无匹配数据);
    数据一致性:查询结果与数据库表数据逐一比对,确保政策名称、文号、全文等信息完全匹配;
    交互验证:手动测试手机端点击、滑动、分页等交互,确认新窗口打开、数据加载无延迟或报错;
    兼容性测试:在 Chrome Mobile、Safari 等主流手机浏览器测试,界面布局、功能均正常。
    三、个人项目学习总结
  2. 技术收获
    MVC 架构实践:深入理解了 Model(实体类)、View(JSP)、Controller(Servlet)的分层职责,通过 Dao 层封装数据库操作,代码可维护性显著提升;
    移动端适配:掌握了响应式布局的核心(、百分比宽度、弹性布局),解决了手机端界面适配问题;
    数据库优化:使用 Druid 连接池复用数据库连接,避免频繁创建 / 关闭连接的性能损耗;分页查询减少了数据传输量,提升了移动端加载速度;
    异常处理:完善了参数校验(如页码非数字自动修正)、异常捕获(数据库操作异常打印日志,前端友好提示),程序鲁棒性增强。
  3. 过程改进
    PSP 的价值:通过 PSP 表格记录时间,发现 “测试” 和 “代码复审” 阶段实际耗时超预估,后续项目会提前预留更多时间用于测试和代码优化;
    需求分析的重要性:初期因未明确 “新窗口打开详情” 的需求,曾返工修改 JSP 链接(添加target="_blank"),后续会更细致地梳理需求细节;
    测试驱动开发:本次先编码后测试,导致部分 bug(如分页计算错误)在后期才发现,后续尝试 “先写测试用例,再编码” 的方式,提升代码质量。
  4. 问题解决能力提升
    中文乱码问题:通过 “数据库连接串指定 UTF-8 + JSP 设置 charset + 响应设置 UTF-8” 的三重方案,彻底解决了中文查询、显示乱码;
    分页逻辑错误:最初总页数公式为totalCount / PAGE_SIZE,导致整除时丢失最后一页,修正为(totalCount + PAGE_SIZE - 1) / PAGE_SIZE,解决了边界问题;
    移动端点击延迟:通过 CSS 优化(去除hover效果、增大点击区域),提升了手机端交互的流畅度。
  5. 后续改进方向
    引入 Redis 缓存政策分类、热门查询结果,减少数据库压力;
    替换为 Elasticsearch 实现全文检索,提升海量数据下的查询效率;
    引入移动端 UI 框架(如 Vant),优化界面美观度和交互体验;
    增加用户行为日志(如查询关键字、点击记录),为后续推荐功能做准备
http://www.jsqmd.com/news/693528/

相关文章:

  • 告别ResNet的显存焦虑:用RepVGG重参数化,让你的模型推理又快又省
  • 上海湘峰图文制作:上海包装礼盒定制企业 - LYL仔仔
  • 告别虚拟机!用Code::Blocks+MinGW在Win10/Win11上快速玩转LVGL官方Demo
  • Canmv K230实战:从MNIST模型训练到端侧部署全流程解析
  • 惠州哪个口腔医院比较好 - 舒雯文化
  • 【ROS2笔记四】ROS2功能包的依赖管理与接口设计
  • 淮南市劳美劳务:淮南下水管道改造公司 - LYL仔仔
  • 从‘黑箱’到‘白盒’:手把手教你用Alibi Explain把模型解释部署到生产环境(集成Seldon Core/KFServing)
  • 异构计算集群中RTT预测与资源调度优化实践
  • R3nzSkin国服特供版:英雄联盟免费换肤终极指南与完整使用教程
  • PlatformModel
  • 2026年嘉兴制造业短视频全案运营指南:工厂获客成本优化与代运营深度选型 - 优质企业观察收录
  • AI建站避坑指南:10个高频问题与答案,帮你避开90%的坑
  • 软件工程常考填空题深度解析:从原型模型到UML关系的万字通关指南
  • 北京九鼎众合餐饮管理:朝阳区团膳配送公司 - LYL仔仔
  • Pearcleaner:macOS应用彻底卸载的终极解决方案,释放存储空间的完整指南
  • 上海留学机构怎么选更靠谱
  • 如何永久保存微信聊天记录:WeChatMsg完整指南与数据主权回归
  • 【绝密】VSCode量子开发隐藏配置项曝光:启用量子内核热重载后编译速度提升3.8倍
  • 宪意(山东)建筑拆除:专业的济南墙体拆除哪家好 - LYL仔仔
  • 从“要我做”到“我要做”:手把手教你用MAS激发团队自驱力(以研发团队为例)
  • HFSS实战:手把手教你设计一个2.4GHz的S波段矩形喇叭天线(附完整模型参数)
  • 深圳ISO三体系认证服务评测:合规与效率双维度对比 - 资讯焦点
  • Banana Pi BPI-WiFi5路由器硬件解析与OpenWrt适配指南
  • 上海留学申请机构哪家靠谱|实名种草不踩雷
  • 3种方法掌握FreeRouting:让PCB自动布线效率提升300%
  • 惠州口腔医院哪一家比较好 - 舒雯文化
  • FPGA驱动HDMI显示时,TMDS时钟与像素时钟的关系到底怎么算?以1280x720@60Hz为例
  • 敏感肌用什么防晒清爽不油腻?Leeyo防晒霜温和配方清爽无负担 - 全网最美
  • 告别Anchor Boxes:用PyTorch从零实现FCOS目标检测(附37.2AP代码详解)