软工实践寒假作业(2/2)

这个作业属于哪个课程 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的使用又熟练了些。

软工实践寒假作业(2/2)_第1张图片

 以上程序的主要判断分支图,也事先定义了相应的常量列表

3.设计实现过程

 程序设计模块:

软工实践寒假作业(2/2)_第2张图片

 我的关键函数流程图:

软工实践寒假作业(2/2)_第3张图片

4、代码说明

  • main函数初始化读入各种命令行及命令行参数

    软工实践寒假作业(2/2)_第4张图片

  • Manage_Logs()函数对日志文件文件进行数据处理(部分节选)

    软工实践寒假作业(2/2)_第5张图片

  • Get_Country()函数整理全国数据

    软工实践寒假作业(2/2)_第6张图片

  • output_to_shell()函数 输出-province -type 结果到命令行中

    软工实践寒假作业(2/2)_第7张图片
  • main函数中对-out 命令 保存结果到指定文件中

  • 处理 -province -type 参数输出对应结果(主要优化部分,代码长度)

    软工实践寒假作业(2/2)_第8张图片

5、单元测试截图和描述

单元测试1:测试默认情况下,即没有参数-date、-type、-province的结果。输出为所提供日志最新的一天所有省份的情况:

软工实践寒假作业(2/2)_第9张图片

单元测试2:测试参数-date为2020-01-23:

软工实践寒假作业(2/2)_第10张图片

单元测试3:测试参数-date为2020-01-25,缺失2020-01-24数据,默认变化为0:

软工实践寒假作业(2/2)_第11张图片

单元测试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、单元测试覆盖率优化和性能测试


这是优化过后的,主要优化了冗余代码,分支缩减
性能如下:

软工实践寒假作业(2/2)_第12张图片

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

你可能感兴趣的:(软工实践寒假作业(2/2))