結構化開發方法與面向對象開發方法的比較編程
咱們百度軟件開發方法,在百科中列舉了8種軟件開發方法,而其中最爲被普遍使用的就是結構化開發方法和麪向對象開發方法,這兩者也是被人們討論的最多的。在這篇博客中,咱們將介紹這兩種開發方法而且將兩者進行比較。架構
結構化方法(SD方法)是一種傳統的軟件開發方法,它是由結構化分析、結構化設計和結構化程序設計三部分有機組合而成的。它的基本思想:把一個複雜問題的求解過程分階段進行,並且這種分解是自頂向下,逐層分解,使得每一個階段處理的問題都控制在人們容易理解和處理的範圍內。模塊化
結構化方法按軟件生命週期劃分,有結構化分析(SA),結構化設計(SD)和結構化實現(SP)。優化
首先來看結構化分析,這種方法是以自頂向下,逐步求精爲基點,以一系列通過實踐的考驗被認爲是正確的原理和技術爲支撐,以數據流圖,數據字典,結構化語言,斷定表,斷定樹等圖形表達爲主要手段,強調開發方法的結構合理性和系統的結構合理性的軟件分析方法。編碼
結構化分析的步驟大概能夠簡單分爲:創建物理模型的數據流圖;推到出邏輯模型的數據流圖;創建人機接口,同時創建可供選擇的目標系統物理模型的數據流圖;肯定各類方案的成本和風險等級,據此對各類方案進行分析;最後選擇一種方案創建完整的需求規約。設計
而結構化設計方法一樣是以自頂向下,逐步求精,模塊化爲基點,以模塊化,抽象,逐層分解求精,信息隱蔽化局部化和保持模塊獨立爲準則的設計軟件的數據架構和模塊架構的方法學。對象
結構化設計的大概步驟爲:評審並細化數據流圖,而後肯定數據流圖的類型;把數據流圖映射到軟件的模塊結構;設計出模塊結構的上層;基於數據流圖逐步分解高層模塊,設計模塊結構的中下層;優化模塊結構;描述模塊接口。繼承
因而整體上咱們能夠發現結構化方法的基本要點即爲自頂向下、逐步求精、模塊化設計和結構化編碼。接口
面向對象方法(Object-Oriented Method)是一種把面向對象的思想應用於軟件開發過程當中,指導開發活動的系統方法,簡稱OO (Object-Oriented)方法,是創建在「對象」概念基礎上的方法學。對象是由數據和允許的操做組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具備類似性質的一組對象。而每繼承性是對具備層次關係的類的屬性和操做進行共享的一種方式。所謂面向對象就是基於對象概念,以對象爲中心,以類和繼承爲構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。生命週期
面向對象方法也能夠像上文中結構化方法同樣劃分爲面向對象分析,面向對象設計還有實現部分的面向對象程序設計。
面向對象分析是是採用面向對象的風格進行系統分析和需求定義的重要方法.面向對象分析的關鍵在於理解問題空間並將其模型化。它可分爲5個階段爲:標識對象;標識結構;標識主題;定義屬性;定義服務。
面向對象設計解決的是「類與相互通訊的對象之間的組織關係,包括它們的角色、職責、協做方式幾個方面。
咱們能夠看到面向對象方法的主要特徵在於封裝型,繼承性和多態性。
首先從設計思想上來看,結構化編程的基本思想就是把大的程序劃分爲若干個相對獨立、功能簡單的程序模塊。它以過程爲中心,強調的是過程,強調功能和模塊化。經過一系列過程的調用和處理完成相應的任務。 面向對象編程以對象爲中心,是對一系列相關對象的操縱,發送消息給對象,由對象執行相應的操做並返回結果,強調的是對象。
從結構上來看,面向對象方法相比於結構化中,上一層依賴下一層,下一層又依賴下下一層,只要底層改變,上層也要跟着改變的層次結構,很好的封裝了變化,外界只需使用對象的接口,而不用管這個接口是如何實現的。結構化方法則是沒有很好的隔離變化。
再者對於數據,結構化方法是直接經過程序來處理數據,處理完畢後便可顯示處理結果。面向對象方法將數據與對應的代碼封裝成一個總體,原則上其它對象不能直接修改其數據。
總的來講,結構化方法比面向對象方法執行效率更高,同時更簡單,更容易上手,更加適用於數據少可是操做多的開發需求中,好比OS和嵌入式系統。而面向對象方法在重用性,擴展性,數據管理保護和易於維護等方面的表現都要好於結構化方法,其應當說更適應以數據爲主的軟件開發需求
[1] 百度百科 baike.baidu.com
[2] 維基百科 zh.wikipedia.org
[3] 《結構化程序設計方法與面向對象的程序設計方法的比較》王德君、郝永芳