2017-2018-2 20165209 实验三《敏捷开发与XP实践》实验报告

2017-2018-2 20165209 实验三《敏捷开发与XP实践》实验报告

实验报告封面

    北京电子科技学院(BESTI)
    实     验    报     告
课程:Java程序设计 班级:1652      姓名:陈思兵   学号:20165209
成绩:             指导教师:娄嘉鹏     实验日期:2018年4月28日
实验密级:         预习程度:          实验时间:13:45 - 3:25 
仪器组次:          必修/选修:必修  实验序号:实验三
实验名称: 敏捷开发与XP实践
实验目的:     
1. 初步解决代码中的规范问题
2. 使用单元测试
3. 掌握重构的意义
4. 完成Java密码学相关内容的学习
实验与要求:
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
3.严禁抄袭。

实验内容及步骤

(一)安装alibaba 插件,解决代码中的规范问题。在IDEA中使用工具(Code->Reformate Code)格式化代码,研究一下Code菜单,比较功能。

编程标准使代码更容易阅读和理解,甚至可以保证其中的错误更少。编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。

  • Java中的一般的命名规则有:
    1.要体现各自的含义
    2.包、类、变量用名词
    3.方法名用动宾
    4.包名全部小写,如:io,awt
    5.类名第一个字母要大写,如:HelloWorldApp
    6.变量名第一个字母要小写,如:userName
    7.方法名第一个字母要小写:setName

(二)在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例。

  • 在码云对应的项目中点击管理--->项目管理者--->开发者,把搭档添加即可。

  • 单元测试

  • 搭档项目git log

(三)下载搭档的代码,完成重构内容的练习。

重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。

  • 重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。

(四)结合重构,git,代码标准,以结对的方式完成Java密码学相关内容的学习。

  • 设计Enc_RSA(加密)

(1) 获取公钥

(2) 获取公钥的参数(e, n),由于密钥很长,因此对应的整数值非常大,无法使用一般的整型来存储,Java中定义了BigInteger类来存储这类很大的整数并可进行各种运算。

(3) 获取明文整数(m),明文是一个字符串,为了用整数表达这个字符串,先使用字符串的getBytes( )方法将其转换为byte类型数组,使用BigInteger类将这个二进制串转换为整型。

(4) 执行计算

  • 设计Dec_RSA(解密)

(1) 读取密文,由于这一行字符串表示的是一个很大的整型数,因此使用BigInteger类来表示这个整型数。

(2) 获取私钥,由于使用的是RSA算法,因此从文件读取公钥对象后强制转换为RSAPrivateKey类型,以便后面读取RSA算法所需要的参数。

(3) 获取私钥的参数(d, n)

(4) 执行计算

(5) 计算明文整型数对应的字符串,RSA算法解密的结果m是一个很大的整数,为了计算出其对应的字符串的值,先使用BigInteger类的toByteArray( )方法得到代表该整型数的字节数组,然后将数组中每个元素转换为字符,组成字符串。

  • 设计Skey_RSA(创建公钥和私钥)

(1)读取自己的私钥和对方的公钥,从文件中获取密钥。

(2) 创建密钥协定对象

(3) 初始化密钥协定对象

(4) 执行密钥协定

(5) 生成共享信息

步骤 耗时 百分比
需求分析 30min 17%
设计 25min 14%
代码实现 90min 50%
测试 20min 11%
分析总结 15min 8%

猜你喜欢

转载自www.cnblogs.com/tutu233/p/8995366.html