面向物件方法與結構化方法比較
結構化設計從系統的功能入手,按照工程標準和嚴格規範將系統分解為若干功能模組。然而,由於使用者的需求和軟、硬體技術的不斷髮展變化,作為系統基本成分的功能模組很容易受到影響,區域性修改甚至會引起系統的根本性變化。開發過程前期入手快而後期頻繁改動的現象比較常見。
面向物件方法則從所處理的資料入手,以資料為中心來描述系統,資料相對於功能而言,具有更強的穩定性,這樣設計出的系統模型往往能較好地對映問題域模型。物件、類,、繼承性、多型性、動態定連概念和設施的引入使用,顯然令面向物件的設計方法具有一定的優勢,能為生產可重用的軟體構件和解決軟體的複雜性問題提供一條有效的途徑。
面向物件的設計過程就是指通過建立一些類以及它們之間的關係來解決實際問題,這就需要對問題域中的物件作整體分析,類和類間關係的設計要求較高,否則設計出的並不是真正意義上的面向物件的軟體系統,而只是一些類的堆砌而已,不能體現出面向物件設計方法的優勢之處。
同時,系統的分析設計是一個注重實踐的領域,不僅僅依賴於一整套核心的概念與原理,要想設計出一個成功的系統來,還需要相應的語言、工具和技術的有力支援。在這方面,經過多年的實踐和發展,適應結構化方法的技術和開發環境已經相當成熟穩定。而對面向物件方法而言,雖然近時期湧現了大量的新工具和新技術,但仍有待於不斷的完善和改進,特別是面向物件的資料庫技術。
結束語-理解和體會
1. 軟體工程的目標是以最小的代價開發出滿足使用者需求的軟體。為此,根據系統的實際需求,分別針對具體情況選擇採用不同的設計方法,可以充分發揮面向物件與結構化方法各自的優勢。目前在大多數軟體系統的分析設計過程中,這兩者方法都兼而有之。
事實上,在上述《機動裝置管理系統》的開發過程中,除了使用物件模型、動態模型等面向物件的一些建模技術外,結構化的一些技術也被採用了,比如為了清晰描述系統的執行流程,依然使用了系統流程圖,這些技術的綜合使用起到了非常良好的作用。
2. 理解是修改維護任何一個軟體系統的基礎,對面向物件的軟體而言,理解該軟體就需要了解軟體系統中主要物件的整個執行機制。但物件間的並行、繼承、傳遞、啟用等特性,可能會對後期維護人員快速理解系統原設計思想帶來一定的障礙。目前,支援面向物件方法的軟體開發環境中能幫助理解軟體設計思路的工具並不多,在這方面結構化方法佔有相對優勢。所以,使用面向物件方法設計的軟體系統要切實注意避免此類理解錯誤對開發帶來的不良影響。
3. 不論哪一種設計方法,正確清晰的需求界定都是開發一個成功的軟體系統必不可少的前提條件,否則再好的設計方法也無濟於事。