2020软工第一次实践代码作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2020
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2020/homework/11167
这个作业的目标 <学习如何解析json文件类型,并统计数据类型;熟悉使用GitHub操作>
学号 <181800415>

PSP表格

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

内心历程:
满脸问号???:一开始拿到题目,有点懵,多次看完题目描述后仍然不知所云(计算机编程菜鸡实锤了),看了几种要求的语言,又因为老师给了python范例,心里想着,好吧,也只有选择python了。虽然python之前有初步学习过,但是应对这种问题,完全属于一级打boss,真的后悔自己没有多学一点东西。
逐渐崩溃:这个题目对于python初学者来讲,too tough to solve! 我只能先认真阅读助教给的范例代码,慢慢理解。可是很多内容都需要上网查询,并且有的东西还搜索不到现成的(完蛋),就只能凭自己的小学生智商理解了。。。虽然告诉自己要有耐心看,但看着看着就不耐烦了(这种时候,内心就是在讲:啊这。。。 阿巴。阿巴。阿巴),所以在这种很自卑又很不耐烦的心态下,作业搁置了好几天,不愿面对。
稳住心态:作业临近deadline了,想着这个作业 即便再难也要做下去吧,而且肯定有人成功,倒不妨依葫芦画瓢呗。所以,我又拾起信心了(嘻嘻嘻,爷又可以了),看着群里大佬们的讨论,我更来劲了,想着找群内大佬们取经,是肯定有收获的。于是乎,我重新开始认真阅读范例。
找回自信:经过自己耐心的查询资料以及认真理解代码,能够完全理解代码的思路以及含义了。这个时候其实觉得是自己之前太怂了,这题并不难,只是自己代码打得少,所以才自我否认。但是,现在是有信心能够把问题完成了。这题不就是一些基础的调入数据 然后实现查询功能吗,实质上跟以前学的c++练习是一样的,不同点只是多了一个数据导入操作,这部分其实就只是利用python的调库操作罢了。
解题思路:
1.导入数据集、解析json文件
2.初始化
2.创造一个类,把所有需要查询的属性添加进去
3.写查询函数,将需要查询统计的类别写出来
4.调入参数,按照输入的格式,将需要输入的函数写进去

难点
如何使用python的语言规范格式,创造类
如何导入json格式、并书写
如何创造接口,对参数进行调用
如何写单元测试代码,对源代码进行debug
(所有的难题解决就一个办法:CSDN上号!!!)
代码说明:
第一次导入数据运行:

数据统计分析:

生成统计分类后的子文件:

导入需要的参数:

统计输出:

单元测试
上网查询,导入unittest库,写一段测试三种不同类别的代码:

运行后 测试结果为正确

但是耗时很长,这是因为测试代码包含了初始化导入数据
查看代码覆盖率:

由于代码写了初始化处理和后续处理的分支,所以在进行导入参数查询目标时,一部分函数并未调用到,故代码的覆盖率不高。

总结
这次作业的收获就是,如何使用python语言创造类,并对json文件进行导入处理。
并且知道了怎么去进行单元测试,debug多个小数据。这能提高自己的代码准确度,降低bug率。
了解了pycharm中coverage和profile的功能
github的常规操作通过助教的视频讲解,也已经领会到了,以后上传和下载代码会更加的方便。

原文地址:https://www.cnblogs.com/muse-code/p/13676598.html