第07講類的提取與設(shè)計_第1頁
第07講類的提取與設(shè)計_第2頁
第07講類的提取與設(shè)計_第3頁
第07講類的提取與設(shè)計_第4頁
第07講類的提取與設(shè)計_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、類的提取與設(shè)計2/49回顧&活動圖活動圖主要用于描述某一主要用于描述某一方法、機制方法、機制或或用用例例的的內(nèi)部行為內(nèi)部行為適合描述適合描述多個對象跨越多個用例多個對象跨越多個用例時時的總面貌的總面貌結(jié)構(gòu)模型視圖主要內(nèi)容&設(shè)計過程&類圖&類的定義與表示&靜態(tài)建模類的分析與獲取設(shè)計過程設(shè)計過程的活動&數(shù)據(jù)設(shè)計將實體-關(guān)系圖中描述的對象和關(guān)系,以及數(shù)據(jù)詞典中描述的詳細數(shù)據(jù)內(nèi)容轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)定義。&體系結(jié)構(gòu)設(shè)計定義軟件系統(tǒng)各主要成分之間的關(guān)系。&接口設(shè)計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各成分之間、軟件與其他協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機制。&過程設(shè)計則是把結(jié)構(gòu)成分轉(zhuǎn)換軟件的過程性描述。在編碼階段,根據(jù)

2、這種過程性描述,生成源程序代碼,然后通過測試得到完整有效的軟件。設(shè)計過程設(shè)計活動為最終系統(tǒng)設(shè)計的組件類圖示例類圖&類圖描述的是對象之間的結(jié)構(gòu)靜態(tài)關(guān)系,用于軟件系統(tǒng)的靜態(tài)建模。&類圖是顯示一組類、接口、協(xié)作以及它們之間關(guān)系的圖。用于對系統(tǒng)靜態(tài)設(shè)計視圖建模。&類圖通常包含下述內(nèi)容:類接口協(xié)作關(guān)聯(lián)關(guān)系依賴泛化類圖&類很少單獨存在。&當(dāng)建造模型時,通常要注重于相互作用的那些類群(類簇)。&在UML中,這些類的群體形成了協(xié)作,并且通常在類圖中被可視化。 &類的群體協(xié)作主要通過類之間的各種關(guān)系來表達。類( Class )的定義1&類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心&對象表示被建模的應(yīng)用領(lǐng)域中的離散概念物理實體

3、&飛機、商業(yè)事物(如一份訂單)、邏輯事物(如廣播計劃)、應(yīng)用事物(如取消鍵)、計算機領(lǐng)域的事物(如哈希表)或行為事物(如一項任務(wù))類( Class )的定義2&類是有著相同結(jié)構(gòu)、行為和關(guān)系的類是有著相同結(jié)構(gòu)、行為和關(guān)系的一組對象的描述符號一組對象的描述符號&類定義了一組有著狀態(tài)和行為的對類定義了一組有著狀態(tài)和行為的對象。屬性和關(guān)聯(lián)用來描述狀態(tài)。個象。屬性和關(guān)聯(lián)用來描述狀態(tài)。個體行為由操作來描述,方法是操作體行為由操作來描述,方法是操作的實現(xiàn)的實現(xiàn)類( Class )的定義3&所有的屬性與操作都被附在類或其所有的屬性與操作都被附在類或其他類元上他類元上&對象的生命期由附加給類的狀態(tài)機對象的生命期

4、由附加給類的狀態(tài)機來描述來描述&類的表示法是一個矩形,帶有類名、類的表示法是一個矩形,帶有類名、屬性和操作的分格框組成屬性和操作的分格框組成類( Class )的定義4&一個類從它的雙親和祖先那里繼承一個類從它的雙親和祖先那里繼承狀態(tài)和行為描述,并且定義它的后狀態(tài)和行為描述,并且定義它的后代所繼承的狀態(tài)和行為描述代所繼承的狀態(tài)和行為描述&含義分層含義分層-類可以存在于模型的幾類可以存在于模型的幾種含義層中種含義層中,包括分析層、設(shè)計層,包括分析層、設(shè)計層和實現(xiàn)層和實現(xiàn)層類的名稱&每個類都必須有一個有別于其他類的名稱,類名稱是一個文本串。&單獨的名稱叫做簡單名(simple name);用類所在

