博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wordcount优化
阅读量:5019 次
发布时间:2019-06-12

本文共 1869 字,大约阅读时间需要 6 分钟。

1.小组项目地址:

(部分代码借用软工1504成建伟的代码)
 

2.PSP表格:

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 20  20

·   Estimate

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

 20  20

Development

开发

 390  460

·   Analysis

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

  25  35

·   Design Spec

·   生成设计文档

 10 15 

·   Design Review

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

 15  20

·   Coding Standard

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

 10  5

·   Design

·   具体设计

 30  35

·   Coding

·   具体编码

220  240

·   Code Review

·   代码复审

 20  30

·   Test

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

 60  80

Reporting

报告

 45  50

·   Test Report

·   测试报告

25   25

·   Size Measurement

·   计算工作量

 10  10

·   Postmortem & Process Improvement Plan

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

 10  15
 

合计

 435  510

3.接口设计和实现

小组把项目wordcount优化的任务划分为:

1.main函数编写,判断并处理命令行参数

2.统计文件内单词和词频,定义模块接口
3.单词与词频的排序
4.将排序后的单词与词频输出到文件

其中我负责单词与词频的排序,具体实现的功能是根据词频大小进行降序排列,取词频最高的前100个单词。对于单词词频相同的单词,按照单词所包含的每个字母从a到z的次序依次排列。使用arraylist对词频和单词进行存放。

// 词频排序    public static ArrayList
sortList(HashMap
hashMap) { // 以Key进行排序 TreeMap treeMap = new TreeMap(hashMap); // 以value进行排序 ArrayList
> sortList = new ArrayList
>( treeMap.entrySet()); Collections.sort(sortList, new Comparator
>() { public int compare(Map.Entry
mapEntry_1, Map.Entry
mapEntry_2) { // 降序 return mapEntry_2.getValue() - mapEntry_1.getValue(); // 升序 mapEntry_1.getValue() - mapEntry_2.getValue()) } }); ArrayList
strSort = new ArrayList
(); int loopNum = 0; for (Map.Entry
mapString : sortList) { // 排除-与空格 if (!(mapString.getKey().equals("")) && !(mapString.getKey().equals("-"))) { strSort.add(mapString.getKey()); strSort.add(mapString.getValue().toString()); // 输出前100个单词 if (loopNum > 100) break; loopNum++; } } return strSort; }

 

4.测试设计

sortList()方法的测试设计是以黑盒测试为主。在单元测试采用断言来比较输出结果。

 

 

5.测试结果

 

 6.测试评价

词频统计的测试比较简单直接,但感觉自己测试设置的范围还不够全面。

转载于:https://www.cnblogs.com/MiniAngkor/p/8748591.html

你可能感兴趣的文章
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>
NSEnumerator用法小结
查看>>
vim如何配置go语言环境
查看>>
机器学习好网站
查看>>
python 中的 sys , os 模块用法总结
查看>>
解题:国家集训队 Middle
查看>>