軟件設計思想發展--簡介

        自從20世紀70年代起,軟件設計基本進入了面向過程的時代。面向過程的設計思想解除了軟件本身和機器內存,寄存器,地址之間的耦合·。也在同一時期,軟件工程開始被開發者和研究者進行研究,之後進行一系列的設計方法被提出,以降低模塊之間的耦合,提高代碼的重用率。對於面向過程的設計思想而言,代碼以函數爲基本模塊,但是由於數據被全局共享,導致了某個函數的變化會影響整個系統的其他函數。而這一情況在面向對象的設計思想被提出後得到改善,面向對象的思想把數據和行爲(函數)封裝在對象之中。在保持對象對外特徵不變的情況下,對象內部數據的更改或行爲的重構,將不再影響系統中的其他對象。在面向對象思想被普遍接受之後,軟件設計模式得到了較大的發展。Gof的設計模式中,把面向對象的特徵:繼承,多態,封裝使用到了極致,面向對象的設計思路是軟件設計思路發展的極致,最大程度地降低了系統模塊之間的解耦。面向對象的設計思路是軟件設計思想發展中的一個里程碑,時至今日,它依然是模塊開發的基本思想。

       但是面向對象的設計思想在企業系統開發中依然暴露出弊端,(1)首先對象的傳遞問題。當對象跨越進程或者主機時,系統需要對對象進行特殊的處理(序列化和反序列化);其次(2)是版本問題,由於傳統的面向對象設計思路並沒有考慮類型的版本定義,這樣在系統中某些類型進行重新部署或升級時,就會不可避免地產生錯誤,這無疑是模塊之間耦合的一個表現。

        爲了進一步降低降低系統內模塊之間的耦合,面向服務(SOA)的思想應運而生。大約在2000年初,面向服務的設計思想正式被提出,用服務來作爲系統的最基本模塊。面向服務相對於面向對象而言,引入了技術無關性,平臺無關性,進一步降低了模塊與模塊之間的耦合。就目前來說,SOA的思想非常適合企業系統的開發。但值得說明的是,在目前的主流設計中,服務的設計還保持在粗粒度的情況。而在服務內部,仍主要使用面向對象的思想來設計。

        再次回顧軟件設計思想的發展過程,一個始終貫徹的規律是,軟件設計思路的發展實現的是模塊之間的解耦,但同時犧牲的是系統運行的效率。這條規律不僅適合用於過去,也同樣適用於將來的發展趨勢,設計思路的發展本質是用效率換取靈活性。而之所以以這樣的規律進行發展,背後的原因是計算機硬件技術的不斷髮展。

 

                                 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章