




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算機科學 2 0 0 0 Vol 27 No 2用面向?qū)ο蟮慕9ぞ咴O計關系數(shù)據(jù)庫Design the relation database using the object oriented modeling tools宋怡 馬世龍 李昭原(北京航空航天大學計算機科學與技術系 北京 100083)Abstract This paper introduces how to use the object oriented modeling tool to design the relation database, merging the process of designing database
2、 and the process of designing the whole software, providing a new and recommendable mehtod for database designing .Key words object oriented, unified modeling method, UML, boundary class, entity class, control class 1 引言自從85年首次提出面向?qū)ο蟮母拍钜詠?,面向?qū)ο蠹夹g作為一種全新的軟件開發(fā)方法開始在軟件工程領域被越來越廣泛使用。近幾年,在綜合了三種具有代表性的面向?qū)ο蠓椒?B
3、ooch、OMT、OOSE的基礎上,又提出了標準建模語言UML和統(tǒng)一建模方法,并產(chǎn)生了相應的建模工具。面向?qū)ο蟮慕y(tǒng)一建模方法是一個整體的方法,一方面可以分析設計出軟件程序,另一方面又可以完成數(shù)據(jù)庫的設計,把這兩個過程統(tǒng)一在整個軟件分析設計全過程中,相對傳統(tǒng)E-R圖法來說可能有助于提高開發(fā)效率。以下我們首先簡單介紹統(tǒng)一建模方法,接著結合一個實例來具體說明如何使用其相應的建模工具設計關系數(shù)據(jù)庫。2 統(tǒng)一建模方法簡介統(tǒng)一建模方法由用例驅(qū)動整個開發(fā)過程,分為捕獲需求、分析、設計、實現(xiàn)和測試等階段,每個階段都是在前一階段的基礎上的進一步細化,呈增量迭代式發(fā)展。具體的方法步驟如下:l 捕獲需求階段:先由用
4、戶、分析人員和開發(fā)者積極交流,分析、提煉用戶對系統(tǒng)的需求,并描述出來。然后在此基礎上建立業(yè)務用例模型、業(yè)務對象模型,用模型來完整的表達和細化用戶需求。l 分析階段:在前一階段基礎上進行功能抽象和數(shù)據(jù)抽象,功能抽象得到系統(tǒng)分析包,數(shù)據(jù)抽象得到分析類及其相互之間的關系。l 設計階段:對分析階段的成果進一步細化,細化分析類的方法和相互間關系,細化各個子系統(tǒng)的接口和相互間交互,得到實現(xiàn)時可以使用的設計模型。l 實現(xiàn)階段:編碼實現(xiàn)設計,并進行單元測試、集成測試。統(tǒng)一建模方法的分析設計成果通過建模工具的一系列視圖表示,包括用例圖、活動圖、順序圖、類圖等,易于開發(fā)人員與用戶交流和開發(fā)人員之間的交流、改進。3
5、 結合例子,具體介紹設計關系數(shù)據(jù)庫的過程這里我們借用一個實例來具體說明如何用面向?qū)ο蟮慕9ぞ咴O計關系數(shù)據(jù)庫。假設用戶需要一個管理庫存的軟件,要求完成器材入庫、檢驗、出庫、退貨、盤點、統(tǒng)計報表等功能。器材在到貨后先入待驗庫,檢驗合格后轉(zhuǎn)入合格庫,檢驗不合格要填寫退貨單退貨。倉庫不定期盤點,結果可產(chǎn)生相關的統(tǒng)計報表。在器材的庫存量低于一定量后要能自動報警。(一)根據(jù)用戶的需求描述,建立業(yè)務模型,從中抽取用例。具體步驟如下:1建立業(yè)務模型:業(yè)務模型由業(yè)務用例模型和業(yè)務對象模型組成。(1)業(yè)務用例模型:以業(yè)務用例和業(yè)務角色分別對應每個業(yè)務功能和業(yè)務的執(zhí)行者來描述一個系統(tǒng)總的業(yè)務功能概況。所謂用例就是
6、對系統(tǒng)提供的功能的一種描述,它指定了一系列活動,特定執(zhí)行者讓系統(tǒng)執(zhí)行這些活動后會產(chǎn)生可見結果。角色就是使用用例的人。業(yè)務用例模型代表從使用者的角度看到的系統(tǒng)功能概況,用用例圖描述。在本例中,業(yè)務用例包括:器材入待驗庫、器材檢驗、器材入合格庫、器材退貨、器材出庫、庫存盤點、生成統(tǒng)計報表。用例圖如圖1示: 圖1(2)業(yè)務對象模型:是一個業(yè)務內(nèi)部的模型。它描述了一組角色如何使用一組業(yè)務實體或工作單元來實現(xiàn)每個業(yè)務用例。每種業(yè)務用例的實現(xiàn)都可以用活動圖或交互圖(包括順序圖和合作圖)來描述。這個模型圖對分析階段從用例中分析出分析類很有幫助,只有詳細了解了每個用例的具體實現(xiàn)流程才可能正確的劃分出類來。在本
7、例中,以器材入待驗庫這個用例為例,畫出活動圖和順序圖,作為對用例的具體描述。圖2 器材入待驗庫活動圖圖3 器材入待驗庫順序圖2抽取用例:實際上這個階段的重點是重新分析提取用例,去除用例之間的覆蓋,并從計算機實現(xiàn)的角度對相關用例做進一步的抽象。(1)首先,根據(jù)業(yè)務模型抽取出角色(即執(zhí)行者)和角色需要的用例。(2)結構化用例模型,定義用例間的泛化關系。也就是去除用例間的覆蓋,從計算機實現(xiàn)的角度對用例做抽象。這個結構化的過程是很重要的,它的結果將對分析階段的劃分系統(tǒng)包和從用例中分析類產(chǎn)生直接影響。本例中,器材入合格庫和器材退貨都是器材檢驗的結果,不是獨立的用例,應該從用例圖(圖1)中刪除。器材入待驗
8、庫、器材檢驗、器材出庫都涉及一個填寫單據(jù)的過程,所以可以把填寫單據(jù)作為一個獨立的用例,與其余這些用例間是被使用的關系。(二)進行系統(tǒng)分析。分析階段主要是對系統(tǒng)分包,劃分相關功能用例集;從用例中分析得到分析對象、分析類的交互關系和系統(tǒng)包之間的聯(lián)系。具體步驟如下:1 系統(tǒng)包分析將功能相關的用例劃分進同一個系統(tǒng)包,將模型分成若干小的部分。這一步驟實際上是一個劃分功能子系統(tǒng)的過程,本例中的庫存系統(tǒng)可按功能劃分為器材入庫、器材出庫、庫存盤點、生成報表四個系統(tǒng)包。2從用例中分析出分析類分析類代表系統(tǒng)設計時一個或多個類或者子系統(tǒng)的抽象,它具有以下特點:l 分析類注重處理功能需求,而對非功能性需求(如性能、界
9、面、物理設計需求等)則將其放到設計和實現(xiàn)階段里處理。分析類更“概念化”,通常比設計和實現(xiàn)階段相應的類有較大的粒度。l 分析類幾乎不定義或不提供操作的任何接口。它的行為通過職責來定義。l 分析類定義了屬性,但屬性的類型通常是概念性的,直接從問題域中識別出。分析類總是三種基本類模板之一:邊界類、控制類、實體類邊界類邊界類用于系統(tǒng)與角色之間的交互,包括從用戶和外部系統(tǒng)接收信息和請求。邊界類為依賴于角色的系統(tǒng)部分建模,它們解釋和匯集系統(tǒng)邊界需求,這樣用戶界面的變化通常被隔離在一個或多個邊界類上。邊界類經(jīng)常代表窗口、表單、交互界面等,它描述交互所能得到的結果而不是交互的物理實現(xiàn)。每個邊界類應當至少與一個
10、角色相關,反之亦然。控制類控制類代表協(xié)調(diào)、處理、控制和序列化其他對象,經(jīng)常用于封裝與特定用例相關的控制或代表復雜的派生和計算,如業(yè)務邏輯等。系統(tǒng)的動態(tài)機制由控制類來建模,因為他們處理與協(xié)調(diào)主要活動和控制流,將工作分派給其他對象??刂祁惙庋b了對某些對象的控制、協(xié)調(diào)和事務處理,這樣就可以將控制的變化孤立在某個類中了。實體類實體類用于為系統(tǒng)中長期存在的信息建模。在通常情況下,實體類直接來自業(yè)務對象模型中的相應業(yè)務對象,但與其有主要區(qū)別。實體類代表的是業(yè)務對象中需要計算機系統(tǒng)處理的部分,它反映的信息必須是對開發(fā)者在設計和實現(xiàn)系統(tǒng)時有用。具體到本例中,實體類是存儲器材、供應商和相關單據(jù)信息的類,可以從各
11、個用例的交互圖中抽取與計算機處理相關的對象轉(zhuǎn)化而來,有供應商類、器材類、操作員類、入庫單類、出庫單類、退貨單類、檢驗單類。而邊界類主要是與用戶交互界面相關的類,有報表窗體類、入庫單窗體類、出庫單窗體類等??刂祁愑袉螕?jù)錄入窗體控制類和輸出窗體控制類,負責協(xié)調(diào)、處理實體類和邊界類間的通訊。下面是庫存系統(tǒng)的分析類圖:從上面這個類圖中,將每個實體類轉(zhuǎn)化為數(shù)據(jù)庫中每個數(shù)據(jù)表,實體類的屬性就是數(shù)據(jù)表的字段,可以唯一的標識、區(qū)分每個實體類的不同對象的屬性就是數(shù)據(jù)表的候選鍵。實體類間的相互關系就是數(shù)據(jù)庫中各個表之間的關系:如果兩個實體類相關聯(lián),則對應的兩個數(shù)據(jù)表之間就存在主鍵和外部鍵的關聯(lián)關系;如果兩個實體類
12、是繼承關系,則對應轉(zhuǎn)化為數(shù)據(jù)表時,父類不轉(zhuǎn)化為表,子類繼承父類的屬性并轉(zhuǎn)化為數(shù)據(jù)表。這樣就自然導出了關系數(shù)據(jù)庫的設計:入庫單(入庫單編號、供應商、入庫日期、操作員、器材編碼、單位、單價、數(shù)量、金額);候選鍵:入庫單編號,外部鍵:器材編碼出庫單(出庫單編號、領用部門、領料人、出庫日期、操作員、器材編碼、單位、數(shù)量、金額);候選鍵:出庫單編號,外部鍵:器材編碼檢驗單(檢驗單編號、檢驗日期、檢驗員、器材編碼、單位、數(shù)量、檢驗結果);候選鍵:檢驗單編號,外部鍵:器材編碼退貨單(退貨單編號、供應商、入庫日期、退貨日期、退貨原因、操作員、器材編碼、單位、單價、數(shù)量、金額);候選鍵:退貨單編號,外部鍵:器材
13、編碼器材(器材名稱、器材編碼、牌號、規(guī)格、單位、類別、平均單價、數(shù)量、存放庫號、存放貨位號、最新盤點日期、最低儲備量);候選鍵:器材編碼操作員(操作號、密碼、姓名、部門、權限);候選鍵:操作號供應商(供應商編碼、供應商名稱、性質(zhì)、供貨類型、供貨質(zhì)量、供應商地址、聯(lián)系方式、備注)。候選鍵:供應商編碼進行到這一步,我們已經(jīng)分析出了系統(tǒng)實現(xiàn)時需要的類和相互間的關系,接著在此基礎上進行細化和編程就可以實現(xiàn)軟件。這與本文要說明的主題無關,這里就不再繼續(xù)介紹了。4 結束語使用這種面向?qū)ο蟮慕9ぞ叩玫降臄?shù)據(jù)庫結構與使用傳統(tǒng)E-R圖法得到的結果是一致的。我們在沈陽飛機工業(yè)集團的器材供應處的物資供應系統(tǒng)項目中已經(jīng)使用了這種方法來設計數(shù)據(jù)庫,效果很好。面向?qū)ο蠓椒◤膶ο蟮挠^點來對系統(tǒng)中涉及數(shù)據(jù)項進行劃分,由于對象和類本身的封裝性和獨立性,可能在一定程度上減少了數(shù)據(jù)的冗余。而且使用這種方法設計數(shù)據(jù)庫,可以在整個系統(tǒng)的分析設計過程中就完成數(shù)據(jù)庫的設計工作,是一個可值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京市政道路路面施工方案
- 衛(wèi)生間橡皮金防水施工方案
- 退股協(xié)議方案
- 上承式鋼箱拱橋施工方案
- 蒸汽管道下穿鐵路施工方案
- 水庫堤壩加固工程施工方案
- 鐵路變配電所維修施工方案
- 構建健全的外商投資服務體系的策略
- 發(fā)展中醫(yī)藥服務與傳統(tǒng)醫(yī)療模式的策略及實施路徑
- 低空經(jīng)濟的市場前景
- 2025年中儲糧吉林分公司招聘(74人)筆試參考題庫附帶答案詳解
- 2024年版《輸變電工程標準工藝應用圖冊》
- c語言期末機考(大連理工大學題庫)
- 干部管理訪談提綱
- CQI-11審核表
- 材料小樣確認單
- 淺談如何處理好高中有機化學在必修和選修模塊中的教學
- 拖拉管工程專項施工方案(完整版)
- 康復治療專業(yè)實習方案.doc
- 長春中澳城物流園區(qū)運營策劃
- 輕鋼龍骨隔墻隱蔽
評論
0/150
提交評論