一、实验报告封面

课程:Java程序设计 班级:1652班 姓名:朱文远 学号:20165214

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

实验时间:15:35 - 17:15 实验序号:三

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

实验要求:
1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
2、实验报告中统计自己的PSP(Personal Software Process)时间;
3、掌握使用IDEA完成基础编程与程序调试的能力。

二、实验内容:

  1. XP基础
  2. XP核心实践
  3. 相关工具

三、实验步骤

(一)代码格式化

  • 1、在IDEA中新建一个项目“Exp3”,在该项目下创建“CodeStandard”类,输入用来测试用的代码(格式未调):

  • 2、在IDEA中安装alibaba 插件,安装后右键点击类名,再点击“编码规约扫描”

  • 3、发现代码中不规范的地方:

  • 4、点击Code目录下的Reformate Code,格式化代码:

  • 5、我觉得Code目录下最好用的是Override Methods

里面提供了Java.lang包中的一些类的方法重写,在我们进行方法重写时很方便。

(二)邀请搭档加入码云项目,对搭档的代码进行Junit测试。

  • 1、在我的码云中创建“teamwork”项目,邀请自己的搭档成为“开发者”。

  • 2、引入搭档在实验二中的Complex代码,加入多个Junit测试用例并编译:

出现“绿条”,通过测试。

  • 3、在命令行中使用git语句将代码传到我和搭档新建的共同项目,然后输入git log并截图:

  • 4、我们的码云链接

(三)重构的练习

  • 1、下载一个搭档的代码。我选择的代码:

  • 2、代码中存在的问题与分析
    • 问题一:类名LYK不能体现程序的功能,本程序是计算组合数,我觉得应当改成Combination;
    • 问题二:递归函数名也不能体现出相应的功能,可以改成Caculate;
    • 问题三:缺乏对输入是不合法字符情况的处理。
  • 3、根据以上问题,我对代码进行了如下重构:

  • 4、对修改的代码进行Junit测试:

出现“绿条”,结果正确。

(四)Java密码学算法的学习

  • 1、仔细阅读娄老师的博客Java密码学算法

  • 2、编写一个实现MD5加密的程序并且运行,输入abc,得到如下结果

  • 3、阅读并运行娄老师的DES算法程序并且运行,得到如下结果

  • 4、阅读并运行娄老师的RSA算法程序并且运行,得到如下结果

  • 5、码云链接

  • 6、PSP时间

步骤 耗时 百分比
需求分析 5min 7.7%
设计 20min 30.8%
代码实现 30min 46.2%
测试 10min 15.4%
分析总结 10min 15.4%

四、遇到的问题与解决

  • 问题1:在实验的步骤(三)中,我下载的搭档的代码是需要在命令行输入的,但是运行IDEA时它就直接运行完了,没有让我输入命令行参数。
  • 问题1解决:发现了一个解决办法,在IDEA中的run目录下方有一个Edit Configurations

    里面的Program arguments那一栏就可以定义命令行的参数了~

  • 问题2:在写密码学的算法的过程中,我想使用Console类的对象来使得输入的密码不显示出来,但是不知道为什么,同样的代码,在IDEA中不能运行出来,到了输入密码这一行就报错,而Linux中就可以运行。
  • 问题2解决:现在还没有找到原因。

五、心得体会

这次实验相比上一次实验较为简单一些,不过学到的也是很多的,特别是了解了Java里面强大的关于密码的功能。这与我们的专业紧密地连接到了一起。出于兴趣,我又找到了一篇写关于Java里面关于加盐哈希函数的使用及其扩展(点击这里),看了之后感觉很涨知识,所以分享一下~
之前觉得Java好像与我们的专业没什么关系,经过这次实验后我改变了想法。我发现,Java可以很容易地实现很多密码算法,十分方便。今后可以多学学这块的内容,向我们的专业靠拢~

20165214 实验三 敏捷开发与XP实践的更多相关文章

  1. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  2. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  3. JAVA课程实验报告 实验三 敏捷开发与XP实践

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  4. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"

    20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...

  5. 20145215实验三 敏捷开发与XP实践

    20145215实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软 ...

  6. 20145325张梓靖 实验三 "敏捷开发与XP实践"

    20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...

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

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

  8. 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

  9. 20175314 实验三 敏捷开发与XP实践

    20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...

随机推荐

  1. android -------- 常用依赖库

    //  bannercompile 'com.youth.banner:banner:1.4.9' // recyclecompile 'com.android.support:recyclervie ...

  2. Linux中安装Mysql授权远程访问

    一.直接授权 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OP ...

  3. 《剑指offer》总结一

    目录 1.二维数组中的查找(223ms) 2.替换空格(24ms) 3.从尾到头打印链表(22ms) 4.重建二叉树(37ms) 5.用两个栈实现队列 1.二维数组中的查找(223ms) 题目描述: ...

  4. Spring boot(六)优雅使用mybatis

    orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开 ...

  5. bat语法需要注意的地方

    if else 格式                            if exist C:\Python27  ::空格  (                      ::(与if在同一行  ...

  6. hadoopMR自定义输入类型

    hadoop中的输入输出数据类型: BooleanWritable:标准布尔型数值 ByteWritable:单字节数值 DoubleWritable:双字节数值 FloatWritable:浮点数 ...

  7. NABCD框架(作业和事件的定期提醒)及第八周学习进度条

    NABCD框架(作业和事件的定期提醒): N(need,需求): 你的创意解决了用户的什么需求? 我们的创意能够一定程度上督促我们的用户(学生)尽快完成自己近期的任务或者是作业.我们认为如果增设定时提 ...

  8. leetcode-algorithms-3 Longest Substring Without Repeating Characters

    leetcode-algorithms-3 Longest Substring Without Repeating Characters Given a string, find the length ...

  9. upsource初探

    在JetBrains 的官网上,看到codereview的工具 upsource ,https://www.jetbrains.com/upsource/  官方的英文文档 来看下博客园上有博主简单的 ...

  10. 基本数据类型int,bool,str

    .基本数据类型(int,bool,str) 基本数据数据类型: int 整数 str 字符串. 一般不存放大量的数据 bool 布尔值. 用来判断. True, False list 列表.用来存放大 ...