軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護上的過程。軟件工程包括下列領域:軟件需求分析、軟件設計、軟件構建、軟件測試和軟件維護。軟件工程一般是開發流程與開發工具的組合,而敏捷和極限編程就是開發方法的一部分。
敏捷開發java
在這一步驟中咱們主要須要安裝阿里的格式插件並使用插件以及IDEA中的Code工具對代碼進行規範並格式化。
一、在IDEA中安裝Alibaba Java Code Guide lines
並重啓IDEA。
二、打開一個項目用於代碼規範,這裏我使用的是之前測試數據庫鏈接的MessageDAODemo
等類。
三、右鍵點擊src,選擇編碼規約掃描
便可在下面的窗口中查看是否符合規範,如不符合能夠查看不符合的具體位置以及相應問題。
四、找到定位到的行,根據中文提示將問題解決,這裏的MessageDAO
因爲特殊狀況能夠不使用駝峯規則。
五、新建一個CodeStandard
類,並使用IDEA中的Code->Reformate Code
對代碼進行格式化,在Code
工具中還能夠進行插入、重寫方法以及添加註釋等一系列格式化的操做。
git
結對編程在作「小學四則運算題目」這一項目時已經體會過了。在結對編程模式下,一對程序員肩並肩、平等地、互補地進行開發工做,兩人分別充當駕駛員以及領航員的角色。而代碼集體全部咱們是經過git實現的,經過git咱們不只可讓全部人項目參與人都能修改代碼,還能夠對舊版本進行修改,並在新版本出問題時及時找到能實現部分功能的舊版本。實驗二中咱們已經對測試驅動的程序開發有所瞭解,在本次實驗中須要使用junit添加單元測試用例,並對之前的代碼進行測試。
一、在碼雲中的倉庫界面中點擊管理->添加管理員
,並將連接發送給搭檔,將搭檔添加爲管理員,搭檔也須要按一樣的操做將我添加爲管理員。
二、成爲搭檔倉庫的管理員後,在搭檔的倉庫中添加公鑰,並將搭檔的倉庫克隆。
三、找到Complex
代碼,在倉庫中新建一個文件夾並添加Complex
代碼以及本身的測試類ComplexTest
。
四、使用junit進行測試,編寫測試用例,直到全部實際值都與預期值相符,具體步驟請見實驗二的報告。
五、將添加內容經過git上傳到搭檔的倉庫中,並使用git log
命令查看上傳記錄。
程序員
refactor
菜單對代碼進行重構重構,就是在不改變軟件外部行爲的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變動。而IDEA的重構菜單能使咱們的修改更加便捷。
一、這裏我選用的是搭檔的Complex
類,按照上一部分的過程對代碼進行規約掃描,發現有變量的命名不符合駝峯規則,因而使用refactor
菜單中的rename
選項變量進行批量的改變名字。
二、還存在有類沒有添加建立者的信息,點擊圖示位置,在窗口的右側能夠一鍵添加建立者的信息。
三、窗口顯示還須要使用javadoc規範,因而在所需更改行將註釋改成/**內容**/格式
。
算法
使用Java的JCE能夠很方便的實現加密和解密,在本次實驗中咱們使用Java來實現使用凱撒密碼、對稱密碼、非對稱密碼對字符串進行加密,以及使用密鑰協定建立密鑰並使用Java計算指定字符串的消息摘要。
一、凱撒密碼數據庫
二、對稱密碼-DES算法
(一)加密編程
三、非對稱密碼-RSA算法
RSA算法是使用整數進行加密運算的,在RSA公鑰中包含了兩個信息:公鑰對應的整數e和用於取模的整數n。對於明文數字m,計算密文的公式是:me mod n
。在RSA私鑰中包含了兩個信息:私鑰對應的整數d和用於取模的整數n。其中的n和加密時的n徹底相同。對於密文數字c,計算明文的公式是:cd mod n
。數組
(一)生成雙鑰ide
四、使用密鑰協定建立共享密鑰
密鑰協定能夠用來交換對稱密鑰,執行密鑰協定的標準算法是DH算法,經過共享密鑰能夠實現祕密傳送大量數據。工具
五、Java摘要算法單元測試
/**註釋*/
的內容。java.lang.ArrayIndexOutOfBoundsException
的錯誤。本次實驗的部份內容好比結對、git的使用、測試已經在前面練習過了,所以沒有遇到太大的問題,而重構和編碼標準使我使我知道如何寫出跟易讀的代碼,並對不合格代碼進行更高效的檢測和修改。而Java與密碼學部分使我有更簡單快捷的方法實現各類密碼算法,Java的各類API十分的便捷,能夠節省不少編寫算法的時間。 附上PSP時間: | 步驟 | 耗時 | 百分比 | | -- | -- | -- | | 需求分析 | 20 | 16% | | 設計 | 15 | 12% | | 代碼實現 | 35 | 28% | | 測試 | 45 | 36% | | 分析總結 | 10 | 8% |