一、实验目标:
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、实验记录
1、查阅相关资料加深对敏捷开发和结对编程的理解
敏捷开发:在90年代末期,传统软件开发的方式因为其繁杂的过程,以及对文档的过于严格的要求,造成了很大程度上的效率下降,也就是人们所说的“重型化危机”。因为这一原因,人们开始反思传统方法的利弊,并对其弊端进行了改进,提出了敏捷方法。2001年2月,由Martin Fowler,Jim Highsmith等17位软件开发专家起草的敏捷宣言发表,敏捷联盟成立。敏捷开发作为一种新的方法正式诞生。敏捷宣言中所表述的价值观分为四个方面:
(1)个体和互动 高于 流程和工具
(2)工作的软件 高于 详尽的文档
(3)客户合作 高于 合同谈判
(4)响应变化 高于 遵循计划
总体来说,敏捷开发是一种基于更紧密的团队合作、能够有效应对快速变化需求、快速交付高质量软件的迭代和增量的新型软件开发方法。典型的敏捷开发方法有:极限编程(xp)、scrum。
结对编程: 结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试,能编写出质量更高的代码。相比于传统编程,结对编程对程序员的沟通能力有更高的要求,传统编程只需要一个人闷头码代码就行了,而结对编程则需要两个人互相说明自己的想法,表达清楚自己的思路,同时也是对程序员处理分歧的能力的考验,但是其质量更高,代码也更可靠,重写的概率比较低,对于对代码质量要求较为严格的项目的确不失为一种很好的编程方法。而此次实验由于疫情我们采用了远程结对编程的方式,通常的结对编程方式所带来的优点同样适用于远程结对过程:让更多的人了解代码、使代码的质量提高、并且通过这种方式提供了一次指导学习的机会。除此之外还有一点优势,而这一优势在远程方式中表现得更为明显,即远程结对增加了社交互动性。
2、组队情况,各队博客地址,github仓库地址,所选择的课题及理解
队名:渣梨
队员博客地址:查方慧(https://www.cnblogs.com/maxy12161118/) 李夏(https://www.cnblogs.com/lx340111/)
git hub 仓库地址:https://github.com/yixia1/pp_project.git
选择的课题:四则运算
开发一个自动生成小学四则运算题目的命令行 “软件”。实现输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。
规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分数。
3、开发平台及技术工具
经过二人商量后,我们将通过QQ远程协作,使用Dev-C++作为开发平台,用C语言编写代码,并在github远程仓库上托管代码。
4、讨论
目前我们已提前建好了托管代码的仓库,商量了开发所采用的语言及平台下一步将继续讨论四则运算代码的总体设计。