一、
github 地址:https://github.com/ijianghailing/rgzyfirstwork
二、
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 30 | 30 |
Development | 开发 | 1130 | 1070 |
· Analysis | · 需求分析 | 100 | 80 |
· Design Spec | · 生成设计文档 | 40 | 50 |
· Design Review | · 设计复审 | 40 | 60 |
· Coding Standard | · 代码规范 | 20 | 30 |
· Design | · 具体设计 | 80 | 60 |
· Coding | · 具体编码 | 700 | 600 |
· Code Review | · 代码复审 | 30 | 30 |
· Test | · 测试(自我测试,修改代码,提交修改) | 120 | 60 |
Reporting | 报告 | 120 | 130 |
· Test Report | · 测试报告 | 60 | 50 |
· Size Measurement | · 计算工作量 | 20 | 30 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 40 |
合计 | 1280 | 1230 |
三、
解题思路:
当拿到项目时,我会仔细浏览,从中提炼项目需求——共6种需求,其中涉及求文件的数据参数,批量处理文件,图形界面等,将其剖析为具体代码实现细节,例如如何访问文件,如何计算字符数等,如何显示带有数据的界面,然后通过搜索对实现细节查询资料,根据自己的代码思路将其整合,得到最初项目代码。测试:测试文件采取从无到有,从简单到复杂循步渐进,根据测试结果,若出现误差,则对寻根问底,对项目进一步完善,同时通过对比同学项目代码,借助maven等辅助工具提高项目质量。
四、
设计实现过程
五、
测试运行
测试文件包括:
一个空文件
一个只有一个字符的文件
一个只有一个单词的文件
一个标准的java源文件
一个多目录嵌套的文件
测试结果:以其中一个测试文件为例:rgzytext1.c
1, wc.exe -c rgzytext1.c
测试单元结果与实际相符
2, wc.exe -w rgzytext1.c
测试单元结果与实际相符
3, wc.exe -l rgzytext1.c
测试单元结果与实际相符
4, wc.exe -s -a .c
测试单元与实际相符
5, wc.exe -a rgzytext1.c
测试结果与实际相符
6, wc.exe -x
同时选择在“source"里的文件,这里选择”rgzytext3.c"
六、项目总结
编写个人项目的过程,我重新回顾java,以及学习《构建之法》里关于PSP以及项目管理的相关知识,也真正实践起来,经历了一个 从设计,预算,开发,测试的开发流程,虽然起初软件工程给人一种居高临下的感觉,统筹全局,但经过此次经历,不觉它离我们很远,它也是立足现实,现实生活中有此种需求,软件工程将其提炼并实现,软件工程也是很贴近我们现实生活,同时也是将现实生活事物的抽象化。这次项目其实实现功能不难,而难度体现在如何让自己的代码质量好,自己代码拿给别人一看就懂,即模块设计要好,良好的注释帮助读者理解。相信成长过程都是循序渐进,由简入难,所以培养扎实的设计以及开发能力成为我的重中之重,有基础后才能与同伴们一起开发,一起成长,共同完成每一项目。