WordCount优化

一、基本任务:

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值