詳細(xì)設(shè)計是軟件工程中軟件開發(fā)的一個步驟,就是對概要設(shè)計的一個細(xì)化,就是詳細(xì)設(shè)計每個模塊實(shí)現(xiàn)算法,所需的局部結(jié)構(gòu)。在詳細(xì)設(shè)計階段,主要是通過需求分析的結(jié)果,設(shè)計出滿足用戶需求的嵌入式系統(tǒng)產(chǎn)品。中培偉業(yè)《詳細(xì)設(shè)計與系統(tǒng)架構(gòu)最佳實(shí)踐》專家曾老師指出,詳細(xì)設(shè)計作為瀑布開發(fā)流程的一個重要環(huán)節(jié),在概要設(shè)計的高層設(shè)計的基礎(chǔ)上,從邏輯上實(shí)現(xiàn)了每一模塊的功能,是編碼階段的主要參考資料,是從高層到低層、逐步精化思想的具體實(shí)現(xiàn)。
詳細(xì)設(shè)計文檔內(nèi)容
詳細(xì)設(shè)計文檔的內(nèi)容包括各個模塊的算法設(shè)計, 接口設(shè)計, 數(shù)據(jù)結(jié)構(gòu)設(shè)計,交互設(shè)計等。必須寫清楚各個模塊/接口/公共對象的定義,列明各個模塊程序的各種執(zhí)行條件與期望的運(yùn)行效果,還要正確處理各種可能的異常。
為什么要做詳細(xì)設(shè)計
在開發(fā)過程中,由需求及設(shè)計不正確、不完整所導(dǎo)致的問題是項目進(jìn)度拖延、失敗的一個主要因素,而軟件系統(tǒng)的一個重要特性就是需求和設(shè)計的不斷構(gòu)建和改進(jìn),在寫詳細(xì)設(shè)計文檔過程中, 詳細(xì)設(shè)計實(shí)際上是對系統(tǒng)的一次邏輯構(gòu)建,可以有效驗證需求的完整性及正確性。
如果不寫詳細(xì)設(shè)計文檔,一般就從概設(shè)直接進(jìn)入編碼階段,這時開發(fā)人員所能參考的資料就是需求規(guī)格說明書及頁面原型、數(shù)據(jù)庫設(shè)計等,不能直接進(jìn)行開發(fā),需要進(jìn)行信息的溝通,把頁面原型不能體現(xiàn)的設(shè)計講清楚,這樣既容易遺忘,也容易發(fā)生問題,詳細(xì)設(shè)計文檔可以作為需求人員、總體設(shè)計人員與開發(fā)人員的溝通工具,把靜態(tài)頁面無法體現(xiàn)的設(shè)計體現(xiàn)出來,包含整體設(shè)計對模塊設(shè)計的規(guī)范,體現(xiàn)對設(shè)計上的一些決策,例如選用的算法,對一些關(guān)鍵問題的設(shè)計考慮等等,使開發(fā)人員能快速進(jìn)入開發(fā),提高溝通效率,減少溝通問題。
對于系統(tǒng)功能的調(diào)整,后期的維護(hù),詳設(shè)文檔提供了模塊設(shè)計上的考慮、決策,包括模塊與整體設(shè)計的關(guān)系、模塊所引用的數(shù)據(jù)庫設(shè)計、重要操作的處理流程、重要的業(yè)務(wù)規(guī)則實(shí)現(xiàn)設(shè)計等等信息,提供了對模塊設(shè)計的概述性信息,闡明了模塊設(shè)計上的決策,配合代碼注釋,可以相對輕松讀懂原有設(shè)計。
應(yīng)該如何寫詳細(xì)設(shè)計文檔
詳細(xì)設(shè)計的主要任務(wù)是設(shè)計每個模塊的實(shí)現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)。詳細(xì)設(shè)計的目標(biāo)有兩個:實(shí)現(xiàn)模塊功能的算法要邏輯上正確和算法描述要簡明易懂。 傳 統(tǒng)軟件開發(fā)方法的詳細(xì)設(shè)計主要是用結(jié)構(gòu)化程序設(shè)計法。詳細(xì)設(shè)計的表示工具有圖形工具和語言工具。圖形工具有程序流程圖、PAD(Problem Analysis Diagram)圖、NS(由 Nassi和 Shneidermen開發(fā),簡稱 NS)圖。語言工具有偽碼和 PDL(Program Design Language)等。
主要任務(wù):
1.為每個模塊確定采用的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,寫出模塊的詳細(xì)過程性描述;
2.確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);
3.確定模 塊接口的細(xì)節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其它模塊的接口,以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。 在詳細(xì)設(shè)計結(jié)束時,應(yīng)該把上述結(jié)果寫入詳細(xì)設(shè)計說明書,并且通過復(fù)審形成正式文檔。交付給下一階段(編碼階段)的工作依據(jù)。
4.要為每一個模塊設(shè)計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進(jìn)行預(yù)定的測試,模塊的測試用例是軟件測試計劃的重要組成部分,通常應(yīng)包括輸入數(shù)據(jù),期 望輸出等內(nèi)容。
詳細(xì)設(shè)計的工具:
1.圖形工具。利用圖形工具可以把過程的細(xì)節(jié)用圖形描述出來。
2.表格工具可以用一張表來描述過程的細(xì)節(jié),在這張表中列出了各種可能的操作和相應(yīng)的條件。
3.語言工具用某種高級語言(稱之為偽碼)來描述過程的細(xì)節(jié)。
< <詳細(xì)設(shè)計說明書> > 規(guī)范
1.引言
1.1 編寫目的:闡明編寫詳細(xì)設(shè)計說明書的目的,指明讀者對象。
1.2 項目背景:應(yīng)包括項目的來源和主管部門等。
1.3 定義:列出本文檔中所用到的專門術(shù)語的定義和縮寫詞的愿意。
1.4 參考資料:
●列出有關(guān)資料的作者、標(biāo)題、編號、發(fā)表日期、出版單位或資料來源
●項目經(jīng)核準(zhǔn)的計劃任務(wù)書、合同或上級機(jī)關(guān)的批文;項目開發(fā)計劃;需求規(guī)格說明書;概要設(shè)計說明書;測試計劃(初稿);用戶操作手冊
●文檔所引用的資料、軟件開發(fā)的標(biāo)準(zhǔn)或規(guī)范。
2.總體設(shè)計
2.1需求概述
2.2軟件結(jié)構(gòu):如給出軟件系統(tǒng)的結(jié)構(gòu)圖。
3.程序描述
3.1逐個模塊給出以下說明:
●功能