談計算機資訊隱蔽性設計

才智咖 人氣:1.61W
談計算機資訊隱蔽性設計
摘要:包含在計算機模組內的資訊對於無需這些信.g-的其他模組是不可存取的,即將不需要的資訊都隱藏起來,只允許其他模組知道其本身所需的資訊。這樣可以使問題求解簡單化,從而達到好理解、好實現、好驗證、好重用的目標。它可以從整體上保證計算機軟體的質量,降低計算機軟體的開發和維護成本。

關鍵詞:隱蔽原則;抽象原則;關係;物件;黑盒

有關計算機軟體工程的隱蔽原則一般是這樣描述的:包含在模組內的資訊對於無需這些資訊的其他模組是不可存取的,即將不需要的資訊都隱藏起來,只允許其他模組知道其本身所需的資訊。
如果說最簡單的就是最好的,那麼計算機資訊隱蔽性最強的就是最簡單的。從方法學的總結到推廣,從軟體設計到軟體實現,從手工開發到工具輔助,資訊隱蔽原則無時無處不發揮著極有效的指導作用。
l 計算機隱蔽原則與其他原則的統一
1.1 方法學都基於軟體工程基本原則
基本原則是行為所依據的法則和規範。無論什麼方法學從知識工程角度來說,都是運用軟體工程方法學基本原則的規則、策略及工具的集合。其中抽象原則是最重要的,它給出軟體工程問題求解全過程的最基本原則,其他原則是對抽象原則的補充。
指導如何抽象的基本原則大體上可以分為體系規範原則和模組規範原則兩類。前者是規範整體解題思路及解得驗證,包括形式化原則、分割原則、層次原則、概念完整性原則、完備性原則;後者則是與子問題有關的原則,包括隱蔽原則、區域性化原則、邏輯獨立性原則。物件導向的“關係”抽象較多受前者規範,“物件”抽象較多受後者規範。
1.2 基本原則間的相互關聯
雖然可以做“體系規範”和“模組規範”的大體分類,但基本原則之間並不是無關的,而是整體與區域性間的相互制約,形成一個統一體。
要求將資訊最大限度地隱蔽在計算機模組內的隱蔽原則,使模組內部資訊封裝化、模組的外部形象黑盒化,與外部的關係最少,所以使滿足體系抽象原則的抽象過程和驗證工作簡單化,同時也很容易滿足模組規範的其他原則,如區域性化原則和邏輯獨立性原則。
例如將具有多重關聯的多個數據庫表的條件組合查詢,
由一個駐在伺服器端的儲存過程來統一完成。客戶端使用者可以在同一個視窗上對數十項多層交叉的查詢條件任意選擇組合,將選定條件送給相應儲存過程。從外部來看,儲存過程的任務極為單純,即根據指定條件找出所有符合條件的記錄,將結果寫到一個有共享結構的工作表中,然後把查詢正常與否的訊息通報給客戶端的`呼叫程式。該程式接到正常查詢結束訊息後,到指定暫時存放查詢結果的工作表中,按一定格式取出結果並報告給使用者。
我認為,這是一個全面符合軟體工程基本原則的設計典範,而其關鍵技術是資訊隱蔽設計。首先是遵循隱蔽原則將具有複雜關係結構的多個數據庫表的操作和庫表結構封裝在一起,實現了完全的資訊隱蔽。由於高度資訊隱蔽的實現使這一組相關庫表的所有多層交叉組合結構有可能在一個物件中完成,高度滿足了局部化原則。由於它的功能單純、明確,資料庫表間介面通過對相應儲存過程傳遞引數來完成,屬於內聚性最強的功能內聚和耦合性最弱的資料耦合,因而具有很好的邏輯獨立性。
不難想象,幾十項查詢條件的組合,查詢結果顯示方式達三四十種是很正常的。由於在區域性化、功能獨立化原則下應用物件只是抽象成一個超類視窗物件,在資訊隱蔽設計支援下,這三四十種結果顯示功能可以全部相互獨立地掛在查詢父視窗下,自然地滿足了分割原則、層次原則、概念完整性原則等體系規範原則。
2 資訊隱蔽性設計的目的和優越性
2.1 目的
探討資訊隱蔽性設計的目的是:分析將資訊隱蔽起來有什麼好處,以便使問題求解簡單化。
2.1.1 好理解
一般的複雜問題有兩個特徵,一是解題要參照的介面太多、太複雜,二是解題的方法太複雜。那麼要想使之簡化,無非是從問題介面和問題解法上人手。將複雜的介面資訊與複雜演算法隱蔽起來,剩下的自然是簡單的。換句話說就是實現物件的外部資料結構與演算法的封裝。