实验报告封面

  • 课程:Java程序设计 班级:1652班 姓名:王杨鸿永 学号:20165231

  • 指导教师:娄嘉鹏 实验日期:2018年4月28日

  • 实验时间:15:25 - 17:15 实验序号:实验三

  • 实验名称:敏捷开发与XP实践

敏捷开发与XP实践-1

参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。

在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。

public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}

实验步骤:

在IDEA中使用工具Code->Reformate Code将上面的代码格式化后,得到的结果为:



Code栏目中其他功能:



敏捷开发与XP实践-2

在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;

提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。从2001年开始,一些软件界的专家开始倡导“敏捷”的价值观和流程,他们肯定了流行做法的价值,但是强调敏捷的做法更能带来价值。

我们关注其中的编码标准,结对编程,代码集体所有,测试,重构等实践。

搭档Complex代码:

public class Complex{
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;
} public Complex ComplexAdd(Complex c) {
return new Complex(r + c.r, i + c.i);
}
public Complex ComplexSub(Complex c) {
return new Complex(r - c.r, i - c.i);
}
public Complex ComplexMulti(Complex c) {
return new Complex(r * c.r - i * c.i, r * c.i + i * c.r);
}
public Complex ComplexDiv(Complex c) {
return new Complex((r * c.i + i * c.r)/(c.i * c.i + c.r * c.r), (i * c.i + r * c.r)/(c.i * c.i + c.r * c.r));
} public String toString() {
String s = " ";
if (i > 0)
s = r + "+" + i + "i";
if (i == 0)
s = r + "";
if (i < 0)
s = r + " " + i + "i";
return s;
}
}

搭档ComplexTest代码:

import junit.framework.TestCase;
import org.junit.Test; public class ComplexTest extends TestCase {
Complex c1 = new Complex(0, 3);
Complex c2 = new Complex(-1, -1);
Complex c3 = new Complex(2,1);
@Test
public void testgetRealPart() throws Exception {
assertEquals(-1.0, Complex.getRealPart(-1.0));
assertEquals(5.0, Complex.getRealPart(5.0));
assertEquals(0.0, Complex.getRealPart(0.0));
}
@Test
public void testgetImagePart() throws Exception {
assertEquals(-1.0, Complex.getImagePart(-1.0));
assertEquals(5.0, Complex.getImagePart(5.0));
assertEquals(0.0, Complex.getImagePart(0.0));
}
@Test
public void testComplexAdd() throws Exception {
assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString());
assertEquals("2.0+4.0i", c1.ComplexAdd(c3).toString()); }
@Test
public void testComplexSub() throws Exception {
assertEquals("1.0+4.0i", c1.ComplexSub(c2).toString());
assertEquals("-2.0+2.0i", c1.ComplexSub(c3).toString());
assertEquals("-3.0 -2.0i", c2.ComplexSub(c3).toString());
}
@Test
public void testComplexMulti() throws Exception {
assertEquals("3.0 -3.0i", c1.ComplexMulti(c2).toString());
assertEquals("-3.0+6.0i", c1.ComplexMulti(c3).toString());
assertEquals("-1.0 -3.0i", c2.ComplexMulti(c3).toString());
}
@Test
public void testComplexComplexDiv() throws Exception {
assertEquals("-1.5 -1.5i", c1.ComplexDiv(c2).toString());
assertEquals("1.2+0.6i", c1.ComplexDiv(c3).toString());
assertEquals("-0.6 -0.6i", c2.ComplexDiv(c3).toString());
}
}

添加测试用例测试:

git log

码云上显示:

敏捷开发与XP实践-3

http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA

完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

重构就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

重构目标
  • 改进软件设计使软件更容易被理解
  • 帮你找到bug
  • 提高软件的开发速度
重构时机
  • 在添加新功能时进行重构。
  • 在修改bug时进行重构。
  • 在代码复审时进行重构。
  • 到了最后的交付期限,不进行重构

    搭档重构后代码:(原代码忘记截图已经被修改替换掉了)

Refactor栏目翻译:

搭档码云链接

敏捷开发与XP实践-4

参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。

提交学习成果码云链接和代表性成果截图,要有学号水印。

我们遇到的安全问题可以归结为安全的三个属性(CIA金三角):

  • 机密性(Confidentiality):确保数据仅能被合法的用户访问, 即数据不能被未授权的第三方使用。
  • 完整性(Integrity):主要确保数据只能由授权方或以授权的方式进行修改,即数据在传输过程中不能被未授权方修改。
  • 可用性(Availability):主要确保所有数据仅在适当的时候可以由授权方访问。

Java安全体系结构总共分为4个部分:

  • JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。
  • JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中
  • JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
  • JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功能。

学习老师的凯撒密码后根据老师提供的代码:

