结对做业——WordCount进阶版

Deadline:
2018-10-7 22:00PM,以博客提交至班级博客时间为准
要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
https://edu.cnblogs.com/campus/buaa/BUAASummerSETraining/homework/2013html

实现一个可以对文本文件中的单词的词频进行统计的GUI程序。
进行单元测试、回归测试、效能测试,在实现上述程序的过程当中使用相关的工具。
进行我的软件过程(PSP)的实践,逐步记录本身在每一个软件工程环节花费的时间。
使用源代码管理系统 (码云)。
Task1:编码要求
Fork 码云项目 https://gitee.com/SE-net16/PairProject-C
https://gitee.com/SE-net16/PairProject-Java 到本身的仓库,在本身的码云仓库中新建一个学号命名(两人学号的末尾3位)的文件夹。
在开始实现程序以前,在PSP表格[附录1]记录下你估计在程序开发各个步骤上耗费的时间,在你实现程序以后,在PSP表格记录下你在程序的各个模块上实际花费的时间。
使用C++或者Java语言实现,C++请使用Visual Studio Community 2017进行开发,Java请使用,运行环境为64-bit Windows 10。
编写的代码遵照代码规范
http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
https://google.github.io/styleguide/javaguide.html
使用码云来管理源代码和测试用例,代码有进展即签入码云,能够看到两人的提交信息。签入记录不合理的项目会被助教抽查询问项目细节。
使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标;并写出至少10个测试用例确保你的程序可以正确处理各类状况。
在完成结对项目后,请正确发起一个Pull Request,并确保本身的代码最终成功签入到 https://gitee.com/SE-net16/PairProject-C
https://gitee.com/SE-net16/PairProject-Java 中。(若是成功签入会在原始项目主页看到本身学号为名的文件夹)
Task2:博客要求
在文章开头给出博客做业要求地址
给出结对小伙伴的学号、博客地址,结对项目的码云地址。
给出结对的PSP表格。
解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的过程。
设计实现过程。设计包括代码如何组织,好比会有几个类,几个函数,他们之间关系如何,关键函数是否须要画出流程图?单元测试是怎么设计的?
代码说明。展现出项目关键代码,并解释思路与注释说明。
结合在构建之法中学习到的相关内容与结对项目的实践经历,描述结对的感觉,是否1+1>2?
注:结对共同部分,可在其中一我的的博客给出(另外一我的给出连接),不一样部分分别写在本身的博客。
Task3:WordCount 结对项目要求
在我的项目的基础上,增长新的功能。java

第一步,增长新功能
咱们但愿各位在我的项目的基础上,添加一些新的功能:git

词组统计:能统计文件夹中指定长度的词组的词频
自定义输出:能输出用户指定的前n多的单词与其数量
为了实现上述软件,咱们首先要在我的项目基础上增量改进,实现一个Core模块,并基于Core模块实如今命令行测试程序中支持下述命令行参数(原有命令行参数不变)github

  1. -i 参数设定读入的文件路径
    格式以下
    wordCount.exe -i [file]

一个例子如:web

wordCount.exe -i input.txt编程

2.-m 参数设定统计的词组长度
格式以下ide

wordCount.exe -m [number]
词组定义:m个由分隔符隔开的单词组成一个词组
-m参数与数字配套使用,用于设置词组长度
命令行中使用-m参数,例:函数

wordCount.exe -m 3 -i input.txt
/
要求程序统计input.txt中长度为3的词组,最终输出
例:input文件中内容为"Monday Tuesday Wednesday Thursday"
则输出以下
*/
characters: 33
words: 4
lines: 1
Monday Tuesday Wednesday: 1
Tuesday Wednesday Thursday: 1工具

  1. -n参数设定输出的单词数量
    格式以下

wordCount.exe -n [number]
-n参数与数字搭配使用,用于限制最终输出的单词的个数
表示输出最多的前[number]个单词
命令行中使用-n参数,例:单元测试

wordCount.exe -n 1 -i input.txt
/
程序会输出文件中出现次数最多的那个单词
*/

  1. -o 参数设定生成文件的存储路径
    格式以下

wordCount.exe -o output.txt
则将统计信息输出到文件 output.txt中。

第二步,设计单元测试
请使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标;另外,请准备至少10个测试用例确保程序可以正确处理各类状况,而且不会崩溃。

第三步,回归测试
请使用我的做业2中设计的测试用例对该程序进行回归测试。

第四步,GUI程序设计
将基于控制台的程序设计成具备图形界面的程序(能够是Windows PC 上的,也能够是Mac、Linux,web,手机上的)

评分基准
博客评分
本次博客做业总分 20分,由如下部分组成:

在文章开头给出结对的小伙伴博客地址,码云项目地址。(2')
在开始实现程序以前,在下述PSP表格记录下估计将在程序的各个模块的开发上耗费的时间。(1')
功能改进的设计与实现过程。 改进包括代码是否重构,如何组织,好比会有几个类,几个函数,他们之间关系如何,关键函数是否须要画出流程图?说明你的改进思路(没必要列出源代码),以及独到之处。(8')
功能改进模块部分单元测试展现。 展现出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试获得的测试覆盖率截图,发表在博客中。(4')
回归测试部分展现。 (3')
描述结对的过程,提供非摆拍的两人在讨论的结对照片。(1')
在你实现完程序以后,在附录提供的PSP表格记录下你在程序的各个模块上实际花费的时间。(1')
程序评分
本次程序做业总分40分,由如下部分组成:

正确性(30')
GUI(10‘)
注:

如能积极响应助教和老师的反馈并在评论2天内作出相应修改,会在已有评分上有必定加分,但原则上得到分数不超过本次做业总分。 如对分数有意见,只给一次向助教申诉的机会 迟交一周扣实际分数的一半 迟交两周或以上,不给分 抄袭倒扣分 参考资料 结对编程的不一样模式 如何爱上结对编程 编程与复审的有机结合 两人之间的沟通——送你一个汉堡包

相关文章
相关标签/搜索