




已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第三部分:設(shè)計篇,主講教師,.,2,OOD模型框架從兩個側(cè)面來描述,回顧,.,3,問題域部分設(shè)計,輸入OOA模型,人機交互部分設(shè)計,控制驅(qū)動部分設(shè)計,數(shù)據(jù)接口部分設(shè)計,構(gòu)件化與系統(tǒng)部署,向OOP輸出OOD模型,OOD過程,.,4,將OOA模型搬到OOD作為OOD的基礎(chǔ),人機交互部分,數(shù)據(jù)接口部分,控制驅(qū)動部分,問題域部分,OOA模型,按編程語言、網(wǎng)絡(luò)、操作系統(tǒng)、復(fù)用支持等實現(xiàn)條件進行必要的調(diào)整,11.1什么是問題域部分問題域部分是OOD模型的四個組成部分之一,由來自問題域的對象構(gòu)成,是在OOA模型基礎(chǔ)上,按照具體的實現(xiàn)條件進行必要的修改、調(diào)整和細(xì)節(jié)補充而得到的。,第11章問題域部分的設(shè)計,.,5,人機交互部分,數(shù)據(jù)接口部分,控制驅(qū)動部分,OOA模型,編程語言、網(wǎng)絡(luò)、操作系統(tǒng)、復(fù)用支持等實現(xiàn)條件,OOD過程,從MDA的觀點看問題域部分的產(chǎn)生,問題域部分,.,6,11.2實現(xiàn)條件對問題域部分的影響,編程語言語言的實現(xiàn)能力硬件、操作系統(tǒng)及網(wǎng)絡(luò)設(shè)施對象分布、并發(fā)、通信、性能復(fù)用支持根據(jù)復(fù)用支持對模型做適當(dāng)調(diào)整,以實現(xiàn)復(fù)用數(shù)據(jù)管理系統(tǒng)為實現(xiàn)對象的持久存儲,對問題域部分做某些修改界面支持系統(tǒng)問題域部分與人機界面之間的消息傳輸,.,7,設(shè)計準(zhǔn)備保留OOA文檔復(fù)制OOA文檔,作為OOD的輸入根據(jù)需求的變化和發(fā)現(xiàn)的錯誤進行修改,設(shè)計內(nèi)容與策略(本節(jié)的重點)針對編程語言支持能力的調(diào)整增加一般類以建立共同協(xié)議實現(xiàn)復(fù)用提高性能為實現(xiàn)對象持久存儲所做的修改完善對象的細(xì)節(jié)定義對象實例對輔助模型、模型規(guī)約的修改和補充,建立OOD文檔與OOA文檔的映射,11.3設(shè)計過程,.,8,1、按編程語言調(diào)整繼承與多態(tài)起因:OOA強調(diào)如實地反映問題域,OOD考慮實現(xiàn)問題,如果語言不支持多繼承或多態(tài),就要進行對模型調(diào)整,.,9,方法1:簡單轉(zhuǎn)換,(a)一般方法,或,A,C,1,1,1,1,1,1,B,A,C,B,1,A,C,B,.,10,方法2:重新定義對象類,化解多繼承,職員,學(xué)員,在職學(xué)員,人員,職員身份,學(xué)員身份,人員,1,0.1,1,0.1,職員身份,學(xué)員身份,身份,人員,1,0.2,.,11,方法3:保持分類,剝離多繼承信息,職員,學(xué)員,人員,在職學(xué)員,職員信息,學(xué)員信息,1,1,1,1,1,1,1,1,.,12,(2)取消多態(tài)性,(a),(b),多邊形,線條色線型邊數(shù)頂點坐標(biāo),繪圖填充,正多邊形,*頂點坐標(biāo),*繪圖,矩形,邊數(shù)*頂點坐標(biāo),*繪圖,多邊形,線條色線型,正多邊形,繪圖,矩形,頂點坐標(biāo),繪圖,不規(guī)則多邊形,繪圖,邊數(shù)頂點坐標(biāo),邊數(shù)頂點坐標(biāo),填充,.,13,2、增加一般類以建立共同協(xié)議增加根類:將所有的類組織在一起提供全系統(tǒng)通用的協(xié)議例:提供創(chuàng)建、刪除、復(fù)制等操作增加其他一般類:提供局部通用的協(xié)議例:提供持久存儲及恢復(fù)功能,.,14,B,C,E,A,屬性操作,D,F,1,*,屬性操作,屬性操作,屬性操作,屬性操作,屬性操作,例:,.,15,3、實現(xiàn)復(fù)用的設(shè)計策略,如果已存在一些可復(fù)用的類,而且這些類既有分析、設(shè)計時的定義,又有源程序,那么,復(fù)用這些類即可提高開發(fā)效率與質(zhì)量。目標(biāo):盡可能使復(fù)用成分增多,新開發(fā)的成分減少,.,16,例:,車輛,序號顏色式樣出廠年月序號認(rèn)證,問題域部分的類,.,17,4、提高性能(1)調(diào)整對象分布,(2)縮短對象存取時間設(shè)立緩沖區(qū),甲機,乙機,send,call,call,send,類A,類A,類B,類C,類B,類C,甲機,乙機,.,18,(3)合并通訊頻繁的類,流速調(diào)節(jié)器指定流速流速調(diào)節(jié),流速探測器當(dāng)前流速流速探測取當(dāng)前流速,流速控制器指定流速當(dāng)前流速流速調(diào)節(jié)流速探測,合并前,合并后,(4)增加屬性以減少重復(fù)計算,call,.,19,(5)降低算法的計算復(fù)雜性(6)細(xì)化對象的分類,二次曲線,繪圖,.,20,(7)將復(fù)雜對象化為整體-部分結(jié)構(gòu),幀,5、為數(shù)據(jù)存儲管理增補屬性與操作在數(shù)據(jù)接口部分設(shè)計中介紹,.,21,6、完善對象的細(xì)節(jié),OOD在OOA模型基礎(chǔ)上所做的主要工作,不能用“細(xì)化”二字概括,但細(xì)化是不可缺少的(1)完善與問題域有關(guān)的屬性和操作在OOA階段允許不詳盡,OOD必須加以完善(2)解決OOA階段推遲考慮的問題,包括:因封裝原則而設(shè)立的對象操作與OOD模型其他部分有關(guān)的屬性和操作(3)設(shè)計類的每個操作必要時用流程圖或者活動圖表示(4)設(shè)計表示關(guān)聯(lián)的屬性區(qū)分多重性的3種情況,決定屬性設(shè)置在哪一端(5)設(shè)計表示聚合的屬性區(qū)分組合與松散的聚合對于組合,用嵌套對象實現(xiàn)對于松散的聚合,采用與關(guān)聯(lián)相同的策略,.,22,7、定義對象實例,在邏輯上,一個類的對象實例是:問題域中所有可用這個類描述的實際事物在物理上,一個類的對象實例可以是:內(nèi)存中的對象變量文件的一個記錄,或數(shù)據(jù)庫表的一個元組一個類的對象實例可以分布到不同的處理機上對每一臺處理機說明在它之上創(chuàng)建的每一個(或組)內(nèi)存對象說明在它之上保存的外存對象,類的對象實例說明:處理機:,內(nèi)存對象:(n元數(shù)組)外存對象:,.,23,8、修改或補充輔助模型及模型規(guī)約,包圖類的增減、拆分、合并以及各個類之間關(guān)系的變化順序圖操作與消息活動圖操作流程其他模型圖狀態(tài)機圖、定時圖、交互概覽圖、組合結(jié)構(gòu)圖模型規(guī)約類的屬性、操作及其對外關(guān)系的修改或細(xì)化,.,24,建立與OOA文檔的映射,指出OOA模型中的哪個(或哪些)類演化為OOD模型中的哪個(或哪些)類,.,25,12.1什么是人機交互部分,人機交互部分是OOD模型的外圍組成部分之一,是系統(tǒng)中負(fù)責(zé)人機交互的部分。其中所包含的對象(稱作界面對象)構(gòu)成了系統(tǒng)的人機界面?,F(xiàn)今的系統(tǒng)大多采用圖形方式的人機界面形象、直觀、易學(xué)、易用,遠(yuǎn)遠(yuǎn)勝于命令行方式的人機界面,是使軟件系統(tǒng)嬴得廣大用戶的關(guān)鍵因素之一。但開發(fā)工作量大,成本高。近30年出現(xiàn)了許多支持圖形用戶界面開發(fā)的軟件系統(tǒng),包括:窗口系統(tǒng)(如XWindow,News);圖形用戶界面(GUI)(如OSF/Motif,OpenLook);可視化開發(fā)環(huán)境(如VisualC+,VisualBasic,Delphi)統(tǒng)稱界面支持系統(tǒng)。人機交互部分既取決于需求,又與界面支持系統(tǒng)密切相關(guān)。,第12章人機交互部分的設(shè)計,.,26,人機界面的開發(fā)不僅是設(shè)計和實現(xiàn)問題,也包括分析問題對人機交互需求的分析。人機界面的開發(fā)也不純粹是軟件問題,它還需要心理學(xué)、美學(xué)等許多其它學(xué)科的知識。把人機交互部分作為系統(tǒng)中一個獨立的組成部分進行分析和設(shè)計,有利于隔離界面支持系統(tǒng)的變化對問題域部分的影響,控制驅(qū)動部分,問題域部分,數(shù)據(jù)接口部分,.,27,12.2人機交互部分的需求分析,對使用系統(tǒng)的人進行分析以便設(shè)計出適合其特點的交互方式和界面表現(xiàn)形式對人和機器的交互過程進行分析核心問題是人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息,(1)分析與系統(tǒng)交互的人(參與者)人對界面的需求,不僅在于人機交互的內(nèi)容,而且在于他們對界面表現(xiàn)形式、風(fēng)格等方面的愛好。前者是客觀需求,對誰都一樣后者是主觀需求,因人而異分析工作包括列舉所有的人員參與者調(diào)查研究區(qū)分人員類型統(tǒng)計(或估算)各類人員的比例了解使用者的主觀需求,.,28,(2)從用況分析人機交互用況的構(gòu)成參與者的行為和系統(tǒng)行為按時間順序交替出現(xiàn),左右分明。形成交叉排列的段落。每個段落至少含有一個輸入語句或輸出語句;有若干純屬參與者自身或系統(tǒng)自身的行為陳述;可能包含一些控制語句或括號。抽取方法:刪除所有與輸入、輸出無關(guān)的語句刪除不再包含任何內(nèi)容的控制語句與括號剩下的就是對一項功能的人機交互描述,.,29,收款輸入開始本次收款的命令;作好收款準(zhǔn)備,應(yīng)收款總數(shù)置為0,輸出提示信息;for顧客選購的每種商品do輸入商品編號;if此種商品多于一件then輸入商品數(shù)量endif;檢索商品名稱及單價;貨架商品數(shù)減去售出數(shù);if貨架商品數(shù)低于下限then通知供貨員請求上貨endif;計算本種商品總價并打印編號、名稱、數(shù)量、單價、總價;總價累加到應(yīng)收款總數(shù);endfor;打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù);計算應(yīng)找回的款數(shù),打印以上兩個數(shù)目,收款數(shù)計入賬冊。(a)一個用況的例子,例:,.,30,人機交互的細(xì)化輸入的細(xì)化輸入步驟的細(xì)化輸入設(shè)備的選擇輸入信息表現(xiàn)形式的選擇輸出的細(xì)化輸出步驟的細(xì)化輸出設(shè)備的選擇輸出信息表現(xiàn)形式的選擇,輸入與輸出相比,輸入在人機交互中起到主導(dǎo)作用一次輸入,廣義地稱為對系統(tǒng)的一條“命令”,.,31,(3)分析處理異常事件的人機交互(4)命令的組織不受歡迎的命令組織方式:一條命令含有大量的參數(shù)和任選項系統(tǒng)有大量命令,不加任何組織和引導(dǎo),基本命令:使用一項獨立的系統(tǒng)功能的命令。命令步:基本命令交互過程中所包含的具體輸入步驟。高層命令:由其他若干命令組合而成,起組織和引導(dǎo)作用,命令的組織措施分解與組合分解:將一條含有許多參數(shù)和選項的命令分解為若干命令步組合:將基本命令組織成高層命令,從高層命令引向基本命令,.,32,(c)半序網(wǎng)狀結(jié)構(gòu),(b)樹型結(jié)構(gòu),(a)線性結(jié)構(gòu),(d)一般的網(wǎng)狀結(jié)構(gòu),基本命令及其命令步的結(jié)構(gòu),.,33,高層命令的組織結(jié)構(gòu),.,34,(5)輸出信息的組織結(jié)構(gòu)分析兩層命令之間的輸出信息結(jié)構(gòu),.,35,12.3人機界面的設(shè)計準(zhǔn)則使用簡便一致性啟發(fā)性減少人腦記憶的負(fù)擔(dān)減少重復(fù)的輸入容錯性及時反饋其它:藝術(shù)性、趣味性、風(fēng)格、視感,.,36,12.4人機界面的OO設(shè)計(1)選擇界面支持系統(tǒng)窗口系統(tǒng):“窗口系統(tǒng)是控制位映像顯示器與輸入設(shè)備的系統(tǒng)軟件,它所管理的資源有屏幕、窗口、像素映像,色彩表、字體、光標(biāo)、圖形資源及輸入設(shè)備。”例:Smalltalk,Macintosh,XWindow圖形用戶界面(GUI):在窗口系統(tǒng)之上提供了層次更高的界面支持功能,具有特定的視感和風(fēng)格,支持應(yīng)用系統(tǒng)界面開發(fā)的系統(tǒng)。例:OSF/Motif,OpenLook可視化編程環(huán)境:將窗口系統(tǒng)、GUI、可視化開發(fā)工具、編程語言以及類庫結(jié)合為一體的可視化開發(fā)平臺,支持用戶以“所見即所得”的方式構(gòu)造用戶界面。例:VisualC+,Delphi,VisualBasic考慮的因素:硬件、操作系統(tǒng)及編程語言,支持級別,風(fēng)格與視感,.,37,(2)根據(jù)人機交互需求選用界面元素不同的界面支持系統(tǒng)提供不同的界面元素,常用的界面元素例如:窗口、菜單、對話盒、圖符、滾動條等系統(tǒng)的啟動選用實現(xiàn)主界面的界面元素,如框架窗口、對話框窗口高層命令組織結(jié)構(gòu)的實現(xiàn)通過界面元素的構(gòu)造層次體現(xiàn)高層命令的組織結(jié)構(gòu)例如:窗口菜單下級菜單基本命令的執(zhí)行通過高層命令引向基本命令例如:窗口菜單菜單選項詳細(xì)交互過程的輸入與輸出選擇適當(dāng)?shù)慕缑嬖赝瓿擅總€命令步的輸入與輸出異常命令的輸入使用支持異常命令輸入的界面功能,如鼠標(biāo)右鍵菜單,.,38,(3)用OO概念表示界面元素對象和類盡可能使用界面類庫中提供的可復(fù)用類,自定義的類,類名屬性操作,類名復(fù)用,復(fù)用類庫中的類,屬性與操作用屬性表示界面對象的靜態(tài)特征物理特征如:位置、尺寸、顏色、立體效果邏輯特征聚合、關(guān)聯(lián)用操作表示界面對象的行為例如:創(chuàng)建、激活、最大化、最小化、移動、選中、單擊、雙擊,.,39,整體-部分結(jié)構(gòu)表示界面元素之間的構(gòu)成關(guān)系,例如:窗口與其中的菜單、按鈕、圖符、對話框、滾動條表示界面對象在操作中的邏輯層次反映上、下兩層命令之間的關(guān)系,例:框架窗口,.,40,框架窗口,主菜單,下拉菜單,視窗,工具條,滾動條,按鈕,1,1,1,*,1,*,1,1,1,2,1,1,1,*,.,41,一般-特殊結(jié)構(gòu)表示較一般的界面類和較特殊的界面類之間的關(guān)系自定義的類之間的一般-特殊關(guān)系用一般-特殊結(jié)構(gòu)特化可復(fù)用類,.,42,關(guān)聯(lián)表示界面類之間一個有特定意義的關(guān)系,例如:,按鈕,1,1,對話框,消息高層命令到低層命令界面對象之間的消息基本命令的執(zhí)行從界面對象向功能對象發(fā)消息信息輸出從功能對象向界面對象發(fā)消息,工具條,1,*,.,43,12.5可視化編程環(huán)境下的人機界面設(shè)計(1)問題的提出(2)所見即所得的界面開發(fā)(3)設(shè)計的必要性為實現(xiàn)提供依據(jù)為了滿足人機交互的需求,人機界面中要使用哪些界面對象?交互過程中的各項輸入和輸出應(yīng)由哪些界面對象完成?如何通過界面對象類之間的各種關(guān)系體現(xiàn)人機交互命令的組織結(jié)構(gòu)與層次?如何通過界面對象和功能對象之間的消息實現(xiàn)它們之間的動態(tài)聯(lián)系?降低失敗的風(fēng)險設(shè)計策略需要改進類庫的存在以所見即所得的定義界面對象的各種物理屬性更為直接,.,44,(4)基于可視化編程環(huán)境的設(shè)計策略類的設(shè)立首先想到復(fù)用,Cdialog復(fù)用,CMysystemDig,CEdit復(fù)用,通過繼承復(fù)用,直接復(fù)用,.,45,屬性忽略物理特征,著重表示邏輯特征設(shè)計階段不必關(guān)心描述界面物理特征的屬性諸如:大小、形狀、位置、顏色、邊框、底紋、圖案式樣、三維效果等,由實現(xiàn)人員去自主處理效果更好,效率更高以主要精力定義描述界面邏輯特征的屬性表現(xiàn)命令的組織結(jié)構(gòu)的屬性、例如:菜單類的每個選項表示什么命令表現(xiàn)界面元素之間組成關(guān)系和關(guān)聯(lián)的屬性例如:對話框中包含哪些控件,.,46,CMysystemDigSetDlgItemText,操作顯式地表示從高層類繼承的操作,例:,CDialog復(fù)用,.,47,整體-部分結(jié)構(gòu)表現(xiàn)界面的組織結(jié)構(gòu)和命令層次通過整體-部分結(jié)構(gòu)表現(xiàn)界面對象之間的組成關(guān)系和人機交互命令的層次關(guān)系與采用其它界面支持系統(tǒng)的策略相同區(qū)分界面對象的普通屬性和它的部分對象有些組成部分被作為對象的一個普通屬性例如下拉菜單的選項,窗口的邊框有些組成部分則被作為一個部分對象例如對話框的一個下拉菜單或按鈕區(qū)分兩種情況的依據(jù)環(huán)境類庫有沒有給出這種組成部分的類定義,.,48,一般-特殊結(jié)構(gòu)多從可復(fù)用類直接繼承,例:,對話框復(fù)用,對話框A,對話框B,編輯框復(fù)用,按鈕復(fù)用,1,3,1,1,普通策略,2,1,對話框復(fù)用,對話框A,對話框B,編輯框復(fù)用,按鈕復(fù)用,1,1,1,5,1,1,1,3,直接繼承可復(fù)用類的策略,.,49,消息忽略自動實現(xiàn)的消息注意需要編程實現(xiàn)的消息1、界面對象接收到一個操作事件,通過它的一個操作向處理該事件的功能對象所發(fā)送的消息。2、從功能對象向完成其輸入/輸出的界面對象發(fā)送的消息。3、其它:凡是需要通過手工編程來實現(xiàn)的消息,都要在設(shè)計中加以表示。,.,50,13.1什么是控制驅(qū)動部分,控制驅(qū)動部分是OOD模型的外圍組成部分之一,由系統(tǒng)中全體主動類構(gòu)成。這些主動類描述了整個系統(tǒng)中所有的主動對象,每個主動對象是系統(tǒng)中一個控制流的驅(qū)動者??刂屏鳎╟ontrolflow)進程(process)和線程(thread)的總稱有多個控制流并發(fā)執(zhí)行的系統(tǒng)稱作并發(fā)系統(tǒng)(多任務(wù)系統(tǒng)),第13章控制驅(qū)動部分的設(shè)計,.,51,為什么需要控制驅(qū)動部分,并發(fā)行為是現(xiàn)實中固有的當(dāng)前大量的系統(tǒng)都是并發(fā)系統(tǒng)(多任務(wù)系統(tǒng)),例如:外圍設(shè)備與主機并發(fā)工作的系統(tǒng)有多個窗口進行人機交互的系統(tǒng)多用戶系統(tǒng)多個子系統(tǒng)并發(fā)工作的系統(tǒng)單處理機上的多任務(wù)系統(tǒng)多處理機系統(tǒng)多任務(wù)的設(shè)置描述問題域固有的并發(fā)行為表達(dá)實現(xiàn)所需的設(shè)計決策隔離硬件、操作系統(tǒng)、網(wǎng)絡(luò)的變化對整個系統(tǒng)的影響,.,52,13.2相關(guān)技術(shù)問題,(1)由系統(tǒng)總體方案決定的實現(xiàn)條件:計算機硬件性能、容量和CPU數(shù)目操作系統(tǒng)對并發(fā)和通訊的支持網(wǎng)絡(luò)方案網(wǎng)絡(luò)軟硬件設(shè)施、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、通訊速率、網(wǎng)絡(luò)協(xié)議等軟件體系結(jié)構(gòu)(詳后)編程語言對進程和線程的描述能力其它商品軟件如數(shù)據(jù)管理系統(tǒng)、界面支持系統(tǒng)、構(gòu)件庫等對共享和并發(fā)訪問的支持,.,53,(2)軟件體系結(jié)構(gòu)抽象地說,軟件體系結(jié)構(gòu)描述了構(gòu)成系統(tǒng)的元素、這些元素之間的相互作用、指導(dǎo)其組合的模式以及對這些模式的約束MaryShaw,幾種典型的軟件體系結(jié)構(gòu)風(fēng)格管道與過濾器風(fēng)格(pipeandfilterstyle)數(shù)據(jù)抽象風(fēng)格(dataabstractionstyle)面向?qū)ο箫L(fēng)格(object-orientedstyle)隱式調(diào)用風(fēng)格(implicitinvocationstyle)層次風(fēng)格(layeredstyle)倉庫風(fēng)格(repositorystyle)黑板風(fēng)格(blackboardstyle)解釋器模型(interpretermodel)進程控制風(fēng)格(processcontrolstyle)客戶-服務(wù)器風(fēng)格(client-serverstyle),.,54,主機+仿真終端體系結(jié)構(gòu)文件共享體系結(jié)構(gòu)客戶-服務(wù)器體系結(jié)構(gòu)二層客戶-服務(wù)器體系結(jié)構(gòu)三層客戶-服務(wù)器體系結(jié)構(gòu)對等式客戶-服務(wù)器體系結(jié)構(gòu)瘦客戶-服務(wù)器體系結(jié)構(gòu)瀏覽器-服務(wù)器體系結(jié)構(gòu),(3)分布式系統(tǒng)的體系結(jié)構(gòu)風(fēng)格,.,55,進程(process)概念出現(xiàn)之前,并發(fā)程序設(shè)計困難重重主要原因:并發(fā)行為彼此交織,理不出頭緒與時間有關(guān)的錯誤不可重現(xiàn)進程概念的提出使這個問題得到根本解決進程的全稱是順序進程(sequentialprocess),其基本思想是把并發(fā)程序分解成一些順序執(zhí)行的進程,使得:每個進程內(nèi)部不再包含并發(fā)行為所以叫做順序進程,其設(shè)計避免了并發(fā)問題多個進程之間是并發(fā)(異步)執(zhí)行的所以能夠構(gòu)成并發(fā)程序,(4)系統(tǒng)的并發(fā)性,.,56,線程(Thread)由于并行計算的需要,要求人為地在順序程序內(nèi)部定義和識別可并發(fā)執(zhí)行的單位。因此后來的操作系統(tǒng)大多支持線程概念。線程與進程的區(qū)別:進程既是處理機分配單位,也是存儲空間、設(shè)備等資源的分配單位(重量級的控制流);線程只是處理機分配單位(輕量級的控制流);一個進程可以包含多個線程,也可以是單線程的。控制流是進程和線程的總稱。,.,57,應(yīng)用系統(tǒng)的并發(fā)性從網(wǎng)絡(luò)、硬件平臺的角度看:分布在不同計算機上的進程之間的并發(fā)在多CPU的計算機上運行的進程或線程之間的并發(fā)在一個CPU上運行的多個進程或線程之間的并發(fā)從應(yīng)用系統(tǒng)的需求看:需要跨地域進行業(yè)務(wù)處理的系統(tǒng)需要同時使用多臺計算機或多個CPU進行處理的系統(tǒng)需要同時供多個用戶或操作者使用的系統(tǒng)需要在同一時間執(zhí)行多項功能的系統(tǒng)需要與系統(tǒng)外部多個參與者同時進行交互的系統(tǒng),.,58,處理應(yīng)用系統(tǒng)并發(fā)性的例子見教材節(jié)例1例7,.,59,例5:用多進程實現(xiàn)遙感信息的輸入、處理和顯示,輸入進程,數(shù)據(jù)處理進程,顯示進程,數(shù)據(jù),數(shù)據(jù),IPC,IPC,數(shù)據(jù),數(shù)據(jù),顯示屏,地面接收設(shè)備,輸入,輸出,遙感信息處理系統(tǒng),.,60,例6:用多線程實現(xiàn)遙感信息的輸入、處理和顯示,輸入線程,數(shù)據(jù)處理線程,顯示線程,數(shù)據(jù),數(shù)據(jù),數(shù)據(jù),輸入,輸出,地面接收設(shè)備,顯示屏,遙感信息處理進程,.,61,業(yè)務(wù)處理進程1,操作,輸入線程,數(shù)據(jù)處理線程,顯示線程,遙感信息處理進程,數(shù)據(jù),數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫,數(shù)據(jù),數(shù)據(jù),業(yè)務(wù)處理進程n,操作,數(shù)據(jù),IPC/RPC,例7:同時采用多進程和多線程,.,62,13.3如何設(shè)計控制驅(qū)動部分,(1)選擇軟件體系結(jié)構(gòu)風(fēng)格二層客戶-服務(wù)器體系結(jié)構(gòu)(數(shù)據(jù))服務(wù)器客戶機三層客戶-服務(wù)器體系結(jié)構(gòu)數(shù)據(jù)服務(wù)器應(yīng)用服務(wù)器客戶機,.,63,考慮分布方案之前,暫時將系統(tǒng)看作集中式的確定分布方案之后,將對象分布到各個處理機上以每臺處理機上的類作為一個包,(2)確定系統(tǒng)分布方案,.,64,系統(tǒng)分布包括功能分布和數(shù)據(jù)分布在面向?qū)ο蟮南到y(tǒng)中都體現(xiàn)于對象分布原則:減少遠(yuǎn)程傳輸,便于管理對象分布軟件體系結(jié)構(gòu)系統(tǒng)功能在哪些結(jié)點提供數(shù)據(jù)在哪些結(jié)點長期存儲管理,在哪些結(jié)點臨時使用參照用況把合作緊密的對象盡可能分布在同一結(jié)點追蹤消息把一個控制流經(jīng)歷的對象分布在同一結(jié)點,.,65,分布在每個結(jié)點上的對象,都需要相應(yīng)的類來創(chuàng)建(1)如果一個類只需要在一個結(jié)點上創(chuàng)建對象實例把這個類分布在該結(jié)點上(2)如果一個類需要在多個結(jié)點上創(chuàng)建對象實例把這個類分布到每個需要創(chuàng)建其實例的結(jié)點上其中一個作為正本,其他作為副本,類的分布:根據(jù)對象分布的需要,.,66,(a)一個集中式類圖,1,*,A,B,C,D,E,F,G,*,1,服務(wù)器,H,I,J,A,B,C,D,E,F,G,*,1,(b)服務(wù)器包,1,*,副本D,H,I,J,副本A,客戶機,(c)客戶機包(第一種策略),(d)客戶機包(第二種策略),1,*,副本D,H,I,J,客戶機,call,call,call,例,.,67,13.3.3識別控制流(1)以結(jié)點為單位識別控制流不同結(jié)點上程序的并發(fā)問題已經(jīng)解決考慮在每個結(jié)點上運行的程序還需要如何并發(fā)(2)從用戶需求出發(fā)認(rèn)識控制流有哪些任務(wù)必須在同一臺計算機上并發(fā)執(zhí)行(3)從用況認(rèn)識控制流關(guān)注描述如下三類功能的用況要求與其他功能同時執(zhí)行的功能用戶隨時要求執(zhí)行的功能處理系統(tǒng)異常事件功能(4)參照OOA模型中的主動對象(5)為改善性能而增設(shè)的控制流高優(yōu)先級任務(wù)、低優(yōu)先級任務(wù)、緊急任務(wù)(6)實現(xiàn)并行計算的控制流(線程)(7)實現(xiàn)結(jié)點之間通訊的控制流(進程)(8)對其它控制流進行協(xié)調(diào)的控制流,.,68,13.3.4用主動對象表示控制流,控制流是主動對象中一個主動操作的一次執(zhí)行。其間可能要調(diào)用其他對象的操作,后者又可能調(diào)用另外一些對象的操作,這就是一個控制流的運行軌跡。,問題:一個主動類可以有多個主動操作和若干被動操作,這種表示法不能顯式地表示哪個(哪些)操作是主動操作。,.,69,用關(guān)鍵詞表示主動操作,類名,進程操作名()線程操作名()線程操作名()操作名(),active類名,進程操作名()線程操作名()線程操作名()操作名(),.,70,顯示地表示由進程創(chuàng)建線程,類B,線程T1,create,create,類C,線程T2,類A,進程P,.,71,把控制驅(qū)動部分看成一個包其中包含了系統(tǒng)中全部主動類可以從多種觀點把OOD模型劃分成包,.,72,主動對象屬于控制驅(qū)動部分,也可以同時屬于其他部分因為OOD模型的各個部分可以交叉例:訂單系統(tǒng)中營業(yè)員對象可以有不同的設(shè)計方案,.,73,方案2:問題域部分和控制驅(qū)動部分交叉,.,74,方案3:問題域部分和人機交互部分交叉,.,75,人機交互部分,數(shù)據(jù)接口部分,控制驅(qū)動部分,問題域部分,方案4:問題域部分、人機交互部分、控制驅(qū)動部分都交叉,active營業(yè)員,提問:1、還有沒有其他方案?2、是否違背了隔離對問題域部分影響的初衷?,.,76,數(shù)據(jù)接口部分是OOD模型中負(fù)責(zé)與具體的數(shù)據(jù)管理系統(tǒng)銜接的外圍組成部分,它為系統(tǒng)中需要長久存儲的對象提供了在選定的數(shù)據(jù)管理系統(tǒng)中進行數(shù)據(jù)存儲與恢復(fù)的功能。,問題范圍:對象在永久性存儲介質(zhì)上的存儲只須存儲對象的屬性部分可能只有一部分對象需要長久存儲,11.1什么是數(shù)據(jù)接口部分,大部分實用的系統(tǒng)都要處理數(shù)據(jù)的持久存儲問題數(shù)據(jù)保存于永久性存儲介質(zhì)在數(shù)據(jù)管理系統(tǒng)的支持下實現(xiàn)其存儲、檢索和維護在面向?qū)ο蟮南到y(tǒng)中,數(shù)據(jù)的存儲表現(xiàn)為對象存儲,第14章數(shù)據(jù)接口部分的設(shè)計,.,77,不同的數(shù)據(jù)管理系統(tǒng):文件系統(tǒng)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)各有不同的數(shù)據(jù)定義方式和數(shù)據(jù)操縱方式針對不同的數(shù)據(jù)管理系統(tǒng),需要做不同設(shè)計根據(jù)所選用的數(shù)據(jù)管理系統(tǒng)特點,設(shè)計一些專門處理其它對象的持久存儲問題的對象組織成一個獨立的組成部分?jǐn)?shù)據(jù)接口部分,.,78,優(yōu)點:集中解決對象存儲問題隔離數(shù)據(jù)管理系統(tǒng)對其它部分的影響選用不同的數(shù)據(jù)管理系統(tǒng)時,問題域部分變化較少,人機交互部分,控制驅(qū)動部分,問題域部分,.,79,14.2數(shù)據(jù)管理系統(tǒng)及其選擇,數(shù)據(jù)管理系統(tǒng)實現(xiàn)數(shù)據(jù)存儲、檢索、管理與維護的系統(tǒng)包括文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)兩大類文件系統(tǒng)filesystem關(guān)系型數(shù)據(jù)庫管理系統(tǒng)RDBMS面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng)OODBMS,.,80,(一)文件系統(tǒng),通常是操作系統(tǒng)的一部分管理外存空間的文件數(shù)據(jù)提供存儲、檢索、更新、共享和保護等功能文件結(jié)構(gòu)物理結(jié)構(gòu)文件數(shù)據(jù)在存儲空間的存放方法和組織關(guān)系邏輯結(jié)構(gòu)呈現(xiàn)給用戶的文件結(jié)構(gòu)如流式結(jié)構(gòu)、記錄式結(jié)構(gòu)等文件系統(tǒng)提供的支持在人機界面上進行操作的系統(tǒng)命令在程序中使用的廣義指令創(chuàng)建、刪除、打開、關(guān)閉、讀、寫、控制等編程語言可以提供更方便的文件定義與使用方式,.,81,優(yōu)點:廉價,容易學(xué)習(xí)和掌握,對數(shù)據(jù)類型沒有限制缺點:功能貧乏、低級不容易體現(xiàn)數(shù)據(jù)之間的關(guān)系只能按地址或者記錄讀寫,不能按屬性進行數(shù)據(jù)檢索與更新缺少數(shù)據(jù)完整性支持?jǐn)?shù)據(jù)共享支持薄弱,文件系統(tǒng)的優(yōu)缺點,.,82,(二)數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫:長期存儲在計算機內(nèi)、有組織、可共享的數(shù)據(jù)集合。其中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度,較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。數(shù)據(jù)庫管理系統(tǒng)(DBMS):用于建立、使用和維護數(shù)據(jù)庫的軟件。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性,.,83,1、關(guān)系數(shù)據(jù)庫管理系統(tǒng)RDBMS關(guān)系模型給定一組域D1,D2,Dn其笛卡爾積D1D2Dn的一個子集就是一個關(guān)系,又稱二維表基本要求:關(guān)系的每個屬性必須是原子的數(shù)據(jù)的組織:用二維表組織各類數(shù)據(jù)既可存放描述實體自身特征的數(shù)據(jù)也可存放描述實體之間聯(lián)系的數(shù)據(jù)每一列稱作一個屬性每一行稱作一個元組數(shù)據(jù)的運算:提供并、交、差等集合運算以及選取、投影、聯(lián)結(jié)等操作,.,84,關(guān)系數(shù)據(jù)庫術(shù)語對照,.,85,2、面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)OODBMS采用面向?qū)ο髷?shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)背景:越來越多的系統(tǒng)用OO技術(shù)開發(fā)(采用OO數(shù)據(jù)模型)RDBMS的局限性(采用關(guān)系數(shù)據(jù)模型)不能直接、有效地組織和存儲對象數(shù)據(jù),需要對數(shù)據(jù)模式進行轉(zhuǎn)換,并提供相應(yīng)的接口因此出現(xiàn)了面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)OODBMSOODBMS的特征:是面向?qū)ο蟮模褐С謱ο蟆㈩?、對象?biāo)識、對象的屬性與操作、封裝、繼承、聚合、關(guān)聯(lián)、多態(tài)等OO概念。具有數(shù)據(jù)庫管理系統(tǒng)的功能:數(shù)據(jù)定義與操縱語言、完整性保障、安全機制,并發(fā)控制、故障恢復(fù)、事務(wù)運行管理、可擴充,.,86,三種類型的OODBMS產(chǎn)品1)在OOPL基礎(chǔ)上增加數(shù)據(jù)庫管理系統(tǒng)的功能例如:GemStone和ObjectStore2)對RDBMS進行擴充,使之支持面向?qū)ο髷?shù)據(jù)模型并向用戶提供面向?qū)ο蟮膽?yīng)用程序接口例如:Iris和POSTGRES3)“全新的”O(jiān)ODBMS即按照面向?qū)ο髷?shù)據(jù)模型進行全新的設(shè)計例如:O2和DAMOKLES目前狀況:理論和技術(shù)上都有待完善,.,87,(三)數(shù)據(jù)管理系統(tǒng)的選擇理論上OODBMS最適合用OO方法開發(fā)的系統(tǒng)實際上要權(quán)衡技術(shù)和非技術(shù)兩方面的因素,非技術(shù)因素與項目的成本、工期、風(fēng)險、宏觀計劃有關(guān)的問題產(chǎn)品的成熟性和先進性價格開發(fā)隊伍的技術(shù)背景與其它系統(tǒng)的關(guān)系,.,88,技術(shù)因素考慮各種數(shù)據(jù)管理系統(tǒng)適應(yīng)哪些情況,不適應(yīng)哪些情況,文件系統(tǒng)的適應(yīng)性優(yōu)點:可儲任何類型的數(shù)據(jù),包括具有復(fù)雜內(nèi)部結(jié)構(gòu)的數(shù)據(jù)和圖形、圖象、視頻、音頻等多媒體數(shù)據(jù)。以類和對象的形式定義的數(shù)據(jù)都可以用文件存儲適應(yīng):數(shù)據(jù)類型復(fù)雜,但對數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護、故障恢復(fù)、事務(wù)處理等功能要求不高的應(yīng)用系統(tǒng);缺點:操作低級;數(shù)據(jù)操縱功能貧乏;缺少數(shù)據(jù)完整性支持;缺少多用戶及多應(yīng)用共享、故障恢復(fù)、事務(wù)處理等功能不適應(yīng):數(shù)據(jù)操縱復(fù)雜、多樣,數(shù)據(jù)共享及數(shù)完整性維護要求較高的系統(tǒng)。,.,89,關(guān)系數(shù)據(jù)庫管理系統(tǒng)的適應(yīng)性優(yōu)點:對數(shù)據(jù)存取、數(shù)據(jù)共享、數(shù)據(jù)完整性維護、故障恢復(fù)、事務(wù)處理等功能提供強有力的支持適應(yīng):對這些功能要求較高的應(yīng)用系統(tǒng),以及需大量保存和管理各類實體之間關(guān)系信息的應(yīng)用系統(tǒng)問題:關(guān)系數(shù)據(jù)模型對數(shù)據(jù)模式的限制較多當(dāng)對象的內(nèi)部結(jié)構(gòu)較為復(fù)雜時,就不能直接地與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式相匹配,需要經(jīng)過轉(zhuǎn)換更不適合圖形、圖象、音頻、視頻等多媒體數(shù)據(jù)和經(jīng)過壓縮處理的數(shù)據(jù),文件系統(tǒng)和RDBMS的優(yōu)點和缺點形成了明顯對照但是對二者的選擇卻未必互相排斥,有時它們是互補的。某些應(yīng)用系統(tǒng)可能同時采用RDBMS和文件系統(tǒng),分別存儲各自所適合的數(shù)據(jù)。,.,90,面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)的適應(yīng)性從純技術(shù)的角度看,對用OO方法開發(fā)的系統(tǒng)采用OODBMS是最合理的選擇,幾乎沒有不適合的情況。如果某些項目不適合,主要是由于非技術(shù)因素,而不是技術(shù)因素各種OODBMS采用的對象模型多少有些差異,與用戶選用的OOA&D方法及OOPL中的匹配程度不盡一致,功能也各有區(qū)別,對不同的應(yīng)用系統(tǒng)有不同的適應(yīng)性,.,91,14.3對象存儲方案和數(shù)據(jù)接口的設(shè)計策略,針對三種數(shù)據(jù)管理系統(tǒng)文件系統(tǒng)RDBMSOODBMS,對象存儲方案如何把對象映射到數(shù)據(jù)管理系統(tǒng),數(shù)據(jù)接口部分的設(shè)計策略如何設(shè)計數(shù)據(jù)接口部分的對象類,分別討論,如何對問題域部分做必要的修改,.,92,(一)針對文件系統(tǒng)的設(shè)計,應(yīng)用系統(tǒng),數(shù)據(jù)接口,文件系統(tǒng),對象,對象,對象,1、對象在內(nèi)存空間和文件空間的映像如何看待用文件系統(tǒng)存儲對象,應(yīng)用系統(tǒng)仍然是面向?qū)ο蟮?只是用文件系統(tǒng)存儲對象的數(shù)據(jù),.,93,從應(yīng)用系統(tǒng)的對象到文件記錄的不同映射方式,.,94,2、對象在文件中的存放策略,1)基本策略把由每個類直接定義、需要持久存儲的全部對象實例存放在一個文件中;每個對象實例的全部屬性作為一個存儲單元,占用該文件的一個記錄。,如何理解“由一個類直接定義的”對象實例,另一種策略一個結(jié)構(gòu)用一個文件浪費空間模糊了對象分類關(guān)系使操作復(fù)雜化,.,95,2)提高檢索效率在對象和文件記錄之間建立有規(guī)律的映射關(guān)系,對象名或關(guān)鍵字呈線性規(guī)律按對象名或關(guān)鍵字的順序形成文件記錄給出對象名稱或關(guān)鍵字,快速地計算出它的存放位置對象名稱或關(guān)鍵字可以比較和排序按關(guān)鍵字順序安排記錄,檢索時采用折半查找法建立按對象名稱或者按關(guān)鍵字排序的索引表,通過該表中的記錄指針找到相應(yīng)的記錄其他措施如散列表、倒排表、二叉排序樹等等,.,96,3、設(shè)計數(shù)據(jù)接口部分的對象類,.,97,4、問題域部分的修改,類B,類D,問題域部分,數(shù)據(jù)接口部分,類A,類C,對象存取器,.,98,(二)針對RDBMS的設(shè)計,應(yīng)用系統(tǒng),數(shù)據(jù)接口,RDBMS,對象,對象,對象,1、對象及其對數(shù)據(jù)庫的使用如何看待用RDBMS存儲對象,應(yīng)用系統(tǒng)仍然是面向?qū)ο蟮?只是用關(guān)系數(shù)據(jù)庫存儲對象的數(shù)據(jù),關(guān)系數(shù)據(jù)庫,.,99,從應(yīng)用系統(tǒng)的對象到數(shù)據(jù)庫表元組的不同映射方式,.,100,使用RDBMS和使用文件系統(tǒng)的不同(1)系統(tǒng)以不同方式使用數(shù)據(jù)庫中的數(shù)據(jù)存儲對象或使用其普通數(shù)據(jù)原因:數(shù)據(jù)庫的共享性,(2)可能需要數(shù)據(jù)格式轉(zhuǎn)換原因:關(guān)系數(shù)據(jù)庫對規(guī)范化的要求,對象從數(shù)據(jù)庫獲得其他數(shù)據(jù),關(guān)系數(shù)據(jù)庫,應(yīng)用系統(tǒng),對象,數(shù)據(jù)接口,對象,RDBMS,對象,對象保存與恢復(fù),.,101,2、對象在數(shù)據(jù)庫中的存放策略對象數(shù)據(jù)的規(guī)范化修改類圖確定關(guān)鍵字從類圖映射到數(shù)據(jù)庫表類表類的屬性表的屬性對象實例行對一般-特殊結(jié)構(gòu)、整體-部分結(jié)構(gòu)、關(guān)聯(lián)等OO概念的處理,.,102,第一范式(1NF):關(guān)系(表)的每個屬性都必須是原子的。就是說,關(guān)系的每個屬性都是單值的,它不再包含內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。第二范式(2NF):如果一個關(guān)系的所有非關(guān)鍵字屬性都只能依賴整個關(guān)鍵字(而不是依賴關(guān)鍵字的一部分屬性),則該關(guān)系在第二范式中。第三范式(3NF):如果一個關(guān)系在第二范式中,而且沒有傳遞依賴,則該關(guān)系在第三范式中。Boyce-Codd范式(BCNF):如果一個關(guān)系的每個決定因素都是候選關(guān)鍵字,則該關(guān)系在BCNF中。第四范式(4NF):如果一個關(guān)系在BCNF中,而且沒有多值依賴,則該關(guān)系在第四范式中。,1)對象數(shù)據(jù)的規(guī)范化關(guān)系數(shù)據(jù)庫要求存入其中的數(shù)據(jù)符合一定的規(guī)范,并且用范式衡量規(guī)范化程度的高低。,.,103,未必規(guī)范化程度越高越好規(guī)范化的代價響系統(tǒng)的可理解性,增加了多表查詢和連接操作面向?qū)ο蠓椒ㄅc關(guān)系數(shù)據(jù)庫的規(guī)范化目標(biāo)既有相違的一面,又有相符的一面,以對象為中心組織數(shù)據(jù)與操作,恰恰有助于達(dá)到第2NF、3NF、BCNF和4NF要求的條件,.,104,HOUSING(SID,Building,F(xiàn)ee)Key:SIDFunctionalDependencies:BuildingFeeSIDBuildingFee,SIDBuildingFee,例1:一個不滿足3NF的關(guān)系及其規(guī)范化,分析原因:把描述不同事物的數(shù)據(jù)組織在一起,摘自:施伯樂等譯,美DavidM.Kroenke著.數(shù)據(jù)庫處理.北京:電子工業(yè)出版社,1998,.,105,例2:一個不滿足4NF的關(guān)系及其規(guī)范化,STUDENT(SID,Major,Activity)Key:(SID,Major,Activity)SIDMajorActivity,.,106,SIDMajor,1,1,1,1,*,*,*,*,課程,學(xué)生,活動,學(xué)生-課程,學(xué)生-活動,SIDActivity,*,*,*,*,課程,學(xué)生,活動,用面向?qū)ο蠓椒ǖ玫降姆诸愑腥悓ο?化解多對多關(guān)聯(lián)之后的結(jié)果,為什么多出來3個類?,.,107,用面向?qū)ο蠓椒ㄎ茨鼙苊夂瘮?shù)依賴的例子,職工,職工編號月工資所得稅,可以不通過規(guī)范化解決問題討論為什么,.,108,規(guī)范化的兩種策略保持類圖,對表規(guī)范化缺點是對象的存儲與恢復(fù)必須經(jīng)過數(shù)據(jù)格式的轉(zhuǎn)換修改類圖對問題域的映射可能不像規(guī)范化之前那么直接。但是這個問題并不嚴(yán)重利大于弊采用第二種策略按規(guī)范化的要求修改類圖中的類作為問題域部分的設(shè)計內(nèi)容之一,2)修改類圖,.,109,3)確定關(guān)鍵字用較少的屬性作關(guān)鍵字,將為含關(guān)鍵字的操作帶來方便常用的技巧引入編號,最終效果:經(jīng)過必要的規(guī)范化處理和關(guān)鍵字處理之后,得到一個符合數(shù)據(jù)庫設(shè)計要求的類圖,其中每個需要映射到數(shù)據(jù)庫表的類,都滿足如下條件:至少滿足第一范式滿足所期望的更高范式有一組屬性被確定為關(guān)鍵字,.,110,4)從類圖到數(shù)據(jù)庫的映射(1)映射策略概要對每個要在數(shù)據(jù)庫中存儲對象實例的類,都建立一個數(shù)據(jù)庫表類的每個屬性(包括從所有祖先繼承來的屬性)都對應(yīng)表的一個屬性(列)名稱、數(shù)據(jù)類型完全相同其中一組屬性被確定為關(guān)鍵字類的每個對象實例將對應(yīng)表的一個元組(行),.,111,(2)對OO概念的處理,對一般-特殊結(jié)構(gòu)的處理抽象類不對應(yīng)數(shù)據(jù)庫表特殊類包括自己定義的和繼承來的所有屬性,人員姓名出生年月,教職工職稱從事專業(yè),研究生學(xué)號班級攻讀專業(yè),在職研究生在職單位,例:,5個屬性,4個屬性,8個屬性,不建表,.,112,在關(guān)聯(lián)連接線一端的類中定義一個(或一組)屬性,表明另一端類的哪個對象實例與本端的對象實例相關(guān)聯(lián)該屬性(屬性組)應(yīng)該和另一端的關(guān)鍵字相同如果另一端的關(guān)鍵字包含多個屬性,本端也要定義同樣的多個屬性在對應(yīng)的數(shù)據(jù)庫表中,一個表以該屬性(或?qū)傩越M)作為外鍵,另一個表以它作為主鍵,使前者的元組通過其屬性值指向后者的元組,對關(guān)聯(lián)的處理,.,113,一對多的關(guān)聯(lián)從多重性約束為“m”的一端指向多重性約束為“1”的一端,A,B,1,*,.,114,多對多的關(guān)聯(lián),A,B,*,*,.,115,多對多的關(guān)聯(lián),A,B,*,*,.,116,對象類轉(zhuǎn)化為數(shù)據(jù)庫表的三種情況:表中只包含描述本類事物自身特征的屬性表中既包含描述本類事物自身特征的屬性,也包含作為外鍵指向另一個表的元組的屬性表中只包含作為外鍵指向其它表的元組的屬性,.,117,對整體-部分結(jié)構(gòu)的處理分為緊密、固定的方式和松散、靈活的方式二者的區(qū)別將通過數(shù)據(jù)庫表的設(shè)計體現(xiàn)出來,緊密、固定方式:把部分對象類的屬性合并到整體對象類中松散、靈活方式:整體對象類和部分對象類分別建立一個表通過外鍵表現(xiàn)整體部分關(guān)系,.,118,A,1,1,A,0.1,1,A,*,1,A,1,*,A,*,*,(a),(b),(c),(d),(e),松散方式:建立A、B兩個表A指向B,松散方式:建立A、B兩個表B指向A,松散方式:參考多對多關(guān)聯(lián)解決辦法首先解決多對多問題然后建立A、B兩個表以及新增類的表,.,119,例:多對多的整體-部分結(jié)構(gòu)的轉(zhuǎn)化,*,*,運動隊,*,1,學(xué)生,運動隊,1,*,隊員,學(xué)生,.,120,3、數(shù)據(jù)接口部分類的設(shè)計,設(shè)計一個名為“對象存取器”的對象類,它提供兩種操作“對象保存”將內(nèi)存中一個對象保存到相應(yīng)的數(shù)據(jù)庫表中“對象恢復(fù)”從數(shù)據(jù)庫表中找到對象所對應(yīng)的元組,把它恢復(fù)成內(nèi)存中的對象,執(zhí)行這些操作需要知道對象的下述信息:它在內(nèi)存中是哪個對象為了知道從何處取得對象數(shù)據(jù)或者把數(shù)據(jù)恢復(fù)到何處它屬于哪個類為了知道該對象應(yīng)保存在哪個數(shù)據(jù)庫表中它的關(guān)鍵字為了知道該對象對應(yīng)數(shù)據(jù)庫表的哪個元組,.,121,第一種設(shè)計方案對每個要求保存和恢復(fù)的對象類,分別設(shè)計一個“對象保存”操作和一個“對象恢復(fù)”操作,優(yōu)點:每個操作都很容易實現(xiàn),通常只需要一個數(shù)據(jù)操縱語句,(例如靜態(tài)SQL語句)缺點:操作個數(shù)太多很難在問題部分采用統(tǒng)一的消息協(xié)議,.,122,第二種設(shè)計方案只設(shè)計一個“對象保存”操作和一個“對象恢復(fù)”操作供全系統(tǒng)所有要求保存和恢復(fù)的對象類共同使用,.,123,4、問題域部分的修改,采用第一種方案時問題域部分每個請求保存或恢復(fù)的類,都要使用不同的操作請求語句,這些請求只能分散到各個類中,采用第二種方案時在問題域部分設(shè)計一個高層的類,提供統(tǒng)一的協(xié)議,供各個需要在數(shù)據(jù)庫中存儲其對象實例的類繼承可以做到和采用文件系統(tǒng)時的處理完全一致,.,124,采用第二種方案時修改情況和采用文件系統(tǒng)時完全一致,類B,類D,問題域部分,數(shù)據(jù)接口部分,類A,類C,對象存取器,RDBMS,關(guān)系數(shù)據(jù)庫,.,125,從應(yīng)用系統(tǒng)到數(shù)據(jù)庫,從內(nèi)存空間到外
溫馨提示
- 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年農(nóng)村電商服務(wù)站運營模式創(chuàng)新與農(nóng)村電商市場潛力挖掘報告
- 2025年農(nóng)村電商服務(wù)站農(nóng)村電商市場拓展與競爭力優(yōu)化報告
- 2025年農(nóng)產(chǎn)品質(zhì)量安全追溯體系在促進農(nóng)業(yè)可持續(xù)發(fā)展中的作用報告
- 2017年主管護師考試試題及答案
- 《關(guān)雎》中考試題及答案
- 跨文化數(shù)字溝通-洞察及研究
- 九月份四級英語聽力測試題及答案
- 小學(xué)語文名家經(jīng)典誦讀孟子二良能良知素材語文版
- 慢性病管理優(yōu)化-第1篇-洞察及研究
- 一年級道德與法治下冊第一單元新學(xué)期你好第3課新的學(xué)期新的我教案北師大版
- (2025)入黨積極分子培訓(xùn)考試試題及答案
- 2025年計算機網(wǎng)絡(luò)技術(shù)考試試卷及答案
- 2025年天津市河西區(qū)中考二模語文試題
- 2025年高考軍隊院校征集和招錄人員政治考核表(原表)
- 思想道德與法治(湖南師范大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- 四川省瀘州市瀘縣2021-2022學(xué)年八年級下學(xué)期期末數(shù)學(xué)試題(word版只含選擇填空題答案)
- 國際匯款查詢查復(fù)業(yè)務(wù)培訓(xùn)3
- 高中信息技術(shù)會考試題(必修部分)附答案
- 設(shè)備保全點檢表(TPM推行必看)
- 市質(zhì)監(jiān)站工程竣工驗收工作流程圖
- 新世紀(jì)大學(xué)英語綜合教程4 Unit1
評論
0/150
提交評論