20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
实验内容
检查点1:
- 安装alibaba 插件,解决代码中的规范问题
- 首先把搭档加入到自己的项目中:
- 然后利用alibaba插件,将所给代码修改格式:
- 首先把搭档加入到自己的项目中:
检查点2:
- 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,左侧是将搭档代码clone后的显示:
- 下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例
在搭档代码中添加了c4,c5,c6,并将其假如到代码测试中。
检查点3:
- 完成重构内容的练习,下载搭档的代码,至少进行三项重构:我对文件名字进行了重构;由于alibaba的插件对格式要求严格,所以在if后添加大括号;还有添加了最后一个else用来除了其他情况:
检查点4:
- 完成一个java密码学的代码,并进行重构,添加了异常类:
Skey_DES.java
import java.io.*;
import javax.crypto.*;
public class Skey_DES{
public static void main(String args[])throws Exception{KeyGenerator kg=KeyGenerator.getInstance("DES");kg.init(56);SecretKey k=kg.generateKey( );FileOutputStream f=new FileOutputStream("key1.dat");ObjectOutputStream b=new ObjectOutputStream(f);b.writeObject(k);}
}
Skey_kb.java
import java.io.*;import java.security.*;
public class Skey_kb{
public static void main(String args[]) throws Exception{try {FileInputStream f = new FileInputStream("key1.dat");ObjectInputStream b = new ObjectInputStream(f);Key k = (Key) b.readObject();byte[] kb = k.getEncoded();FileOutputStream f2 = new FileOutputStream("keykb1.dat");f2.write(kb);// 打印密钥编码中的内容for(int i=0;i<kb.length;i++){System.out.print(kb[i]+",");}}catch (Exception e) {System.out.println(e.toString());e.printStackTrace();}}
}
SEnc.java
import java.io.*;
import java.security.*;
import javax.crypto.*;
public class SEnc{
public static void main(String[] args) throws Exception{try{String s="Hello World!";FileInputStream f=new FileInputStream("key1.dat");ObjectInputStream b=new ObjectInputStream(f);Key k=(Key)b.readObject( );Cipher cp=Cipher.getInstance("DES");cp.init(Cipher.ENCRYPT_MODE, k);byte ptext[]=s.getBytes("UTF8");for(int i=0;i<ptext.length;i++){System.out.print(ptext[i]+",");}System.out.println("");byte ctext[]=cp.doFinal(ptext);for(int i=0;i<ctext.length;i++){System.out.print(ctext[i] +",");}FileOutputStream f2=new FileOutputStream("SEnc.dat");f2.write(ctext);
}
catch (Exception e) {System.out.println(e.toString());e.printStackTrace();}}
}
SDer.java
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class SDec {public static void main(String[] args) throws Exception {// 获取密文try {FileInputStream f = new FileInputStream("SEnc.dat");int num = f.available();byte[] ctext = new byte[num];f.read(ctext);// 获取密钥FileInputStream f2 = new FileInputStream("keykb1.dat");int num2 = f2.available();byte[] keykb = new byte[num2];f2.read(keykb);SecretKeySpec k = new SecretKeySpec(keykb, "DESede");// 解密Cipher cp = Cipher.getInstance("DESede");cp.init(Cipher.DECRYPT_MODE, k);byte[] ptext = cp.doFinal(ctext);// 显示明文String p = new String(ptext, "UTF8");System.out.println(p);} catch (Exception e) {System.out.println(e.toString());e.printStackTrace();}}
}
学习内容
(一)敏捷开发与XP
- 软件工程:
- 软件工程包括以下领域:
- 软件需求分析
- 软件设计
- 软件构建
- 软件测试
- 软件维护
- 常见开发流程:
- RUP(Rational Unified Process)
- PSP(Personal Software Process )
- TSP(Team Software Process )
- Agile Process
- ……
敏捷开发(Agile Development):是一种以人为核心、迭代、循序渐进的开发方法
- XP软件开发的基石是
XP的活动
,包括:- 编码
- 测试
- 倾听
- 设计
- Java中的一般的命名规则:
- 要体现各自的含义
- 包、类、变量用名词
- 方法名用动宾
- 包名全部小写,如:io,awt
- 类名第一个字母要大写,如:HelloWorldApp
- 变量名第一个字母要小写,如:userName
- 方法名第一个字母要小写:setName
- ...
(二)编码标准
- 编程标准包含:
- 具有说明性的名字
- 清晰的表达式
- 直截了当的控制流
- 可读的代码和注释
- 在追求这些内容时一致地使用某些规则和惯用法的重要性
(三)重构
- 重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。
- 修改软件的四种动机:
- 增加新功能
- 原有功能有BUG
- 改善原有程序的结构
- 优化原有系统的性能
- 修改软件的四种动机:
实验过程中遇到的问题及解决
- 问题:在clone搭档的代码并重构后,run时遇到问题
Cannt start process,the working dirctory
- 解决方法:在File->Project Structure->Module->paths->修改outpath到bin文件夹
(四)实践项目
实验报告中统计自己的PSP(Personal Software Process)时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 10min | 7.7% |
设计 | 30min | 23% |
代码实现 | 50min | 38% |
测试 | 10min | 7.7% |
分析总结 | 30min | 23% |
转载于:https://www.cnblogs.com/mushroomissmart/p/8960853.html
20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践相关推荐
- 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告
实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...
- 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践
20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...
- 20145326蔡馨熠 实验三 敏捷开发与XP实践
20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 一.实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 1.git上传代码 首先我通 ...
- 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 实验步骤 实验截图 代码链接 实验三 敏捷开发与 ...
- 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...
最新文章
- c++Primer再学习-练习Todo
- Android Gradle 学习笔记(四):Gradle 构建脚本
- 疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...
- 教程:正确的SLF4J日志记录用法以及如何检查它
- 重启开源,分享无限--微软面试187题精选
- 双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?
- 两图说明 java 开发工具中启动类参数都是干嘛的
- settings.xml的配置
- sqlsever 导入大数据sql文件
- 以太坊上DeFi协议总锁仓量突破190亿美元
- Pure-ftpd无法连接到服务器 425错误
- 从0开始安卓开发之路_Android Studio安装包
- 学术 | 如何写一篇合格的NLP论文
- 删除python读取的txt每一行尾部的\n
- 阶段3 1.Mybatis_03.自定义Mybatis框架_4.自定义mybatis的编码-解析XML的工具类介绍
- 迈高图手机版_迈高图(地图数据下载器)
- ele饿了么表单验证的校验提示突破v-if的限制
- Unity Shader appdata详解
- 必须重启计算机才能关闭用户账户控制,Win10系统怎么彻底关闭用户帐户控制?...
- 计算机专业英语谐音大全,英语单词谐音记忆法汇总整理
热门文章
- 二维数组中最大连通子数组
- 1022. Digital Library
- XML读写演示程序(2)
- onload、DOMContentLoaded、$(document).ready(fn)、$(document).load(fn)
- 牛客网模拟笔试——膨胀的牛牛(JavaScript)
- ES6——变量的解构赋值
- 计算机网络学习笔记(17. 计算机网络作业一)
- html中h标签可包含a标签,HTML中H标签P标签(Paragraph)img标签(image)a标签(anchor)
- python应聘的职位_Python学到哪种程度可以去应聘相关的职位了?
- 股票卖出以后可以立即把钱转出吗?