结对编程
一、项目成员
叶赐红(201421122045)
队友:金盛昌(201421122043)
Coding地址:https://coding.net/u/int__Sherlock/p/YunCalculate/git
二、需求分析:
- 本次作业要求在作业1的基础上,把作业1做成GUI。与队友商讨之后我们决定采用web做一个公共使用的的四则运算网页。
- 智能推送难题,商讨过程中我提出加入微型云计算,统计所有用户出错频率较多的题目,以及错误较多的题型(二元运算或者三元运算)对用户进行智能推送。
- 计时功能记录小学生答题耗时。
- 生成运行日志,方便后期维护。
- 由于我们页面中几乎没有涉及中文,即使不懂中文也可以轻松的使用本系统。所有没有涉及中英转换
三、程序设计
①搭建程序架构。涉及的几个简单的模块如下图。
②有计时功能,能显示用户开始答题后的消耗时间:用户请求生成相应类型的题目题目,跳转到答题页面即开始计时,提示用户答题消耗的时间。
③智能推送,将所用用户的错误题目记录到文档中,统计文档中出现概率大于0.02的题目作为难题,当用户需要时进行推送。
④日志,写一个日志工具类,从切面切入,记录没一个方法执行的状态和时间。
三、思维导图
四、分工
这一块我和主要负责的是
①service层的编写,实现业务逻辑
②编写servlet控制页面的跳转、
③前端的简单优化
五、运行展示
用户模式
管理员模式
五、小结感受:
- 团队开发需要一定协商的成本,但是可以集中两个人的思路头脑风暴往往可以的商量出很多自己一个人想不出来的东西,在这方面1+1>2的。
- 结对编程过程中联系不够紧密,部分模块出现了没有当初想的那么美好,都能够完美的适配,往往在参数还是会出错要在做调整。
六、伙伴评价:
对于项目很有耐心,态度端正,花费了比我多得多的时间去考虑实现。在这个结对编程的实验中我是拖了后腿的。
七、结对过程:
1.开发前先商讨架构的实现,讨论双方实验1 里面有什么是实现好的,有没有什么类是可以直接复用的,
2.商讨编写代码的一些习惯,比如要遵循驼峰命名法,变量名包名等要尽量语义化。
3.讨论双方的每一个模块要如何做才能是模块模块之间降低耦合度。
4.将功能模块整合在一起。
八、PSP:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | 30 | 10 |
· Estimate | 估计这个任务需要多少时间 | 24 | 24 |
Development | 开发 | 700 | 1200 |
· Analysis | 需求分析 (包括学习新技术) | 30 | 3 |
· Design Spec | 生成设计文档 | NaN | 1 |
· Design Review | 设计复审 | NaN | 0 |
· Coding Standard | 代码规范 | NaN | 5 |
· Design | 具体设计 | NaN | 20 |
· Coding | 具体编码 | NaN | 20 |
· Code Review | 代码复审 | NaN | 10 |
· Test | 测试(自我测试,修改代码,提交修改) | NaN | 2 |
Reporting | 报告 | NaN | 6 |
· | 测试报告 | NaN | 0 |
· | 计算工作量 | NaN | 0 |
· | 并提出过程改进计划 | NaN | 0 |