软件工程网络15结对编程作业
题目要求:
**1.链接 **
- 学号:2011521123006
- 博客园:http://www.cnblogs.com/KimHeechul/
- 学号:2011521123007
- 博客园:http://www.cnblogs.com/ty1213/
- 码云:https://gitee.com/KimHeechul/pair_programming/tree/master
2.改进现有代码
-
分析网络14部分现有程序代码
-
个人博客地址4:http://www.cnblogs.com/shizhuangde ,源代码:https://coding.net/u/lhl1212/p/work2/git
-
从源代码的运行中,可以发现,运行时,一旦做错了,显示的做错的题目会一直显示,没有被刷新掉,导致题目一直在累加,很乱。而且没有正确率的显示,不能够自己选择题目的数量,每次都只能固定做5道题目。而其他功能,像是计时器、加减乘除这些功能还是比较完善的,运算方面不仅仅可以做整数的运算,也可以做分数的运算。我们需要的就是将源代码中不是很完善的地方进行完善代码,去除重复的代码。
-
需求分析
- 源代码中已有的3种不同的语言选择
- 可以进行+、-、×、÷四种运算
- 可以进行多项式运算
- 可以随机生成不同的式子
- 设计分析
-
上传码云
-
类图
-
Junit单元测试
-
代码覆盖率
-
效能分析
**3.功能改进与扩展 **
-
源代码的改进
-
可以自由选择题数
-
主要代码:
- 运行截图:
- 可以刷新错题显示,显示正确率和答对题数
- 主要代码:
- 运行截图
-
增加新操作符
-
增加一个运算符,程序应该有怎样的改变?不得不扔掉全部重写么,还是可以只改部分模块?基于模块化设计的思想,考虑在现有程序中做什么样的修改,才能让程序更好地实现新的需求
-
减少重复题目
程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。 -
主要代码:
- 运行截图:
- 其他功能运行截图:
**3.在两人合作的过程 **
-
编程规范
-
使用tab键进行换行
-
每个符号和代码间用一个空格隔开
-
{ 与if和for在同一行,操作符的两边各留一个空格,逗号和分号也各留一个空格。
-
变量名、函数名使用驼峰风格进行命名
-
结对编程图片
-
心得体会
在这次结对编程的过程中,通过这次的结对编程,让我们两人都对于结对编程有了更加深刻的映象和了解。在结对编程的过程,我们在编程前期就根据实际情况,将每个人所需要进行的编程操作进行了明确的分工,这样明显提高了编程的效率。在编程的过程中确实能够感受到1+1>2的效果,两个人之间的合作确实比一个人自己进行编程更有效率,并且,自己一个人思考问题时,总会有着局限性你,但是两个人的话,刚好可以弥补这样的缺点。在这次编程中我们还使用一些软件分析之类的软件来帮助我们更加透彻地了解程序,但是对于一些软件,像是Jprofilter就不是很熟悉了,不知道给怎么使用它了。
-
PSP
PSP2.1 | 个人开发流程 | 估计耗时 | 实际耗时 |
---|---|---|---|
. Planning | 计划 | 20 | 20 |
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 5 | 8 |
. Development | 开发 | 220 | 350 |
· Analysis | 需求分析 | 30 | 45 |
· Design Spec | 生成设计文档 | 15 | 15 |
· Design Review | 设计复审 | 25 | 45 |
· Coding Standard | 代码规范 | 10 | 8 |
· Design | 具体设计 | 60 | 75 |
· Coding | 具体编码 | 75 | 95 |
· Coding Reivew | 代码复审 | 25 | 25 |
· Test | 测试(自我测试、修改代码、提交修改) | 15 | 25 |
. Reporting | 报告 | 25 | 30 |
· | 测试报告 | 5 | 8 |
· | 计算工作量 | 5 | 8 |
· | 并提出过程改进计划 | 8 | 12 |