第面向?qū)ο笤O(shè)計(jì)演示文稿_第1頁
第面向?qū)ο笤O(shè)計(jì)演示文稿_第2頁
第面向?qū)ο笤O(shè)計(jì)演示文稿_第3頁
第面向?qū)ο笤O(shè)計(jì)演示文稿_第4頁
第面向?qū)ο笤O(shè)計(jì)演示文稿_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第面向?qū)ο笤O(shè)計(jì)演示文稿當(dāng)前1頁,總共43頁。(優(yōu)選)第面向?qū)ο笤O(shè)計(jì)當(dāng)前2頁,總共43頁。7.1子系統(tǒng)分解水平方向的分解水平方向的分解即是通常所說的分層。一種比較普遍的做法是采用三層體系結(jié)構(gòu),即表示層、業(yè)務(wù)邏輯層及數(shù)據(jù)層。

當(dāng)前3頁,總共43頁。7.1子系統(tǒng)分解各層的職責(zé)表示層的職責(zé)

表示層的主要職責(zé)是向用戶顯示信息,并將從用戶那里獲取的信息解釋成業(yè)務(wù)邏輯層或數(shù)據(jù)源層上的各種動作。當(dāng)前的用戶界面往往是功能完善的圖形用戶界面(GUI)或者是基于HTML的瀏覽器界面。當(dāng)前4頁,總共43頁。7.1子系統(tǒng)分解各層的職責(zé)業(yè)務(wù)邏輯層的職責(zé)

業(yè)務(wù)邏輯層是整個系統(tǒng)的核心。包括根據(jù)輸入數(shù)據(jù)或已有數(shù)據(jù)進(jìn)行計(jì)算,對從表示層輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,以及根據(jù)從表示層接收的命令來確定調(diào)用哪些操作。當(dāng)前5頁,總共43頁。7.1子系統(tǒng)分解各層的職責(zé)數(shù)據(jù)訪問層的職責(zé)

數(shù)據(jù)訪問層的主要職責(zé)是與數(shù)據(jù)源交互,這里的數(shù)據(jù)源可能是數(shù)據(jù)文件、數(shù)據(jù)庫、消息系統(tǒng)或其他應(yīng)用系統(tǒng)。對于大多數(shù)企業(yè)應(yīng)用來說,最主要的數(shù)據(jù)源就是數(shù)據(jù)庫,它的主要職責(zé)是存儲持久數(shù)據(jù)。當(dāng)前6頁,總共43頁。7.1子系統(tǒng)分解垂直方向的分解垂直方向的分解與具體的應(yīng)用領(lǐng)域及應(yīng)用需求有關(guān);通常根據(jù)主題將系統(tǒng)分解成若干個部分,每一部分又可分解為若干個子系統(tǒng)或類,每個子系統(tǒng)還可以由更小的子系統(tǒng)或類組成。初始子系統(tǒng)的分解可以從功能性需求中導(dǎo)出,往往是將功能相關(guān)的類進(jìn)行分組,進(jìn)而明確標(biāo)識出子系統(tǒng)。

當(dāng)前7頁,總共43頁。7.1子系統(tǒng)分解校內(nèi)書店管理系統(tǒng)體系結(jié)構(gòu)當(dāng)前8頁,總共43頁。7.2問題域設(shè)計(jì)面向?qū)ο笤O(shè)計(jì)是以面向?qū)ο蠓治瞿P蜑榛A(chǔ)的。

面向?qū)ο蠓治鏊玫降膯栴}域模型可以直接應(yīng)用于系統(tǒng)問題域部分的設(shè)計(jì)。

當(dāng)前9頁,總共43頁。7.2問題域設(shè)計(jì)對分析類圖進(jìn)行調(diào)整與細(xì)化在設(shè)計(jì)階段,可能需求發(fā)生了變化,也可能是分析與設(shè)計(jì)者對問題本身有了更進(jìn)一步的理解等原因,一般需要對系統(tǒng)分析的結(jié)果進(jìn)行改進(jìn)和增補(bǔ)。

當(dāng)前10頁,總共43頁。7.2問題域設(shè)計(jì)對分析類圖進(jìn)行調(diào)整與細(xì)化對類進(jìn)行調(diào)整:考慮校內(nèi)書店管理系統(tǒng)的初始類圖可以將顧客(Customer)分為學(xué)生(Student)、教師(Teacher)、校外顧客(Other),學(xué)生和教師享有不同的折扣,校外顧客租書則需要繳納押金。租約(Lease)分為日租約(DailyLease)、本租約(BookLease)兩種。

