詳細設計可以說是軟件開發(fā)必不可少的關(guān)鍵環(huán)節(jié)。對于詳細設計來說,設計文檔的撰寫是必不可少的。中培偉業(yè)《詳細設計與系統(tǒng)架構(gòu)最佳實踐》培訓專家張老師指出,一份詳細設計的文檔應該做到內(nèi)容詳細、思路清晰、描述清楚。而詳細設計除了對設計文檔有較高要求之外,還應該具備以下幾個方面的前提條件。
1)應針對全部需求(包括功能性和非功能性的需求),系統(tǒng)需要有整體上的考慮,也就是前文提到的架構(gòu)設計。
詳細設計需要考慮類、類的內(nèi)部細節(jié)、類之間接口等,這些是需要符合系統(tǒng)的總體架構(gòu)和分層架構(gòu)的。
2)應有數(shù)據(jù)庫設計。
如果沒有數(shù)據(jù)庫設計,建筑在數(shù)據(jù)庫之上的代碼是很難寫的。當然如果你是用“由中間到上下”的設計方法的話(什么是“由中間到上下”?請參考前面的文章),數(shù)據(jù)庫設計沒有,只要有中間層的建模的話,表現(xiàn)層和邏輯層的代碼還是可以寫的,但數(shù)據(jù)庫操作層的代碼還是依賴于數(shù)據(jù)庫設計的。
3)部分情況下,還應該有部分或全部的用戶體驗設計(用戶體驗設計下一篇會分享)。
用戶體驗設計主要考慮的是軟件的表現(xiàn)層,最能充分體驗“由頂而下”的設計思路,將會直接影響具體的代碼實現(xiàn)。
一般情況下我們應該在架構(gòu)設計和數(shù)據(jù)庫設計的基礎(chǔ)上進行詳細設計,否則很可能會讓我們僅僅關(guān)注了局部的問題,而沒有抓住其他更加重要的問題和全局的問題。如果沒有架構(gòu)設計和數(shù)據(jù)庫設計,直接詳細設計是不是一定不可行呢?有以下的一些特殊情況(不限于此噢):
1)如果果你的情況是在原有系統(tǒng)上升級改造,系統(tǒng)原有的架構(gòu)和數(shù)據(jù)庫設計基本不變,那么直接進行詳細設計是合適的做法;
2)有時候有些局部問題雖然很“局部”但又相當特殊或重要,哪怕沒有來得及完成架構(gòu)設計和數(shù)據(jù)庫設計,也可以先進行詳細設計的。