20155306 實驗三 敏捷開發與XP實踐

20155306 實驗三 敏捷開發與XP實踐

實驗內容

  1. XP基礎git

  2. XP核心實踐程序員

  3. 相關工具編程

實驗要求

1.沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程安全

2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導網絡

3.嚴禁抄襲,有該行爲者實驗成績歸零,並附加其餘懲罰措施。app

實驗步驟

(一)敏捷開發與XP

  • 軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護上的過程。軟件工程包括下列領域:軟件需求分析、軟件設計、軟件構建、軟件測試和軟件維護。
  • 人們在開發、運營、維護軟件的過程當中有不少技術、作法、習慣和思想體系。軟件工程把這些相關的技術和過程統一到一個體系中,叫「軟件開發流程」。軟件開發流程的目的是爲了提升軟件開發、運營、維護的效率,並提升軟件的質量、用戶滿意度、可靠性和軟件的可維護性。
  • 咱們關注其中的編碼標準,結對編程,代碼集體全部,測試,重構等實踐。編輯器

    (二)編碼標準

    Java中的通常的命名規則有:工具

  • 要體現各自的含義性能

  • 包、類、變量用名詞單元測試

  • 方法名用動賓

  • 包名所有小寫,如:io,awt

  • 類名第一個字母要大寫,如:HelloWorldApp

  • 變量名第一個字母要小寫,如:userName

  • 方法名第一個字母要小寫:setName

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的Code->Reformate Code功能:

(三)結對編程

  • 結對編程是XP中的重要實踐。在結對編程模式下,一對程序員肩並肩、平等地、互補地進行開發工做。他們並排坐在一臺電腦前,面對同一個顯示器,使用同一個鍵盤、同一個鼠標一塊兒工做。他們一塊兒分析,一塊兒設計,一塊兒寫測試用例,一塊兒編碼,一塊兒作單元測試,一塊兒作集成測試,一塊兒寫文檔等。

  • 具體實驗內容:在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例,測試成功後git add .; git commit -m "本身學號 添加內容";git push;
    提交搭檔項目git log的截圖,包含上面git commit的信息,並加上本身的學號水印信息。

(四)版本控制

XP的集體全部制意味着每一個人都對全部的代碼負責;這一點,反過來又意味着每一個人均可以更改代碼的任意部分。結對編程對這一實踐貢獻良多:藉由在不一樣的結對中工做,全部的程序員都能看到徹底的代碼。集體全部制的一個主要優點是提高了開發程序的速度,由於一旦代碼中出現錯誤,任何程序員都能修正它。
這意味着代碼要放到一個你們都能方便獲取的地方,咱們叫代碼倉庫。這引出另一個話題叫版本控制(Version Control)。

(五)重構

重構的概念:

重構(Refactor),就是在不改變軟件外部行爲的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變動。

重構中一個很是關鍵的前提就是「不改變軟件外部行爲」,它保證了咱們在重構原有系統的同時,不會爲原系統帶來新的BUG,以確保重構的安全。如何保證不改變軟件外部行爲?重構後的代碼要能經過單元測試。

與搭檔以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。下圖爲成果截圖:

重構的好處:

  • 增長新功能;

  • 原有功能有BUG;

  • 改善原有程序的結構;

  • 優化原有系統的性能 。

一個完整的重構流程包括:

  • 從版本控制系統代碼庫中Check out code

  • 讀懂代碼(包括測試代碼)

  • 發現bad smell

  • Refactoring

  • 運行全部的Unit Tests

  • 往代碼庫中Check in code

(六)實踐項目

1.以結對編程的方式編寫一個軟件,Blog中要給出結對同窗的Blog網址,能夠拍照展示結對編程狀況,能夠參考一下其餘學校的做業

2.記錄TDD和重構的過程,測試代碼不要少於業務代碼,Eclipse中refactor菜單下的重構技能不要少於5個

3.團隊代碼要使用git在實驗樓中託管,要使用結對同窗中的一個同窗的帳號託管。

4.程序要有GUI界面,參考用戶界面和用戶體驗

5.程序功能從豌豆莢遊戲中選擇一款用Java實現,注意:團隊之間項目不能有重複,課表明協調一下。

6.實驗報告中統計本身的PSP(Personal Software Process)時間

步驟 耗時 百分比
需求分析 20min 7.6%
設計 60min 23.0%
代碼實現 120min 41.2%
測試 40min 15.4%
分析總結 60min 23.0%
相關文章
相關標籤/搜索