实验三 敏捷开发与XP实践

实验三 敏捷开发与XP实践

一、实验内容

1. XP基础

2. XP核心实践

3. 相关工具

二、实验要求

1.完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。

2. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

三、实验步骤

(一)敏捷开发与XP

     1.软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

     2.软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。

     3.软件开发流:人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。

     4.软件工程=开发流程+工具,软件=程序+软件工程

        常见的开发流程有:

  • RUP(Rational Unified Process)
  • PSP(Personal Software Process )
  • TSP(Team Software Process )
  • Agile Process
  • ……

    5.敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。

    6.敏捷开发包括很多模式:其中,极限编程(eXtreme Programming,XP)是一种全新而快捷的软件开发方法。

    7.XP软件开发的基石是XP的活动,包括:编码、测试、倾听、设计。

(二)编码标准

     编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。

     编码标准中的版式就是一个很好的例子,版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要因素。 

     程序没有最基本的缩进,让人读起来很费劲,这个问题在Eclipse中比较容易解决,例如:

再根据代码逻辑加入一些空行:

!注意:

    1.Java中的一般的命名规则有:

  • 要体现各自的含义
  • 包、类、变量用名词
  • 方法名用动宾
  • 包名全部小写,如:io,awt
  • 类名第一个字母要大写,如:HelloWorldApp
  • 变量名第一个字母要小写,如:userName
  • 方法名第一个字母要小写:setName
  • ...

   2.关于代码标准,可以遵循以下原则: 

(三)结对编程

      结对编程是XP中的重要实践。结对编程中有两个角色:

  • 驾驶员(Driver)是控制键盘输入的人。
  • 领航员(Navigator)起到领航、提醒的作用。

(四)版本控制(说明:此部分我是在自己电脑上进行的操作,没有在实验楼里用git)

       XP的集体所有制的一个主要优势是提升了开发程序的速度,因为一旦代码中出现错误,任何程序员都能修正它。 这意味着代码要放到一个大家都能方便获取的地方,我们叫代码仓库。这引出另外一个话题叫版本控制(Version Control)。流行的版本控制工具有CVS,SVN,Git等。Git是Linus除了Linux操作系统外的另外一个重要发明。

      首先,我下载了git for windows,进行安装,然后创建版本库。接着进行实验操作:

   1.创建HelloWorld目录,如下图所示: 

提交代码,用git status查看一下代码状态:

此时代码为:

修改代码之后再次提交:

此时代码为:

通过git log查看代码提交记录: 

(五)重构

     1.重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更。

     2.重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。重构几乎是现代IDE的标配:

   a.重构功能一——Rename

 

Rename完成后:

   b.重构功能二——封装

 

对name、age、id全部操作后,再对34,35行进行修改,因为每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,正常的重构可以使用Eclipse中的Extract Method...。最终代码为:

(六)实践项目

基于Java的贪吃蛇:

七、遇到的问题及解决办法

    1.在实验楼里操作git时,开通代码库时由于没有提前看清楚要求,导致命名错误,无法进行实验

    解决办法:首先在网上学习了git的相关知识,看的是廖学锋的讲解,感觉收获很大。并下载了git for windows,在自己的电脑上进行了实验操作。

    2.一开始面对贪吃蛇完全没有头绪,不知从何编起

    解决办法:网上查阅了许多资料,大致了解了设计的几个步骤。首先进行伪代码编写:利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。总结来说,要综合应用JAVA的面向对象思想,封装类,接口等概念来完成本游戏。然后对代码进行了学习。

八、实验体会

    这次试验印象比较深刻,感觉所运用的知识以及所获取的知识都比较实用。例如git,不仅这次实验用的到,平时也可以对自己的文件进行版本控制。并且感受到,自己动手操作才能更好的理解知识。而且在实验的过程中,对不断出现的新知识的查阅、吸收对自己也是一个很大的提高。另外,这次实验让完成一个游戏的设计。感觉难度较大。虽然通过学习能够大致理解设计的一个思想和流程,但是对于代码的编写和敏感度还需要进一步提高。

posted on 2015-06-05 00:28  20135318刘浩晨  阅读(228)  评论(0编辑  收藏  举报