实验二:结对编程--第一阶段

一、实验目标:

1)体验敏捷开发中的两人合作。

2)进一步提高个人编程技巧与实践。

二 、实验内容:

1)根据以下问题描述,练习结对编程(pair programming)实践;

2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

3)要求在结对编程工作期间,两人的角色至少切换 4 次;

4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

三、实验过程记录:

1.查阅相关资料加深对敏捷开发和结对编程的理解

(1)敏捷开发

  敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。敏捷绝非某一种特定的开发方法,它只是一种应对快速变化的需求的一种软件开发能力,敏捷本身只包含了《敏捷软件开发宣言》和《敏捷软件的十二条原则》两份文档,敏捷相信,只要符合这两份文档的开发方法,就能让开发团队拥有应对快速变化需求的能力,这样的开发方法都叫做敏捷开发方法。使用敏捷开发主要是为了做出真正满足用户需求的产品、满足不断变化的用户需求、同时满足不同层次用户的需求,今天的市场向所有的从业者提出了一个要求:拥有应对快速变化的需求的软件开发能力,而敏捷就是赋予团队应对快速变化的需求的软件开发能力的方法,而这就是敏捷流行的原因。

参考链接:https://baike.baidu.com/item/敏捷开发

(2)结对编程

  结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作,是极限编程的组成部分。一个人输入代码,称作驾驶员;另一个人负责审查工作,称作观察员(或导航员),两人常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。它可以促进参与项目的程序员自身的提高,一对程序员工作的时候,水平较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西,而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路;其次,一定时间周期地打乱配对,让参与项目的人员相互转换位置,使得维护繁杂的文档变得不那么重要,大家分组打乱后,口头的交流很容易让所有人都熟悉每个模块,这样对于公司也很有好处,项目中万一有人离开,也不至于影响到整个项目;而且结对编程也使得程序员被迫提高了工作效率。

  远程结对编程,也称作虚拟结对编程或分布式结对编程,是指两个程序员不在同一地点,通过协同编辑、共享桌面、或远程结对编程的IDE插件进行的结对编程。现如今因为无法到校进行实验,我们只能采取远程方法来进行结对编程实验。 

参考链接:https://baike.baidu.com/item/结对编程

四、选题与分析

1)四则运算

开发一个自动生成小学四则运算题目的命令行 “软件”。实现 输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

规则:用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除)。要求总计输出10个运算式,每输出一个运算式,等待输入结果,然后进行对错判断并输出。最后输出统计答对的题数与分

2)对课题的理解

计算机随机产生两个数,进行加减乘除的运算,其中,若出现和与积超过100.差数为负数,商为小数的情况,则删除这个运算公式,反之则保留,连续输入十个式子,让学生在键盘数输入结果,如果与计算机结果相同则分数加一,不同则加零,最后输出学生获得分数

3)编写语言

经过我和另一位小组成员的讨论,我们最终决定采用python语言来实现这一次的实验

成员博客地址

1 周宗逸:https://www.cnblogs.com/zzynb/

2 周乐天 https://www.cnblogs.com/alanandpython/p/12545811.html

3 仓库地址:https://www.github.com/zhoudashuaibi/homeworkillers

原文地址:https://www.cnblogs.com/alanandpython/p/12545811.html