WordCount优化

it2024-10-21  18

一、基本任务:

github项目地址:https://github.com/YYCZ/WCPro

 

 

 

接口的实现:我在小组任务里面负责文件输入模块的任务,

代码结构如上,设计一个文件输入类,一个String类型的数组,用于接收参数进行解析;构造方法传入的是一个String类型的数组地址;在参数的解析过程里,需要判断参数的有效性,比如参数为空,是不是多个文件,我们只处理一个文件传入的情况,只处理txt的情况。

介绍下黑盒测试与白盒测试:

黑盒测试:不考虑程序内部结构和内部特性,从用户观点出发,针对程序接口和用户界面进行测试,根据产品应该实现的实际功能和已经定义好的产品规格,来验证产品所应该具有的功能是否实现,是否满足用户的要求 。

白盒测试,已知产品的内部工作过程,针对性很强,可以对程序每一行语句、每一个条件或分支进行测试,测试效率比较高,而且可以清楚已测试的覆盖程度。

白盒测试对代码具体执行进行分析,针对三个if条件进行分析:

 

 

测试用例采用myeclipse自带的JUnit框架;

关键测试函数:assertEquals(“预期结果”,“调用被测的函数”);

举个例子截图:(参数个数的有效性检验测试)

测试用例清单:

 

 

测试质量针对具体的功能已经实现,测试结果ok,被测模块ok.

小组贡献分:0.25

 

二、扩展任务:

(1)技术开发文档的采用:采用了《阿里巴巴java开发手册》中的《编程规约》的《命名风格》。

(2)使用该规范分析了17176的代码,代码遵循了以下好的规范,举几个例子:

《阿里巴巴Java开发手册》中指出:如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式。 说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计理念。

根据我的实践体会举例如下:在代码“public class Input的类定义时,类名称的命名就体现了工厂模式的使用。

《阿里巴巴Java开发手册》中指出: 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用

我的代码规范示例:inValid(判断为无效)

类名使用 UpperCamelCase 风格

我的代码规范示例:public class Input

方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

 

我的代码规范示例:public boolean inValid()

 

(3)说明选择的是checkstyle静态代码检查工具,下载地址:http://checkstyle.sourceforge.net/。

界面截图:没什么问题,就是一些缩进警告。

 

(5)整个小组的代码主要存在的问题就是字符缩进不统一,代码改进的方法:制定统一的代码编写规范。

 三、高级任务:性能测试和优化

1.数据集设计思路:因为程序的逻辑设计比较清晰,所以我们的性能上面直接从测试数据集的量上面入手,所以思路就是用足够大的文件。这里我们直接采用英文的txt书籍进行数据集的设计。

2.优化前程序性能指标与优化后的性能指标:

以小说<<飘>>(txt)作为测试数据集,结果如下:

 

3.参加人员:张海涛(主持),陈鹏旭(评审),余浩宇(评审),余笑童(评审)

对组员17178的代码规范进行评审:

(1)

《阿里巴巴Java开发手册》中指出:如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式。 

在代码“public class Core的类定义时,类名称的命名就体现了工厂模式的使用。

《阿里巴巴Java开发手册》中指出: 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用 

其方法:private void updateWords则很好地体现了这一点。

类名使用 UpperCamelCase 风格

 

 

方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,遵从驼峰形式。 

 

private void updateWordsWithHash

 

 

我觉得代码的规范做得很好,没什么意见。

 

4.影响性能的主要指标是词频统计与排序,

优化前(没用哈希):词频统计:n^2   排序:n*lgn

优化后:词频统计:n   排序:nlgn

 

5.优化的思路是采用哈希的手段,具体优化后的指标对比如图:

 

 

 6.没有软件开发就没有测试,软件开发提供软件测试的对象。

软件开发和软件测试都是软件生命周期中的重要组成部分软件开发和软件测试都是软件过程中的重要活动。软件测试是保证软件开发产物质量的重要手段

 

转载于:https://www.cnblogs.com/bysking/p/8691247.html

相关资源:数据结构—成绩单生成器
最新回复(0)