WordCount优化

一.Github地址

https://github.com/Adogssky/WordCountGroupWork

二.psp表格

PSP2.1表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

  

· Estimate

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

300 370

Development

开发

  

· Analysis

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

 30 30

· Design Spec

· 生成设计文档

 6045 

· Design Review

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

 3020 

· Coding Standard

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

 3030 

· Design

· 具体设计

 3030 

· Coding

· 具体编码

 4530 

· Code Review

· 代码复审

 3030 

· Test

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

 6075 

Reporting

报告

  

· Test Report

· 测试报告

 6045 

· Size Measurement

· 计算工作量

 2020 

· Postmortem & Process Improvement Plan

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

 3030 
 

合计

 350375 

三.接口实现

个人负责的是词频统计模块,与单词分割模块和输出模块对接。
从单词分割模块接受一个字符串数组作为本模块的输入

ArrayList<String> input = new ArrayList<String>();
    Map<String,Integer> map = new HashMap<String,Integer>();
    List<Map.Entry<String, Integer>> list = new ArrayList<>();
public void setInput(ArrayList<String> i){
        this.input = i;
    }

获取输入之后进行词频统计,算法原理非常简单,不在此赘述,代码很短,如下

public void count(){
        for(String p:input){
            if(map.get(p) == null){
                map.put(p,1);
            }
            else{
                int tmpCount = map.get(p) + 1;
                map.remove(p);
                map.put(p,tmpCount);
            }
        }
        for(Map.Entry<String, Integer> entry : map.entrySet()){
             list.add(entry); 
        }

        list.sort(new Comparator<Map.Entry<String, Integer>>(){
              @Override
               public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                    return o2.getValue()-o1.getValue();} 
                   //逆序(从大到小)排列,正序为“return o1.getValue()-o2.getValue”
        }); 
        
        for(Map.Entry<String, Integer> entry: list){
              System.out.println(entry);
        }

    }

四.测试用例

本人负责模块只接受一种输入,也就是字符串数组,测试全部采用黑盒测试
首先是常规输入

@Test
    void WCwordcountTest_1(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("assd");
        wc.count();
    }

    @Test
    void WCwordcountTest_2(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.count();
    }

    @Test
    void WCwordcountTest_3(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("p_wq");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.count();
    }

之后又测试了转义字符与空格作为数组项的输入

@Test
    void WCwordcountTest_5(){   
        WCwordcount wc = new WCwordcount();
        wc.input.add("oqpwq");
        wc.input.add("\n");
        wc.input.add("owowo");
        wc.count();
    }
    @Test
    void WCwordcountTest_6(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("  ");
        wc.input.add("\n");
        wc.input.add("a");
        wc.count();
    }
    @Test
    void WCwordcountTest_7(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("a");
        wc.input.add(" ");
        wc.input.add("owowo");
        wc.count();
    }

最后是综合测试

@Test
    void WCwordcountTest_13(){
        WCwordcount wc = new WCwordcount();
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.input.add("assd");
        wc.input.add("aa");
        wc.input.add("owowo");
        wc.count();
    }

1342050-20180408171856821-900203210.png

五.运行截图

运行截图如下
1342050-20180408153620124-418472560.png

六.小组贡献

完成了词频统计的核心功能
贡献度0.22

扩展任务

七.规范理解

开发文档:《阿里巴巴Java开发手册》
《阿里巴巴java开发手册》对于变量命名和OOP规约都有很严格的规定,我自己在开发的时候变量命名不够规范,没有复合严格的OOP规约,同时我也没有做到很好的注释所写的代码

八.代码评价分析

评价对象:游晨宇 17119 负责模块:单词分割模块
变量命名没有按照《开发手册》
没有良好的注释

九.静态代码分析工具

使用的工具:checkstyle
下载地址:https://sourceforge.net/projects/checkstyle/files/checkstyle/

十.分析结果

1342050-20180408154850281-1163567807.png

十一.小组代码问题

前期沟通不够,整合时花费了较多时间,代码风格没有很好的统一起来

转载于:https://www.cnblogs.com/sicongHe/p/8745028.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值