public static void main(String args[]) throws Exception{
String s=args[0];
int key=Integer.parseInt(args[1]);
String es="";
for(int i=0;i<s.length( );i++)
{ char c=s.charAt(i);
if(c>='a' && c<='z') // 是小写字母
{ c+=key%26; //移动key%26位
if(c<'a') c+=26; //向左超界
if(c>'z') c-=26; //向右超界
}
else if(c>='A' && c<='Z') // 是大写字母
{ c+=key%26;
if(c<'A') c+=26;
if(c>'Z') c-=26;
}
es+=c;
}
System.out.println(es);
}

在此基础上,我们对该代码进行了修改结合重构,最后得到的代码为:



实验结果:

码云代码链接

实验心得与体会

这次实验难度比较大的是最后一个密码学实验,由于java和密码学都是新学的内容,理解还不够,只能改改简单的凯撒密码。在后续会渐渐使用java语言编写密码学等其他科目的实验。

2017-2018-2 20165231 实验三 敏捷开发与XP实践的更多相关文章

  1. 20162311 实验三 敏捷开发与XP实践 实验报告

    20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...

  2. 20165223 实验三 敏捷开发与XP实践

    目录 一.实验报告封面 二.具体实验内容 (一)敏捷开发与XP实践-1 代码规范格式化 (二)敏捷开发与XP实践-2 添加搭档项目 (三)敏捷开发与XP实践-3 搭档代码重构 (四)敏捷开发与XP实践 ...

  3. 20165323 实验三 敏捷开发与XP实践

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:杨金川 学号:20165323 指导教师:娄嘉鹏 实验日期:2018年4月28日 实验时间:13:45 - 15:25 实验序号:实验 ...

  4. 20165235 实验三 敏捷开发与XP实践

    20165235 实验三 敏捷开发与XP实践 主目录: 姓名:祁瑛 学号:20165235 班级:1652 实验课程:JAVA程序设计 实验名称:Java面向对象程序设计 实验时间:2018.4.30 ...

  5. 20165220 实验三 敏捷开发与XP实践 实验报告

    实验三 敏捷开发与XP实践-1 实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA ...

  6. 20172328《程序设计与数据结构》实验三 敏捷开发与XP实践报告

    20172328<程序设计与数据结构>实验三 敏捷开发与XP实践报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志强 ...

  7. 20165336 实验三 敏捷开发与XP实践

    20165336 实验三 敏捷开发与XP实践 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年4月28日 实验时 ...

  8. 20165215 实验三 敏捷开发与XP实践

    20165215 实验三 敏捷开发与XP实践 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教师:娄嘉鹏 实验日期:2018年4月28日 实验时 ...

  9. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

随机推荐

  1. C# 正则表达式中的顺序环视和逆序环视

    环视结构不匹配任何字符,只匹配文本中的特定位置. 顺序环视:从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息.顺序环视使用「 (?=...) 来标识」,例如「 (?=\d) 」,它表 ...

  2. jenkins配置小结

    启动jenkins:javaw -jar -Dhudson.model.DirectoryBrowserSupport.CSP= jenkins.war --httpPort=8001 wget  h ...

  3. 2017-12-18python全栈9期第三天第二节之str常用操作方法及for循环之判断字母数字组成

    #!/user/bin/python# -*- coding:utf-8 -*-name = 'zd123'print(name.isalnum()) #由数字或字母组成print(name.isal ...

  4. 2017-12-15python全栈9期第二天第五节之while else的用法一当被break打断时else内容的结果不会被打印

    #!/user/bin/python# -*- coding:utf-8 -*-count = 0while count <5 : count += 1 if count == 3 : brea ...

  5. 2017-12-14python全栈9期第一天第三节之python历史

    python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  6. Openldap命令详解

    Openldap 客户端常用管理命令 1.ldapadd -x: 简答认证方式 -W: 不需要在命令上写密码 ldapapp -x -D "cn=Manager,dc=suixingpay, ...

  7. 记录一次php连接mssql的配置

    记录一次php连接mssql的配置 在现有php环境中,php连接mssql数据库失败,tsql 连接正常. 确认问题在php环境上. 网上有个同仁总结的很好,https://blog.csdn.ne ...

  8. Hbase运维手册(1)

    1. region情况 需要检查 1. region的数量(总数和每台regionserver上的region数) 2. region的大小 如果发现异常可以通过手动merge region和手动分配 ...

  9. VirtualBox虚拟机中安装XP系统

    Windows XP是一款经典的操作系统,同时也是一款很老的操作系统,不过尽管如此,还是有一批用户在使用XP系统,所以发行一些软件的时候还是要测试在XP系统中能否运行,这时候我们就可以借助Virtua ...

  10. Redis之路

    前言:数据库是一切数据的源头,因此我们没有逃避的理由 (一) 什么是redis? redis是nosql(not noly sql)产品中最为出色的一种非关系型的数据库,主要包括以下几种存储结构:St ...