软工第四次作业

克隆地址: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张图片

三、代码实现

1、基础功能
①代码
软工第四次作业_第2张图片
软工第四次作业_第3张图片
②运行截图
软工第四次作业_第4张图片
2、新增功能
①代码
软工第四次作业_第5张图片

②运行截图
软工第四次作业_第6张图片

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

1、接口封装
①代码
软工第四次作业_第7张图片
软工第四次作业_第8张图片
软工第四次作业_第9张图片


程序测试截图
软工第四次作业_第10张图片

五、代码复审过程

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

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

软工第四次作业_第11张图片

七、 描述结对的过程

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

八、代码规范

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

九、感想

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

你可能感兴趣的:(软工第四次作业)