詳細設計作為軟件開發的基礎性工作,其對互聯網發展的重要性不言可喻,因此在進行詳細設計之前,做好充分的準備工作是必須的。中培偉業《軟件詳細設計最佳實踐》程老師指出,要做好軟件詳細設計,離不開一份概要設計文檔。雖然詳細設計是軟件開發的主要工作,但系統架構無疑有更加重要的作用。
除此之外,在開始詳細設計之前,還應該做好以下準備條件:
1)應針對全部需求(包括功能性和非功能性的需求),系統需要有整體上的考慮,也就是前文提到的架構設計。
詳細設計需要考慮類、類的內部細節、類之間接口等,這些是需要符合系統的總體架構和分層架構的。
2)應有數據庫設計。
如果沒有數據庫設計,建筑在數據庫之上的代碼是很難寫的。當然如果你是用“由中間到上下”的設計方法的話(什么是“由中間到上下”?請參考前面的文章),數據庫設計沒有,只要有中間層的建模的話,表現層和邏輯層的代碼還是可以寫的,但數據庫操作層的代碼還是依賴于數據庫設計的。
3)部分情況下,還應該有部分或全部的用戶體驗設計(用戶體驗設計下一篇會分享)。
用戶體驗設計主要考慮的是軟件的表現層,最能充分體驗“由頂而下”的設計思路,將會直接影響具體的代碼實現。
一般情況下我們應該在架構設計和數據庫設計的基礎上進行詳細設計,否則很可能會讓我們僅僅關注了局部的問題,而沒有抓住其他更加重要的問題和全局的問題。如果沒有架構設計和數據庫設計,直接詳細設計是不是一定不可行呢?有以下的一些特殊情況(不限于此噢):
1)如果果你的情況是在原有系統上升級改造,系統原有的架構和數據庫設計基本不變,那么直接進行詳細設計是合適的做法;
2)有時候有些局部問題雖然很“局部”但又相當特殊或重要,哪怕沒有來得及完成架構設計和數據庫設計,也可以先進行詳細設計的。