2018软工实践第二次作业

软工实践第二次作业

前言

  • 这是第一次项目实战
  • 中途有很多次退选的想法,后面又不太想认输,就坚持做了下来

    (1) 我Fork的同名仓库的Github项目地址

    https://github.com/howtoloveyou/personal-project

    (2) PSP表格记录估计将在程序的各个模块的开发上耗费的时间

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

(3) 计算模块接口的设计与实现过程

 我的代码包括了一个名为Count的类,在这个类中包含了结构体的定义,结构体的构造函数,还有四个函数,分别为统计字符数目的函数,统计单词数目的函数,对结构体进行排序的函数,对结构体进行输出操作的函数。在统计单词数目时,遇到未录入结构体的单词会进行添加操作。在排序函数中,会将出现次数多的单词上浮,遇到出现次数相同的单词会将字典序靠前的单词提前。
 私以为自己的函数比较简单,切参考了网上诸多优秀的博客代码,无独到之处。
 代码将文本划分为一行一行进行检查,并且使用 istringstream()将单词之间按空格划分开来,但我也考虑了一些额外的情况,例如 beautiful. 加入结构体时应该为 beautiful 而非 beautiful. 

(4) 计算模块接口部分的性能改进

 我在统计字符的函数中将所有的字符统一转化为小写,这样规避了很多问题。通过尽可能少的循环来改进函数,这是我的改进方式。

(5) 计算模块部分单元测试展示。 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。(5')

测试内容 测试模块 测试结果
输出单词均为小写 词条统计 修改后通过
输出单词最多十个 词条排序 通过
输出单词按字典序输出 词条排序 通过
结尾有标点的单词正常输出 词条统计 修改后通过
输出的字符数中包含换行 字符统计 通过
单词前三位要为英文 词条统计 修改后通过
给定单词过长 词条统计 通过
输出行数不含无效行 词条统计 通过
相同含义大小写单词按一个统计 词条统计 修改后通过
没有文本信息 词条统计 通过
  • 这里挑选修改后通过的测试进行展示:

(6) 计算模块部分异常处理说明

  • 一,没有单词

  • 二,单词过长

(7) 个人所获

 这是我的第一次单人项目,还是比较享受发现问题,解决问题的过程的。通过这次的项目,学到了使用命令行参数执行代码的方法,学会了使用getline来逐行分析文档,这是我之前未曾学过的内容。接下来就是结对项目了,我有信心和队友完成好接下来的任务,fighting!

猜你喜欢

转载自www.cnblogs.com/howtoloveyou/p/9615330.html