最近有學弟問我,拿到一個軟件需求,但是卻不知道怎麼才能更好地架構好整個系統,在此,我簡單地根據我的經驗介紹一下我是怎麼設計一個軟件系統的吧。當然,這只是我的一個簡單的思路而已,真正涉及到一個大的軟件項目,可能還要復雜很多很多。
要設計一個面向對象的系統,建議遵循如下思路:
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
好了,就簡單地寫這麼些了,僅僅提供一個思路,希望對新手有用。當然,具體情況還是要具體分析的,順祝大家學習順利。O(∩_∩)O~
本文出自 “對影成三人” 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/697996