个人项目 java实现

一、GitHub地址 :https://github.com/Mr-Gsh/individual-event-wc-


二、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划  40 45 
· Estimate · 估计这个任务需要多少时间  40  45
Development 开发 1010   1125
· Analysis · 需求分析   60  50
· Design Spec · 生成设计文档  30  40
· Design Review · 设计复审   20 20 
· Coding Standard · 代码规范  20  20
· Design · 具体设计  30 45
· Coding · 具体编码  700 800 
· Code Review · 代码复审  50  30
· Test · 测试(自我测试,修改代码,提交修改)  100 120
Reporting 报告  120 140 
· Test Report · 测试报告  60  70
· Size Measurement · 计算工作量  20  20
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  40  50 
合计    1170  1310

三、问题与解决方法

1.一开始看到题目的时候,觉得跟大二学Java的时候所实现的功能没用什么太大区别,认真看过后才发现区别还是有不少,比如通过控制台去跳出图形界面,递归处理目录下符合条件的文件等等,一时间不知道该怎么下手,而且单元测试以及代码覆盖率我也不知道该如何去解决。通过看了《构建之法》的前三章以及网上查阅了一些相关概念的介绍,我明白了代码覆盖率可以用 EclEmma 插件来解决,单元测试短时间还没理解如何编写测试代码,只是简单利用工具把测试框架生成了。

2.温习了正则表达式判断方法,在递归文件目录功能网上查阅了相关代码,明白了如何创建一些匹配器再去遍历文件实现此功能。

3.图形界面查找了如何通过命令行调出图形界面的方法,创建图形界面就相对简单,设置面板和按钮,加监听器,调用function类里面写好的基本和扩展功能。

4.暂时不知道怎么实现自动测试的方法,只是人工测试。


四、设计思路与实现

 

 本次项目共设计了三个类,命令行的Main,功能的function,图形界面GUI。先运行Main类,通过命令行,调用function类里面的方法,方法主要分为四个,通过I/O分别实现三个基础功能,还有一个扩展功能方法,通过Main类调出图形界面,实现图形界面需求。


五、测试

 1.一个空文件

 

2.只有一个字符的文件

 

3.只有一个词的文件

 

4.只有一行的文件

 

5.一个典型的源文件

 

 6.图形界面

 7.代码覆盖率

 

 因为还没学会如何写测试单元,所以代码覆盖率较低。


六、总结

通过这次的个人项目,我又重新温习了有些生疏的Java,新学习了如何测代码覆盖率,以及所代表的含义,创建单元测试的基本框架,详细代码仍需学习。更加了解了“软件工程”这四个字代表了什么,从第一步解题思路到最后项目总结,自己亲身体验过一遍流程才更加的了解以及熟悉。明白了开发一个软件其实最重要的是想明白如何去把一个大项目分成若干模块,然后一个一个的解决,想清楚其中的关系,到时候编写代码的时候就不会突然想起来什么又重新往里塞的困难。虽然基本完成了任务,但我还是对于软件开发的详细要求缺乏了解与认知,一些开发的规范我并没有做到,没有考虑其他因素等等,这些都需要我以后更加认真的学习这门课程。

猜你喜欢

转载自www.cnblogs.com/Mr-Gsh/p/11574308.html