zoukankan      html  css  js  c++  java
  • 实验三 敏捷开发与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,不仅这次实验用的到,平时也可以对自己的文件进行版本控制。并且感受到,自己动手操作才能更好的理解知识。而且在实验的过程中,对不断出现的新知识的查阅、吸收对自己也是一个很大的提高。另外,这次实验让完成一个游戏的设计。感觉难度较大。虽然通过学习能够大致理解设计的一个思想和流程,但是对于代码的编写和敏感度还需要进一步提高。

  • 相关阅读:
    sqlserver2008r2 连接服务器报错64
    java web---HTTP略讲
    Web测试中定位bug方法
    Java1.8API大类
    如何查看windows电脑信息(win10)
    debain系统安装open-vm-tools
    windowns电脑环境配置
    配置了环境变量,adb还是不能用
    已经配了环境变量,但是执行命令却打开了应用商店
    cpython,jpython,ironpython,micropython,etc的区别
  • 原文地址:https://www.cnblogs.com/lhc-java/p/4553495.html
Copyright © 2011-2022 走看看