代码改变世界

软工第四次作业

2019-10-13 19:44  sweee  阅读(239)  评论(1编辑  收藏  举报

克隆地址:https://github.com/zlpabc/WordCount.git
对象:https://www.cnblogs.com/bjyxszd/ (杨依天+201831061401)

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

一、需求分析

这次作业要求的程序,主要有四个需求:统计文件的字符数、统计文件的单词总数、统计文件的有效行数、统计文件中各单词的出现次数。
执行过程大概为:首先要读取用户指定的txt文件,读取成功后统计文件字符数(其中不包括汉字),统计全部单词数目(以至少四个英文字母开头),统计文件中任何包含非空字符的有效行数,并根据字统计出文件中各个单词出现的次数,并按照字典顺序输出出现频率最高的10个单词。最后将统计的结果输出并保存在txt文件中。在进行单元测试后,绘制用户交互界面完成对用户的引导。

二、流程

三、代码实现

1、基础功能
①代码


②运行截图

2、新增功能
①代码

②运行截图

四、计算模块接口的设计与实现过程

1、接口封装
①代码



程序测试截图

五、代码复审过程

我和同伴负责不同函数的编写,接口都是string类型,所以看对方的代码并不是很复杂。我和同伴两个人共同敲代码。放在各自的程序中都能够使用,但是当我们两个把它合并在一个程序里面,就会发现存在很多错误,有些设定的全局变量也是重复的。还有就是,对字符串的定义,我定义的是string,然后同伴定义的是char,然后又花了很多时间来修改相应的功能。

六、 计算模块部分单元测试展示

七、 描述结对的过程

这次作业发布以后,我就找到了结对对象,她是我的室友,交流起来十分方便。经过对作业要求的初步阅读和简单的分析,我们根据各自的能力和擅长的方面进行了粗略的分工。我主要负责代码的编写、测试等工作,最后我们一起进行审查等工作我主要负责需求分析、主要代码思路图的绘制等工作。以下是结对讨论的图片:

八、代码规范

1.明确方法功能,精确地实现方法设计。
2.自己抛出的异常必须要填写详细的描述信息,否则他人很难理解。
3.不要使用难懂的技巧性很高的语句,除非很有必要时。
4.要让“{”和“}”单独成行并且位于同一列,同时与类的定义语句一起左对齐。
5.总是使用大括号“{”,即使括号内只有一条语句。这样能避免常见的错误和简便维护。
6.命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
7.由多个单词组成的类名采用单词的第一个字母大写其他小写的形式
8.类名采用第一个字母大写其他字母小写的形式。
9.关键字之后要留空格。

九、感想

我之前觉得结对编程没有什么用,经过这次的训练,我发现绝对编程,可以提高我的打代码的注意力,因为我的同伴时刻观察着我的进度。结对编程也可以让我在代码有错误的时候能够及时的被他人指出,这样一来我不会一直错到底。结对编程也提高了自己的沟通能力。我更加理解到了,在编程过程中交流的一个重要性。明白了,一加一远远大于二。