2018-2019-20175302實驗三《敏捷開發與XP實踐》實驗報告

2018-2019-20175302學號實驗三《敏捷開發與XP實踐》實驗報告

1、實驗步驟及內容

敏捷開發與XP實踐-1

http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEAhtml

參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安裝alibaba插件,解決代碼中的規範問題。git

在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中打開Settings->Plugins->Marketplace,在其搜索框中輸入alibaba並回車,第一個搜索選項是Alibaba Java Code Guidelines插件,點擊Install進行安裝,而後重啓IDE生效
app

重啓後在項目名稱上單擊右鍵,在彈出菜單上選擇編碼規約掃描

有以下提示:(中間調了個背景色)

按照提示修改代碼便可。ide

經實踐,Code菜單中我認爲最實用的功能爲Surround With(生成外結構)與Unwarp/Remove(刪除外結構),方便調整代碼結構。
工具

敏捷開發與XP實踐-2

在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例,測試成功後git add .; git commit -m "本身學號 添加內容"git push;單元測試

提交搭檔項目git log的截圖,包含上面git commit的信息,並加上本身的學號水印信息。學習

實驗步驟:

首先添加倉庫成員。

而後下載搭檔實驗二代碼,加入JUnit單元測試。

而後git push就能夠用git log看到本身的和搭檔的操做了。測試

敏捷開發與XP實踐-3

實驗三 敏捷開發與XP實踐 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEAui

完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上本身的學號水印。提交搭檔的碼雲項目連接。

實驗步驟:

首先下載搭檔的代碼,而後選擇編碼規約掃描,查看應當修改的部分

根據提示進行代碼修改,須要重命名的變量或類名能夠用右擊->Refactor->Rename進行重命名

敏捷開發與XP實踐-4

實驗目的與要求:

參考 http://www.cnblogs.com/rocedu/p/6683948.html,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準
提交學習成果碼雲連接和表明性成果截圖,要有學號水印。

實驗步驟:

獲取密鑰生成器KeyGenerator kg=KeyGenerator.getInstance("DESede");
Java中KeyGenerator類中提供了建立對稱密鑰的方法。KeyGenerator類預約義了一個靜態方法getInstance( ),方法getInstance( )的參數爲字符串類型,指定加密算法的名稱。
初始化密鑰生成器kg.init(168);該步驟通常指定密鑰的長度。咱們寫的是「DESede」,則能夠是112或168位,其中112位有效。
生成密鑰SecretKey k=kg.generateKey( );密鑰可用於之後的加密和解密。
經過對象序列化方式將密鑰保存在文件中

FileOutputStream f=new FileOutputStream("key1.dat");
ObjectOutputStream b=new ObjectOutputStream(f);
b.writeObject(k);

ObjectOutputStream類中提供的writeObject方法能夠將對象序列化,以流的方式進行處理。這裏將文件輸出流做爲參數傳遞給ObjectOutputStream類的構造器,這樣建立好的密鑰將保存在文件key1.data中。
從文件中獲取密鑰

FileInputStream f=new FileInputStream("key1.dat");
ObjectInputStream b=new ObjectInputStream(f);
Key k=(Key)b.readObject( );

建立密碼器

Cipher cp=Cipher.getInstance("DESede");

KeyGenerCipher類是一個工廠類,它不是經過new方法建立對象,而是經過其中預約義的一個靜態方法getInstance( )獲取Cipher對象。getInstance( )方法的參數是一個字符串,該字符串給出Cipher對象應該執行哪些操做。
初始化密碼器
cp.init(Cipher.ENCRYPT_MODE, k);該方法包括兩個參數,第一個參數指定密碼器準備進行加密仍是解密,若傳入Cipher.ENCRYPT_MODE則進入加密模式。第二個參數則傳入加密或解密所使用的密鑰,即第1步從文件中讀取的密鑰對象k。
獲取等待加密的明文

String s="Hello World!";
byte ptext[]=s.getBytes("UTF8");
執行加密
byte ctext[]=cp.doFinal(ptext);
處理加密結果
FileOutputStream f2=new FileOutputStream("SEnc.dat");
f2.write(ctext);

這裏將加密結果保存在文件Senc.dat中。

相關文章
相關標籤/搜索