接上篇:北京北大青鳥(niǎo)學(xué)校學(xué)術(shù)部提供:
9. 考慮軟件的移植性
移植是軟件開(kāi)發(fā)中一項(xiàng)具體而又實(shí)際的工作。即使僅僅對(duì)軟件進(jìn)行常規(guī)升級(jí),也要把這看得和向另一個(gè)操作系統(tǒng)或數(shù)據(jù)庫(kù)移植一樣重要。 當(dāng)你使用了某個(gè)操作系統(tǒng)的特性,如它的進(jìn)程間通信(IPC)策略,或用某數(shù)據(jù)庫(kù)專有語(yǔ)言寫(xiě)了存儲(chǔ)過(guò)程。你的軟件和那個(gè)特定的產(chǎn)品結(jié)合度就已經(jīng)很高了。好的軟件設(shè)計(jì)者把那些特有的實(shí)現(xiàn)細(xì)節(jié)打包隱藏起來(lái),所以,當(dāng)那些特性該變的時(shí)候,你僅僅需要更新那個(gè)包就可以了。
10. 接受變化
北京北大青鳥(niǎo)學(xué)校認(rèn)為一個(gè)好的軟件設(shè)計(jì)師應(yīng)該將所有系統(tǒng)將可能發(fā)生的變化以及潛在需求記錄下來(lái),以便將來(lái)能夠?qū)崿F(xiàn)通過(guò)在建模期間考慮這些假設(shè)的情況,你就有可能開(kāi)發(fā)出足夠強(qiáng)壯且容易維護(hù)的軟件。設(shè)計(jì)強(qiáng)壯的軟件是你最基本的目標(biāo)。
11.不要低估對(duì)軟件規(guī)模的需求
Internet 帶給我們的最大的教訓(xùn)是你必須在軟件開(kāi)發(fā)的最初階段就考慮軟件規(guī)模的可擴(kuò)充性。今天只有100人的部門使用的應(yīng)用程序,明天可能會(huì)被有好幾萬(wàn)人的組織使用,下月,通過(guò)因特網(wǎng)可能會(huì)有幾百萬(wàn)人使用它。在軟件設(shè)計(jì)的初期,根據(jù)在用例模型中定義的必須支持的基本事務(wù)處理,確定軟件的基本功能。然后,在建造系統(tǒng)的時(shí)候再逐步加入比較常用的功能。在設(shè)計(jì)的開(kāi)始考慮軟件的規(guī)模需求,避免在用戶群突然增大的情況下,重寫(xiě)軟件。
12. 性能僅僅是很多設(shè)計(jì)因素之一
關(guān)注軟件設(shè)計(jì)中的一個(gè)重要因素--性能,這好象也是用戶最關(guān)心的事情。一個(gè)性能不佳的軟件將不可避免被重寫(xiě)。但是你的設(shè)計(jì)還必須具有可靠性,可用性,便攜性和可擴(kuò)展性。你應(yīng)該在工程開(kāi)始就應(yīng)該定義并區(qū)分好這些因素,以便在工作中恰當(dāng)使用。性能可以是,也可以不是優(yōu)先級(jí)最高的因素,我的觀點(diǎn)是,給每個(gè)設(shè)計(jì)因素應(yīng)有的考慮。(北京北大青鳥(niǎo)學(xué)校)
13. 管理接口
“UML User Guide”(Grady Booch,Ivar Jacobson和Jim Rumbaugh ,Addison Wesley, 1999)中指出,你應(yīng)該在開(kāi)發(fā)階段的早期就定義軟件模塊之間的接口。這有助于你的開(kāi)發(fā)人員全面理解軟件的設(shè)計(jì)結(jié)構(gòu)并取得一致意見(jiàn),讓各模塊開(kāi)發(fā)小組相對(duì)獨(dú)立的工作。一旦模塊的接口確定之后,模塊怎樣實(shí)現(xiàn)就不是很重要了。從根本上說(shuō),如果你不能夠定義你的模塊“從外部看上去會(huì)是什么樣子”,你肯定也不清楚模塊內(nèi)要實(shí)現(xiàn)什么。 (北京北大青鳥(niǎo)學(xué)校,未完)