1. 程式人生 > >軟體設計的幾種方法個人筆記

軟體設計的幾種方法個人筆記

設計方法有以下幾種:

根據系統的資料流進行設計:

面向資料流的設計(Data Flow-Oriented Design)或過程驅動的設計(Process-driverDesign)

根據系統的資料結構進行設計:

面向資料結構的設計(Data Structure-Oriented Design)或資料驅動的設計(Data-drivenDesign)

面向物件的設計(Object-Oriented Design)

面向資料流的設計方法:

結構化(SD:Structured Design):以資料流圖為基礎設計系統的模組結構。

思想:認為一個程式、一組程式或一個系統,是由一組功能操作來構成的。

目標:將軟體設計為結構合理、功能單一的模組,建立系統的模組結構圖。

表示方法:分層次的結構圖。

優點:

(1)減少了設計複雜性。結構化設計將對大目標的實現轉化為一些小目標來實現,是一種減少設計複雜性的技術。

(2)結構獨立。結構化設計將功能性程式劃分成多個相對獨立的程式模組。

(3)單一的功能模組,可以使軟體設計獲得最大的益處。易於進行軟體修改。

面向資料結構的分析設計方法:

把問題分解為由三種基本結構形式表示的各部分的層次結構,分別為:順序,選擇和重複。

結構化程式設計的思想主要是模組分解與功能抽象,通過將一個較複雜的任務按照功能分解成相對獨立的多個子任務,採用自頂向下,分而治之的手段有效地解決問題。

本質仍是面向過程的,它以演算法為核心,資料與過程之間無必然聯絡,二者完全分離,程式設計者在進行程式設計師首先考慮軟體的功能,然後在模組內定義必要的資料支援功能的實現,程式設計師在編寫程式模組是要注意始終保持資料和操作的一致性,一但由於修改或其他原因導致兩者出現偏差,系統將提示出錯。

面向物件技術的特點:

(1)它是對軟體開發過程所有階段進行綜合考慮得到的。

(2)從生存期的一個階段到下一個階段所使用的方法與技術具有高度的連續性。

(3)它將面向物件分析(OOA)、面向物件設計(OOD)、面向物件程式設計設計(OOP)整合到軟體生存期相應階段。

面向物件設計方法是以物件(object)為核心,首先分析現實世界中的問題,抽象出物件集合,然後確定這些物件之間的關係,並正確描述物件的狀態和行為,對映到解空間中用資料來表示物件的狀態,用過程來實現物件的行為,且兩者是統一體。

詳細設計(即過程設計或演算法設計)

這一階段任務主要包括:

(1)模組的演算法設計:確定為每個模組採用的演算法,選擇某種適當的工具表達演算法的過程,寫出模組的詳細過程性描述。

(2)模組內的資料結構設計:確定每一模組所使用的資料結構。

(3)模組介面設計:確定模組介面細節,包括對系統外部的介面和使用者介面,對系統內部其他模組的介面,以及模組輸入資料、輸出資料及區域性資料的全部細節。

(4)其他設計:根據軟體系統的特點,還可以進行資料庫設計、程式碼設計、輸入/輸出格式設計以及人機介面設計等。

(5)模組測試用例設計:為每一個模組設計出一組測試用例,以便在編碼階段對模組程式碼(即程式)進行預定的測試,模組的測試用例是軟體測試計劃的重要組成部分,通常應包括輸入資料、期望輸出等內容。

(6)編寫詳細計劃說明書:再詳細設計結束時,應該把上述結果寫入詳細設計說明書,並且通過複審形成正式文件,作為下一階段(編碼階段)的工作依據。

(7)詳細設計評審:對詳細設計的結果進行評審。

詳細設計說明的內容主要包括:

(1)表示軟體結構的圖表。

(2)對逐個模組的程式描述,包括演算法和邏輯流程、輸入輸出項、與外部介面等。