0、结对编程成员:
吴剑通博客地址:https://www.cnblogs.com/wjt960310/
杨钧宇博客地址:http://www.cnblogs.com/GOB8023/
码云地址:https://gitee.com/jmu201521123056/four_operations
源代码:https://coding.net/u/Belong033/p/java-third/git
原题目要求
http://www.cnblogs.com/happyzm/p/6472120.html
http://www.cnblogs.com/happyzm/p/6509116.html
http://www.cnblogs.com/happyzm/p/6558307.html
1.改进现有代码
浏览所有代码考虑代码质量和测试覆盖率
2、博客要求:
提交的博客(两个同学都要写)必须完整包含下面内容:
- 需求分析:
1)计时器:显示用户完成全部答题的所用时间。
2)计算正确个数:显示用户所答对题目的个数
3)式子个数:用户总共答题个数
4) 语言选择功能:更换显示的语言。
程序设计:
- 代码展示:
1)、计时器:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
over=System.currentTimeMillis();
now1=((over-now) / (1000 * 60 * 60) % 60)+":"+((over-now)/ (1000 * 60)% 60)+":"+((over-now)/ 1000 % 60);
String a=now1+"";
jTextField7.setText(a);
// TODO add your handling code here:
}
2)、语言选择
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel1.setText("arithmetic");
jLabel2.setText("Please input number :");
jButton1.setText("Start");
jLabel3.setText("The topic purpose :");
jButton2.setText("answer");
jLabel5.setText("Your answer:");
jLabel10.setText("correct answer:");
jButton4.setText("Next question");
jLabel9.setText("The time used for:");
jLabel7.setText("Wrongc number : ");
jLabel6.setText("All number : ");
jLabel8.setText("correct : ");
jButton3.setText("End of the answer");// TODO add your handling code here:
}
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel1.setText("四则运算");
jLabel2.setText("请输入题数:");
jButton1.setText("开始做题");
jLabel3.setText("题 目:");
jButton2.setText("查看答案");
jLabel5.setText("你的答案: ");
jLabel10.setText("正确答案:");
jButton4.setText("下一题");
jLabel9.setText("所用时间为:");
jLabel7.setText("错 题 数:");
jLabel6.setText("答 题 数:");
jLabel8.setText("正 确 率:");
jButton3.setText("结束答题");
// TODO add your handling code here:
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel1.setText("四則運算");
jLabel2.setText("請輸入題數:");
jButton1.setText("開始做題");
jLabel3.setText("題 目:");
jButton2.setText("查看答案");
jLabel5.setText(" 你的答案是:");
jLabel10.setText("正確答案是:");
jButton4.setText("下一題");
jLabel9.setText("所用時間為 :");
jLabel7.setText("錯 題 數:");
jLabel6.setText("答 題 數:");
jLabel8.setText("正 確 率:");
jButton3.setText("结束答題");
程序运行:程序运行及每个功能的使用截图。
PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟)
Planning 计划 8 6
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 8 6
Development 开发 82 88
· Analysis 需求分析 (包括学习新技术) 6 10
· Design Spec 生成设计文档 5 6
· Design Review 设计复审 4 6
· Coding Standard 代码规范 3 3
· Design 具体设计 10 12
· Coding 具体编码 36 21
· Code Review 代码复审 7 9
· Test 测试(自我测试,修改代码,提交修改) 13 21
Reporting 报告 9 6
· 测试报告 3 2
· 计算工作量 2 1
· 并提出过程改进计划 3 3
代码要求
要求必须增量式开发-提交到码云地址,码云上要能看到多次commit的记录,同时必须有两个人各自的commit记录。
评分基准
按时交 - 有分(详细评分准则见下表)
晚交 - 0分
迟交两周以上 - 倒扣本次作业分数
抄袭 - 倒扣本次作业分数
如对分数有意见,只给一次向助教申诉的机会
评分项 评分细则 分数 备注
现有代码改进部分 clone 所选项目,并在博客中给出结对项目码云链接 1
检查所选项目的类之间的关系,博客中给出类图 1 在博客中给出
找出原项目中的逻辑泥球 1 需要解释为何这部分是逻辑泥球
给出原项目中测试用例覆盖不到位的地方,然后补充相应的测试用例 1 如果覆盖都到位请指出测试用例所测的功能或逻辑
保证所选项目支持多操作符的运算 2 如果原项目没有的话需要自行添加此功能
完整给出该项目的测试用例 1 重点给出添加功能的测试用例,如多运算符的运算实例
功能改进与拓展 需求分析 1 针对现有代码的改进分析,新开发功能的分析
设计分析 1 博客中给出针对新功能的思维导图
支持括号优先级运算 2
程序生成的算式不重复 4
给出回归测试的用例 1 原项目测试用例+新功能测试用例都保证能过
给出效能分析工具的分析结果 2 博客上给出截图
找出关键模块消耗最大的函数,是否存在改进 2 根据分析结果给出消耗最大的函数,并给出改进建议,各1分
附加题 支持乘方运算 3
其他要求 博客开头给出两人的学号 0.5
展示每个功能的核心代码 1 给出代码截图
程序运行及每个功能的使用截图 1
结对编程两个人的感受和体会 2
非摆拍的两人在讨论、细化和编程时的结对照片 1
完成PSP表格 2
码云上的代码迁入记录中有两个人的迁入记录 1
码云上的代码迁入记录中有多次迁入的记录 1
码云上有两个人的编码规范文档 1 需要以文档的形式上传到码云上
说明
上述表格中的所有的评分项都要在博客或者是码云上有体现
PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 6 |
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 8 | 6 |
Development | 开发 | 120 | 180 |
· Analysis | 需求分析 (包括学习新技术) | 15 | 20 |
· Design Spec | 生成设计文档 | 15 | 10 |
· Design Review | 设计复审 | 5 | 8 |
· Coding Standard | 代码规范 | 10 | 15 |
· Design | 具体设计 | 15 | 10 |
· Coding | 具体编码 | 40 | 60 |
· Code Review | 代码复审 | 10 | 8 |
· Test | 测试(自我测试,修改代码,提交修改) | 20 | 30 |
Reporting | 报告 | 15 | 30 |
· | 测试报告 | 5 | 5 |
· | 计算工作量 | 6 | 5 |
· | 并提出过程改进计划 | 10 | 2 |
小结感受:
结对编程主要是要两人分别体会并理解领航员和驾驶员两种角色对于项目来说的意义,所谓1+1>2就是要看在编程过程中我们两个人合作的效率大于一个人,两个人有不同的想法,通过协商和改变,从而达成达成题目的要求。
原文地址:https://www.cnblogs.com/GOB8023/p/8646936.html