1. 程式人生 > >面向物件開發方法與面向資料流的結構化開發方法有什麼不同?

面向物件開發方法與面向資料流的結構化開發方法有什麼不同?

(1)結構化開發方法是使用最廣泛、歷史最長的過程化開發方法。結構化開發方法產生過程的抽象,這些抽象把軟體視為

處理流,定義構成一系列步驟的演算法,每一步驟都是帶有預定義輸入和特定輸出的一個過程,把這些步驟串聯在一起可產生合理

的穩定的貫通於整個程式的控制流。這將最終導致一個很簡單的具有靜態結構的體系結構。

(2)在結構化開發方法中,資料結構是應演算法步驟的要求而開發的。資料結構貫穿於過程,提供過程需要傳送給它的操作的資訊。

系統的狀態是一組全域性變數,這組全域性變數保持了狀態的值,把它們從一個過程傳送到另一個過程。

(3)結構化開發方法是一種成熟的應用開發過程。對這種方法已經存在許多支援。然而,在大型系統的開發上和在面向使用者系統的

構造上存在一些問題。改進大型系統開發的技術主要集中在開發資料抽象。日益增多的考慮是使用抽象資料型別,把過程化系統

開發過程包括到資料驅動的方法中。隨著大型系統的開發,接踵而來的問題就是要把過程抽象與資料抽象方法組合起來,這種需要

導致了面向物件開發方法的誕生。

(4)面向物件開發方法是我們分解問題所使用方法演化的結果。在結構化開發方法中過程抽象是優先的,而面向物件開發方法中優先

的是實體,即問題論域的物件。在面向物件開發方法中,把標識和模型化問題論域中的主要實體做為系統開發的起點,主要考慮

物件的行為而不是必須執行的一系列動作。

(5)面向物件系統中的物件是資料抽象與過程抽象的一個混合體。表示這些實體的資料抽象是面向物件設計過程的主要產品,

系統的狀態儲存在各個資料抽象的核心所定義的資料儲存中。控制流被分成塊,並被包括在各個在資料抽象上的各個操作裡面。

不像在結構化開發方法裡那樣,把資料從一個過程傳送到另一個過程,而是控制流從一個數據抽象被傳送到另一個數據抽象。

完成的系統體系結構更復雜但也更靈活。在塊中分離的控制流允許把複雜的動作視為區域性的相互影響。