5、的包的名稱作為前綴的類名叫做路徑名。&一個包中的各個類的名稱都必須是唯一的 。類的屬性&屬性(attribute)是已被命名的類的特性,它描述了該特性的實例可以取值的范圍。&類可以有任意數(shù)目的屬性,也可以沒有屬性。&屬性描述了正被建模的事物的特性,這些特性為類的所有對象所共有。 &屬性集合(Attributes):屬性集合描述了該對象的屬性的當(dāng)前值。&根據(jù)圖的詳細程度,每條屬性值可以包括屬性名稱、屬性類型和屬性當(dāng)前值。&UML規(guī)定類的屬性的語法為: 屬性名屬性名 :屬性類型:屬性類型 = = 屬性值屬性值屬性集合類的操作&操作(operation)是一個服務(wù)的實現(xiàn),該服務(wù)可以由類的任何對象請求

6、以影響其行為。&操作是你能對一個對象所做的事情的抽象,并且它由這個類的所有對象共享。&一個類可以有任意數(shù)目的操作,也可以沒有操作。 &可以用操作查詢、修改對象屬性的特性。&調(diào)用對象的操作經(jīng)常(不總是)會改變對象的數(shù)據(jù)或狀態(tài)。&操作名可以是像類名那樣的正文。實際上,操作名是描述它所在類的一些特性的動詞或動詞短語。 類的操作&操作用于修改、檢索類的屬性或執(zhí)行某些動作。操作通常也被稱為功能,在軟件開發(fā)的某些階段操作有時也被稱為行為,但是它們被約束在類的內(nèi)部,只能作用到該類的對象上。&操作名、返回類型和參數(shù)表組成操作的接口。&UML規(guī)定操作的語法為: 可見性可見性 操作名操作名 (參數(shù)表)(參數(shù)表)

7、:返回類型返回類型 操作集合類的職責(zé)&職責(zé)(responsibility)是類的契約或責(zé)任。當(dāng)創(chuàng)建一個類時,就聲明了這個類的所有對象具有相同種類的狀態(tài)和相同種類的行為。&在較高的抽象層次上,這些相應(yīng)的屬性和操作正是要完成類的職責(zé)的特征。 類的職責(zé)&對類建模的一個好的開始點是詳述詞匯表中的事物的職責(zé)。&雖然實際上每個結(jié)構(gòu)良好的類都最少有一個職責(zé),最多也是可數(shù)的,但類可以有任何數(shù)目的職責(zé)。&當(dāng)精化模型時,要把這些職責(zé)轉(zhuǎn)換成能很好地完成這些職責(zé)的一組屬性和操作。&職責(zé)是自由形式的文本。&可以把單一的職責(zé)寫成一個短語、一個句子或 (最多)一段短文,寫在 類的描述欄中 。 類的其他特征 &屬性屬性、操作

8、操作和職責(zé)職責(zé)是創(chuàng)建抽象所需要的最常見的特征。&事實上,對于大多數(shù)要建造的模型,這3種特征的基本形式足以傳達類的最重要的語義。&類還有一些高級特征:UML可以對多重性、可見性、特征標(biāo)記、多態(tài)性和其他特性建模。 一個類的簡單表示法類屬性類屬性類的屬性和缺省值類的屬性和缺省值類的操作類的操作可見性構(gòu)造型的使用構(gòu)造型的使用&為每一個屬性和操作集分類,并且為該組提供一個名稱&稱為一個構(gòu)造型&用括起來employeeId : IntegeremployeeName : StringdateOfBirth : DOBsalary : Float = 0department : String.setEmpl

9、oyeeDetails()setSalary(salary : Float).getEmployeeDetails()getSalary() : Float類的職責(zé)類的職責(zé)Responsibilities- maintain the employee details- determine the age of the employee- capable of setting employee details類的分析與提取類的分析與提取&名詞法:搜索用例并找出所有名詞,組成候選類&CRC技術(shù):類-職責(zé)-協(xié)作31/53類名:職責(zé):協(xié)作者:類的獲取-分析類&代表了對系統(tǒng)設(shè)計中一個或幾個類或若干子系統(tǒng)