當(dāng)前11頁,總共43頁。7.2問題域設(shè)計(jì)對分析類圖進(jìn)行調(diào)整與細(xì)化補(bǔ)充類的屬性和方法

例如,由于標(biāo)題相同的書可以有多本,為了進(jìn)行區(qū)分,對于圖書(Book)類應(yīng)增加書號(bookNo)屬性,可以使用書本身的ISBN號再加順序號作為書號。書店可以增加營業(yè)時(shí)間(open)和關(guān)門時(shí)間(close)。另外,根據(jù)用例及順序圖來定義類的方法,使得用例圖、類圖及順序圖保持一致性。當(dāng)前12頁,總共43頁。7.2問題域設(shè)計(jì)對分析類圖進(jìn)行調(diào)整與細(xì)化當(dāng)前13頁,總共43頁。7.2問題域設(shè)計(jì)調(diào)整類圖

當(dāng)前14頁,總共43頁。7.2問題域設(shè)計(jì)將對象分組歸入子系統(tǒng)

將對象分組歸入子系統(tǒng)的規(guī)則:將在同一個用例中所明確的對象歸入同一個子系統(tǒng);盡量減少跨越子系統(tǒng)邊界的關(guān)聯(lián)數(shù)目;同一個子系統(tǒng)中的所有對象應(yīng)該是功能相關(guān)的。當(dāng)前15頁,總共43頁。7.2問題域設(shè)計(jì)將對象分組歸入子系統(tǒng)

根據(jù)上面的規(guī)則,可以將BookStore、Bookshelf及Book三個類歸入圖書管理子系統(tǒng);將Customer、Student、Teacher和Other四個類歸入顧客管理子系統(tǒng);將Lease、DailyLease及BookLease三個類歸入租書管理子系統(tǒng)。當(dāng)前16頁,總共43頁。7.2問題域設(shè)計(jì)增加控制類

處理業(yè)務(wù)邏輯的常見方法是在底層的業(yè)務(wù)邏輯模型之上增加控制類。表示層與業(yè)務(wù)邏輯層的交互完全通過控制類。在最簡單的情況下,可以根據(jù)用例來組織控制類。

當(dāng)前17頁,總共43頁。7.2問題域設(shè)計(jì)增加控制類

例如,在校內(nèi)書店管理系統(tǒng)中,針對三個子系統(tǒng)可以增加三個控制類:圖書管理(BookManagement)顧客管理(CustomerManagement)租書管理(LeaseManagement)每個類針對每個用例提供相應(yīng)的方法。當(dāng)前18頁,總共43頁。7.2問題域設(shè)計(jì)增加控制類

當(dāng)前19頁,總共43頁。7.3界面層設(shè)計(jì)界面設(shè)計(jì)方法和原則用戶操縱控制減輕用戶的記憶負(fù)擔(dān)保持界面一致

當(dāng)前20頁,總共43頁。7.3界面層設(shè)計(jì)書店管理系統(tǒng)界面設(shè)計(jì)方案

界面設(shè)計(jì)時(shí)考慮了以下幾個方面:界面簡潔,功能訪問便捷,方便用戶快速進(jìn)入所需的業(yè)務(wù)處理界面;界面布局保持Windows系統(tǒng)界面風(fēng)格,符合用戶使用習(xí)慣,例如通過標(biāo)題欄縮放和關(guān)閉應(yīng)用系統(tǒng),將菜單欄放置在標(biāo)題欄下面;設(shè)計(jì)快捷鍵,可通過鍵盤方式快速進(jìn)入業(yè)務(wù)處理界面。

當(dāng)前21頁,總共43頁。7.3界面層設(shè)計(jì)主界面設(shè)計(jì)方案

當(dāng)前22頁,總共43頁。7.3界面層設(shè)計(jì)圖書管理界面設(shè)計(jì)當(dāng)前23頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫一個普通的類可以映射為一個表或多個表當(dāng)分解為多個表時(shí),可以采用橫切和豎切的方法。豎切常用于實(shí)例較少而屬性很多的對象,將不同分類的屬性映射成不同的表。通常將經(jīng)常使用的屬性放在主表中,而將其他一些次要的屬性放到其他表中。橫切常常用于記錄與時(shí)間相關(guān)的對象,如成績記錄、運(yùn)行記錄等。

