敏捷模型2

在一個真正的迭代開發環境中,我們不需要把所有的結構和設計問題事先完成。我們通過重構(改善代碼而不影響功能)可以持續地對最初建立的設計進行改造,這是十分重要的。因爲當真正開始編碼後,可能會發現很多實現問題的更好方法。儘管項目的範圍在一開始就定義好了,但隨着迭代的逐漸進行,客戶需求才不斷地被加入其中,而不是在一開始就把一切鎖定下來。[color=red]問題的關鍵在於項目相關的所有人必須積極地交流溝通[/color]。

不需要在一開始對類設計得很具體,可以只在必要時進行。

設計系統時先制定出規範,然後不斷的循環進行測試。

如果你認爲極限編程人員不進行設計和文檔工作的話,我希望能在你看完本章後將此誤解消除,事實並非如此。

[color=red]迭代後的第一天是將用例分割成一個個的任務,這其實也是設計中的一部分,這樣有助於分解模塊並且得到最終的實現點。[/color]

另一個關於XP工作類型的觀點是出於一個資深的軟件架構師,他在一家提供IT解決方案的知名公司工作,並使用XP和AMDD技術在很多項目中取得成功。他說:“在XP項目中還有一種級別的設計,它每天都會進行。這就是重構,它也是一種很重要的設計活動。雖然迭代開始階段的設計很重要,但在代碼寫好後的設計工作使得一個好的設計更加出色。”

[color=red]綜上幾條可以看出,軟件工程其實就是設計加上重構,這樣每一個版本的產品纔會更加的有效。[/color]

CRC用來表示各種類、它們的責任以及合作者。表3.1顯示了一個CRC卡片佈局的範例以及對3個組成部分的描述。雖然圖中顯示的是一個電子版的CRC卡,實際中的CRC卡畫在一個3×5英寸大小的卡片上,如果需要的話,可以把它轉換爲類圖。

表3.1 一個簡單的CRC卡片的佈局範例

類名(名詞)

責任(一個類的功能,例如業務方法、異常處理、安全方法、屬性或變量)
合作者(提供實現高級需求的解決方案需要的其他類)


CRC卡是一種非正式的面向對象技術,它可以幫助我們發現類之間的關係。我喜歡使用CRC卡,這樣客戶和開發者可以在非正式的會議上討論對象而不需使用電腦。除此之外,如果需要的話,可以用CRC卡來生成正式的類圖(在本章後面我們將做這個工作)。

表3.2到表3.4是本書後面將要開發的一些類圖的CRC卡的範例,它們實現了時間報表清單頁面的需求。

表3.2 Timesheet類的CRC卡範例

Timesheet

獲得階段的結束時間

獲得輸入的時間

獲得部門代碼


表3.3 TimesheetManager類的CRC卡的範例

TimesheetManager

從數據庫中獲得時間報表

將時間報表存入數據庫中
Timesheet


表3.4 TimesheetListController類的CRC卡的範例

TimesheetListController

(在MVC中)控制時間報表清單的顯示
TimesheetManager


我們已經瞭解了一些CRC卡的基礎知識。具備了這些知識,我們就知道接下來該做什麼了。

[color=red]CRC卡片使用[/color]


[color=red]敏捷開發者應該在數據建模、對象建模、重構、映射、實現和性能調整等問題上反覆迭代[/color]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章