




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
系統(tǒng)規(guī)劃部面向?qū)ο笤O(shè)計_類圖設(shè)計2023/2/61主要內(nèi)容類相關(guān)的基本概念使用UML的類圖設(shè)計類圖設(shè)計的一些問題分析繼承關(guān)系的分析對象持久化-與E-R模型的映射類設(shè)計相關(guān)的一些設(shè)計模式類圖設(shè)計應(yīng)用-信息模型建模過程及方法2023/2/62類相關(guān)的基本概念迎接挑戰(zhàn),共創(chuàng)成功!2023/2/63對象和類對象(Object):對象是指某個事物,大多對應(yīng)于真實世界中的某個客觀實體;但有些對象在真實世界中沒有直接的對應(yīng)物,是人們對某個事物的一種抽象描述。對象的基本特征可以歸納為對象的屬性和行為兩類。類(Class):類是指對一組具有相同特征的對象的抽象描述;任何對象都是某個類的實例。2023/2/64例:客戶類的表示客戶姓名單位電話Email客戶姓名單位電話Email客戶付款(金額)客戶付款(金額)2023/2/65類圖和對象圖類圖描述系統(tǒng)中的類及其相互之間的各種關(guān)系,反映了系統(tǒng)中包含的各種對象的類型以及對象間的各種靜態(tài)關(guān)系,主要是:關(guān)聯(lián)和子類型。類圖也可描述類的屬性和行為以及對模型中各種成分的約束。對象圖是類圖的實例,描述系統(tǒng)中各種對象(類的實例)以及對象之間的各種靜態(tài)關(guān)系。2023/2/66使用UML的類圖設(shè)計迎接挑戰(zhàn),共創(chuàng)成功!2023/2/67使用UML的類圖設(shè)計類設(shè)計的相關(guān)UML元素類屬性操作接口關(guān)聯(lián)聚合繼承(泛化)包的使用2023/2/68類實體名稱實體方法可見性實體屬性類是對同一種類型的對象的抽象表示2023/2/69屬性UML規(guī)定其語法為:可見性名稱:類型=缺省值{約束特性}描述屬性的元素可見性:表示該屬性對類外的元素是否可見。常用的有公有、受保護和私有三種。名稱:屬性的名稱,是一個字符串。類型:定義屬性的種類(基本數(shù)據(jù)類型或用戶自定義的類型)。缺省值:屬性的初始值。約束特性:描述對屬性的約束。2023/2/610操作UML規(guī)定其語法為可見性名稱(參數(shù)表):返回類型表達(dá)式{約束特性}描述操作的元素可見性:“+”表示公有操作,“#”表示受保護的操作,“-”表示私有操作。名稱:操作的名稱,是一個字符串。參數(shù)表:其語法與屬性的參數(shù)相同,參數(shù)個數(shù)是任意的。返回類型表達(dá)式(可選項):依賴于語言的描述。約束特性:用以描述對此操作的約束。2023/2/611可見性對“Public”、Private”和“Protected”等三個可見性標(biāo)識符的含義,各種語言都有它自己的規(guī)定。UML的定義是:+(Public):公有成員在程序的任何位置都是可見的,系統(tǒng)中的任何對象都可以使用它。-(Private):私有成員僅可以由定義它的類使用。#(Protected):受保護的成員僅可以由定義它的類和該類的子類中的對象使用。2023/2/612接口接口和類不同:一個類可以有它形態(tài)的真實實例,然而一個接口必須至少有一個類來實現(xiàn)它。2023/2/613關(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)基數(shù)(Cardinality)關(guān)聯(lián)基數(shù)(Cardinality)關(guān)聯(lián)實體,描述關(guān)聯(lián)的屬性、方法2023/2/614關(guān)聯(lián)的分類雙向關(guān)聯(lián)單向關(guān)聯(lián)關(guān)聯(lián)類聚合基本聚合組合聚合自關(guān)聯(lián)(反射關(guān)聯(lián))2023/2/615雙向關(guān)聯(lián)關(guān)聯(lián)是兩個類間的聯(lián)接。在Rose中關(guān)聯(lián)總是被假定是雙向的;這意味著,兩個類彼此知道它們間的聯(lián)系,除非你限定一些其它類型的關(guān)聯(lián)。2023/2/616單向關(guān)聯(lián)在一個單向關(guān)聯(lián)中,兩個類是相關(guān)的,但是只有一個類知道這種聯(lián)系的存在。下圖顯示單向關(guān)聯(lián)的透支財務(wù)報告的一個實例。2023/2/617關(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)類和一般類一樣表示。不同的是,主類和關(guān)聯(lián)類之間用一條相交的點線連接。2023/2/618自關(guān)聯(lián)類自身的關(guān)聯(lián),當(dāng)一個類關(guān)聯(lián)到它本身時,這并不意味著類的實例與它本身相關(guān),而是類的一個實例與類的另一個實例相關(guān)。2023/2/619聚合聚合是一種特別類型的關(guān)聯(lián),用于描述“總體到局部”的關(guān)系。聚合分為兩種類型:基本聚合、組合聚合基本聚合在基本聚合關(guān)系中,部分類的生命周期獨立于整體類的生命周期。組合聚合在組合聚合關(guān)系中,部分類的生命周期依賴于整體類的生命周期。2023/2/620繼承在面向?qū)ο蟮脑O(shè)計中一個非常重要的概念,繼承,指的是一個類(子類)繼承另外的一個類(超類)的屬性和方法,并增加它自己的屬性和方法,或者覆蓋父類的屬性和方法類名BankAccount和withdrawal操作使用斜體。這表示,BankAccount類是一個抽象類,而withdrawal方法是抽象的操作。換句話說,BankAccount類使用withdrawal規(guī)定抽象操作,并且CheckingAccount和SavingsAccount兩個子類都分別地執(zhí)行它們各自版本的操作。然而,超類(父類)不一定要是抽象類。標(biāo)準(zhǔn)類作為超類是正常的。2023/2/621泛化(Generalization)泛化(Generalization):抽象化特化(Specialization):實例化繼承(Inheritance):泛化關(guān)系的一種實現(xiàn)機制2023/2/622繼承與泛化繼承是實現(xiàn)泛化的一種機制。在這種機制中,超類的任何一個子類都須具有其超類的所有行為:不僅要求其操作界面在文法上一致,而且要求其行為在語義上一致。當(dāng)子類中的一個操作重載其超類中相應(yīng)的操作時,必須確保它提供與超類中的操作相同的服務(wù)(內(nèi)容可以更多或更具體)。如沒有證明子類的行為是否與父類相同,就試圖用繼承來實現(xiàn)新類中的行為,當(dāng)兩者不一致時,會導(dǎo)致難以預(yù)測的錯誤。2023/2/623包的引入大系統(tǒng)將問題復(fù)雜化?!肮タ恕睆?fù)雜問題的經(jīng)典方法是“分而治之”。結(jié)構(gòu)化方法采用功能分解來解決這個問題,但傳統(tǒng)的結(jié)構(gòu)化方法將過程與數(shù)據(jù)分離。面向?qū)ο蠹夹g(shù)解決這個問題的基本思路是將許多類集合成一個高內(nèi)聚、低耦合的類的集合。UML把這種分組機制稱為包。不僅類可以運用包的機制,任何模型元素都可運用包的機制。2023/2/624類關(guān)系中的依賴性UML指導(dǎo)將類組成包的原則是依賴性:設(shè)有兩個元素X、Y,如果修改(語法的或語義的)元素X的定義引起對元素Y的定義的修改,則稱元素Y依賴于元素X。類之間的依賴關(guān)系:CinheritsfromRAvariableinCisofclassRAmethodofCreceivesanargumentofclassRAmethodofCsendsamessagethatreturnsanargumentofclassRAmethodofChasalocalvariableofclassRCisa“friend”ofR2023/2/625包圖關(guān)系中的依賴性包圖顯示類的包以及這些包之間的依賴關(guān)系。它們都是類圖中的元素,因此包圖是另一種類圖。如果兩個包中的任意兩個類之間存在依賴關(guān)系,則這兩個包之間存在依賴關(guān)系。但包的依賴是不傳遞的。如圖示,訂單獲取應(yīng)用包屏蔽了訂單包的變化對訂單獲取界面包的影響。2023/2/626類圖設(shè)計的幾點建議在項目初始階段,不要使用所有的符號,應(yīng)從簡單的概念開始。不同的開發(fā)階段應(yīng)用不同的觀點畫類圖:分析階段用概念層類圖;設(shè)計階段用設(shè)計層類圖。不要為每個事物都畫一個模型,應(yīng)把精力放在關(guān)鍵的領(lǐng)域,畫幾張較為關(guān)鍵的圖,經(jīng)常使用,不斷更新。使用類圖的最大危險是過早地陷入實現(xiàn)的細(xì)節(jié),應(yīng)將重點放在概念層。2023/2/627類圖設(shè)計的一些問題分析迎接挑戰(zhàn),共創(chuàng)成功!2023/2/628內(nèi)容提要使用繼承的一些問題分析對象的持久化,向E-R模型的映射2023/2/629使用繼承的一些問題分析許多人將繼承視為面向?qū)ο笤O(shè)計中最好的或最有力的方法因此在面向?qū)ο笤O(shè)計中,會盡量多的使用繼承來解決問題這會導(dǎo)致:繼承關(guān)系的不恰當(dāng)使用子類不恰當(dāng)?shù)墨@取父類的行為類的層次結(jié)構(gòu)不靈活(Awkwardorrigid)難于維護下面列舉一些沒有正確使用繼承關(guān)系的例子2023/2/630繼承的問題分析1不正確的繼承關(guān)系將繼承改為關(guān)聯(lián)2023/2/631繼承的問題分析22023/2/632一個相似的例子2023/2/633問題在我們的應(yīng)用中,房間是一個立方體我們需要記錄每個房間的長、寬、高在我們的類庫中已經(jīng)有‘CUBOID’類設(shè)計為:CUBOID繼承的問題分析32023/2/634一種可行的設(shè)計
一種更為通用的設(shè)計繼承的問題分析3續(xù)2023/2/635繼承的問題分析42023/2/636對象模型向ER模型的映射對于實體類,一般會選擇關(guān)系數(shù)據(jù)庫做數(shù)據(jù)的存儲,因此會涉及對象模型如何向E-R模型轉(zhuǎn)換的問題:簡單關(guān)聯(lián)關(guān)系的映射繼承關(guān)系的映射聚合關(guān)系的映射2023/2/637簡單關(guān)聯(lián)關(guān)系的映射2023/2/638繼承關(guān)系的映射2023/2/639三種方案的進一步分析三種方案優(yōu)缺點的進一步分析:如果行數(shù)有限,那么優(yōu)先考慮將應(yīng)用程序與將來可能的改變隔離開來,提供一個更為健壯的數(shù)據(jù)庫設(shè)計。因此方案1可能是最靈活的,但這個方案的性能是最差的(它涉及到許多連接)。如果超類中屬性數(shù)目與子類的數(shù)目相比較小,那么方案3可能是最謹(jǐn)慎的選擇。它可以提供比方案1更好的性能,以后擴展模型時添加更多的類也較為容易。如果子類中的數(shù)據(jù)量較少,那么方案2是最好的。該方案提供了最佳的性能,但其靈活性最差。2023/2/640聚合關(guān)系的映射在類圖中,聚合關(guān)系表示的是兩個類之間的整體與部分之間的關(guān)系。從本質(zhì)上講,聚合關(guān)系是類之間的關(guān)聯(lián)關(guān)系的一種,在向E-R模型轉(zhuǎn)換時,與簡單關(guān)聯(lián)關(guān)系的映射規(guī)則相同。按照一對多的關(guān)系映射為E-R模型2023/2/641類設(shè)計相關(guān)的設(shè)計模式迎接挑戰(zhàn),共創(chuàng)成功!2023/2/642類設(shè)計相關(guān)的設(shè)計模式模式是對特定環(huán)境下經(jīng)常出現(xiàn)的有代表性的問題的通用核心解決方案,并且該方案可以被多次使用;設(shè)計模式可以幫助復(fù)用和溝通,可以提高信息模型的質(zhì)量,使模型的結(jié)構(gòu)更為合理,具有良好的適應(yīng)能力,能夠可以提供可擴展的結(jié)構(gòu);在信息模型中使用的設(shè)計模式主要有:實體-實體規(guī)格分離模式角色對象模式模板模式合成模式實體屬性規(guī)格/實體屬性模式實體/實體狀態(tài)分離模式2023/2/643實體-實體規(guī)格分離模式將實體的不變的、相對固定的特性和行為與其可變的特性、行為分開定義。通過規(guī)格的定義,將通用的規(guī)則、屬性分離出來單獨定義,形成實體的模板。記錄某一類實體的通用屬性記錄某一實體的屬性2023/2/644模板模式將具有相同分類或特點的類中通用的屬性、方法抽象出來,形成抽象類作為父類,子類繼承和擴展父類的屬性、方法。在面向?qū)ο蟮慕V?,抽象層次是非常重要的關(guān)于繼承模板模式是基于繼承的復(fù)用技術(shù)采用繼承的復(fù)用技術(shù)要比采用委托的復(fù)用技術(shù)耦合程度要高,使用繼承關(guān)系要謹(jǐn)慎2023/2/645模板模式的應(yīng)用將子類與其它類的關(guān)聯(lián)關(guān)系中具有通用性的關(guān)聯(lián)抽象到父類與其它類的關(guān)聯(lián),使實體之間的關(guān)聯(lián)關(guān)系更具有通用型和擴展性2023/2/646角色對象模式問題的引出:一些業(yè)務(wù)實體,需要扮演多個角色,如某個人可以是企業(yè)的客戶,同時又是企業(yè)的員工;某個公司可以是企業(yè)的客戶,同時也是企業(yè)的代銷商,也可以是企業(yè)的提供商,如何對這些關(guān)系進行建模,在信息模型中,采用實體、實體角色(角色對象)分離的模式來解決:實體是相對固定的,實體扮演的角色是可以獨立與實體靈活的變化和擴展2023/2/647角色對象模式的應(yīng)用將與系統(tǒng)相關(guān)的個人、組織抽象成參與者,將參與者所扮演的角色用參與者角色表示,具體類型的角色使用子類來表示。2023/2/648合成模式合成模式又稱為部分-整體模式。合成模式將對象組織到樹結(jié)構(gòu)中,可以用來描述整體與部分的關(guān)系。合成模式可以使客戶端將原子元素與復(fù)合元素同等看待。合成模式有安全式和透明式兩種。透明式的合成模式將原子元素與復(fù)合元素完全同等看待,定義同樣的接口,缺點是不夠安全;安全式的合成模式是將原子元素與復(fù)合元素區(qū)別對待,可以有不同的接口,缺點是不夠透明。2023/2/649合成模式的應(yīng)用變更服務(wù)規(guī)格是服務(wù)規(guī)格的一種,如新裝、改名、過戶等??梢允窃拥?,也可以是組合的,但是通過服務(wù)規(guī)格將他們同等處理。2023/2/650實體屬性規(guī)格/實體屬性模式問題的引出:有些業(yè)務(wù)實體,如通信服務(wù),不同的通信服務(wù)可以
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025春季學(xué)期國家開放大學(xué)專科《建筑工程計量與計價》一平臺在線形考(作業(yè)1至4)試題及答案
- 企業(yè)員工技能培訓(xùn)體系
- 【MOOC期末】《大學(xué)物理I力學(xué)、相對論、電磁學(xué)》(北京交通大學(xué))期末考試慕課答案
- 醫(yī)院運輸工作培訓(xùn)
- 路燈維修管理合同協(xié)議
- 辣椒種植收購合同協(xié)議
- 水池修建協(xié)議書
- 車間沖床機械歸屬合同協(xié)議
- 車輛保險轉(zhuǎn)讓合同協(xié)議
- 路政移栽樹木合同協(xié)議
- 《嵌入式系統(tǒng)中斷》課件
- 《農(nóng)村基層干部廉潔履行職責(zé)規(guī)定》解讀與培訓(xùn)
- 中華民族發(fā)展史知到課后答案智慧樹章節(jié)測試答案2025年春云南大學(xué)
- 無處不在-傳染病知到智慧樹章節(jié)測試課后答案2024年秋南昌大學(xué)
- 【MOOC】國際交英文寫作-湖南大學(xué) 中國大學(xué)慕課MOOC答案
- GB/T 625-2024化學(xué)試劑硫酸
- 初中八年級英語課件the Leaning Tower of Pisa
- 電影音樂欣賞智慧樹知到課后章節(jié)答案2023年下華南農(nóng)業(yè)大學(xué)
- 單位換算練習(xí)題 全
- 徐工XCT75起重機詳細(xì)參數(shù)說明
- QC七大工具培訓(xùn)課件(共95頁).ppt
評論
0/150
提交評論