軟件測試面向對象軟件工程方法學實踐[3] 軟件測試工具
關鍵字:面向對象 分布對象
問題4 如何處理對象模型面向對象關系數據庫模式的映射?
面向對象的數據庫設計方法可以用于各種數據庫,如層次型、網絡型、關系型,當然也包括面向對象型。OOSE 中的數據庫設計無疑必須采用面向對象的數據庫設計方法。
數據庫設計也稱數據庫模式,基本上由3個層次的模式構成:從特定DB應用角度來看待DB設計的外部模式;從組織或企業角度出發進行的DB設計即概念模式;處理對應特定 DBMS 特征與局限性的DB設計即內部模式。具體而言,內部模式是數據庫的SQL定義,邏輯模式是表集合的邏輯定義,外部模式是從特定應用角度看的局部DB。外部模式與邏輯模式之間的接口是視圖、存儲過程或其他駐在服務器端的DB處理程序。
如果在抽象出的對象模型中,各個應用分別是一個或多個超類對象的子對象,那么,選擇適當細分層次的對象模型將其映射到概念模型,是數據庫庫表對象設計的關鍵。外部模式與概念模式之間的接口越少、越簡單越好,這樣的程序設計簡單,數據庫和程序都易于維護。也就是說,局部化是個重要的設計原則。
OOP多是數據庫的后端處理,是基于既存數據庫的。因此無論是否進行過問題世界的對象建模,以及是否將對象模型合理地映射到數據庫邏輯模式 (面向對象數據庫設計),OOP 都可以工作。
問題5 編程時是否先調查有無可重用 (繼承) 對象,是否參與下層對象對上層對象、超類對象的反饋?
埋頭于自己分擔的程序對結構化方法或許是必須的,但在面向對象方法中擔任程序設計的開發人員,應該先去調查對象數據辭典中有無其他開發人員已經完成、自己稍加特化就可重用的對象。從總體上說,對象的共享、重用應該由上層設計人員統一管理,以便保證對象風格的一致性,避免沖突。但是,對象的獨立性、封裝性和多態性都很便于重用,這是結構化系統所不能比擬的,而重用是軟件開發方法學的最重要思想之一。上層設計人員往往不可能面面俱到,懂得軟件設計理論的開發人員,即使只開發下層程序也應采用最省力、最有效率的編程方法,即大量使用重用對象。
在繼承超類對象和重用他人對象時,若發現有設計不合理的地方,應該及時反映給對象開發的承擔者。
對上層設計人員來說,一方面應該鼓勵程序實現人員重用既存對象,另一方面應通過開發人員共享對象數據辭典,使個別的對象重用能夠立即反映到整體對象模型中,以保證設計變更時的一致性。
二、面向對象方法與結構化方法比較
分析是問題抽象 (做什么),設計是問題求解 (怎么做),實現是問題的解 (結果)。任何方法學對客觀世界的抽象和求解過程都是如此。在問題抽象階段,結構化方法面向過程,按照數據變換的過程尋找問題的結點,對問題進行分解。因此,與面向對象方法強調的對象模型不同,描述數據變換的功能模型是結構化方法的重點。如果問題世界的功能比數據更復雜或者更重要,那么結構化方法仍然應是首選的方法學。如果數據結構復雜且變換并不多,那么如以過程主導分析和設計,一旦有系統變更就會給下游開發帶來極大混亂。
由于對過程的理解不同,面向過程的功能細分所分割出的功能模塊有時會因人而異。而面向對象的對象細分,從同一問題領域的對象出發,不同人得出相同結論的比率較高。
在設計上,結構化方法學產生自頂向下、結構清晰的系統結構。每個模塊有可能保持較強的獨立性,但它往往與數據庫結構相獨立,功能模塊與數據庫邏輯模式間沒有映射關系,程序與數據結構很難封裝在一起。如果數據結構復雜,模塊獨立性很難保證。面向對象方法抽象的系統結構往往并不比結構化方法產生的系統結構簡單,但它能映射到數據庫結構中,很容易實現程序與數據結構的封裝。
在軟件工程基本原則中有一條“形式化原則”,即對問題世界的抽象結論應該以形式化語言 (圖形語言、偽碼語言等) 表述出來。結構化方法可以用數據流圖、系統結構圖、數據辭典、狀態轉移圖、實體關系圖來進行系統邏輯模型的描述;而面向對象方法可以使用對象模型圖、數據辭典、動態模型圖、功能模型圖。其中對象模型圖近似系統結構圖與實體關系圖的結合,動態模型圖類似狀態遷移圖,功能模型圖類似數據流圖。
文章來源于領測軟件測試網 http://www.kjueaiud.com/