zoukankan      html  css  js  c++  java
  • java实验三实验报告

    一、实验内容

    1. XP基础

    2. XP核心实践

    3. 相关工具

    二、实验过程(本次试验是在自己电脑上完成,没有使用实验楼)

    (一)敏捷开发与XP

    1.XP是以开发符合客户需要的软件为目标而产生的一种方法论

    2.XP是一种以实践为基础的软件工程过程和思想

    3.XP认为代码质量的重要程度超出人们一般所认为的程度

    4.XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件

    一项实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈、假设简单性、递增更改、提倡更改、优质工作。

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

    项目成员用户成功执行XP活动的技术通过XP实践来呈现,包括编程、团队、过程相关的12条实践

    (二)编码标准

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

    在Eclipse中使用快捷键Ctrl+Shift+F可以按Eclipse规定的规范缩进。

    标准格式如图:

     

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

    1.要体现各自的含义

    2.包、类、变量用名词

    3.方法名用动宾

    4.包名全部小写,如:io,awt

    5.类名第一个字母要大写,如:HelloWorldApp

    6.变量名第一个字母要小写,如:userName

    7.方法名第一个字母要小写:setName

    ……

    (三)结对编程

    结对编程是XP中的重要实践。

    结对编程中有两个角色:

    驾驶员:写设计文档,进行编码和单元测试等XP开发流程。

    领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。

    重点注意:有效地合作要做到对事不对人。

    (四)版本控制

    可以先用git status查看代码状态,显示有未跟踪的代码,用git add <file>...添加,我们使用git add HelloWorld.*把要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。这只是在本地操作,关闭实验环境会删除代码,如果想把代码保存到远程托管服务器中,需要使用git push,实验完成前使用git push相当于完成保存操作。

    (五)重构

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

    1.重构的第一项功能就是Rename,可以给类、包、方法、变量改名字。

    修改方法:用鼠标单击要改的名字,选择Eclipse中菜单中的Refactor->Rename...

     

     

    2.封装类

    选中某个需要封装的类,如name, age, id类,然后Eclipse中菜单中的Refactor->Encapsulate Field

     

     

    每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,正常的重构可以使用Eclipse中的Extract Method

     

    修改软件的目的:

    1.增加新功能;

    2.原有功能有BUG;

    3.改善原有程序的结构;

    4.优化原有系统的性能 。

    一个完整的重构流程包括:

    1.从版本控制系统代码库中Check out code

    2.读懂代码(包括测试代码)

    3.发现bad smell

    4.Refactoring

    5.运行所有的Unit Tests

    6.往代码库中Check in code

    (六)实践项目

    1. 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址,可以拍照展现结对编程情况,可以参考一下其他学校的作业

    2.记录TDD和重构的过程,测试代码不要少于业务代码,Eclipse中refactor菜单下的重构技能不要少于5个

    3.团队代码要使用git在实验楼中托管,要使用结对同学中的一个同学的账号托管。

    4. 程序要有GUI界面,参考用户界面和用户体验

    5.程序功能从豌豆荚游戏中选择一款用Java实现,注意:团队之间项目不能有重复,课代表协调一下。

    6.实验报告中统计自己的PSP(Personal Software Process)时间

    本次实验我们小组做的题目是设计贪吃蛇游戏。

    产品代码截图如下:

     

     

     

     

     

     

     

     

     

     

    伪代码:

    1.设计一个行为30,列为50,由格子构成的院子

    2.定义一条蛇和一个蛋,蛇吃掉一个蛋后则在院内任意地方随机产生一个蛋。

    3.蛇吃掉一个蛋则加5分

    4.若碰到蛋则蛇的身体变长一格,游戏继续,启动游戏后若蛇碰到边界或是自己的身体则游戏结束。

    游戏运行结果截图如下图:

     

     

    PSP时间统计

    步骤

    耗时

    百分比

    需求分析

    25min

    8.2%

    设计

    80min

    26.2%

    代码实现

    120min

    39.3%

    测试

    55min

    18%

    分析总结

    25min

    8.2%

    三、实验收获和总结

    本次实验难度系数较大,根据实验指导书,前面的几项任务都不太复杂,根据指导可以很容易实现,并且让我们了解了如何快速规范化代码的格式和重构的应用方法。但是对于最后的游戏设计这个环节而言,我和我的搭档意识到平时所学的java知识不足以完美地完成本次实验,因此我借鉴了网上与贪吃蛇游戏相关的代码,认真研读、理解代码内容,并细心调试代码,最终完成了本次实验中难度最大的部分。在研究代码的过程中,我对git的应用理解加深,熟练掌握这个工具后,对我们日后的编程学习大有裨益。同时,我们需要继续深入学习有关java开发的知识,不能仅仅满足于书本,也不能仅仅满足于看懂代码,更重要的是亲手编写代码,在亲身实践中收获更多。

    四、结对同学blog地址:http://www.cnblogs.com/disturbia/ 

  • 相关阅读:
    解决winfrom下TextBox不支持透明背景色
    C# Winform 怎么让按钮在Panel里居中显示
    DevExpress Cpicturebox或者Dev控件 PictureEdit 按比例的缩放加载图片
    Alluxio : 开源分布式内存文件系统
    yarn cluster和yarn client模式区别——yarn-cluster适用于生产环境,结果存HDFS;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出
    Linux 反弹shell(二)反弹shell的本质
    浅谈摄像头有关的安全问题
    pyspark AttributeError: 'NoneType' object has no attribute 'setCallSite'
    大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
    pyspark minHash LSH 查找相似度
  • 原文地址:https://www.cnblogs.com/20135228guoyao/p/4553318.html
Copyright © 2011-2022 走看看