上次例會我們就一直在討論到底是該用結構化分析方法還是面向對象分析方法,以下是他們的區別與優勢。
結構化方法和面向對象方法對於不同的軟件系統各有優劣。結構化方法把解空間分數據和功能兩部分,可以更加清晰地進行需求分析和功能分解,數據流圖能夠細致地說明數據在各個功能模塊之間的流動和變化,更適於系統設計的前期階段。設計人員清楚地了解數據和系統要求的操作后,
面向對象方法能夠把數據和功能以對象為單位封裝成一個整體,更直觀地表達對象的狀態變化和對象間的交互,更加准確地分析功能的實現過程,更適於在軟件后期細化系統的具體行為。
基於此,設計的混合式軟件開發方法如下:
1) 使用SA進行需求分析,建立數據字典,構建總的和分層的數據流圖。
2) 使用模塊結構圖設計系統的獨立功能塊,做出模塊內的程序流圖。
3) 結合數據流圖,聚合同類模塊,規約類,根據程序流圖,設計類的屬性和類的方法。
4) 使用OOD建立系統的動態模型,分析對象的行為和協作。
5) 總體面向對象程序設計,細節結構化程序設計優化,實現代碼層。
使用混合式方法,我們能夠充分利用兩種方法的優點,揚長避短,提高開發的效果和效率。
無論是結構化方法,還是面向對象方法,都是用來解決日益矛盾的軟件危機的系統方法。從直接開發,到結構化方法,再到面向對象方法,軟件構件的愈發獨立、可重用,開發在一個更高的層次進行,分析層、設計層和代碼層關聯性減少。這些都有利於系統開發員更加關注功能本身,提高軟件質量。硬件性能的提高會使計算機的使用越發廣泛,軟件工作的環境更加復雜,軟件的功能更加豐富,軟件的性能更需提高,對軟件開發方法提出了更多的要求,會涌現更高層次的新的方法。無論使用哪種開發方法,或者是混合哪幾種開發方法,我們都要因地制宜,依據需求分析和系統要求,做出最適合的軟件。