结对编程实验 第一阶段

(一)  添加组队信息

队名:有福同享有难退群

成员:李伟(博客:https://www.cnblogs.com/lw484014130/)

           李相杰(博客:https://www.cnblogs.com/Hypocrise/)

仓库地址:https://github.com/lw484014130/my-travel-plans.git

课题:四则运算

具体操作如下:

(1)首先我们要进入别人的项目进行fork操作(https://github.com/RainMan1860/pp_project)

第二张图中的forked from RainMan 1860/pp_project则是fork来源。

(2)然后我们需要将这个仓库里面的项目克隆到本机中,需要用到git clone命令。我们首先进入第一次实验建好的se2020-git-course文件中,然后进行克隆操作(注意克隆的地址是跳转之后的地址,也就是https://github.com/lw484014130/pp_project)

(3)克隆完成后我们要配置原始库和本地库的关联,进入pp_project文件夹,添加与原始库的关联,命名为upstream

用到的命令:

git remote add upstream https://github.com/RainMan1860/pp_project(这个地址是原项目开发者的项目主页上的clone的地址,是为了用来与主开发者保持相同进度)

git fetch upstream(从原始库中抓取最新的更新)

(4)我们在本地文件中找到Team information文件,进行修改,添加小组名称,小组成员的博客地址以及仓库地址。

修改完成后进行添加和提交

(5)最后通过git push命令将我们的修改发送到fork主页上去

然后通过pull request通知开发者,如果没有冲突就可以进行合并。

(二)敏捷开发和结对编程

          敏捷开发(Agile Development),是一种以人为核心、迭代、循序渐进的开发方式,是一种软件开发的流程。它会指导开发人员用规定的环节去一步一步完成项目的开发。由于它采用迭代式开发,所以它主要的驱动核心是人,而不是像瀑布模型那样,以文档为核心。敏捷开发更注重的人与人之间的沟通、交流。它认为个体和交互胜过过程和工具,可以工作的软件胜过面面俱到的文档,客户合作胜过合同谈判,响应变化胜过遵循计划。虽然右项也有价值,但是敏捷开发认为左项具有更大的价值。迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样一个周期就是一次迭代的过程,同时每一次迭代都可以生产或开发出一个可以交付的软件产品。(原文:https://blog.csdn.net/runOnWay/article/details/80431888)

         

          敏捷开发十二项原则:

(1)通过早期和持续交付有价值的软件,实现客户满意度。

(2)欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。

(3)不断交付可用的软件,周期通常是几周,越短越好。

(4)项目过程中,业务人员与开发人员必须在一起工作。

(5)项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。

(6)面对面交谈是最好的沟通方式。

(7)可用性是衡量进度的主要指标。

(8)提倡可持续的开发,保持稳定的进展速度。

(9)不断关注技术是否优秀,设计是否良好。

(10)简单性至关重要,尽最大可能减少不必要的工作

(11)最好的架构、要求和设计,来自团队内部自发的认识。

(12)团队要定期反思如何更有效,并相应地进行调整。

(原文:https://blog.csdn.net/yjn1995/article/details/99334737)

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

(三)对于该课题的理解

        我们小组选择的课题是四则运算,需要满足如下条件:

(1)首先需要从键盘输入一个整数即你要出题的个数;

(2)该程序能用随机数实现100以内的加减乘除运算,且满足和与积小于等于100,差不能为负数,除法运算必须是整除;

(3)要求输出10个运算式,用户需要在每输出一个运算式后输入结果,然后系统进行判断对错,判断结束后输出下一个运算式,再以此类推,直到10个运算式都解答完后,系统输出统计答对的题数与分数。

       

         我们的设计思路如下:

(1)首先需要一个能够生成随机四则运算的类ProduceProblem其中包括能够进行随机数的生成,随机符号的生成且将生成的数字串起来,并打印输出。

(2)其次需要一个类Translate将上一个类中生成的中缀表达式转换为后缀表达式且保存,需要定义一个栈再按照栈的操作,对式子进行遍历重排。

(3)再次我们需要将保存起来的表达式进行运算,及引用一个新类Count对上述的后缀表达式进行遍历,然后运算结果。

(3)最后是小学生作业系统的核心,需要一个类Judge进行作业批改,且将对错与否传递给主类进行统计。

(具体代码暂时还未设计)

(四)编程语言及开发工具

         经过讨论我们小组决定用java语言进行编写程序,用到的开发工具为Eclipse。

原文地址:https://www.cnblogs.com/lw484014130/p/12467824.html