软件工程实践第二次作业——个人实战

222000118林沐涵 学生 2023-03-03 23:23:50
这个作业属于哪里2023年福大-软件工程实践-W班
这个作业要求在哪里软件工程第二次作业-个人实战
这个作业的目标实现一个能对澳大利亚网球公开赛进行数据统计的控制台程序
其他参考文献菜鸟教程

目录

  • gitcode项目地址
  • PSP个人开发流程表
  • 解题思路描述
  • 设计与实现过程
  • 程序性能改进
  • 单元测试展示
  • 心路历程和收获

gitcode项目地址

java-project

PSP个人开发流程表

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划55
• Estimate• 估计这个任务需要多少时间1010
Development开发240300
• Analysis• 需求分析 (包括学习新技术)2015
• Design Spec• 生成设计文档1015
- Design Review- 设计复审00
- Coding Standard- 代码规范(为目前的开发制定合适的规范)55
- Design- 具体设计105
- Coding- 具体编码105
- Code Review- 代码复审600
- Test- 测试(自我测试,修改代码,提交修改)6060
Reporting报告3045
- Test Report- 测试报告55
- Size Measurement- 计算工作量00
Postmortem & Process Improvement Plan- 事后总结, 并提出过程改进计划6060
单元格合计525570

解题思路描述

拿到题目后,我意识到这次的题目是爬虫+JSON处理,而这两项技术我均没有很好掌握。
考虑到未来实践开发的需要,我决定使用java语言来作答这道题目。
这是一道比较面向过程的题目,于是我就依照程序流程来分析问题,很快便理清了思路。

设计与实现过程

事实上要完成题目给出的任务,其实只需要以下几步:
1. 从input.txt文件中读取指令
2. 在目标文件中获取JSON数据并解析
3. 把解析好的JSON数据输出到output.txt文件中
实现的过程就只需要把这几个步骤分别用函数模块化封装起来即可。
通过分析JSON文件,我发现要实践result指令的功能需要从players.json文件中访问到队伍uuid和运动员uuid,
所以在执行任何指令之前直接先访问一边players.json文件,并且将其中有用的信息保存在哈希表中,
未来解析指令时,只需要在哈希表中查找到所需要的数据即可。
为此,我把这几个函数按照流程顺序列出如下:
1. getInput() :获取input.txt文件中的指令
2. getPlayers() :从players.json中获取所需数据并存入哈希表中
3. getResults() :从目标文件和哈希表players中获取所需数据并存入哈希表中
4. getPlayersJSON() :解析运动员数据
5. getResultsJSON() :解析比赛结果数据
6. writeOutput() :写出文件到output.txt中
---
我的设计实现最主要的想法就是使用哈希表来存储所需数据,下面我用getPlayers()函数来举例

img

img

程序性能改进

我最主要的改进就是从一开始以行为单位读出JSON改进为使用哈希表来处理数据。
事实上在实际工程中,就可以使用HashMap<String, Object>来构造JSONObject类。
不过本题只需要解析部分JSON数据,直接使用HashMap就可以实现需求了。

单元测试展示

使用控制台输出测试算法

心路历程和收获

本次作业应该算基本工程能力了,我估计一个普通在岗程序员一小时之内就能完成这个任务。
只能说开发经验实在过少,我还是花了数天时间才能从理解问题开始到完成作业目标。
但是在实践的开发过程中我直观意识到了自己编程能力的进步。
同时我也在实践的过程中思考出实践范围以外的工程思想。
...全文
73 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

688

社区成员

发帖
与我相关
我的任务
社区描述
2023年福州大学软件工程实践课程W班的教学社区
软件工程团队开发软件构建 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • 张书旖
  • 郭渊伟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