詳細(xì)設(shè)計怎么寫
在大多數(shù)軟件項目中,要末不作詳細(xì)設(shè)計,要么開發(fā)完成后再補詳細(xì)設(shè)計文檔,質(zhì)量也不容樂觀,文檔與系統(tǒng)往往不能同步,使詳細(xì)設(shè)計文檔完全流于形式,對工作沒有起到實際的幫助。
那到底應(yīng)不應(yīng)該寫詳細(xì)設(shè)計文檔呢,怎么使詳細(xì)設(shè)計文檔起到他應(yīng)有的作用呢,下面就讓我們來認(rèn)識一下詳細(xì)設(shè)計及寫詳細(xì)設(shè)計文檔的好處和問題。 ?什么是詳細(xì)設(shè)計
詳細(xì)設(shè)計是相對概要設(shè)計而言的,是瀑布開發(fā)流程的一個重要環(huán)節(jié),在概要設(shè)計的高層設(shè)計的基礎(chǔ)上,從邏輯上實現(xiàn)了每一模塊的功能,是編碼階段的主要參考資料,是從高層到低層、逐步精化思想的具體實現(xiàn)。
詳細(xì)設(shè)計文檔的內(nèi)容包括各個模塊的算法設(shè)計, 接口設(shè)計, 數(shù)據(jù)結(jié)構(gòu)設(shè)計,交互設(shè)計等。必須寫清楚各個模塊/接口/公共對象的定義,列明各個模塊程序的各種執(zhí)行條件與期望的運行效果,還要正確處理各種可能的異常。?為什么要作詳細(xì)設(shè)計
在開發(fā)過程中,由需求及設(shè)計不正確、不完整所導(dǎo)致的問題是項目進(jìn)度拖延、失敗的一個主要因素,而軟件系統(tǒng)的一個重要特性就是需求和設(shè)計的不斷構(gòu)建和改進(jìn),在寫詳細(xì)設(shè)計文檔過程中, 詳細(xì)設(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ī)則實現(xiàn)設(shè)計等等信息,提供了對模塊設(shè)計的概述性信息,闡明了模塊設(shè)計上的決策,配合代碼注釋,可以相對輕松讀懂原有設(shè)計。
?存在的問題
要由專門的人寫,是比較麻煩的,也是很需要時間的,會對進(jìn)度造成壓力,也容易形成工作瓶頸,使設(shè)計人員負(fù)擔(dān)過重,而開發(fā)人員無事可作。對于現(xiàn)在一般的以數(shù)據(jù)庫為中心的管理系統(tǒng)而言,這個工作始終是要作的,區(qū)別只不過是不是形成專門文檔,形成文檔可能會多花一兩周時間,但相對于規(guī)避的風(fēng)險和問題來說,也是值得的,另外由于現(xiàn)在高級語言的流行,所以更詳細(xì)的設(shè)計應(yīng)該直接體現(xiàn)在代碼的設(shè)計上,而文檔則只體現(xiàn)設(shè)計上的一些決策,協(xié)調(diào)整體設(shè)計與模塊設(shè)計的關(guān)系,把頁面原型所不能體現(xiàn)的設(shè)計情況文檔化,所以所花費的時間是有限的。
設(shè)計內(nèi)容容易過細(xì),但設(shè)計階段是不能考慮特別清楚地,時間也不允許。對于這個問題,一個對策是上邊所提到的,文檔只體現(xiàn)設(shè)計上的決策,頁面原型所不能反映的信息,詳細(xì)設(shè)計只體現(xiàn)總體設(shè)計對模塊設(shè)計的一些考慮,例如對功能的數(shù)據(jù)庫設(shè)計等等,而具體的實現(xiàn)實現(xiàn),則到代碼中再去實現(xiàn),相關(guān)的設(shè)計也僅體現(xiàn)在代碼中。
需求、設(shè)計需要不斷的被更新、構(gòu)建,則設(shè)計文檔需要不斷的重新調(diào)整,文檔的維護(hù)需要跟上,否則文檔和系統(tǒng)的同步就很難得到保障了,且造成多余的工作量。文檔的內(nèi)容易流于形勢,質(zhì)量糟糕,不能成為開發(fā)人員的參考手冊,一是要建立起相關(guān)制度,如有修改,先改文檔,后作開發(fā),從工作流程上切實保障文檔與系統(tǒng)的同步,二是要規(guī)范文檔質(zhì)量,對文檔該寫什么,不該寫什么,標(biāo)準(zhǔn)是什么,粒度是什么,語法應(yīng)該如何組織,有明確的標(biāo)準(zhǔn)和考慮,同時,建立審計文檔評審、審核制度,充分保障系統(tǒng)的使用。
?應(yīng)該如何寫詳細(xì)設(shè)計文檔
下面討論如何寫出一個符合要求、實用的詳細(xì)設(shè)計文檔。
首先是文檔的內(nèi)容,根據(jù)項目和團(tuán)隊的不同,詳細(xì)設(shè)計文檔的內(nèi)容也有所不同,一般說來,粒度不宜過細(xì),不能代替開發(fā)人員的設(shè)計和思考,但要把有關(guān)設(shè)計的決策考慮進(jìn)去,包括與其他模塊、整體設(shè)計的關(guān)系、操作的處理流程,對業(yè)務(wù)規(guī)則的設(shè)計考慮等,有一個標(biāo)準(zhǔn)為,凡是頁面原型、需求規(guī)格說明書所不能反映的設(shè)計決策,而開發(fā)人員又需要了解的,都要寫入文檔。
其次是文檔所面向的讀者,主要為模塊開發(fā)人員、后期維護(hù)人員,模塊開發(fā)人員通過詳細(xì)設(shè)計文檔和頁面原型來了解所開發(fā)的功能,后期維護(hù)人員通過實際系統(tǒng)、模塊代碼、詳細(xì)設(shè)計文檔來了解一個功能。
再有就是誰來寫文檔,因為文檔主要考慮的是設(shè)計上的決策,所以寫文檔的人應(yīng)該為負(fù)責(zé)、參加設(shè)計的技術(shù)經(jīng)理、資深程序員,根據(jù)團(tuán)隊情況和項目規(guī)模、復(fù)雜度的不同,也有所不同。
還需要保證文檔的可讀性、準(zhǔn)確性、一致性,要建立嚴(yán)格的文檔模板及標(biāo)準(zhǔn),保證文檔的可讀性及準(zhǔn)確性,同時建立審核及設(shè)計評審制度,來保障設(shè)計及文檔的質(zhì)量,另外在工作流程中要強調(diào),要先設(shè)計、先寫文檔,再進(jìn)行開發(fā)。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。