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


这个作业属于哪个课程 2020春S班(福州大学)
这个作业要求在哪里 软工实践寒假作业(2/2)
这个作业的目标 github初使用,代码规范制定,疫情统计程序的需求分析及设计
作业正文 作业链接
其他参考文献 暂无

一、Github仓库地址

仓库地址

二、PSP表格

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

三、解题思路描述

  • 一开始看得有点懵,花了好长的时间才看懂了作业需求,因为对命令行的知识之前没有接触过,加上自己对于Java的掌握也不是很好,后来通过百度以及各种博客论坛进行学习,才逐渐有了思路,大致如下:
    • 获取命令行
    • 解析命令行参数
    • 读取指定文件,并进行数据处理
    • 按指定路径输出文件

四、设计实现过程

主要包含三个内部类:命令行类、命令行解析类以及文件处理类

五、代码说明

代码整体结构

代码细节

  • 命令行类
    主要用来存放参数,包含判断是否有这个参数的布尔值,以及具体的参数值

  • 命令行解析类
    analysis函数用来解析从main函数传入的命令行,获取各个参数的值,返回一个command对象

commandRun函数用来执行命令

  • 文件处理类

包含一个排序好的provinces序列,以及存放各个省份ip、sp、cure、dead的数组,以及全国的数据

dealLog函数对文件进行单行处理,采用正则表达式匹配各种情况


readLog函数通过判断传入的date值,获取需要处理的文件列表,并调用dealLog方法处理这些文件


writeTxt函数按命令行要求输出最终的数据

六、测试截图

测试用例,对-date -log -out -type -province 五种参数均进行了测试

七、单元测试覆盖率优化和性能测试,性能优化截图和描述

单元测试

主要代码如下,由于对于单元测试掌握不足,且代码包含内部类的关系,单元测试编写不便,因此主要对代码解析函数进行了测试

覆盖率和性能测试

八、代码规范的链接

代码规范

九、心路历程与收获

由于自己基础不扎实的缘故,在进行本次的代码编写之前恶补了很多知识,加上自己是第一次使用GitHub,以及第一次接触单元测试及覆盖率优化和性能测试方面的知识,还不能够很好的消化和掌握所有知识,以至于本次作业完成的很仓促,很多不足的地方需要改进,通过本次作业,我深刻地意识到了自己专业技能的不足,在接下来的学习和作业中,我一定更加努力,争取成为一个合格的程序猿。

十、技术路线图相关的5个仓库

  1. Python - 100天教程

    一个优质的Python交流社区,一方面为想学习Python的初学者扫平入门过程中的重重障碍,另一方为新入行的开发者提供问道的途径。

  2. Spring框架

    这是Spring框架的所在地:所有Spring项目的基础。Spring提供了Java编程语言以外的所有所需内容,可用于为各种场景和体系结构创建企业应用程序。

  3. 手把手教你整合最优雅SSM框架

    整合SSM框架(SpringMVC + Spring + MyBatis),适合刚接触spring的同学,需要有servlet和jsp基础。

  4. Hibernate ORM

    Hibernate ORM是一个为应用程序,库和框架提供对象/关系映射(ORM)支持的库。它还提供了JPA规范的实现,该规范是ORM的标准Java规范。

  5. Apache Maven核心

    Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。

原文地址:https://www.cnblogs.com/ruyin/p/12303649.html