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