java敏捷开发的落地与实施_20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告...
20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告
一、实验报告封面
课程:Java程序设计 班级:1652班 姓名:王彦博 学号:20165219 成绩:
指导教师:娄嘉鹏 实验日期:2018年4月30日
实验时间:15:45 - 17:20
实验序号:实验三
实验名称:敏捷开发与XP实践
实验内容:
XP基础
XP核心实践
相关工具
实验要求:
1 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2 完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
3 实验报告中统计自己的PSP(Personal Software Process)时间;
4 严禁抄袭。
二、实验内容及步骤
(一)alibaba 插件与Code菜单
Move Line/statement Down/Up:将某行、表达式向下、向上移动一行
suround with:用 try-catch,for,if等包裹语句
comment with line/block comment:把选中它区域变成注释
show reformat file dialog:按照格式自动对齐
Optimize imports:优化imports
Insert Live Template:插入 Live Template 缩写
例如:comment with line/block comment,把代码中选中的部分变成注释
(二)Complex代码添加测试用例
同伴代码
public class Complex {
// 定义属性并生成getter,setter
private double r;
private double i;
// 定义构造函数
public Complex(double r, double i) {
this.r = r;
this.i = i;
}
public static double getRealPart(double r) {
return r;
}
public static double getImagePart(double i) {
return i;
}
//Override Object
public boolean equals(Object obj) {
Complex complex = (Complex) obj;
if (complex.r != r) {
return false;
}
if (complex.i != i) {
return false;
}
return true;
}
public String toString() {
String str = new String();
if (i == 0) str = r + "";
else if (i < 0) str = r + "" + i + "i";
else str = r + "" + "+" + i + "i";
return str;
}
// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a) {
return new Complex(r + a.r, i + a.i);
}
Complex ComplexSubtract(Complex a) {
return new Complex(r - a.r, i - a.i);
}
Complex ComplexMultiply(Complex a) {
return new Complex(r * a.r - i * a.i, r * a.i + i * a.r);
}
Complex ComplexDivide(Complex a) {
return new Complex((r * a.r + i * a.i) / (a.r * a.r + a.i * a.i), (i * a.r - r * a.i) / (a.r * a.r + a.i * a.i));
}
}
添加测试用例
import junit.framework.TestCase;
import org.junit.Test;
import static org.junit.Assert.*;
public class ComplexTest extends TestCase {
Complex a=new Complex(1,2);
Complex b=new Complex(-2,-1);
Complex d=new Complex(4,-2);
@Test
public void testequals(){
assertEquals(false,a.equals(b));
assertEquals(false,b.equals(c));
assertEquals(true,new Complex(1.0,2.0).equals(a));
}
@Test
public void testAdd(){
assertEquals(new Complex(-1,1),a.ComplexAdd(b));
assertEquals(new Complex(5,0),a.ComplexAdd(c));
}
@Test
public void testSubtract(){
assertEquals(new Complex(3,3),a.ComplexSubtract(b));
assertEquals(new Complex(-3,4),a.ComplexSubtract(c));
}
@Test
public void testMultiply(){
assertEquals(new Complex(0,-5),a.ComplexMultiply(b));
assertEquals(new Complex(17,4),new Complex(3,2.5).ComplexMultiply(c));
}
@Test
public void testDivide(){
assertEquals(new Complex(0,0.5),a.ComplexDivide(c));
assertEquals(new Complex(-2,-1),b.ComplexDivide(new Complex(1,0)));
}
}
测试通过的截图
git log的截图
(三)重构
Rename可以给类、包、方法、变量改名字,增加代码的可读性。
Refactor->Encapsulate Field...用来封装成员变量
Source->Generate toString()...用来产生一个toString方法
(四)以结对方式完成Java密码学的学习
凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换
凯撒密码的加密过程可记为如下一个变换:
c≡m+k mod n (其中n为基本字符个数)
同样,解密过程可表示为:
m≡c+k mod n (其中n为基本字符个数)
成果如下:
重构
将Code,Rename为Caesar,并为p赋初值0
三、实验体会
通过本次实验,又一次体会到了结对编程的魅力,通过学习重构代码,也理解了,代码的规范性以及可读性的重要意义。
四、PSP
步骤
耗时
百分比
需求分析
20min
8%
设计
60min
25%
代码实现
120min
50%
测试
10min
4%
分析总结
30min
13%
java敏捷开发的落地与实施_20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告...相关推荐
- 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告
实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...
- 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实 ...
- 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践
20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...
- 20155231 实验三 敏捷开发与XP实践
20155231 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...
- 20155220 实验三 敏捷开发与XP实践 实验报告
20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155226 实验三 敏捷开发与XP实践 实验报告
20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20175212童皓桢 实验三敏捷开发与XP实践实验报告
20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...
- 实验三 敏捷开发与XP实践
目录 实验三 敏捷开发与XP实践-1 实验步骤 实验截图 实验三 敏捷开发与XP实践-2 实验步骤 实验截图 代码链接 实验三 敏捷开发与XP实践-3 实验步骤 实验截图 代码链接 实验三 敏捷开发与 ...
- 20145326蔡馨熠 实验三 敏捷开发与XP实践
20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 一.实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 1.git上传代码 首先我通 ...
- 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...
最新文章
- 如何用mysql运行程序_如何在MySQL工作台中创建和执行程序
- GNU:GCC -O 优化等级
- iOS阶段学习第31天笔记(UINavigationBar介绍)
- PGIS 天地图主题颜色背景修改 图片 filter 蓝色 HTML CSS IMG filter 颜色矩阵在线计算 RGBA转换 SVG feColorMatrix
- obj[key].obj['key'],obj.key的区别
- 含有ex的linux自动化工具,增加Linux自动化(RH294)和红帽认证工程师考试(EX294),附介绍...
- 三星android 8.0 流畅,三星Galaxy S8使用安卓Android 8.0:更顺滑更流畅
- 学会Zynq(11)RAW API的TCP和UDP编程
- 华为ENSP模拟器简易路由交换机分段划分Vlan
- 身份证里提取出生年月的方法(实用)
- 欺骗的艺术----(9)
- UnityGUI简介
- Ubuntu安装Anaconda详细步骤(Ubuntu21.10,Anaconda3)
- 基于FPGA数字示波器的显示
- 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 结构化数据丨Python爬虫基础入门系列(7)
- ioi2016aliens
- 超低噪声放大器DN-AP06
- 【机器学习】贝叶斯分类器【下】
- Spring事务与事务传播机制
热门文章
- poi 操作word文档,poi 向word插入图片,poi 向word入表格,XWPFParagraph 分段,XWPFDocument单元格合并,XWPFDocument 操作word
- 网络安全——病毒详解以及批处理01(自启动,修改密码 定时关机,蓝屏,进程关闭)
- 有趣且有意义的数字,你想到了什么?请不吝留言
- Android 仿照美团城市选择,微信小程序仿美团城市选择
- 结合分析和数值技术 Python 在基本力学应用
- am335x linux 的uboot工作流程.doc,am335x uboot2016.05 (MLO u-boot.img)执行流程(转)
- java中英文字幕和_为了边看美剧边学英语,我写了个字幕处理脚本
- Python 数据分析之 Numpy (三)
- Imbalance data——数据不平衡问题
- 计算机管理信息阶段性测验答案,管理信息系统阶段性学习测验一试题及答案(14页)-原创力文档...