软工实践个人编程作业

软工实践个人编程作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2020/
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2020/homework/11167
这个作业的目标 制作一个程序统计和分析 GitHub 的用户行为数据。
学号 151803103
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 100
Estimate 估计这个任务需要多少时间 100 200
Development 开发
Analysis 需求分析 (包括学习新技术) 60 60
Design Spec 生成设计文档 30 30
Design Review 设计复审 30 60
Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 15
Design 具体设计 500 600
Coding 具体编码 300 600
Code Review 代码复审 30 60
Test 测试(自我测试,修改代码,提交修改) 40
Reporting 报告 30 50
Test Report 测试报告
Size Measurement 计算工作量 60 80
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 20
sum 合计 1280 1875

解题思路

刚开始拿到题目之后还是很懵的,毕竟自己的python水平还是很菜的。

根据题目,先要将给出的数据文件输入进入代码中运行。所以我先去找找

python file有关的内容。所以找到了open()、with语句和对格式为.json文件的处理。

json.dump()和json.load()函数功能。

参考程序定义了Data类:最前面的代码有点不懂,后面使用open()读入了文件并保存在以P,R,perR结尾的三个变量中分别对应了要做的三个任务

在__init()函数中为三个任务各自建立了字典,遍历整个文件,以行为单位进行分片,并加入到索引序列。

在这个函数中可以考虑修改,打开文件之后比较,若事件存在于字典之中,就可以加1.

再有一个函数,其中有一个字典,记录了用户的id和四种事件对应的数目,其中用户id可以表示为字典对应的下标,
字典的元素也为dict, dict里有4个键值对对应4个事件的数目。项目同理可以这样处理。

参考了很多同学大佬的建议,看了很多方法,勉勉强强写出来一些,效果一般。

设计实现过程

(1)将json文件读入(采用参考程序的遍历方法)

(2)针对3个不同的要求,建立个人,项目,个人和项目三个字典,遍历。

(3)建立三个函数,根据不同的任务对4个event进行统计计数。如果存在就输出数目

(4)主函数中加入命令行的一些操作,这里函数基本来自参考函数,进行命令行的判断和处理。

代码说明

(1)首先使用Data函数读取文件,定义了data函数读取.json文件,其中用到了load()加入json文件,新建三个字典用于存储后面的键值对。

(2)从上一步的列表中读取事件,如果存在就更新相应的字典,同时+1,最后存进三个新建文件夹中。刚开始也不知道如何处理,后来在同学指点下提到可以用这种方法处理,百度搜索大概知道了一些关于get,updata()的用法,用的还是很生疏,后面还是要继续学习。

(3)接下来使用3个函数输出,和已经保存的文件中的event进行比较,如果符合这种条件,就输出统计出来的数字

(4)最后是命令行的函数Run()

测试描述

本地测试

代码在github上可以通过

但是本地测试有一些问题,命令行输进去不能统计正确的数字。接着尝试找一下原因

因为技术力不足目前的单元测试还没有完成。

链接

https://github.com/count001/2020-personal-python/blob/master/编程规范.txt

总结

对我总之感觉很难

(1)最开始的输入文件一开始比较让人懵逼,后面查一些资料才明白(菜鸟教程上的python很不错),不过没有找到很好的解决办法。看别人的代码都很复杂,说明自己还有很长的路要走。

(2)第一次用python处理这样的作业,之前用python都是在写一下小代码,这一次才算是接触到了文件、命令行等处理方式,整体写的比较散乱,希望作业之后有所进步。

并没有完全生成一个比较运行成功的代码,git是第一次使用所以比较棘手,也是第一次尝试用命令行的方式写入,有关写入/读取文件的相关知识看了很长时间,总的设计时间还是紧张,主要是搞懂参考代码做了很长时间。

posted @ 2020-09-16 22:13  count001  阅读(109)  评论(0)    收藏  举报