首页 > 技术文章 > 第4周小组作业:WordCount优化

RuanjianFqd 2018-04-08 16:28 原文

github地址

https://github.com/fqd332/wcPro

PSP表格

PSP2.1

PSP阶段

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

10

10

· Estimate

· 估计这个任务需要多少时间

10

10

Development

开发

30

60

· Analysis

· 需求分析 (包括学习新技术)

80

100

· Design Spec

· 生成设计文档

60

60

· Design Review

· 设计复审 (和同事审核设计文档)

30

60

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

5

10

· Design

· 具体设计

40

30

· Coding

· 具体编码

240

120

· Code Review

· 代码复审

10

15

· Test

· 测试(自我测试,修改代码,提交修改)

200

200

Reporting

报告

100

120

· Test Report

· 测试报告

40

50

· Size Measurement

· 计算工作量

10

20

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

30

 

合计

885

895

接口设计

根据实验前的调查与讨论,本次实验分为四个模块,分别为main,scan,sort,writetxt。其中main负责接受输入,scan用来统计单词的数量,sort用来排序,writetxt用来实现文本输出。我负责的模块为writetxt,根据讨论的结果,输入的接口为sort返回的两个string,其中一个是要输出的内容,另一个是输出的路径,无异常时无返回。

代码如下:

public static void writetxt(String res,String path) throws IOException

{

    //输出到文本

    File myFile=new File(path);

    BufferedWriter out = new BufferedWriter(new FileWriter(myFile));

    out.write(res);

    out.close();

}

 

测试设计过程

测试用例的设计根据需求来设计,我负责的模块是根据输入的字符串,和路径,来产生输出,保存在目标路径下,更改不同的输入,来检测输出是否成功即可,采用黑盒测试:

Test Case ID

测试用例编号

Test Item 测试项

(功能模块或函数)

Test Criticality

重要级别

Pre-condition

预置条件

Input      输入

Procedure 操作步骤

Output

预期结果

 Result
实际结果

 Status
是否通过

Remark 备注

(在此描述使用的测试方法)

testData1

output

M

2个string

true

true

Y

黑盒测试

testData2

output

M

2个string

true

true

Y

黑盒测试

testData3

output

M

2个string

true

true

Y

黑盒测试

testData4

output

M

2个string

true

true

Y

黑盒测试

testData5

output

M

2个string

true

true

Y

黑盒测试

testData6

output

M

2个string

true

true

Y

黑盒测试

testData7

output

M

2个string

true

true

Y

黑盒测试

testData8

output

M

2个string

true

true

Y

黑盒测试

testData9

output

M

2个string

true

true

Y

黑盒测试

testData10

output

M

2个string

true

true

Y

黑盒测试

testData11

output

M

2个string

true

true

Y

黑盒测试

testData12

output

M

2个string

true

true

Y

黑盒测试

testData13

output

M

2个string

true

true

Y

黑盒测试

testData14

output

M

2个string

true

true

Y

黑盒测试

testData15

output

M

2个string

true

true

Y

黑盒测试

testData16

output

M

2个string

true

true

Y

黑盒测试

testData17

output

M

2个string

true

true

Y

黑盒测试

testData18

output

M

2个string

true

true

Y

黑盒测试

testData19

output

M

2个string

true

true

Y

黑盒测试

testData20

output

M

2个string

true

true

Y

黑盒测试

 

单元测试截图

 

 

????可能因为在提交的测试用例中,数据量均不够大。

开发规范说明

选择的是Google Java编程风格指南

 

中文版链接:https://blog.csdn.net/zen99t/article/details/50763231

静态代码检查工具

采用了多种工具,并比对发现各种工具的检测规则不尽相同。

有PMD,findbugs,checkstyle,所需插件均能在该站点找到:http://sourceforge.net/

工具扫描结果

PMD和Checkstyle扫描结果都均无错误

PMD:

 

 

Checkstyle:

 

 

小组代码分析

本次小组实验的代码基本还是比较符合规范的,就是接口的设计不够好,模块划分的不够严谨,导致部分模块的代码可读性不够高。

数据集的设计思路

给一个足够深的路径(无必要)和一个足够长的res即可带来压力(很难)。

性能指标

采用的性能指标为整个工程运行时间的长短。

 

 

数据加倍之后:

 

同行评审

该模块未参与评审(sort和scan参与了评审)

实践总结

保证软件质量,是一个贯穿整个软件生存周期的重要问题.在早期,由于忽视了质量管理,导致软件项目管理的严重问题,以至于在软件开发中出现软件危机.重视软件质量管理,规范软件质量管理体系,对整个软件项目管理起到非常重用的促进作用.

小组贡献

根据全员的讨论结果,我的小组贡献分为0.25

 

参考文献

http://www.cnblogs.com/FangStar/p/8735457.html

http://www.cnblogs.com/ningjing-zhiyuan/p/8654132.html

http://www.cnblogs.com/handsomesnail/p/8687172.html

https://wenku.baidu.com/view/87c4d56c7e21af45b307a88d.html

https://blog.csdn.net/u010274673/article/details/8912249

https://github.com/FangStars/WCpro

推荐阅读