一、实验报告封面

课程: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. 报错 hint: Updates were rejected because the remote contains work that you do 解决方法

    1. git pull origin master --allow-unrelated-histories 2.git pull origin master 3.git init 4.git remo ...

  2. Watto and Mechanism CodeForces - 514C (字典树,哈希)

    大意: 给定字符串集$S$, 每次询问给出字符串$a$, 求$S$中是否存在一个字符串恰好与$a$相差一个字符. 直接建字典树暴力复杂度是$O(n\sqrt{n})$, 也可以用set维护所有哈希值, ...

  3. 第二阶段——个人工作总结DAY10

    1.昨天做了什么:昨天其实什么也没实现. 2.今天打算做什么:今天就软件,等到审核过了,再看看软件最后后台是怎么实现的. 3.遇到的困难:后台自己都没有实现.

  4. ansible管理windows (发送文件)

    https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 环境: 服务 ...

  5. 时间选择控件YearPicker(基于React,antd)

    不知道为什么蚂蚁金服团队没有在ant design的DatePicker中单独给出选择年份的组件,这给我们这种懒人造成了很大的痛苦,自己手造轮子是很麻烦的.毕竟只是一个伸手党,emmmmm..... ...

  6. Leetcode 1002. 查找常用字符

    1002. 查找常用字符  显示英文描述 我的提交返回竞赛   用户通过次数301 用户尝试次数324 通过次数303 提交次数480 题目难度Easy 给定仅有小写字母组成的字符串数组 A,返回列表 ...

  7. 函数使用五:MIR7 发票预制 BAPI_INCOMINGINVOICE_PARK

    引自:http://blog.csdn.net/champaignwolf/article/details/51422329 FUNCTION zincominginvoice_park. *&quo ...

  8. Zabbix监控系统

    前言: 一个初略自动化运维平台,应该实现以下3个层面自动化: 1.操作系统层面自动化 如果想要万台服务器共舞,没有操作系统这个舞台还怎么舞? 1.1:物理环境: OS预备自动安装(Pxe/KickSt ...

  9. python 文件的打开与读取

    python 文件的打开与读取 其实网上其他人写的都挺好的,我也是看他们的.办公室用的2.7.笔记本用的3.6.发现没有file 类,尴尬了 with open(r'C:\Users\HBX\Docu ...

  10. js实现页面与页面之间传值的几种方法优劣

    1. cookie 传值, 缺点: cookie储存是需要服务器支持的,本地直接运行静态文件是实现不了的 <script> //添加 cookie function cp_add_cook ...