结对编程 第一阶段

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

敏捷开发:敏捷开发采用增量和迭代的开发过程,强调团队紧密发协作,能够有效应对快速变化需求,快速交付高质量的软件,是一种新型软件开发方法,相对于理论,更基于实践。敏捷开发更注重适应而非预测,因为需求是不可预测的,所以软件开发应该是一个自适应的跟踪过程,在敏捷开发的过程中,把整个开发过程划分为若干个更小的迭代,每一个迭代周期称为一个冲刺,是一个小的瀑布模型,包括需求分析、设计、实现和测试等活动,结束时都要生成一个稳定和被验证过的软件版本。比于传统的由固定的需求来计划驱动估计的资源和时间的开发方法,敏捷开发由固定的资源和时间来用价值驱动软件的特性,不仅大大节约了资源和时间,还使开发出来的软件更有竞争力,从而符合商品市场规律。敏捷开发注重市场快速反应能力,客户的前期满意度高。但在整个敏捷开发过程中对技术人员的技术水平和业务人员的要求较高,整个过程注重团队成员之间的沟通,若项目中人员流动性强会拖累团队的进程,总的来说,敏捷开发的前提是有一个合格的团队和良好的外部环境。

 结对编程:结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作,一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理,这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面,观察员是编程过程的安全网和指南。在编程过程中,一个程序员的缺点和思维盲点是固定的,在相应领域中,单独工作会有较大几率出现思维漏洞导致代码产生Bug,而两个程序员具有相同的缺点和思维盲区的可能较小(出现问题时还可以进行人员调整),所以当两个程序员采用结对编程的方式工作时,遇到问题会很快解决,而且错误很少,看似浪费了一个人的时间,实际上这样写出来的代码质量更高、出现的Bug更少、代码更为紧凑和优美。在结对编程中,两个水平相同的程序员一起工作可以更快地找到质量高的解决方案,两个水平不同的程序员一起工作可以帮助水平较低的一方学习新知识,提高了人才的培养效率。

2)组队情况,各队博客地址,github仓库地址,所选择的课题;

xyz队 左嘉薇(https://www.cnblogs.com/zybfdblog/) 肖月(https://www.cnblogs.com/xy1229/) 生命游戏   https://github.com/dss-nnh/my-travel-plans

3)针对课题查阅的资料,对课题的理解;

生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。实际上,游戏规则中具体的数字可以细化或改变,如果周围活细胞数设定过低,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;如果这个数目设定过高,世界中又会被生命充满而没有什么变化,我们决定了具体一下条件:

1.当前细胞周围的8个细胞中由有4个或4个以上的活细胞时,当前细胞会因为太过拥挤而死去;

2.当前死细胞周围的8个细胞中有3个活细胞时,当前细胞会变为活细胞;

3.当前细胞周围的8个细胞中有2个活细胞时,当前细胞不会发生变化;

4.当前细胞周围的8个细胞中有1个或者没有活细胞时,当前细胞就会因为孤独而死亡。

在游戏的初始设定中,地图上的每个细胞的初始状态依据上述的游戏规则演绎生命的变化,由于初始状态和迭代次数不同,将会得到令人叹服的优美图案。

4)二个人商量后,采用开发平台和技术工具

经讨论决定使用Visual c++ 6.0编程。

采用QQ作为远程协作工具实现桌面分享,采用github远程仓库托管代码。

5)其他,如二人讨论的记录

现阶段的讨论内容为和实验有关的初步决定,如开发工具,具体的GitHub仓库地址,课题的选择,具体的代码讨论将在下一阶段进行。

posted @ 2020-03-21 16:01  ←→不分  阅读(219)  评论(0编辑  收藏  举报