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/
java实验三实验报告的更多相关文章
- 20145206《Java程序设计》实验三实验报告
20145206<Java程序设计>实验三实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运 ...
- 20145120 《Java程序设计》实验三实验报告
20145120 <Java程序设计>实验三实验报告 实验名称:敏捷开发与XP实践 实验目的与要求: XP基础 XP核心实践 相关工具 (一)敏捷开发与XP 极限编程(eXtreme Pr ...
- 20155206 《Java程序设计》实验三实验报告
20155206 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 提交一: 提交二: 提交三: 提交四:
- 20155232 《Java程序设计》实验三实验报告
20155232 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile ...
- 20145303《Java程序设计》实验三实验报告
20145303<Java程序设计>实验三实验报告 ssh公钥配置及git安装: eclipse中git配置: 队友链接: http://www.cnblogs.com/5321z/p/5 ...
- 20145328 《Java程序设计》实验三实验报告
20145328 <Java程序设计>实验三实验报告 实验名称 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发是一种以人为 ...
- 20145236 《Java程序设计》实验三实验报告
实验三实验报告 和张亚军同学一组: 实验三实验报告
- 20145337实验三实验报告——敏捷开发与XP实践
20145337实验三实验报告--敏捷开发与XP实践 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 ** 实验步骤**### 敏捷开发与XP 软件工程包括下列领域:软件需求 ...
- 20145229实验三实验报告——敏捷开发与XP实践
20145229实验三实验报告--敏捷开发与XP实践 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 ** 实验步骤**### 敏捷开发与XP 软件工程包括下列领域:软件需求 ...
- 《Java程序设计》实验三 实验报告
实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2 ...
随机推荐
- docker 简要学习
一.Docker的安装和启动 使用环境centos7 yum包更新到最新 sudo yum update 安装需要的软件包,yum-util提供yum-config-manager功能 sudo yu ...
- 存储类、链接和内存管理(c prime plus)
首先介绍三个概念: (1)作用域:作用域描述了程序中可以访问一个标识符的一个或多个区域. 一共有三种作用域:代码块作用域.函数原型作用域和文件作用域 a.代码块作用域:一个代码块是包含在开始花括号和对 ...
- LaTeX源代码显示宏包listings应用备忘之新语言定义
我目前了解的LaTeX中有关源代码显示的宏包有两个,这里介绍其中的listings宏包.listings宏包中已经定义了部分计算机语言的显示样式,但还是有些语言没有定义,我们一起看一下如何定义新的 ...
- d3 js emberjs handlerbarjs
http://handlebarsjs.com/ http://emberjs.com/ http://jsbin.com/d3ember-barchart/13/edit?html,output
- ASP.NET中关于XML的AJAX的读取与删除
一个XML文件,名称就暂定为GroupStudents.xml吧,内容如下: <?xml version="1.0" encoding="utf-8"?& ...
- 20155238 2016-2017-2 《JAVA程序设计》第七周学习总结
教材学习内容总结 第十二章 认识Lambda语法 在只有Lambda表达式的情况下,参数的类型必须写出来. 匿名类有相应的应用场合.Lambda表达式只关心方法命名上的参数与返回定义,忽略方法名称. ...
- Oracle 安装过程中 File not found "WFMLRSVCApp.ear" 的原因
主要有两种原因: 1 只解压缩了第一个zip文件. 2 两个zip 文件解压缩到了两个不同的目录里.
- 8-[CSS]-选择器
1.选择器 首先来说一下,什么是选择器.在一个HTML页面中会有很多很多的元素,不同的元素可能会有不同的样式,某些元素又需要设置相同的样式,选择器就是用来从HTML页面中查找特定元素的,找到元素之后就 ...
- 前端- html -总结
html概述 head标签 title 显示网站的标题 meta 提供有关页面的原信息 link 链接css资源文件.网站图标 style 定义内部样式表 script 链接脚本js文件 body标签 ...
- <link rel="stylesheet" type="text/css" href="css/index.css">详解
整条语句的含义是: 调用一个外部的CSS样式文件.他是通过<link/>这个标签来调用的. 然后, href="css/index.css" 表示外部样式文件的路径, ...