怎樣寫具體設計文檔是一個非常頭疼的話題,簡單的說是需求文檔的升華,也能夠說是開發者開發程式的根據,當然根據具體設計文檔的粒度進行。好的具體設計文檔是需求人員和開發者之間的橋梁,隻是眼下好多程式開發都是先開發後,然後為了應付稽核,公司制度,文檔規範,開發完畢後興許補上該文檔。假設這種方式,具體設計文檔的的作用就忽略了。
在大多數軟體項目中,要末不作具體設計,要麼開發完畢後再補具體設計文檔,品質也不容樂觀,文檔與系統往往不能同步,使具體設計文檔全然流于形式,對工作沒有起到實際的幫助。
那究竟應不應該寫具體設計文檔呢,怎麼使具體設計文檔起到他應有的作用呢,以下就讓我們來認識一下具體設計及寫具體設計文檔的優點和問題。
· 概念
具體設計是相對概要設計而言的,是瀑布開發流程的一個重要環節,在概要設計的高層設計的基礎上,從邏輯上實作了每一子產品的功能,是編碼階段的主要參考資料,是從高層到低層、逐漸精化思想的具體實作。
具體設計文檔的内容包含各個子產品的算法設計,
接口設計,
資料結構設計,互動設計等。必須寫清楚各個子產品/接口/公共對象的定義,列明各個子產品程式的各種執行條件與期望的執行效果,還要正确處理各種可能的異常。
· 目的
在開發過程中,由需求及設計不對、不完整所導緻的問題是項目進度遲延、失敗的一個主要因素,而軟體系統的一個重要特性就是需求和設計的不斷建構和改進,在寫具體設計文檔過程中, 具體設計實際上是對系統的一次邏輯建構,能夠有效驗證需求的完整性及正确性。
假設不寫具體設計文檔,一般就從概設直接進入編碼階段,這時開發者所能參考的資料就是需求規格說明書及頁面原型、資料庫設計等,不能直接進行開發,須要進行資訊的溝通,把頁面原型不能展現的設計講清楚,這樣既easy遺忘,也easy發生故障,具體設計文檔能夠作為需求人員、總體設計人員與開發者的溝通工具,把靜态頁面無法展現的設計展現出來,包括總體設計對子產品設計的規範,展現對設計上的一些決策,比如選用的算法,對一些關鍵問題的設計考慮等等,使開發者能高速進入開發,提高溝通效率,降低溝通問題。
對于系統功能的調整,後期的維護,詳設文檔提供了子產品設計上的考慮、決策,包含子產品與總體設計的關系、子產品所引用的資料庫設計、重要操作的處理流程、重要的業務規則實作設計等等資訊,提供了對子產品設計的概述性資訊,闡明了子產品設計上的決策,配合代碼凝視,能夠相對輕松讀懂原有設計。
·
問題
要由專門的人寫,是比較麻煩的,也是非常須要時間的,會對進度造成壓力,也easy形成工作瓶頸,使設計人員負擔過重,而開發者無事可作。對于如今一般的以資料庫為中心的管理系統而言,這個工作始終是要作的,差别僅僅隻是是不是形成專門文檔,形成文檔可能會多花一兩周時間,但相對于規避的風險和問題來說,也是值得的,另外因為如今進階語言的流行,是以更具體的設計應該直接體如今代碼的設計上,而文檔則僅僅展現設計上的一些決策,協調總體設計與子產品設計的關系,把頁面原型所不能展現的設計情況文檔化,是以所花費的時間是有限的。
設計内容easy過細,但設計階段是不能考慮特别清楚地,時間也不同意。
對于這個問題,一個對策是上邊所提到的,文檔僅僅展現設計上的決策,頁面原型所不能反映的資訊,具體設計僅僅展現整體設計對子產品設計的一些考慮,比如對功能的資料庫設計等等,而具體的實作實作,則到代碼中再去實作,相關的設計也僅體如今代碼中。
需求、設計須要不斷的被更新、建構,則設計文檔須要不斷的又一次調整,文檔的維護須要跟上,否則文檔和系統的同步就非常難得到保障了,且造成多餘的工作量。文檔的内easy流于形勢,品質糟糕,不能成為開發者的參考手冊,一是要建立起相關制度,如有改動,先改文檔,後作開發,從工作流程上切實保障文檔與系統的同步,二是要規範文檔品質,對文檔該寫什麼,不該寫什麼,标準是什麼,粒度是什麼,文法應該怎樣組織,有明白的标準和考慮,同一時候,建立審計文檔評審、稽核制度,充分保障系統的使用。
· 步驟
以下讨論怎樣寫出一個符合要求、有用的具體設計文檔。
首先是文檔的内容,依據項目和團隊的不同,具體設計文檔的内容也有所不同,一般說來,粒度不宜過細,不能取代開發者的設計和思考,但要把有關設計的決策考慮進去,包含與其它子產品、總體設計的關系、操作的處理流程,對業務規則的設計考慮等,有一個标準為,凡是頁面原型、需求規格說明書所不能反映的設計決策,而開發者又須要了解的,都要寫入文檔。
其次是文檔所面向的讀者,主要為子產品開發者、後期維護人員,子產品開發者通過具體設計文檔和頁面原型來了解所開發的功能,後期維護人員通過實際系統、子產品代碼、具體設計文檔來了解一個功能。
再有就是誰來寫文檔,由于文檔主要考慮的是設計上的決策,是以寫文檔的人應該為負責、參加設計的技術經理、資深程式猿,依據團隊情況和項目規模、複雜度的不同,也有所不同。
還須要保證文檔的可讀性、準确性、一緻性,要建立嚴格的文檔模闆及标準,保證文檔的可讀性及準确性,同一時候建立稽核及設計評審制度,來保障設計及文檔的品質,另外在工作流程中要強調,要先設計、先寫文檔,再進行開發。
