2020软工个人第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2020
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2020/homework/11167
这个作业的目标 制作一个程序统计和分析 GitHub 的用户行为数据,熟悉编程。
学号 031802502

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
Estimate 估计这个任务需要多少时间 10h 13h
Development 开发
Analysis 需求分析 (包括学习新技术) 90 200
Design Spec 生成设计文档 20 30
Design Review 设计复审 30 30
Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 20
Design 具体设计 60 120
Coding 具体编码 60 120
Code Review 代码复审 30 60
Test 测试(自我测试,修改代码,提交修改) 40 90
Reporting 报告
Test Report 测试报告 30 30
Size Measurement 计算工作量 25 20
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 20
Total 合计 425 740

解题思路

  • 在室友的帮助下,了解了题目大概是要做什么。这题要做的就是解析 json。从样例数据中可以看出要处理的数据量很大,因此可以在初次访问的时候将数据保存的本地。由于 Cpp与 Python都掌握的不多,而 java完全不会,加上给的样例代码是 Python,于是选择用 Python编写。

设计实现过程

代码组织

  • 由于有样例,所以一开始也没想太多,按照样例的方式改了一遍代码。由于比较菜,只能从数据入手优化程序。

流程图

代码说明

思路

  • 先编写好解析一个json文件的函数,把要用的信息提取出来并保存在类里定义的变量里,再把这个函数装进一个搜索文件夹中存在.json文件的函数就形成了一个解析一个文件夹的函数,最后配合一个把数据保存本地的函数,在初始化(构造)结束时就完成了所有解析。二次访问的时候就是把保存的文件提取出来,进行查询操作(查询函数过于简单就不再贴出来了,本质就是 json 和 dict 之间的转换)。整体上来说就是从核心突破,化繁为简,完成核心功能函数再一步步拓展,就可以完成整个的项目。

代码截图

  • 读入数据

  • 解析json

  • 保存本地

单元测试截图和描述

单元测试概述

  • 没有进行初始化,直接测试三种数据,测试中采用断言的方式来判断是否成功完成对应的操作。一共3个test函数全部通过。

单元测试代码截图

单元测试运行截图

单元测试覆盖率

代码规范的链接

https://github.com/CJH2042/2020-personal-python/blob/master/codestyle.md

总结

  • 说实话,一开始看那题目还真不知道到底是个什么意思,都不知道要干嘛,毕竟没遇到过。然后看到最后那个代码分析了一下才知道到底是要干嘛。由于python只学了皮毛,一开始打算用CPP写,刚开始考虑用字符串的方式查找和记录(不会json解析),但考虑到可能存在的一些问题就选择放弃了,转行学起了python,毕竟有代码可以参考,之前也上过课。然后就开始了边学边打边想的心酸作业历程。(好在宿舍有大佬在,帮我解决了很多问题),虽然吧,感觉完成的不好,但至少我在这个过程中学到了很多,也有了很多收获。
  • 我觉得这次作业还是有点不太友好,感觉时间太紧了(因为我数学建模的作业好多,好像只有少数人有这上这门课。),刚开学就让我有种像在期末考前的感觉,主要是只能勉强完成作业,而做不了更好,我真真尽力了TOT。
  • 偷偷看了别人的博客,突然觉得自己重心是不是放错位置了,由于Python不会,基本吧时间都用在了学python上,结果感觉好多人都基本没处理代码,现在又要降低代码分数。。。。一阵无语,有点难顶。。。。TOT。
posted @ 2020-09-16 21:25  陈小辉丿  阅读(90)  评论(2编辑  收藏  举报