zoukankan      html  css  js  c++  java
  • 结对编程 第一阶段

    一、实验目标

    1)体验敏捷开发中的两人合作。
    2)进一步提高个人编程技巧与实践。

    二 、实验内容:
    1)根据以下问题描述,练习结对编程(pair programming)实践;
    2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
    3)要求在结对编程工作期间,两人的角色至少切换 4 次;
    4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

    三、问题描述

    生命游戏

      生命游戏是英国数学家约翰.何顿.康威在1970年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

      游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:"生"或"死"。图中,用黑色的方格表示该细胞为"死", 其它颜色表示该细胞为"生" 。 游戏开始时, 每个细胞可以随机地(或给定地)被设定为"生"或"死"之一的某个状态, 然后,再根据如下生存定律计算下一代每个细胞的状态:

    • 每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定;
    • 如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生,若原先为生则保持不变;
    • 如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变;
    • 在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。

    四、第一阶段准备

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

       敏捷软件开发,又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。     

       结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。他不仅意味着编程活动,也包括分析、设计、测试等全程活动。

       在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。其基础是会话和讨论,由于疫情原因,我们采取了github托管项目,利用网络进行面对面的编程。

    2)组队情况

    队伍名称:LAKERS队   仓库名称:https://github.com/cheng-xiang-star/cheng.git

    队伍成员:程祥  博客地址:https://www.cnblogs.com/cheng123-/

                      陆虎       https://www.cnblogs.com/luhu/

    3)通过查询对问题的理解与想法

      生命游戏,简单来说就是,以某个细胞为中心建立3*3的矩阵,也就是说每个细胞都有八个邻居细胞。当八个细胞中有两个活细胞时,该细胞状态不变;当有三个活细胞时,该细胞无论之前是何状态,都变成活细胞;其余情况下,该细胞都死细胞。

    4)开发软件及所用工具

    本次实验要用到eclipse来进行代码的编写,通过QQ来进行沟通,GitHub来建立共同仓库,从而完成本次远程结对实验。

    5)讨论与研究

    了解了本次实验内容的规则,确定了开发工具,建立了自己小组的仓库,并对未来的编码做出了一系列的细节安排。在双方共有的时间内完成代码的编写与修改,并完整的规定了双方的任务。本周完成了对实验算法的构思和大体框架,以数组算法为基准,双发达成了一定的共识,下周开始实际的编程,并适时更新在博客中。  

  • 相关阅读:
    rabbitmq在centos7下安装
    跨域问题
    11生成器相关及推导式(附内置函数分析图url)
    10函数名的应用,闭包,和迭代器
    09函数的动态传参及global和nonlocal关键字
    08函数简介
    07基本的文件操作
    06set集合和深浅拷贝(包括前面的一些知识点补充)
    05判断和编码/解码
    04基本数据类型(字典)
  • 原文地址:https://www.cnblogs.com/luhu/p/12548774.html
Copyright © 2011-2022 走看看