在迭代開發(fā)中,我們并非一次就實現(xiàn)所有需求。
在多個迭代里對同一用例進行增量式開發(fā)。
細化階段:構(gòu)建核心架構(gòu),解決高風(fēng)險元素,定義大部分需求,以及預(yù)計總體進度和資源。(包括了三到四次的細化迭代)
關(guān)鍵思想和最佳實踐:
實行短時間定量、風(fēng)險驅(qū)動的迭代
及早開始編程
對架構(gòu)的核心和風(fēng)險部分進行適應(yīng)性設(shè)計、實現(xiàn)和測試
盡早、頻繁、實際的測試
基于來自測試、用戶、開發(fā)者的反饋進行調(diào)整
通過一系列討論會,詳細編寫大部分用例和其他需求,每個細化迭代進行一次
制品:領(lǐng)域模型、設(shè)計模型、軟件架構(gòu)文檔、數(shù)據(jù)模型、用例、用戶界面原型。
領(lǐng)域模型
領(lǐng)域模型是對領(lǐng)域內(nèi)的概念類或現(xiàn)實世界中對象的可視化表示。
應(yīng)用UML表示法,領(lǐng)域模型被描述為一組沒有定義操作的類圖,反映屬性和關(guān)聯(lián)。(一定注意,它不是軟件對象!是概念對象!)
準則:
使用領(lǐng)域術(shù)語
認真汲取領(lǐng)域?qū)<宜褂玫暮诵脑~匯和概念
如果某概念類不是現(xiàn)實世界中的數(shù)字或文本,那么她可能是概念類而不是屬性
需要描述類:1、需要有關(guān)商品或服務(wù)的描述,獨立于任何商品或服務(wù)的現(xiàn)有實例;2、減少冗余或重復(fù)信 息
避免加入大量關(guān)聯(lián),添加關(guān)聯(lián)是為了突出對重要關(guān)系的大致理解,而非記錄對象或數(shù)據(jù)的結(jié)構(gòu)
通過關(guān)聯(lián)而不是屬性來表示概念類之間的關(guān)系,領(lǐng)域模型中屬性的類型應(yīng)該是數(shù)據(jù)類型(基本類型)
對數(shù)量和單位建模
每次迭代的領(lǐng)域建模不超過幾個小時。
系統(tǒng)順序圖
系統(tǒng)順序圖(SSD)是為闡述與所討論系統(tǒng)相關(guān)的輸入和輸出事件而快速、簡單地創(chuàng)建的制品。是操作契約和對象設(shè)計的輸入。
SSD展示了直接與系統(tǒng)交互的外部參與者、系統(tǒng)(作為黑盒)以及由參與者發(fā)起的系統(tǒng)事件。這些事件是通過用例文本總結(jié)出來的。
應(yīng)為每一個用例的主成功場景,以及頻繁發(fā)生的或者復(fù)雜的替代場景繪制SSD。
基本上軟件系統(tǒng)要對三種事件進行響應(yīng):來自于參與者的外部事件,時間事件,錯誤和異常(通常源于外部)。
系統(tǒng)事件應(yīng)該在意圖的抽象級別而非物理的輸入設(shè)備級別來表達。
操作契約
操作契約使用前置和后置條件的形式,描述領(lǐng)域模型里對象的詳細變化。其中的關(guān)鍵元素是后置條件。
為系統(tǒng)操作定義操作契約。系統(tǒng)操作在繪制SSD草圖時確定。
后置條件描述了領(lǐng)域模型內(nèi)對象狀態(tài)的變化。可分為三種類型:創(chuàng)建或刪除實例,屬性值的變化,形成和消除關(guān)聯(lián)。注意,它描述的是所需的變化,而不是這些變化是如何完成的。以說明性的、被動式的過去時態(tài)編寫后置條件。(例如,創(chuàng)建了xx,而不是創(chuàng)建xx)
邏輯架構(gòu)和UML包圖
邏輯架構(gòu)是軟件類的宏觀組織結(jié)構(gòu),它將軟件類組織為包(或命名空間)、子系統(tǒng)和層等。
UML包圖常用于描述系統(tǒng)的邏輯架構(gòu)--層、子系統(tǒng)、包等。
將系統(tǒng)的大型邏輯結(jié)構(gòu)組織為獨立的、職責(zé)相關(guān)的離散層,具有清晰、內(nèi)聚的關(guān)注分離。
協(xié)作和耦合是從較高層到較低層進行的,要避免從較低層到較高層的耦合。較低層包含可復(fù)用功能。
可以將應(yīng)用邏輯層更準確地稱為架構(gòu)的領(lǐng)域?qū)樱窗I(lǐng)域?qū)ο螅ㄗ⒁忸I(lǐng)域模型與領(lǐng)域?qū)ο笫遣煌膬蓚€概念),處理應(yīng)用邏輯的層。
領(lǐng)域?qū)邮擒浖囊徊糠郑I(lǐng)域模型是概念角度分析的一部分。
從UI層發(fā)送到領(lǐng)域?qū)拥南⑹荢SD中所描述的消息。
輕量級繪圖然后編碼。
http://www.tkk7.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請注明出處:)
posted on 2007-09-03 17:50
ronghao 閱讀(2131)
評論(1) 編輯 收藏 所屬分類:
OOA/OOD