这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2020SPRINGS |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2020SPRINGS/homework/10287 |
这个作业的目标 | 设计开发一个疫情统计程序,练习git、github使用,对ide使用更熟练 |
作业正文 | https://www.cnblogs.com/heaoxiang2018/p/12333760.html |
其他参考文献 | CSDN |
GitHub仓库:https://github.com/Heaoxiang1012/InfectStatistic-main
1. PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(min) | 实际耗时(min) |
---|---|---|---|
Planning | 计划 | 30 | 45 |
Estimate | 估计这个任务需要多少时间 | 15 | 20 |
Development | 开发 | 500 | 430 |
Analysis | 需求分析 (包括学习新技术) | 200 | 250 |
Design Spec | 生成设计文档 | 30 | 25 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 15 | 15 |
Design | 具体设计 | 30 | 40 |
Coding | 具体编码 | 400 | 450 |
Code Review | 代码复审 | 20 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 200 | 300 |
Reporting | 报告 | 200 | 180 |
Test Report | 测试报告 | 30 | 25 |
Size Measurement | 计算工作量 | 30 | 30 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 200 | 230 |
total | 合计 | 1900 | 2090 |
2. 思路描述
拿到题目后,我把这次作业分为三个步骤,命令编写,日志处理,日志保存这三个部分,因为之前有过写过python命令行的经验,所以第一部分比较得心应手,本次作业主要都在日志处理这方面,因为太久没写python导致一些库函数用的不够熟练,不过python大法还是好,虽然憋代码的过程比较坎坷,但是debug并没有用太久,很感谢老师和助教,这次让我对python,pycharm的使用又熟练了些。
以上程序的主要判断分支图,也事先定义了相应的常量列表
3.设计实现过程
程序设计模块:
我的关键函数流程图:
4、代码说明
-
main函数初始化读入各种命令行及命令行参数
-
Manage_Logs()函数对日志文件文件进行数据处理(部分节选)
-
Get_Country()函数整理全国数据
-
output_to_shell()函数 输出-province -type 结果到命令行中
-
main函数中对-out 命令 保存结果到指定文件中
-
处理 -province -type 参数输出对应结果(主要优化部分,代码长度)
5、单元测试截图和描述
单元测试1:测试默认情况下,即没有参数-date、-type、-province的结果。输出为所提供日志最新的一天所有省份的情况:
单元测试2:测试参数-date为2020-01-23:
单元测试3:测试参数-date为2020-01-25,缺失2020-01-24数据,默认变化为0:
单元测试4:测试参数-date为2020-01-27,-type:
所有情况写进文件,将选择项的输出值命令行中
单元测试5:测试参数-date为2020-01-27,-province:
-province 无参数,默认为所有日志涉及的
单元测试6:测试参数-date为2020-01-27,-province 北京(日志无涉及):
单元测试7:测试参数-date为2020-01-27,-province -type:
单元测试8:测试参数-date为2020-01-27,-province -type ip sp cure:
单元测试9:测试参数-date为2020-01-27,-province 北京 福建(按输入顺序)-type sp cure ip dead(按顺序):
单元测试10:测试参数-date为2020-03-01(非法日期):
6、单元测试覆盖率优化和性能测试
这是优化过后的,主要优化了冗余代码,分支缩减
性能如下:
7、代码规范链接
https://github.com/Heaoxiang1012/InfectStatistic-main/blob/master/041701407/codestyle.md
8、心路历程与收获
本次程序开发让我对python、pycharm更加熟悉,平时主要用python在web开发方面,这次让我对python自带库更加熟悉,语法更进一步了解。之前有过github、git使用经历,但是大多都很局限,本次程序开发让我意识到他们的重要性,在之后的程序开发中更是必不可少的工具。感谢老师和助教的认真,让我收获不少!
9、技术路线图相关的5个仓库
-
机器学习:https://github.com/apachecn/AiLearning
-
机器学习2 :https://github.com/Avik-Jain/100-Days-Of-ML-Code
-
用Python和命令行来实现的最简单的面部识别API(GitHub 8672颗星,贡献者Adam Geitgey): https://github.com/ageitgey/face_recognition
-
acets: 机器学习数据集的可视化工具(GitHub 3371颗星,由Google Brain贡献): https://github.com/PAIR-code/facets
-
MI-agents:Unity机器学习代理 :https://github.com/Unity-Technologies/ml-agents