项目 | 内容 |
---|---|
课程 | 2016级计算机科学与工程学院软件工程(西北师范大学) |
作业要求 | 软件工程结对项目 |
实验目的: | (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。 (2)掌握Github上增量发布软件的操作方法。 |
任务一:
1、实验二词频软件项目报告
点评内容:首先,读你的博客,我觉得你对功能设计不够完整,比如统计单词,一次性就实现了整个文档的统计,而不是根据客户的需求去实现所查的单词个数,其次,还有柱状图的功能没能实现。就博客整体而言,结构完整,整个博客背景精美,值得学习。 希望你再接再励,继续加油,做的更好。 点评心得:在点评的过程中,我发现我们两个对于Java的学习都有所欠缺,包括在算法的实现以及功能实现的处理上,当然,针对这些差异,我们应该互帮互助共同进步成为学习中的好伙伴,通过结对学习来弥补自己的不足和缺点,尽自己最大的可能完善自己之前的软件,尽可能的将本次作业完成。 1.需求分析
(1)实验2要求的功能;
(2)单词频数可视化柱状图;
(3)统计该文本行数及字符数;
(4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(5)可处理任意用户导入的任意英文文本;
(6)人机交互界面要求GUI界面(WEB页面、APP页面都可);
3.类图结构
4. 测试运行
功能实现:
1.查询任意文本
2.查询单词词频(并显示柱状图)
3.查询高频单词
4.将文本按字典顺序输出到result.txt
核心代码展示:
- 结对过程及结对照片:
了解学习结对编程,双方进行沟通,首先对双方的编程能力进行评估。然后结合自身能力对实验内容进行分析,划分各自需要负责的模块。在遇到分歧时,交流解决,在达成一致后进行实施。一起讨论并填写PSP时计划花费在具体编码阶段的时间较多。在自己的模块工作完成以后,对方进行复审,发现错误并解决错误。最终填写实际PSP。
5.PSP流程图
<style>
#recuit{
800px;
border-collapse: collapse;/*取重叠*/
text-align: left;
background:#FAEBD7;
}
#recuit td,#recuit th{
border: 1px solid black;
padding: 7px;
text-align:center;
}
#recuit th{
background-color:GREY;
color: white;
}
</style>
任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|
计划 | 15 | 20 |
估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 15 |
开发 | 300 | 350 |
需求分析 (包括学习新技术) | 200 | 220 |
生成设计文档 | 10 | 15 |
设计复审 (和同事审核设计文档) | 10 | 10 |
代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
具体设计 | 40 | 35 |
具体设编码 | 200 | 300 |
代码复审 | 15 | 20 |
测试(自我测试,修改代码,提交修改) | 40 | 35 |
报告 | 20 | 30 |
测试报告 | 8 | 8 |
具体设计 | 40 | 35 |
计算工作量 | 15 | 20 |
事后总结 ,并提出过程改进计划 | 10 | 15 |
总结:
本次我和结对伙伴配合的都挺默契,大家都知道主动去做作业,只不过任务真的是难到我们了,只学习过Java基础还没能力去实现GUI人机交互界面,我和我的结对伙伴整体花上大量的时间都只能进行一小部分的任务,有时候从网上找上一段代码想参考就为调试这段代码就浪费大量的时间,会出现许多jdk版本不匹配等问题,通过本次实验让我真的意识到了自己的水平,比起其他同学真的是差了很大一截,针对以上现象我觉得我们应该更能知道自己缺失什么,今后我会花时间去学习这部分不足来使自己进一步得到提升。