詳細設計
詳細設計 |
中文名稱;詳細設計 外文名稱;The detailed design 任務;設計每個模塊的實現算法 定義;軟件工程中軟件開發的一個步驟 途徑;通過需求分析的結果 目的;設計出滿足用戶需求的軟件系統產品 |
詳細設計,是軟件工程中軟件開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模塊實現算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的軟件系統產品。[1]
目錄
主要任務
詳細設計的主要任務是設計每個模塊的實現算法、所需的局部數據結構。詳細設計的目標有兩個:實現模塊功能的算法要邏輯上正確和算法描述要簡明易懂。
方法
傳統軟件開發方法的詳細設計主要是用結構化程序設計法。
結構化程序設計
基本要求要點
a.採用自頂向下、逐步求精的程序設計方法
b.使用三種基本程序控制結構構造程序
1).用順序方式對過程分解,確定各部分的執行順序。
2).用選擇方式對過程分解,確定某個部分的執行條件。
3).用循環方式對過程分解,確定某個部分重複的開始和結束的條件。
c.主程序員組的組織形式。
Jackson方法
設計步驟
a.分析並確定輸入/出數據的邏輯結構,並用Jackson 結構圖表示這些數據結構。
b.找出輸入數據結構和輸出數據結構中有對應關係的數據單元。
c.按一定的規則由輸入、輸出的數據結構導出程序結構。
d.列出基本操作與條件,並把它們分配到程序結構圖的適當位置。
e.用偽碼寫出程序。
描述方法
a.程序流程圖
b.PAD圖
C.過程設計語言
設計工具
表示工具
詳細設計的表示工具有圖形工具和語言工具。
1.圖形工具
利用圖形工具可以把過程的細節用圖形描述出來。
有業務流圖、程序流程圖、PAD圖(Problem Analysis Diagram)、NS流程圖(由 Nassi和 Shneidermen開發,簡稱 NS)。
(1)程序流程圖。程序流程圖又稱為程序框圖,是使用最廣泛然而也是用得最混亂的一種描述程序邏輯結構的工具。它用方框表示一個處理步驟,菱形表示一個邏輯條件,箭頭表示控制流向。其優點是:結構清晰,易於理解,易於修改。缺點是:只能描述執行過程而不能描述有關的數據。
(2)盒圖。盒圖是一種強制使用結構化構造的圖示工具,也稱為方框圖。其具有以下特點:功能域明確、不可能任意轉移控制、很容易確定局部和全局數據的作用域、很容易表示嵌套關係及模板的層次關係。
(3)PAD圖。PAD是一種改進的圖形描述方式,可以用來取代程序流程圖,比程序流程圖更直觀,結構更清晰。最大的優點是能夠反映和描述自頂向下的歷史和過程。PAD提供了5種基本控制結構的圖示,並允許遞歸使用。
PAD的特點有:使用PAD符號設計出的程序代碼是結構化程序代碼;PAD所描繪的程序結構十分清晰;用PAD圖表現程序的邏輯易讀、易懂和易記;容易將PAD圖轉換成高級語言源程序自動完成;即可以表示邏輯,也可用來描繪數據結構;支持自頂向下方法的使用。
2.表格工具
可以用一張表來描述過程的細節,在這張表中列出了各種可能的操作和相應的條件。
3.語言工具
用某種高級語言(稱之為偽碼)來描述過程的細節。概要設計和詳細設計的區別與聯繫。
有偽碼和PDL(Program Design Language)等。
PDL。PDL也可稱為偽碼或結構化語言,它用於描述模塊內部的具體算法,以便開發人員之間比較精確地進行交流。語法是開放式的,其外層語法是確定的,而內層語法則不確定。外層語法描述控制結構,它用類似於一般編程語言控制結構的關鍵字表示,所以是確定的。內層語法描述具體操作,考慮到不同軟件系統的實際操作種類繁多,內層語法因而不確定,它可以按系統的具體情況和不同的設計層次靈活選用,實際上任意英語語句都可用來描述所需的具體操作。用它來描述詳細設計,工作量比畫圖小,又比較容易轉換為真正的代碼。
PDL的優點:可以作為注釋直接插在源程序中;可以使用普通的文本編輯工具或文字處理工具產生和管理;已經有自動處理程序存在,而且可以自動由PDL生成程序代碼。
PDL的不足:不如圖形工具形象直觀,描述複雜的條件組合與動作間對應關係時,不如判定樹清晰簡單。
基本任務
(1)為每個模塊進行詳細的算法設計。用某種圖形、表格、語言等工具將每個模塊處理過程的詳細算法描述出來。
(2)為每個模塊內的數據結構進行設計。對於需求分析、概要設計確定的概念性的數據類型進行確切的定義。
(3)為數據結構進行物理設計,即確定數據庫的物理結構。物理結構主要指數據庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴於具體所使用的數據庫系統。
(4)其他設計:根據軟件系統的類型,還可能要進行以下設計:
①代碼設計。為了提高數據的輸入、分類、存儲、檢索等操作,節約內存空間,對數據庫中的某些數據項的值要進行代碼設計。
②輸入/輸出格式設計。
③人機對話設計。對於一個實時系統,用戶與計算機頻繁對話,因此要進行對話方式、內容、格式的具體設計。
(5)編寫詳細設計說明書。
(6)評審。對處理過程的算法和數據庫的物理結構都要評審。
區別
軟件設計採用自頂向下、逐次功能展開的設計方法,首先完成總體設計,然後完成各有機組成部分的設計。
根據工作性質和內容的不同,軟件設計分為概要設計和詳細設計。概要設計實現軟件的總體設計、模塊劃分、用戶界面設計、數據庫設計等等;詳細設計則根據概要設計所做的模塊劃分,實現各模塊的算法設計,實現用戶界面設計、數據結構設計的細化,等等。
聯繫
概要設計是詳細設計的基礎,必須在詳細設計之前完成,概要設計經複查確認後才可以開始詳細設計。概要設計,必須完成概要設計文檔,包括系統的總體設計文檔、以及各個模塊的概要設計文檔。每個模塊的設計文檔都應該獨立成冊。
詳細設計必須遵循概要設計來進行。詳細設計方案的更改,不得影響到概要設計方案;如果需要更改概要設計,必須經過項目經理的同意。詳細設計,應該完成詳細設計文檔,主要是模塊的詳細設計方案說明。和概要設計一樣,每個模塊的詳細設計文檔都應該獨立成冊。
概要設計裡面的數據庫設計應該重點在描述數據關係上,說明數據的來龍去脈,在這裡應該結合我們的一下結果數據,說明這些結果數據的源點,我們這樣設計的目 的和原因。詳細設計里的數據庫設計就應該是一份完善的數據結構文檔,就是一個包括類型、命名、精度、字段說明、表說明等內容的數據字典。
概要設計里的功能應該是重點在功能描述,對需求的解釋和整合,整體劃分功能模塊,並對各功能模塊進行詳細的圖文描述,應該讓讀者大致了解系統做完後大體的 結構和操作模式。詳細設計則是重點在描述系統的實現方式,各模塊詳細說明實現功能所需的類及具體的方法函數,包括涉及到的sql語句等。
相關視頻