2018软工实践第二次作业

软工实践第二次作业

前言

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

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

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

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

    PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
    Planning计划2040
    · Estimate· 估计这个任务需要多少时间2040
    Development开发12001400
    · Analysis· 需求分析 (包括学习新技术)200250
    · Design Spec· 生成设计文档6080
    · Design Review· 设计复审3020
    · Coding Standard· 代码规范 (为目前的开发制定合适的规范)3020
    · Design· 具体设计4030
    · Coding· 具体编码700740
    · Code Review· 代码复审2060
    · Test· 测试(自我测试,修改代码,提交修改)120200
    Reporting报告90100
    · Test Repor· 测试报告2015
    · Size Measurement· 计算工作量1015
    · Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划6070
    合计13101540

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

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

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

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

1473324-20180911173633952-101972093.png

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

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

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

  • 一,没有单词

1473324-20180911171550062-866596791.png

  • 二,单词过长

1473324-20180911171905549-632602530.png

(7) 个人所获

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

转载于:https://www.cnblogs.com/howtoloveyou/p/9615330.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值