采用OOAD開發(fā)的方法時的需求不穩(wěn)定,可分析出這不穩(wěn)定的東西是對象。世界都是由對象組成的,而對象都是持久的,例如動物、植物已經(jīng)有相當長的時間。雖然對象也在變化,動物、植物也在不斷進化。但對象在一個相當長的時期內(nèi)都存在,動植物的存在時間肯定比任何一家企業(yè)長久。面向?qū)ο箝_發(fā)方法的精髓是從企業(yè)的不穩(wěn)定需求中分析出企業(yè)的穩(wěn)定對象,以企業(yè)對象為基礎來組織需求、構(gòu)架系統(tǒng)。這樣得出的系統(tǒng)會比傳統(tǒng)的系統(tǒng)要穩(wěn)定得多,因為企業(yè)的模式一旦變化,只需將穩(wěn)定的企業(yè)對象重新組織行了。
在敏捷XP中,采用的是TDD驅(qū)動軟件的設計和編程實踐,即,測試驅(qū)動開
發(fā)。筆者負責過很多項目的敏捷實踐中,更喜歡UDD(Use Case-Driven Development)比較適合目前的國情。它可根據(jù)用戶目標,編寫軟件需求,根據(jù)軟件需求,編寫系統(tǒng)(驗收)測試,即,用戶目標驅(qū)動。利用 UML 對軟件的設計進行建模,這部分建模當然是敏捷的(agile)。簡單的只需幾秒鐘可以迅速在人的大腦中完成,復雜的則可以畫在紙上、白板上,記錄在建模工具生成的電子文檔中,當需求穩(wěn)定后可以迅速轉(zhuǎn)化成軟件應用代碼,在結(jié)合TDD會有很不錯的效果,這種理論體系有些像太極原理,需求的變化看似武術(shù)中的招式,采用UDD見招破招,無招勝有招,這種客戶的需求應變使得UDD更為敏捷。
3.實戰(zhàn)VSTS2010驅(qū)動開發(fā)
在Visual Studio 2010中,敏捷測試驅(qū)動開發(fā)功能非常強大,微軟把Scrum和XP敏捷思想融入到Agile過程框架之中。TFS2010中增強了團隊源碼版本管理、迭代開發(fā)和驅(qū)動測試開發(fā)模型等,從而給微軟.Net開發(fā)人員非常大的幫助。VSTS2010測試馬甲和單元測試過程,如圖3所示。
圖3 VSTS2010單元測試過程
IUT——在生產(chǎn)環(huán)境中終交付而開發(fā)的軟件。
Test Environment——測試環(huán)境。
測試驅(qū)動開發(fā)(TDD)基本過程:
(1)明確當前要完成的功能?梢杂涗洺梢粋初始化測試清單(TODO)列表。
(2)快速完成針對一個功能的測試用例編寫。
(3)測試代碼編譯通過,但測試用例通不過。
(4)編寫對應的功能代碼。
(5)測試通過。
(6)對代碼進行重構(gòu),并保證測試通過。
(7)循環(huán)完成所有功能的開發(fā)。
·圖書收藏實例
確定好backlog,進行sprint backlog,把story拆分成更小的故事,并在把故事拆分成任務,索引卡片參考圖4所示。
圖4 圖書收藏Story索引卡
將案例分成任務,我們需要在很大程度上實現(xiàn)讀者個人借閱圖書的收藏集合。其中之一backlog索引卡,如圖4所示。當讀者到圖書館進行圖書借閱中,會查詢圖書庫所有相關(guān)類圖書封面并選取其中自己需要的幾本書。這個過程叫做“書簽”,圖書系統(tǒng)將通過圖書管理來支持這個活動。為圖書借閱集合初始化測試清單,參考1所示。
表1 為圖書借閱夾初始化測試清單