20145209 實驗三 《敏捷開發與XP實踐》 實驗報告


20145209 實驗三 《敏捷開發與XP實踐》 實驗報告

實驗內容

XP基礎。

XP核心實踐。

相關工具。

實驗步驟

敏捷開發與XP

1.敏捷開發

敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。“敏捷流程”是一系列價值觀和方法論的集合。

2.極限編程

極限編程(eXtreme Programming,XP)是 是一種全新而快捷的軟件開發方法:

(1)XP是以開發符合客戶需要的軟件為目標而產生的一種方法論

(2)XP是一種以實踐為基礎的軟件工程過程和思想

(3)XP認為代碼質量的重要程度超出人們一般所認為的程度

(4)XP特別適合於小型的有責任心的、自覺自勵的團隊開發需求不確定或者迅速變化的軟件

3.XP准則:

(1)溝通 :XP認為項目成員之間的溝通是項目成功的關鍵,並把溝通看作項目中間協調與合作的主要推動因素。

(2)簡單 :XP假定未來不能可靠地預測,在現在考慮它從經濟上是不明智的,所以不應該過多考慮未來的問題而是應該集中力量解決燃眉之急。

(3)反饋 :XP認為系統本身及其代碼是報告系統開發進度和狀態的可靠依據。系統開發狀態的反饋可以作為一種確定系統開發進度和決定系統下一步開發方向的手段。

(4)勇氣:代表了XP認為人是軟件開發中最重要的一個方面的觀點。在一個軟件產品的開發中人的參與貫穿其整個生命周期,是人的勇氣來排除困境,讓團隊把局部的最優拋之腦后,達到更重大的目標。表明了XP對“人讓項目取得成功”的基本信任態度。

4.一項實踐在XP環境中成功使用的依據通過XP的法則呈現,包括:快速反饋、假設簡單性、遞增更改、提倡更改、優質工作。

5.XP軟件開發的基石:編碼、測試、傾聽、設計。

6.項目成員用戶成功執行XP活動的技術通過XP實踐來呈現,包括編程、團隊、過程相關的12條實踐,我們關注其中的編碼標准,結對編程,代碼集體所有,測試,重構等實踐。

編碼標准

1.編程標准:

具有說明性的名字、清晰的表達式、直截了當的控制流、可讀的代碼和注釋,以及在追求這些內容時一致地使用某些規則和慣用法的重要性。

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里可以很好地解決這個問題。

結對編程

1.結對編程的角色

(1)駕駛員(Driver)是控制鍵盤輸入的人。

(2)領航員(Navigator)起到領航、提醒的作用。

2.如何更好地實現結對編程

(1)駕駛員:寫設計文檔,進行編碼和單元測試等XP開發流程。

(2)領航員:審閱駕駛員的文檔、駕駛員對編碼等開發流程的執行;考慮單元測試的覆蓋率;思考是否需要和如何重構;幫助駕駛員解決具體的技術問題。

(3)駕駛員和領航員不斷輪換角色,不要連續工作超過一小時,每工作一小時休息15分鍾。領航員要控制時間。

(4)主動參與。任何一個任務都首先是兩個人的責任,也是所有人的責任。

(5)只有水平上的差距,沒有級別上的差異。

版本控制

1.版本控制的好處

(1)版本控制提供項目級的
undo(撤銷)功能:沒有什么事情是終結版本,任何錯誤必須很容易回滾。

(2)版本控制允許多人在同一代碼上工作,只要遵守一定的控制原則就行。

(3)版本控制系統保存了過去所作的修改的歷史記錄。

(4)版本控制系統支持在主線上開發的同時發布多個軟件版本。

(5)版本控制也是項目級的時間機器,你可以選擇任何一個時間, 精確地查看項目在當時的情況。

2.學習如何將代碼提交到代碼庫:

$ cd /home/shiyanlou/Code/shiyanlou_cs212
# 修改代碼文件
# 添加修改文件
$ git add 所有修改的文件
# 提交到環境中本地代碼倉庫
$ git commit -m '本次修改的描述'
# push到git.shiyanlou.com,無需輸入密碼
$ git push

重構

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

eclipse中Refactor

重新命名:Rename

封裝成員變量:Encapsulate Field

抽象方法:Extract Method

重構前:

重構后:


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com