个人java_个人项目(JAVA)

一、GitHub项目地址

二、PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)

· Planning

· 计划

50

55

· Estimate

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

30

30

· Development

· 开发

960

784

· Analysis

· 需求分析

50

60

· Design Spec

· 生成设计文档

30

43

· Design Review

· 设计复审

20

20

· Coding Standard

· 代码规范

20

20

· Design

· 具体设计

150

50

· Coding

· 具体编码

400

300

· Code Review

· 代码复审

60

50

· Test

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

180

180

· Reporting

· 报告

120

120

· Test Report

· 测试报告

60

60

· Size Measurement

· 计算工作量

20

20

· Postmortem & Process Improvement Plan

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

30

40

合计

2010

2159

三、解题思路

理解基础功能,基础功能是计算文件的行数,字符数等,因此,这些基本功能应该是封装成工具类进行调用,然后外界只需要确定查询的文件,读入便可进行计算。

理解进阶功能,进阶功能无非就是修改了参数,因此,我们只需要在第一步的基础上,在判断的条件中增加两个参数,便可以做到递归查询文件还有代码计算的输出,此处递归查询文件,可以复用基础功能的逻辑,所以可以将基础功能抽成单独的方法进行调用。

理解高级功能,高级功能是进行界面展示,而之前的功能是进行命令行展示,于是我们可以理解成是一种问题的两种方案,所以,需要在中间加入一层逻辑判断,判断参数,构建出不同的解决方案,而外界只需要进行传入参数调用即可,不需要理会具体的实现,此处应该设计成,方案类继承统一的父类抽象类,在以后扩展解决方案的时候,只需修改中间逻辑层的少部分代码即可实现。

程序还应该对一些不合理的输入进行提示,输入有误。

四、设计实现过程

MAIN类:程序的入口处,只是简单的调用逻辑层的方法,传入参数即可,接下来的工具交给逻辑层进行处理。

service层:抽象出一个通用的方案抽象类,创建两个实例类继承它,一个是命令行操作,一个是界面操作。创建一个获取对应方案解决类的Manager管理类,MAIN类传入参数,其进行判断,使用什么方案,例如,命令行,那就返回命令行实例类,进行命令行调用解决。在对应的方案类中,判断不同参数,调用底层工具类的方法,获取对应的值

底层工具实现类:进行文件的读取,文件的行数,单词等的计算,这个工具跟项目业务无关,因此可以抽成util类。

如果是界面展示,则需要一个界面的类,此类由界面方案解决类进行创建,其调用工具类获取到信息之后,进行填充View类进行展示

ca58926133d1246f05ce01177be23adc.png

五、程序结果

1. 基础功能

0ab07e00d26c746f33ce99408c2b5ffb.png

6d27c869f38cd61373d3deca9e015112.png

3c5b7fde06f126995e2dc215a1881a2c.png

2. 进阶功能

支持文件通配符,进行文件夹的递归查询子文件

bb5ac2059898b2a38d1d439da29b360c.png

3. 高级功能

选择文件

e777d0f4c1f414fcd69bf8a43063f4bd.png

1a49352863440b9d429501a79e79b973.png

4. 异常情况

01527fe405670daa26b218ad685895e1.png

5. 测试文件

ed2db48dce4759ca773b52dbc34c4745.png

e48e66224ee5a37e6d25a1bcf23c3a47.png

六、总结

编写这个个人项目,经历了一个开发的流程,从设计,预算,开发,测试的过程中,学习到了很多关于软件工程的思想,其实实现功能并不难,而将该模块设计好,将所有情况考虑完善才是难的。在开发的过程中,要提到的是,在使用命令行的时候,因为是在编译器直接运行,所以就选择了编译器集成的命令行传参,没有用命令行进行操作,相信这个影响不大。尽管实现的是一个小功能,但还是想把所有方面都想清楚,从设计,搭建框架入手,将小功能实现,遵循开闭原则,做到易扩展,程序有更好的健壮性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值