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