不平凡軟件,始于2014
軟件開發(fā)的基本策略
人們?cè)谔剿鬈浖こ谭椒ǖ膸资昀?,提出了許多軟件開發(fā)的方法,但這些方法都不是嚴(yán)密的理論。我們不應(yīng)該教條地套用方法,更重要的是學(xué)會(huì)"選擇合適的方法"和"產(chǎn)生新方法"。
軟件開發(fā)中的三種基本策略:復(fù)用、分而治之、優(yōu)化與折衷。
1.復(fù)用
對(duì)于建立軟件系統(tǒng)而言,所謂復(fù)用就是利用某些已開發(fā)的、對(duì)建立新系統(tǒng)有用的軟件元素來生成新的軟件系統(tǒng)。在一個(gè)新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地,可以相信成熟的東西總是比較可靠的,而大量成熟的工作可以通過復(fù)用來快速實(shí)現(xiàn),人們應(yīng)該把大部分的時(shí)間用在小比例的創(chuàng)新工作上,而把小部分的時(shí)間用在大比例的成熟工作中,這樣才能把工作做得既快又好。
我們將具有一定集成度并可以重復(fù)使用的軟件組成單元稱為軟構(gòu)件(Software Component),軟件復(fù)用就是直接使用已有的軟構(gòu)件,即可組裝(或加以合理修改)成新的系統(tǒng),而可以不必每次從零做起。一方面,軟件復(fù)用方法合理化并簡化了軟件開發(fā)過程,減少了總的開發(fā)工作量與維護(hù)代價(jià),既降低了軟件的成本又提高了生產(chǎn)率。另一方面,由于軟構(gòu)件是經(jīng)過反復(fù)使用驗(yàn)證的,自身具有較高的質(zhì)量,因此由軟構(gòu)件組成的新系統(tǒng)也具有較高的質(zhì)量。
2.分而治之
分而治之是指把大而復(fù)雜的問題分解成若干個(gè)簡單的小問題,然后逐個(gè)解決。這種樸素的思想來源于人們生活與工作的經(jīng)驗(yàn),也完全適合于技術(shù)領(lǐng)域。諸如軟件的體系結(jié)構(gòu)設(shè)計(jì)、模塊化設(shè)計(jì)都是分而治之的具體表現(xiàn)。
3.優(yōu)化與折衷
軟件的優(yōu)化是指優(yōu)化軟件的各個(gè)質(zhì)量因素,如提高運(yùn)行速度、提高對(duì)內(nèi)存資源的利用率、使用戶界面更加友好、使三維圖形的真實(shí)感更強(qiáng)等等。我們應(yīng)該樹立這樣的正確認(rèn)識(shí):優(yōu)化工作不是可有可無的事情,而是必須要做的事情。
當(dāng)優(yōu)化工作成為一種責(zé)任時(shí),程序員才會(huì)不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。著名的3D游戲軟件Quake,能夠在PC機(jī)上實(shí)時(shí)地繪制高度真實(shí)感的復(fù)雜場(chǎng)景。Quake的開發(fā)者能把很多成熟的圖形技術(shù)發(fā)揮到極致,例如把 Bresenham畫線、多邊形裁剪、樹遍歷等算法的速度提高近一個(gè)數(shù)量級(jí),其技術(shù)水平已經(jīng)遠(yuǎn)勝于目前國內(nèi)領(lǐng)先的圖形學(xué)相關(guān)科研成果。
優(yōu)化工作是十分復(fù)雜的,有時(shí)很難實(shí)現(xiàn)所有目標(biāo)的優(yōu)化,這時(shí)就需要"折衷"策略。軟件的折衷策略是指通過協(xié)調(diào)各個(gè)質(zhì)量因素,實(shí)現(xiàn)整體質(zhì)量的最優(yōu)。
軟件折衷的重要原則是不能使某一方損失關(guān)鍵的職能,更不可以象"舍魚而取熊掌"那樣拋棄一方。例如3D動(dòng)畫軟件的瓶頸通常是速度,但如果為了提高速度而在程序中取消光照明計(jì)算,那么場(chǎng)景就會(huì)喪失真實(shí)感,3D動(dòng)畫也就不再有意義了。
折衷是有原則的,如果濫用折衷的話,那么一旦碰到困難,人們就會(huì)用拆東墻補(bǔ)西墻的方式去折衷,不再下苦功去做有意義的優(yōu)化。所以,我們應(yīng)當(dāng)堅(jiān)持這樣的折衷立場(chǎng):在保證其它因素不差的前提下,使某些因素變得更好。
人們對(duì)軟件存在著許多錯(cuò)誤的觀點(diǎn),這些觀點(diǎn)表面上看起來很有道理,符合人們的直覺,但實(shí)際上給管理者和開發(fā)人員帶來了嚴(yán)重的問題。認(rèn)為正視這些問題上很有必要的。
相關(guān)新聞換一組