當(dāng)前24頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫關(guān)聯(lián)關(guān)系的映射一對一關(guān)聯(lián)的映射:對于一對一關(guān)聯(lián),可以在兩個表中都引入外鍵,這樣兩個表之間可以進(jìn)行雙向?qū)Ш?。也可以根?jù)具體情況,將類組合成一張單獨(dú)的表。一對多關(guān)聯(lián)的映射:可以將關(guān)聯(lián)中的“一”端毫無變化地映射到一張表,將關(guān)聯(lián)中“多”端上的類映射到帶有外鍵的另一張表,使外鍵滿足關(guān)系引用的完整性。當(dāng)前25頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫關(guān)聯(lián)關(guān)系的映射多對多關(guān)聯(lián)的映射:由于記錄的一個外鍵最多只能引用另一條記錄的一個主鍵值,因此關(guān)系數(shù)據(jù)庫模型不能在表之間直接維護(hù)一個多對多關(guān)聯(lián)。為了表示多對多關(guān)聯(lián),關(guān)系模型必須引入一個關(guān)聯(lián)表,將兩個類之間的多對多關(guān)聯(lián)轉(zhuǎn)換成表上的兩個一對多關(guān)聯(lián)。當(dāng)前26頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫繼承關(guān)系的映射單表繼承:為基類及其子類建立一張表。這種方法比較容易實(shí)現(xiàn),并且易于重構(gòu)。子類表繼承:將每個子類映射到一張表,沒有基類表。在每個子類的表中包括基類的所有屬性。這種方法適用于子類的個數(shù)不多,基類屬性比較少的情況。所有類表繼承:將基類映射到一張表,每個子類都映射為一張表。在基類對應(yīng)的表中定義主鍵,而在子類對應(yīng)的表中定義外鍵。當(dāng)前27頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫繼承關(guān)系的映射以上三種選擇并不是相互排斥的,在一個類層次結(jié)構(gòu)中可以混合使用多種模式。例如,可以用單表繼承將幾個類映射到一張表,并且使用類表繼承來處理一些特殊情況。

當(dāng)前28頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫繼承關(guān)系的映射舉例:根據(jù)繼承關(guān)系映射的第三種方法來設(shè)計(jì)數(shù)據(jù)庫表,將采用4張表來存儲;當(dāng)前29頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫Lease類及其子類可采用一張表存儲;BookStore、Bookshelf及Book各用一張表存儲。

當(dāng)前30頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前31頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前32頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前33頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前34頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前35頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前36頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì):將UML類圖映射到關(guān)系數(shù)據(jù)庫當(dāng)前37頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)訪問類設(shè)計(jì)將對數(shù)據(jù)的訪問(如SQL訪問)從業(yè)務(wù)邏輯層中分離出來,并將其放到獨(dú)立的數(shù)據(jù)訪問類中;以數(shù)據(jù)庫中的表結(jié)構(gòu)為基礎(chǔ),每一個數(shù)據(jù)庫表對應(yīng)一個數(shù)據(jù)訪問類;這些類為數(shù)據(jù)表建立了一個入口。應(yīng)用程序的其他部分不需要了解任何與SQL有關(guān)的事情,而且很容易就能找到所有訪問數(shù)據(jù)庫的操作。當(dāng)前38頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)數(shù)據(jù)訪問類設(shè)計(jì)使用入口的方法主要有兩種:行數(shù)據(jù)入口:用面向?qū)ο蟮姆绞絹砜创龜?shù)據(jù),為查詢語句返回的每一行產(chǎn)生一個實(shí)例。表數(shù)據(jù)入口:許多開發(fā)環(huán)境提供記錄集,這是表和數(shù)據(jù)行的一種通用數(shù)據(jù)結(jié)構(gòu),用來模擬數(shù)據(jù)庫的表格式屬性。表數(shù)據(jù)入口提供了查詢數(shù)據(jù)庫的方法,返回一個記錄集。當(dāng)前39頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)行數(shù)據(jù)入口當(dāng)前40頁,總共43頁。7.4數(shù)據(jù)層設(shè)計(jì)表數(shù)據(jù)入口當(dāng)前41頁,總共43頁。本章小結(jié)本章結(jié)合實(shí)例介紹了面向?qū)ο笤O(shè)計(jì)的一般方法。通常要從水平和垂直兩個方向?qū)ο到y(tǒng)進(jìn)行分解。水平方向的分解一般為三層,即界面層、業(yè)務(wù)邏輯層及數(shù)據(jù)層。垂直方向的分解與應(yīng)用領(lǐng)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論