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