结对编程作业
软件工程网络15结对编程作业###
1.链接
-
学号:201521123069 博客链接:http://www.cnblogs.com/kzq-java-markdown/
-
学号:201521123074 博客链接:http://www.cnblogs.com/guzhiling/
-
结对编程码云项目链接:https://gitee.com/guzhiling/software_engineering/tree/master
2.改进现有代码
选择博客4进行改进:
个人博客地址4:http://www.cnblogs.com/shizhuangde
源代码:https://coding.net/u/lhl1212/p/work2/git
- 分析原始代码
类图:
)
覆盖率统计截图:
单元测试截图:
弱点:
1)无正确率统计
2)简英繁切换不完善(弹出错题框时,“错题”及“正确率”未切换)
3)不支持多操作符运算
4)不支持加入括号的四则运算题
5)固定为5个题目
- 功能改进与扩展
1)添加正确率统计
2)半完善简英繁切换(还有初始界面的按钮不支持切换)
3)支持多操作符运算
基本思路:在原有代码基础上又随机生成一个操作数以及一个运算符,先比较两个运算符的优先级,优先级较高的操作符两端算式优先算,将其结果存入,再将其与剩余操作数进行运算,调用相应的运算函数,即得出这个题目的正确答案。
【例】:6 + 1/3 X 1/2 'X'优先级高于'+',先调用mul函数计算1/3 X 1/2,存得其结果s,再调用add函数计算s+6,即为正确答案。
4)改进代码展示
5)程序运行截图
3.两人合作
-
结对编程照片
-
PSP表格
PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 15 |
·Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 20 | 15 |
Development | 开发 | 358 | 542 |
· Analysis | 需求分析 (包括学习新技术) | 10 | 8 |
· Design Spec | 生成设计文档 | 5 | 6 |
· Design Review | 设计复审 | 10 | 8 |
· Coding Standard | 代码规范 | 3 | 3 |
· Design | 具体设计 | 10 | 12 |
· Coding | 具体编码 | 240 | 360 |
· Code Review | 代码复审 | 20 | 25 |
· Test | 测试(自我测试,修改代码,提交修改) | 60 | 120 |
Reporting | 报告 | 23 | 29 |
· | 测试报告 | 3 | 2 |
· | 计算工作量 | 10 | 12 |
· | 并提出过程改进计划 | 10 | 15 |
-
码云commit提交记录
-
编码规范提交记录
-
心得体会
此次结对编程是和我舍友一起完成的,因为在同一个宿舍,讨论交流起来都比较方便。本次结对编程是在上一届学长学姐所做项目的基础上进行修改。一开始是运行原有代码,再理清原有代码的结构,最后再在原来的基础上增加新功能。就增加新功能这一块来说,我觉得还是比较困难的。毕竟原来的程序员自己有一个代码编写的思路,你要增加了一个新功能,你可能就要换一个思路来写,就我们选择的这个博客来说,如果要增加括号操作符,程序基本上就要扔掉重写。所以,感觉修改别人的代码还是挺复杂的。
至于结对编程真的能够带来1+1>2的效果吗?我觉得暂时还没有达到这种效果。两个人结对的话,考虑到的问题会更全面一点,代码编写过程出现的一些问题可以及时地发现并解决。但是也有个问题,效率低,在结对的过程中,需要领航员和驾驶员的注意力都很集中,这点很难做到。我觉得结对编程初期,可能还是需要磨合一段时间,效率才会提高。就现在来讲,感觉两人分工合作的效率会更高。