项目地址:https://gitee.com/siyayan/WordCount
PSP2.1表格
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
15 |
20 |
· Estimate |
· 估计这个任务需要多少时间 |
140 |
200 |
Development |
开发 |
30 |
40 |
· Analysis |
· 需求分析 (包括学习新技术) |
15 |
45 |
· Design Spec |
· 生成设计文档 |
10 |
15 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
5 |
20 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
· 具体设计 |
15 |
20 |
· Coding |
· 具体编码 |
30 |
40 |
· Code Review |
· 代码复审 |
15 |
30 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 |
45 |
Reporting |
报告 |
30 |
40 |
· Test Report |
· 测试报告 |
15 |
15 |
· Size Measurement |
· 计算工作量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
20 |
|
合计 |
180 |
220 |
项目思路:
1、对WordCount的需求的确定:对程序设计语言源文件统计字符数、单词数、行数。统计结果以指定格式输出到默认文件中。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:wc.exe [parameter] [input_file_name]。存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录
2、时间有限,我能够完成的功能确定为基本功能,扩展功能暂时不做。
对于字符统计功能所需要注意的地方:空格,水平制表符,换行符,均算字符。
对于单词统计所需要注意的地方:由空格或逗号分割开的都视为单词,且不做单词的有效性校验,例如:thi#,that视为用逗号隔开的2个单词。
其他注意事项:多个参数可以共用同一个输入文件,-o 必须与文件名同时使用,且输出文件必须紧跟在-o参数后面,不允许单独使用-o参数。
3、 设计流程:用户输入——若合法进行具体功能操作——use BufferrReader to count the numbers of char in every line and sum it
——use split function to divided every line with space and , .
——use readLine function to add lines.
——use BufferrWriter and FileWriter to write
———不合法则不操作
4、由于时间和技术限制,我未能将项目jar包转为exe程序。
程序设计实现过程:
main类中有一些简单测试,
Command类负责接收main中传送的功能字符,并且做好相应功能分配。
CharCount类负责统计字符个数,WordCount类负责统计单词个数,LineCount类负责统计行数,OutFile类负责将相关信息写入文档。
这几个类中main调用Command类,而在Command类中根据需求调用其他4个不同的类,这四个类是平行关系。
部分代码说明:
测试设计:
分为4种不同的情况,对每种情况进行多次测试。情况一:错误输入;情况二:正确输入单个功能;情况三:正确输入多功能;情况四:实现多功能并写入文档
代码运行效果:
个人反思总结:
通过这一次的项目,我了解了很多我从前没有了解过得东西。包括利用PSP文档对自己的整个项目开发过程进行预估分析反思等,还有git/博客园等这些可以好好利用起来的平台和工具。同时我也尝试了把java项目转成exe,虽然在实施这些东西中遇到了很多问题,也还有很多问题没有解决,但是我会继续在这个开放的平台上阅读更多文章、学习更多。
参考相关资料:
java中String的常见用法
https://blog.csdn.net/koches/article/details/7608139
String[] split(regex);
Java中StringBuffer的用法详解
https://blog.csdn.net/a940902940902/article/details/56372106
字符串分割--java中String.split()用法
https://www.cnblogs.com/dawnLynn/p/5477263.html
手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
https://blog.csdn.net/sunkun2013/article/details/13167099