要設計一個面向對象的系統,建議遵循以下思路: java
1. 調研,完成一份詳細的需求文檔linux
(1)系統要實現什麼功能c++
(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