第12講數(shù)據(jù)設計與正反向工程課件_第1頁
第12講數(shù)據(jù)設計與正反向工程課件_第2頁
第12講數(shù)據(jù)設計與正反向工程課件_第3頁
第12講數(shù)據(jù)設計與正反向工程課件_第4頁
第12講數(shù)據(jù)設計與正反向工程課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)設計與正反向工程潘正軍pzj據(jù)設計與正反向工程潘正軍1組件節(jié)點組件圖部署圖回顧組件回顧2對象持久化實體類與數(shù)據(jù)表的映射關(guān)系的映射

雙向工程介紹Java代碼生成逆向工程主要內(nèi)容對象持久化主要內(nèi)容3存儲:對象的持久化問題文件各種格式的文件(.txt,.ini…)關(guān)系數(shù)據(jù)庫(RDBMS)(最常用)面向?qū)ο髷?shù)據(jù)庫(OODBMS)關(guān)系數(shù)據(jù)庫正在向?qū)ο?關(guān)系數(shù)據(jù)庫發(fā)展Oracle的可變數(shù)組、嵌套表存儲:對象的持久化問題文件關(guān)系數(shù)據(jù)庫正在向?qū)ο?關(guān)系數(shù)據(jù)庫發(fā)4用關(guān)系數(shù)據(jù)庫來存儲對象你想把車停在一個面向?qū)ο蟮能噹炖?。把車開進車庫,下車,關(guān)上車門,然后回到你的房間。當你想出去的時候,只要走進車庫,鉆進汽車,啟動,然后開走你想把車停在一個關(guān)系數(shù)據(jù)庫的車庫里把車開進車庫,下車,卸下車門,將它們放在地上;卸下所有的車輪,將它們放到地上;卸下保險杠及其它的東西。然后回到你的房間。當你想出去的時候,走進車庫,先安上車門,再安上保險杠,然后是車輪等等,都安完了,鉆進汽車,點火,然后開走用關(guān)系數(shù)據(jù)庫來存儲對象你想把車停在一個面向?qū)ο蟮能噹炖?。把?實體類映射為關(guān)系數(shù)據(jù)庫實體類映射為關(guān)系數(shù)據(jù)庫6映射類和屬性映射類和屬性7映射泛化關(guān)系?映射泛化關(guān)系?8映射泛化關(guān)系-1只為超類建一張表優(yōu)點:只有一張表能實現(xiàn)角色變化報表操作簡單缺點:子類的修改會影響到整個結(jié)構(gòu)數(shù)據(jù)庫存在大量空值,浪費空間映射泛化關(guān)系-1只為超類建一張表優(yōu)點:9映射泛化關(guān)系-2每個子類映射一張表優(yōu)點:表中包含了具體子類的所有信息缺點:超類的修改會影響到所有子類表角色變化時,會造成ID的重新賦值支持多重角色時,數(shù)據(jù)完整性難以維護映射泛化關(guān)系-2每個子類映射一張表優(yōu)點:10映射泛化關(guān)系-3優(yōu)點:彈性最好缺點:表的數(shù)量多訪問數(shù)據(jù)的時間稍長超類子類都映射成表,超類主鍵作為所有類的主鍵映射泛化關(guān)系-3優(yōu)點:超類子類都映射成表,超類主鍵作為所有類11映射關(guān)聯(lián)關(guān)系-1對0..11對0..1關(guān)系:外鍵放在0..1端映射關(guān)聯(lián)關(guān)系-1對0..11對0..1關(guān)系:12映射關(guān)聯(lián)關(guān)系-1對11對1關(guān)系:外鍵放在任意一端映射關(guān)聯(lián)關(guān)系-1對11對1關(guān)系:13映射關(guān)聯(lián)關(guān)系-1對多1對多關(guān)系:安排在多的一端映射關(guān)聯(lián)關(guān)系-1對多1對多關(guān)系:14映射關(guān)聯(lián)關(guān)系-多對多多對多關(guān)系:添加第三個表映射關(guān)聯(lián)關(guān)系-多對多多對多關(guān)系:15映射聚合/組合關(guān)系映射規(guī)則同二元關(guān)聯(lián)映射聚合/組合關(guān)系映射規(guī)則同二元關(guān)聯(lián)16映射反身關(guān)聯(lián)(聚合)映射反身關(guān)聯(lián)(聚合)17主鍵的選擇在能單一標識記錄的字段中挑選有意義的字段作為主鍵(學號,工號)另外增加無意義字段作為主鍵(代理主鍵)主鍵的選擇在能單一標識記錄的字段中挑選有意義的字段作為主鍵(18思考:主鍵的選擇一個企業(yè)組織,“職員”應該用什么作為主鍵?姓名工號(03012045)身份證號(360405790718203)系統(tǒng)添加的ID思考:主鍵的選擇一個企業(yè)組織,“職員”應該用什么作為主鍵?19主鍵的作用唯一標識記錄被其他表引用為外鍵主鍵不應有業(yè)務含義有業(yè)務含義,意味著可能潛伏著變化任何對主鍵的修改都可能導致巨大的工作量代理主鍵每個表的主鍵都是相同的數(shù)據(jù)類型表間連接被限定在單個列上,SQL語句的書寫不復雜更穩(wěn)定的設計關(guān)于主鍵主鍵的作用關(guān)于主鍵20利用Rose進行數(shù)據(jù)庫設計利用RationalRose進行數(shù)據(jù)庫建模新建一個基于MSSQL的數(shù)據(jù)庫模型設置語言環(huán)境為MSSQL2000數(shù)據(jù)庫在邏輯視圖中新建一個schema進行數(shù)據(jù)庫建模前向工程,產(chǎn)生數(shù)據(jù)庫定義腳本由設計類圖產(chǎn)生數(shù)據(jù)庫模型利用Rose進行數(shù)據(jù)庫設計利用RationalRose進行21數(shù)據(jù)庫設計主要存在的問題每個數(shù)據(jù)表應該都有一個主鍵數(shù)據(jù)庫模型中需要定義表的關(guān)系(外鍵FK)數(shù)據(jù)庫模型中注意正確的使用外鍵來表示表之間的關(guān)系利用自動生成后一定要注意修改字段的類型為合適的類型數(shù)據(jù)表和實體類的區(qū)別數(shù)據(jù)表來自于需要持久化的實體類它們用于不同的場合、階段;在進行用例設計時,實際使用的應該是實體類數(shù)據(jù)庫設計主要存在的問題22數(shù)據(jù)庫設計數(shù)據(jù)庫設計23雙向工程介紹雙向工程包括正向工程和逆向工程。雙向工程提供了一種在描述系統(tǒng)的架構(gòu)或設計和代碼的模型之間進行雙向交換的機制。正向工程指從模型直接產(chǎn)生一個代碼框架。逆向工程是指將代碼轉(zhuǎn)換成模型。CASE工具能夠自動進行轉(zhuǎn)換,可以在設計模型和實現(xiàn)模型之間保持一致。模型源代碼正向工程逆向工程雙向工程介紹雙向工程包括正向工程和逆向工程。模型源代碼正向工24Java代碼生成代碼生成(正向工程)是指從Rose模型中的一個或多個類圖生成Java源代碼的過程。RationalRose正向工程是以組件為中心的。當對一個Java模型元素進行正向工程時,它的特征會映射到對應的Java語言的結(jié)構(gòu)。Rose提供了一個工具,它能夠使代碼與UML模型保持一致。Java代碼生成代碼生成(正向工程)是指從Rose模型中的一25

“CodeGeneration”詳解IDE:指定與Rose相關(guān)聯(lián)的Java開發(fā)環(huán)境。DefaultDataTypes:設置缺省數(shù)據(jù)類型。Prefixes:設定缺省前綴(如果有的話)GenerateRoseID:在代碼中為每個方法都加一個唯一的標識符。GenerateDefaultReturnLine:在每個類聲明后面都生成一個返回行。StoponError:在遇到第一個錯誤就停止CreateMissingDirectories:生成沒有定義的目錄。AutomaticSynchronizationMode:自動保持代碼與模型同步,ShowProgressIndicator:在遇到復雜的同步操作時顯示進度欄。SourceCodeControl:對哪些文件進行源碼控制。PutsourcecodeoftheprojectunderSourceControl:使用RoseJ/CMIntegration對Java源代碼進行版本控制。InputCheckin/Checkoutcomment:需要對檢入/檢出代碼的活動進行說明。SelectSourceRootPathforSourceControl:選擇存放生成的代碼文件的地方?!癈odeGeneration”詳解IDE:指定與Ros代碼生成的步驟將Java類加入模型中的Java組件語法檢查設置“Classpath”設置“CodeGeneration”參數(shù)備份文件生成Java代碼代碼生成的步驟將Java類加入模型中的Java組件27正向工程(forwardengineering)正向過程是通過到實現(xiàn)語言的映射而把模型轉(zhuǎn)換為代碼的過程。利用Rose工具生成代碼框架的基本步驟:(1)檢查模型(2)創(chuàng)建組件(3)將類映射到組件(4)設置代碼生成屬性(5)選擇類,組件和包(6)生成代碼正向工程(forwardengineering)正向過程是28反向工程反向工程是分析Java代碼,然后將其轉(zhuǎn)換到Rose模型的類和組件的過程。RationalRose允許從Java源文件(.java文件)、Java字節(jié)碼(.class文件)以及一些打包文件(.zip、.cab、.jar文件)中進行逆向工程。反向工程反向工程是分析Java代碼,然后將其轉(zhuǎn)換到Rose模29逆向工程(ReverseEngineering)利用Rose工具實施逆向工程①使用逆向工程選項“Tools->Java->ReverseEngineer…”;②使用逆向工程選項可以解決從源代碼到模型的同步問題。選擇剛剛修改過的Reader.java文件,按下“Reverse”按鈕。完成后,按下“Done”按鈕關(guān)閉逆向工程窗口。③在瀏覽窗口中,展開LogicView下的Reader類,可以發(fā)現(xiàn)新增加的方法,

溫馨提示

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

評論

0/150

提交評論