軟件工程之結構化方法與面向對象方法

  結構化方法包括結構化分析(Structured Analysis,簡稱SA)、結構化設計(Structured Design,簡稱SD)和結構化程序設計(Structured Program Design,簡稱SP)三部份內容。相應地,面向對象方法包括面向對象分析(Object-Oriented Analysis,簡稱OOA)、面向對象設計(Object—Oriented Design,簡稱OOD)和麪向對象程序語言(Object-Oriented Program Design,簡稱OOP)。兩種軟件開發方法從起源、思想、分析、設計,到程序設計、擴展重用、應用等各個方面有着許多的聯繫和區別,下文我將對於本期的這塊學習作一點總結也做爲我複習的一種方式吧。算法

  (一)從分析上看工具

  創建模型是爲了更好地理解要模擬的現實世界,是軟件開發方法的核心問題。在結構化方法中,使用SA構建系統的環境模型和邏輯模型,實現模型的主要工具備數據字典(DD)、ER圖和數據流圖(DFD)。數據字典是一個包含全部系統數據元素定義的倉庫;ER圖描述了數據之間的屬性及聯繫;數據流圖是描述信息流和數據從輸入到輸出變換,並展現系統和外部的接口、數據的輸入和輸出以及數據的存儲的應用圖形技術[1]。SA的前提條件是需求分析,建模過程是迭代分解需求、不斷細化應用的過程,即數據流圖的分解從頂層圖開始,按照每一個加工對應一個子圖的分解原則,逐層分解爲0層圖、1層圖等。學習

  面向對象方法使用OOA定義類,對現實世界建模。OOA的主要任務是要在問題域上構建具備主題層、對象層、結構層、屬性層和服務層的OOA模型,實現模型的主要工具備用例圖(Use-Case)和類圖(Class Diagram)。用例圖從用戶角度描述系統功能,並指出各功能的操做者,是對需求分析的整理;類圖定義了類的組成(屬性和服務)、類的結構和類間的關係,肯定並劃分系統中的類。通過OOA,系統的靜態模型創建起來。優化

  相對於結構化方法使用DD、ER圖和DFD分別描述數據和功能(儘管兩者存在相互參考),面向對象方法中,不管是用例圖仍是類圖,數據和功能的描述老是並行的。spa

  (二)從設計上看設計

  在結構化方法中,使用SD構建系統的行爲和功能模型,實現模型的主要工具備模塊結構圖(SC)和程序流程圖。模塊結構圖說明了系統的模塊的劃分、模塊的功能、模塊間的數據傳遞及調用關係。根據數據流圖,咱們可以映射出相應的軟件的上層模塊結構;結合數據流圖,咱們能夠逐步分解上層模塊,設計出中、下層模塊;對於獲得的所有模塊,咱們須要設計模塊基本的內部結構和外部接口及對模塊結構進行優化。進一步,則是針對每個模塊設計程序流程圖,整理優化,概括算法。SD依然是對項目系統的進一步分解求精的過程,把模型從邏輯級,細化到模塊級,再細化到程序級。對象

  而OOD不僅是對OOA的細化,更主要的,構建了系統的動態模型,實現模型的主要工具備交互圖(Sequence Diagram)、狀態圖(State Diagram)、活動圖(Activity Diagram)。和模塊相比,對象最大的不一樣是具備「活性」,突出表如今對象具備狀態和對象間可以通信。交互圖描述對象間的交互關係,顯示對象之間的動態合做關係,強調對象之間消息發送的時間順序;狀態圖描述對象的全部可能狀態,以及事件發生時狀態的轉移條件;活動圖描述爲知足用例要求所進行的活動以及活動間的約束關係,用於識別並行活動,以提升系統效率[2]。接口

  從設計方面,咱們能夠比較明顯地看出結構化和麪向對象的區別。結構化方法的核心是程序,從分析到設計,實際上是從抽象到具體,從模糊到清晰地實現程序的過程;而面向對象方法的核心是功能,分析的是對象,設計的是行爲,程序設計和系統設計相對分離。事件

相關文章
相關標籤/搜索