10、的抽象&特征側(cè)重處理功能性需求很少定義或提供任何接口,其行為由職責(zé)表示定義的屬性是較高層次關(guān)系也是較高層次的、概念性的類的獲取-分析類&三種版型邊界類實體類控制類&用例中獲取類邊界類&負責(zé)系統(tǒng)與系統(tǒng)的外部環(huán)境的通信,提供系統(tǒng)和用戶、系統(tǒng)和其他系統(tǒng)的界面&常常代表窗口、表單、窗格、通信接口、打印機接口、傳感器、終端及API等的抽象&每個邊界類至少與一個執(zhí)行者有關(guān)實體類&類的信息和行為存在較長時間,是現(xiàn)實問題的抽象,通常叫域類,是現(xiàn)實世界的實體,或需要執(zhí)行系統(tǒng)的內(nèi)部事務(wù)。&通常獨立于外部環(huán)境,多數(shù)時獨立于應(yīng)用。&多數(shù)情況下,直接由業(yè)務(wù)實體類導(dǎo)出&通常是系統(tǒng)需要用來完成某個責(zé)任的類,需要從事件流中的

11、名詞中發(fā)現(xiàn)控制類&用來規(guī)范一個或多個類的行為。規(guī)范用例中實現(xiàn)系統(tǒng)行為的類的事件&在初期,可以認為每一個執(zhí)行者/用例對都有一個控制類??刂祁愴憫?yīng)用例中的事件流&控制類代表與其他對象之間的協(xié)作、排序、事務(wù)處理以及對其他對象的控制,常常用于封裝與特定用例有關(guān)的控制。POS銷售類分析&邊界類用戶界面類( POS 機界面)與數(shù)據(jù)庫連接與外部信用卡連接稅務(wù)系統(tǒng)POS銷售類分析&控制類一個用例一個,pos銷售POS銷售類分析&實體類從用例描述中的名詞中發(fā)現(xiàn)商品、賬目、存貨清單、收據(jù)、銷售單、銷售事件 等&其他外部u顧客、出納員等類的識別類的識別&識別原型中的類名詞法:搜索用例并找出所有名詞,組成候選類CRC

12、技術(shù)應(yīng)用篩選規(guī)則&識別類的屬性和操作應(yīng)用篩選規(guī)則1&刪除具有如下特征的候選類冗余:商品-貨物,稅-稅金,款額-銷售款不相關(guān):錯誤、利益操作:稅額計算、金額合計事件:描述特定時間頻率的名詞,每日產(chǎn)生一個報表應(yīng)用篩選規(guī)則2&刪除具有如下特征的候選類屬性:u描述了另一個類的結(jié)構(gòu)的名詞,如商品標(biāo)識碼、信用卡號u注意:在不同的應(yīng)用中可能會不同n郵政編碼:通常是屬性,但對郵政服務(wù),可能包含(地理位置、統(tǒng)計、費率結(jié)構(gòu)、運送信息)屬性和(投送線路、日期)行為應(yīng)用篩選規(guī)則3&刪除具有如下特征的候選類角色:描述一個特定實體的狀態(tài)或其分類的名次多半不是類,他是一個角色,顧客最佳顧客實現(xiàn)結(jié)構(gòu):描述硬件元件(打印機)或

13、算法(復(fù)利計算)確定類的屬性與操作確定類的屬性與操作&類的屬性名稱、類型、初始值&類的操作名稱、參數(shù)、參數(shù)類型、返回值等&注意可見性44/53識別類的屬性和操作類屬性操作Cashier namecashierIDaccess CashierInfo()SaleFormdatecashierIDgetSaleSum()SaleFormLinemerchandiseIDpricegetPrice()getNumberMerchandisemerchandiseIDmamePricespecificationlgetName()getAmount()getPrice()setPrice()Vouch

14、erdateMerchandiseIdset Merchandise()識別類的屬性和操作類屬性操作StockListmerchandiseIDmerchandiseAmountGetAmount()setAmount()AccountBookdatecashierIdaccountget CashierId()get Account()setAccount()TaxInfomationdatecustormIdgetTaxSum()TaxOffcienametelephonegetTaxCal()InvoicePayment小結(jié)&類的定義與圖示&類的獲取與分析類圖元語類第一欄是類名,第二欄是類的屬性,第三欄是類的操作包包表示一個類圖的集合對象對象是類的一個實例關(guān)聯(lián)關(guān)聯(lián)用于表示類的對象之間的關(guān)系,其特殊形式有組成關(guān)聯(lián)和聚集關(guān)聯(lián)聚集關(guān)聯(lián)聚集關(guān)聯(lián)用于表示類的對象之間的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論