與結構化方法比較有何優點?
結構化分析設計方法遵循面向過程的問題求解方法,其中心思想是用計算機能夠理解的邏輯來描述和表達待解決的問題及其具體的解決過程。結構化的程序設計的核心就是算法加數據結構。 面向過程方法大多基于瀑布模型,需要對整體結構做以通盤的掌握。當用戶的需求發生變化時,整個軟件功能就隨之發生變化,從而導致整個軟件結構的不穩定。
同時,過程分析和數據分析始終是兩個相對獨立的過程,兩者之間存在著明顯的邊界,這個問題始終在結構化方法中終沒解決。 對象是面向對象的程序設計的核心,它由描述狀態的屬性(變量)和用來實現對象行為的方法(函數)組成,完成了從數據模型到處理模型的結合與統一。面向對象方法論的出發點和基本原則是盡可能的模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能的接近人類認識世界解決問題的方法與過程。
結構化的程序設計是一種自上而下的設計方法,設計者用一個主函數概括出整個應用程序需要做的事情主線,并由對一系列子函數的調用組成。以函數為中心。 結構化方法是將系統看成是過程的集合,過程與數據實體之間交互,過程接受輸入并產生輸出; 面向對象方法則不再把程序看成工作在數據上的一系列過程或函數的集合,而是把程序看作是相互協作而又彼此獨立的對象的集合。
從概念方面看,結構化軟件是功能的集合;面向對象軟件是事物對象的集合。 從構成方面看,結構化軟件是過程和數據的集合,以過程為中心;面向對象軟件是數據和相應操作的封裝,以對象為中心。 從運行控制方面看,結構化軟件采用順序處理方式,由過程驅動控制;面向對象軟件采用交互式,并行處理方式,由消息驅動控制。
結構化程序設計特點:
優點: 與非結構化程序相比,結構化程序在調試、可讀性和可維護性等方面都有很大的改進。
缺點:代碼重用性不高:以過程為中心設計新系統,除了一些標準函數,大部分代碼都必須重新編寫。
由于軟、硬件技術的不斷發展和用戶需求的變化,按照功能劃分設計的系統模塊容易發生變化,使得開發出來的模塊的可維護性欠佳。
面向過程模式將數據與過程分離,若對某一數據結構做了修改,所有處理數據的過程都必須重新修訂,這樣就增加了很多的編程工作量。
面向對象的優點:
而面向對象圍繞現實世界的概念來組織模塊,采用對象描述問題空間的實體,用程序代碼模擬現實世界中的對象,使程序設計過程更自然、更直觀。
面向過程是以功能為中心來描述系統,而面向對象是以數據為中心來描述系統。相對于功能而言,數據具有更強的穩定性。
面向對象模擬了對象之間的通信。就象人們之間互通信息一樣,對象之間也可以通過消息進行通信。這樣,我們不必知道一個對象是怎樣實現其行為的,只需通過對象提供的接口進行通信并使用對象所具有的行為功能。而面向過程則通過函數參數和全局變量達到各過程模塊聯系的目的。
面向對象把一個復雜的問題分解成多個能夠完成獨立功能的對象(類),然后把這些對象組合起來去完成這個復雜的問題。采用面向對象模式就象在流水線上工作,我們最終只需將多個零部件(已設計好的對象)按照一定關系組合成一個完整的系統。這樣使得軟件開發更有效率。