结对编程 第一阶段实验报告

结对编程

第一阶段实验记录

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

(1)敏捷开发:又称敏捷软件开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。敏捷开发是一系列开发方法的总称, 列入敏捷方法的有:①Scrum, ②极限编程XP Extreme Programming,③ASD/Adaptive Software Development,④水晶方法Crystal,⑤特性驱动开发FDD/Feature Driven Development,⑥动态系统开发方法DSDM/Dynamic Systems Development Method,⑦精益软件开发,⑧Lean Software Development,⑨AUP(Agile Unified Process)。

        敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

(2)结对编程:结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。

        结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情--尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。

       我们此次采用的主要是远程结对编程,远程结对编程,也称作虚拟结对编程或分布式结对编程,是指两个程序员不在同一地点,通过协同编辑器,共享桌面,或远程结对编程的IDE插件进行的结对编程。远程结对编程引入了一些在面对面的结对编程中不存在的困难,例如协作的额外时延,更多的依赖"重量级"的任务跟踪工具,而不是"轻量级"的索引卡片,以及没有口头交流导致的在类似谁"控制键盘"问题上的混乱和冲突。许多工具,例如Eclipse有插件支持远程结对。有些团队尝试使用VNC和RealVNC,每个程序员使用他们自己的计算机。其他人使用基于文本的GNU Screen的多显示模式。苹果公司的MAC OS X包含内建的屏幕共享应用。

2、组队信息

组名:clwys

组长:吴宇森

组员:陈莉

博客地址: 陈莉(https://www.cnblogs.com/clwys/) ,吴宇森(https://www.cnblogs.com/wyscl/) 

github仓库地址:https://github.com/CL129/pp_project.git

课题:四则运算,输入你要出题的个数,随机产生四则运算,然后用户回答,并且进行打分。

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

3、针对课题的查阅资料及理解

查阅资料:四则运算,是指加法、减法、乘法和除法四种运算。四则运算是小学数学的重要内容,也是学习其它各有关知识的基础。在四则运算中先乘除后加减,先括号内后括号外。在现实生活中四则运算可以说是非常简单的,但是如何把它用到计算机中,用代码实现加减乘除的运算,并满足四则远算的一些规则。通过查阅资料了解到在四则运算编程过程中需要用到数据结构中的栈,所以关于栈的一些使用规则以及定义十分关键。

课题理解:输入你要出题的个数,用随机数实现100以内的加、减、乘、除运算,其中和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除),系统随机产生四则运算,每出现一个运算式,用户输入结果,然后系统进行判断与打分,最后系统输出答对的题数与分。

4、开发平台及技术工具

开发平台:VC6.0++

编程语言:C语言

技术工具:github(用于两人进行代码交互,远程仓库暂存、提交代码等)

 因为对C语言比较熟悉,所以二人商量后首选C语言作为开发语言,相应的选择VC6.0++作为开发平台。

5、讨论记录

目前只是建立了仓库,确定了课题等一些基础铺垫,还未进行下一步的操作。已经确定如何编写规范的代码,并且选择数据结构中的堆栈进行存放数字和运算符,以及利用的在线编程或者桌面共享的工具。但是四则运算说复杂起来也很复杂,因为是随机产生四则运算,因为课题要求和与积不能超过100,差不为负(即须大减小),商不为小数或分数(即必须整除),所以要限制产生的随机数的大小范围,规定一个运算式产生四则运算的个数。而且四则运算有优先级,所以我们也讨论了如何比较运算符的优先级。现在发现的问题还不是很多,当开始编写代码时,一定会出现现在还未考虑到的一些问题及想法,那时候会边编写代码边解决问题以及在算法中加入新的想法,来改良代码。

猜你喜欢

转载自www.cnblogs.com/clwys/p/12530979.html