第三次作业:结对编程
项目地址 | https://github.com/lzzz7/PairProgramming.git |
---|---|
结对伙伴作业地址 | https://www.cnblogs.com/-lzzz/p/11615801.html |
作业链接 | https://www.cnblogs.com/cherish599/p/11577268.html |
一、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 20 |
Estimate | · 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | 600 | 710 |
· Analysis | · 需求分析 (包括学习新技术) | 120 | 150 |
· Design Spec | · 生成设计文档 | 60 | 60 |
· Design Review | · 设计复审 (和同事审核设计文档) | 30 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
· Design | · 具体设计 | 60 | 60 |
· Coding | · 具体编码 | 150 | 230 |
· Code Review | · 代码复审 | 60 | 60 |
· Test | · 测试(自我测试,修改代码,提交修改) | 90 | 100 |
Reporting | 报告 | 105 | 125 |
· Test Report | · 测试报告 | 50 | 60 |
· Size Measurement | · 计算工作量 | 25 | 30 |
· · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 35 |
. | 合计 | 725 | 855 |
二、流程图
三、 解题思路
1.点名窗口的设计
2.记录窗口的设计
3.学生数据的储存
4.学生属性的设计
private void timerCallName_Tick(object sender, EventArgs e)
{
Random ra = new Random();
int i = ra.Next(stuList.Count);
lblName.Text = stuList[i].Name;
label3.Text = stuList[i].Id;
}
四、界面设计
为了使系统看起来不那么死板,我们优化了点名系统的界面。
五、代码互审及代码规范
- 代码互审:代码的互审对我们来说还是有很大的帮助,当代码运行出错时,用自己的固有思维很难发现错误在哪里,但是队友就较容易发现问题的所在,有种当局者迷的意思。
- 代码规范:代码规范主要是结合书上和网络的知识来学习代码规范,使队友能清楚的理解代码的含义。
六、代码编写
这次作业的代码还是有一点难度,但是老师给了我们基础的代码。我们只需要在源代码的基础上理解加以改进,经过我和小伙伴的研究讨论,新增了抽取学号的功能。
下面时部分代码截图
七、代码测试
代码测试这块有点难,耗费了我们很多时间,在网上查询了很多关于白盒测试、代码覆盖率之类的文章,但网上的文章都偏理论难以理解。我们就根据自己的理解进行了简单的测试。
八、合作及总结
结对编程是一个互相学习的过程。在结对编程过程中,两个人会不断就实现方法、代码风格或命名方式进行讨论,两个人的思路能够进行互补,在编写过程中能学到对方解决问题的思路和方法,对于提高自己解决问题和编程能力有很大的帮助。