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