(软件工程复习核心重点)第十章面向对象设计-第五节:设计数据管理子系统和设计类中的服务
文章目錄
- 一:設(shè)計數(shù)據(jù)管理子系統(tǒng)
- (1)概念
- (2)選擇數(shù)據(jù)存儲管理模式
- A:文件管理系統(tǒng)
- B:關(guān)系數(shù)據(jù)庫管理系統(tǒng)
- C:面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)
- (3)設(shè)計數(shù)據(jù)管理子系統(tǒng)
- A:設(shè)計數(shù)據(jù)格式
- B:設(shè)計相應(yīng)的服務(wù)
- 二:設(shè)計類中的服務(wù)
- (1)確定類中應(yīng)有的服務(wù)
- A:確定服務(wù)的總體思想
- B:確定操作目標對象的啟發(fā)規(guī)則
- C:確定處理歸屬的啟發(fā)規(guī)則
- (2)設(shè)計實現(xiàn)服務(wù)的方法
- A:設(shè)計實現(xiàn)服務(wù)的算法
- B:選擇數(shù)據(jù)結(jié)構(gòu)
- C:算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)系
- D:定義內(nèi)部類和內(nèi)部操作
一:設(shè)計數(shù)據(jù)管理子系統(tǒng)
(1)概念
數(shù)據(jù)庫管理子系統(tǒng):是系統(tǒng)存儲或檢索對象的基本設(shè)施,它建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲管理模式的影響
(2)選擇數(shù)據(jù)存儲管理模式
A:文件管理系統(tǒng)
- 優(yōu)點:文件管理系統(tǒng)是操作系統(tǒng)的一個組成部分,使用它長期保存數(shù)據(jù)具有成本低和簡單的優(yōu)點
- 缺點:文件操作的級別低,為提供適當?shù)某橄蠹墑e還必須編寫額外的代碼,不同操作系統(tǒng)的文件管理系統(tǒng)往往有明顯差異
B:關(guān)系數(shù)據(jù)庫管理系統(tǒng)
優(yōu)點:
- 理論基礎(chǔ)堅實
- 提供了各種最基本的數(shù)據(jù)管理功能,例如中斷恢復,多用戶共享,多應(yīng)用共享,完整性,事務(wù)支持等
- 為多種應(yīng)用提供了一致的接口
- 標準化的語言
缺點:
- 運行開銷大:即使完成簡單的事務(wù),也需要較長的時間
- 不能滿足高級應(yīng)用的需求:關(guān)系數(shù)據(jù)庫管理系統(tǒng)是為商務(wù)應(yīng)用服務(wù)的,商務(wù)應(yīng)用中數(shù)據(jù)量雖大但數(shù)據(jù)結(jié)構(gòu)卻比較簡單
- 與程序設(shè)計語言的連接不自然: SQL語言支持面向集合的操作,是一種非過程化的語言;然而大多數(shù)程序設(shè)計語言本質(zhì)上卻是過程性的,每次只能處理一個記錄
C:面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)
- 擴展的關(guān)系數(shù)據(jù)庫管理系統(tǒng):在關(guān)系數(shù)據(jù)庫的基礎(chǔ)上,增加了抽象數(shù)據(jù)類型和繼承機制,此外還增加了創(chuàng)建及管理類和對象的通用服務(wù)
- 擴展的面向?qū)ο蟪绦蛟O(shè)計語言:擴充了面向?qū)ο蟪绦蛟O(shè)計語言的語法和功能,增加了在數(shù)據(jù)庫中存儲和管理對象的機制。可以使用統(tǒng)一的面向?qū)ο笥^點進行設(shè)計,不需要區(qū)分存儲數(shù)據(jù)結(jié)構(gòu)和程序數(shù)據(jù)結(jié)構(gòu)
(3)設(shè)計數(shù)據(jù)管理子系統(tǒng)
A:設(shè)計數(shù)據(jù)格式
文件系統(tǒng):
- 定義第一范式表:列出每個類的屬性表;把屬性表規(guī)范成第一范式, 從而得到第一范式表的定義
- 為每個第一范式表定義一個文件
- 測量性能和需要的存儲容量
- 修改原設(shè)計的第一范式,以滿足性能和存儲需求
關(guān)系數(shù)據(jù)庫管理系統(tǒng):
- 定義第三范式表:列出每個類的屬性表;把屬性表規(guī)范成第三范式,從而得出第三范式表的定義
- 為每個第三范式表定義一個數(shù)據(jù)庫表
- 測量性能和需要的存儲容量
- 修改先前設(shè)計的第三范式,以滿足性能和存儲需求
面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng):
- 擴展的關(guān)系數(shù)據(jù)庫途徑:使用與關(guān)系數(shù)據(jù)庫管理系統(tǒng)相同的方法
- 擴展的面向?qū)ο蟪绦蛟O(shè)計語言途徑:不需要規(guī)范化屬性的步驟
B:設(shè)計相應(yīng)的服務(wù)
文件系統(tǒng):
-
被存儲的對象需要知道打開哪個文件,怎樣把文件定位到正確的記錄上,怎樣檢索出舊值,以及怎樣用現(xiàn)有值更新它們
-
定義一個 ObjectServer類,并創(chuàng)建它的實例
關(guān)系數(shù)據(jù)庫管理系統(tǒng):
-
被存儲的對象,應(yīng)該知道訪問哪些數(shù)據(jù)庫表,怎樣訪問所需要的行,怎樣檢索出舊值,以及怎樣用現(xiàn)有值更新它們
-
定義一個 ObjectServer類,并聲明它的對象
面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng):
- 擴展的關(guān)系數(shù)據(jù)庫途徑:使用與關(guān)系數(shù)據(jù)庫管理系統(tǒng)相同的方法
- 擴展的面向?qū)ο蟪绦蛟O(shè)計語言途徑:無須增加服務(wù),只需給長期保存的對象加個標記,然后由面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)負責存儲和恢復這類對象
二:設(shè)計類中的服務(wù)
(1)確定類中應(yīng)有的服務(wù)
A:確定服務(wù)的總體思想
- 對象模型是進行對象設(shè)計的基本框架。必須把動態(tài)模型中對象的行為以及功能模型中的數(shù)據(jù)處理轉(zhuǎn)換成由適當?shù)念愃峁┑姆?wù)
- 動態(tài)模型中狀態(tài)圖中的狀態(tài)轉(zhuǎn)換執(zhí)行對象服務(wù)的結(jié)果
- 功能模型指明了系統(tǒng)必須提供的服務(wù)
B:確定操作目標對象的啟發(fā)規(guī)則
- 如果某個處理的功能是從輸入流中抽取一個值,則該輸入流就是目標對象
- 如果某個處理具有類型相同的輸入流和輸出流,而且輸出流實質(zhì)上是輸入流的另一種形式,則該輸入輸出流就是目標對象
- 如果某個處理從多個輸入流得出輸出值,則該處理是輸出類中定義的一個服務(wù)
- 如果某個處理把對輸入流處理的結(jié)果輸出給數(shù)據(jù)存儲或動作對象,則該數(shù)據(jù)存儲或動作對象就是目標對象
C:確定處理歸屬的啟發(fā)規(guī)則
- 如果處理影響或修改了一個對象,則最好把該處理與處理的目標聯(lián)系在一起
- 考察處理涉及的對象類及這些類之間的關(guān)聯(lián),從中找出處于中心地位的類
(2)設(shè)計實現(xiàn)服務(wù)的方法
A:設(shè)計實現(xiàn)服務(wù)的算法
- 算法復雜度:選用復雜度較低(效率較高)的算法,但不能過分追求高效率,應(yīng)以能滿足用戶需求為準
- 容易理解與容易實現(xiàn):容易理解與容易實現(xiàn)的要求往往與高效率有矛盾,設(shè)計者應(yīng)該對這兩個因素適當折衷
- 易修改:預(yù)測將來可能做的修改,并在設(shè)計時預(yù)先做些準備
B:選擇數(shù)據(jù)結(jié)構(gòu)
選擇能夠方便、有效地實現(xiàn)算法的物理數(shù)據(jù)結(jié)構(gòu)
C:算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)系
- 分析問題尋找數(shù)據(jù)特點,提煉出所有可行有效的算法
- 定義與所提煉算法相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)
- 依據(jù)此數(shù)據(jù)結(jié)構(gòu)進行算法的詳細設(shè)計
- 進行一定規(guī)模的實驗與評測
- 確定最佳設(shè)計
D:定義內(nèi)部類和內(nèi)部操作
增添一些用來存放在執(zhí)行算法過程中所得出的中間結(jié)果的類,其需求陳述中沒有提到。復雜操作往往可以用簡單對象上的更低層操作來定義,因此,在分解高層操作時常常引入新的低層操作
總結(jié)
以上是生活随笔為你收集整理的(软件工程复习核心重点)第十章面向对象设计-第五节:设计数据管理子系统和设计类中的服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dorado
- 下一篇: (数据库系统概论|王珊)第十一章并发控制