最近有學弟問我,拿到一個軟體需求,但是卻不知道怎麼才能更好地架構好整個系統,在此,我簡單地根據我的經驗介紹一下我是怎麼設計一個軟體系統的吧。當然,這只是我的一個簡單的思路而已,真正涉及到一個大的軟體專案,可能還要複雜很多很多。
要設計一個物件導向的系統,建議遵循如下思路:
1. 調研,完成一份詳細的需求文件
(1)系統要實現什麼功能
(2)效能上有什麼特別的要求
(3)哪些是技術難點,可以的話對技術難點首先測試攻關
2. 確定系統的執行環境
(1)系統執行的作業系統:widows,linux,unix等
(2)使用何種程式語言:c/c++,java,C# 等
(3)使用何種介面互動環境:console,MFC,WTL等等
(4) 需要使用哪些第三方庫:如 openCV,STL,Boost等
3. 劃分系統模組,設計總體框圖
(1)整個系統從大的方向來劃分的話,可以分為哪幾個模組,每個模組又可以繼續劃分為哪幾個小模組。
(2)每個模組的提供的功能是什麼
(3)模組之間怎麼互動
4. 分析模組的需求,抽象出實現模組功能的各個類
(1)本模組可以設計哪些類,哪些類是作為本模組對外的介面?
(2)模組內部的類之間怎麼互動?模組間的類之間怎麼互動?
(3)類的設計時,需要考慮是否可以通過繼承、組合等方式簡化設計
(4)畫出簡單的UML設計圖
5. 設計每個類的屬性和方法
(1)每個類有哪些成員變數?提供哪些功能函式?
(2)哪些功能通過繼承獲取,哪些功能需要用到過載,哪些功能需要利用多型?
(3)完成類的標頭檔案的定義
6. 實現每個類的功能及整合測試
(1) 編碼實現每個類的功能
(2) 根據前面的設計,完成類之間的互動程式碼,實現系統所需要的功能
(3)整合和測試,優化程式碼,修改bug
好了,就簡單地寫這麼些了,僅僅提供一個思路,希望對新手有用。當然,具體情況還是要具體分析的,順祝大家學習順利。有任何疑問或者建議歡迎留言或者來信lujun.hust@gmail.com交流,或者關注我的新浪微博 @盧_俊 獲取最新的文章和資訊。