顏穎智
通常我們所說(shuō)的計(jì)算機(jī)軟件工程的隱蔽原則是指:模塊對(duì)于其他模塊隱藏不必要的信息,同時(shí)允許對(duì)方獲取其必要信息。
1.計(jì)算機(jī)隱蔽原則要與計(jì)算機(jī)的其他原則相統(tǒng)一
1.1 都是在軟件工程基本原則的基礎(chǔ)上發(fā)展的方法
基于知識(shí)工程理論,方法學(xué)采用了軟件工程方面相關(guān)理論與原則。一般來(lái)說(shuō)行為所依據(jù)的規(guī)范和法則屬于基本原則,但是在計(jì)算機(jī)軟件工程中抽象原則卻是極其重要的。抽象原則可以通過其他原則的補(bǔ)充,解決軟件工程的的基本問題,同時(shí)可分為模塊規(guī)范原則和體系規(guī)范原則。前者是與子問題有關(guān)的原則,包括隱蔽原則、邏輯獨(dú)立性原則、局部化原則;后者則是規(guī)范整體解得驗(yàn)證及解題思路,包括分割原則、形式化原則、概念完整性原則、層次原則、完備性原則;
1.2 基本原則間的相互關(guān)聯(lián)
即使存在兩大分類,基本原則之間也是密切聯(lián)系、局部與整體間相互制約,形成一個(gè)相互關(guān)聯(lián)且相互限制的統(tǒng)一體。隱蔽原則就在計(jì)算機(jī)內(nèi)將信息隱蔽最大化,將外部形象模糊化,隔絕模塊與外部關(guān)聯(lián)。因此通過將抽象原則簡(jiǎn)單化就使輕松便捷的滿足如邏輯獨(dú)立性和局部化等模塊規(guī)范的其他原則,。
2.信息隱蔽的設(shè)計(jì)原則
2.1 目標(biāo)
通過信息隱蔽簡(jiǎn)化問題解決過程
2.1.1容易實(shí)現(xiàn)
由于解決問題沒有采用正確的方法,或則在解決問題時(shí)參照的標(biāo)準(zhǔn)復(fù)雜,造成問題解決復(fù)雜化
然而,尋求簡(jiǎn)化,即要實(shí)現(xiàn)對(duì)象的算法與外部數(shù)據(jù)結(jié)構(gòu)的封裝。必須從從兩個(gè)方面入手,一是隱蔽問題的解決方法,一是隱蔽問題接口。好實(shí)現(xiàn)即實(shí)現(xiàn)算法簡(jiǎn)化。通過在一個(gè)封裝的模塊對(duì)象存入復(fù)雜的算法,操作者無(wú)須知道模塊內(nèi)部的具體運(yùn)行步驟,只需要知道使用方法和模塊的作用,運(yùn)用模塊便可以得到所要求的輸出結(jié)果,使得要解決的問題簡(jiǎn)化。
2.1.2通俗易懂
將基本原則撰寫的通俗易懂是軟件工程中最重要的工作。經(jīng)過分析和把握用戶需求,理解需求,理解軟件設(shè)計(jì),開發(fā)過程才最終完成。而這個(gè)三個(gè)過程都需要使相關(guān)人員輕松掌握和理解。每一個(gè)過程,都是開發(fā)人員根據(jù)自己的理解和和想法將抽象化的結(jié)果變得更加簡(jiǎn)化以促使下一個(gè)流程的人員減輕工作負(fù)擔(dān)。因此,一個(gè)軟件開發(fā)過程的效率可以以上一個(gè)流程的簡(jiǎn)化成效來(lái)決定。上一個(gè)流程遺留的問題越少,下一個(gè)流程的工作越輕松,問題接口越少。
2.1.3 好驗(yàn)證
好理解,易于實(shí)現(xiàn)的問題并不見得好驗(yàn)證起。在實(shí)際操作中對(duì)于較多數(shù)據(jù)項(xiàng)和輸入數(shù)據(jù)窗口的應(yīng)用程序,設(shè)計(jì)許多的功能熱鍵用戶接口,則會(huì)使測(cè)試十分困難。黑盒測(cè)試的出發(fā)點(diǎn)即是多個(gè)功能熱鍵、多個(gè)輸入數(shù)據(jù)窗口、多種激活方式和數(shù)據(jù)項(xiàng)前后之間控制跳轉(zhuǎn),在此過程中每個(gè)控制節(jié)點(diǎn)都會(huì)遞增。一般較為復(fù)雜的軟件應(yīng)用,測(cè)試用例也會(huì)在200類以上。
2.1.4 好重用
好重用即是從更高層次上審視信息隱蔽性。設(shè)計(jì)成效如何,可以通過能否將算法復(fù)雜的對(duì)象泛化為超類對(duì)象,實(shí)現(xiàn)測(cè)試來(lái),能否子類貢獻(xiàn)父類的測(cè)試來(lái)衡量。這是一種重用方案。好實(shí)現(xiàn)、好理解、好驗(yàn)證的必然結(jié)果即是好重用。
2.2 優(yōu)越性
優(yōu)越性主要體現(xiàn)在兩個(gè)方面,較少的維護(hù)成本和開發(fā)成本。
1)隱蔽復(fù)雜算法到公共超類,就會(huì)騰出來(lái)更多的精力和智力統(tǒng)一設(shè)計(jì)公共超類對(duì)象、優(yōu)化代碼和優(yōu)化設(shè)計(jì)、測(cè)試和修正,保證設(shè)計(jì)和實(shí)現(xiàn)。同時(shí)可以提高可保證數(shù)據(jù)安全、易于維護(hù),從而整體上使維護(hù)成本降低、確保軟件完成后的質(zhì)量。
2)避免重復(fù)勞動(dòng),降低編程難度,放寬了對(duì)程序員經(jīng)驗(yàn)和技術(shù)熟練程度的要求,減少開發(fā)工作量以及交流信息和指導(dǎo)說(shuō)明的工作量。
通過上述過程,我們只得到一個(gè)樁程序,是一個(gè)與復(fù)雜數(shù)據(jù)庫(kù)結(jié)構(gòu)封裝在一起的查詢存儲(chǔ)過程。它是個(gè)黑盒子,在實(shí)際中并沒有放到服務(wù)器端。但是他有利于操作,人們只要輸入數(shù)據(jù)檢測(cè)就可以了。
3.信息隱蔽性設(shè)計(jì)的思路與實(shí)踐
信息隱蔽并不是方法而是一個(gè)原則,是設(shè)計(jì)優(yōu)化的一種表現(xiàn)。按照這個(gè)原則設(shè)計(jì)的系統(tǒng)具有信息隱蔽特性。追求信息隱蔽是我們的最終原則,不管是對(duì)象方法和結(jié)構(gòu)化方法,都要體現(xiàn)這一原則。
3.1 隱蔽性設(shè)計(jì)的適用場(chǎng)合
一般來(lái)說(shuō),如果可以使復(fù)雜問題簡(jiǎn)單化,都應(yīng)該才用信息隱蔽性來(lái)設(shè)計(jì)實(shí)現(xiàn)。重復(fù)導(dǎo)致了問題的復(fù)雜化。因此對(duì)共同處理、共同事件、采用隱蔽性設(shè)計(jì)。譬如“檢驗(yàn)輸入數(shù)據(jù)”、“事件打開”、“事件退出”、“轉(zhuǎn)移控制熱鍵”、“打印處理”、“系統(tǒng)信息輸出處理”等,以至于對(duì)打印報(bào)表的“制表時(shí)間與頁(yè)號(hào)編輯”等共同事件都可進(jìn)行共同處理。通過把復(fù)雜的概念、算法、用戶沒有權(quán)限的功能隱蔽起來(lái),可以確保數(shù)據(jù)安全。
3.2信息隱蔽實(shí)現(xiàn)手段 .
隱蔽黑盒是指實(shí)現(xiàn)信息隱蔽的物理范圍。因此可以通過隱蔽黑盒的調(diào)用與實(shí)現(xiàn)方法來(lái)實(shí)現(xiàn)信息隱蔽,一般通過函數(shù)、超類對(duì)象、存儲(chǔ)過程、語(yǔ)句系列等手段。綜上所述,重用單元和隱蔽黑盒是一個(gè)問題的兩個(gè)方面。重用單元越多,軟件開發(fā)也就越簡(jiǎn)單。隱蔽黑盒與數(shù)據(jù)相關(guān),一般選擇將其放在服務(wù)器端,而非客戶端。在未來(lái)計(jì)算機(jī)的發(fā)展中,隱藏黑盒有著廣闊的發(fā)展前景。