1 結構化開發方法
結構是指系統內各組件之間相互聯系和相互作用的框架。結構化開發方法在強調系統結構合理性的同時,也強調所開發軟件結構的合理性,它主要面向數據流,所以又被稱為面向功能的軟件開發方法或面向數據流的軟件開發方法。結構化技術包括結構化分析、結構化設計和結構化編程三個方面。
1.1 結構化分析的步驟
結構化分析是壹種建模活動,它使用壹種獨特的符號來建立模型,描述信息(數據和控制)流和內容,劃分系統的功能和行為,以及其他對建立模型至關重要的描述。其基本步驟是:
(1) 構建數據流模型:根據用戶當前的需求,在創建實體關系圖的基礎上,依據數據流圖構建數據流模型。
(2) 構建控制流模型:除了某些應用系統的數據流建模要求外,還需要通過構建控制流圖(CFD)來構建控制流模型。
(3) 生成數據字典:所有數據元素的輸入、輸出、存儲結構甚至中間計算結果的有序列表。通常使用 CASE 的 "結構化分析和設計工具 "來完成這項工作。
(4)生成方案,建立要求規約:確定各種方案的成本和風險等級,根據對各種方案的分析,再選擇方案,建立完整的要求規約。
1.2 結構化設計步驟
結構化設計是用最佳的方法設計系統的各個組成部分以及它們之間的內部聯系的技術,目的是提出滿足系統要求的最佳軟件結構,完成軟件層次結構圖或軟件體系結構圖。基本步驟如下:
(1) 研究、分析和審查數據流圖。從軟件需求規格說明書中明確數據流的處理過程。
(2) 然後根據數據流圖決定問題的類型。數據處理問題有兩種典型類型:轉換型和事務型。對於這兩種不同的 "類型 "要分別進行分析和處理。(3) 根據數據流圖推導出系統的初始結構圖。即把數據流圖映射到軟件模塊結構,設計上層的模塊結構。
(4)利用壹些暫定原則完善系統的初始結構圖,直到結構圖滿足要求為止。即在數據流圖的基礎上,逐步分解高層模塊,設計中下層模塊,優化軟件模塊結構,最終得到較為合理的軟件結構。
(5)描述模塊接口。
(6) 修改和補充數據字典。
(6) 制定測試計劃。
結構化設計將數據流圖中的信息轉換為程序結構的設計說明。
2 模塊化開發方法
模塊化編程方法是將待開發的軟件系統分解成若幹可以單獨命名和處理的較簡單的部分,這些可以單獨命名和處理的部分就是模塊。每個模塊獨立開發和測試,最後組裝成整個軟件系統。這種方法不僅降低了軟件系統開發中分解過程的復雜性,易於修改、維護,而且還易於實現同壹系統中不同部分軟件的並行開發,提高了生產效率。
壹般來說,可以用名稱調用的程序稱為 "模塊"。在考慮模塊性時,將模塊定義為如何合適、模塊設計規則應如何制定作為關鍵,以下五個標準可供參考:
(1) 模塊的可分解性:如果壹種設計方法提供了將問題分解為子問題的系統機制,就會降低整個系統的復雜性,從而實現有效的模塊化解決方案。
(2) 模塊可裝配性:如果壹種設計方法能夠將現有的設計模塊組裝成壹個新的系統,那麽它就提供了壹種模塊化解決方案,不需要壹切從頭開始。
(3) 模塊的可理解性:如果壹個模塊可以被理解為壹個獨立的單元,那麽它就易於構建和修改。(4) 模塊的連續性:如果對系統需求的細微修改導致的是對單個模塊的修改,而不是對整個系統的修改,那麽修改的副作用就會降到最低。
壹般來說,衡量模塊的標準有兩個:耦合和內聚。如果模塊內部的內聚性很高,模塊之間的耦合度很低,那麽這樣的模塊就是獨立的,模塊設計得很好。
3 面向對象的開發方法
面向對象的開發方法是以面向對象的編程語言為基礎,其核心思想是利用面向對象的概念和方法進行軟件需求建模、系統設計,利用面向對象的編程語言進行系統的實現,對建成的系統進行面向對象的測試和維護。
如果壹個軟件系統是使用這四個概念設計和實現的,則可以認為該軟件系統是面向對象的。其基本要點可概括為:
(1) 數據的抽象化,即類和子類及其相互關系的概念。任何客觀事物和實體都是對象,復雜的對象可以由簡單的對象組成
(2) 數據及其操作的集成,即封裝的概念和方法。具有相同數據和操作的對象可以通過封裝組合成壹個類,形成壹個包;對象是類的實例;壹個類可以產生許多對象。
(3) 屬性和操作從父類傳遞給子類,即繼承的概念和方法。類可以派生出子類,繼承可以避免重復***相同的行為。
(4) 以統壹的消息傳遞方式描述客觀事物之間的相互關系。
目前廣泛使用的面向對象開發方法包括 Booch 方法、Rumbaugh 方法、Coad 和 Yourdon 方法、Jacobson 方法、Wirfs-Brock 方法以及統壹建模方法。