軟件系統設計的思路

最近有學弟問我,拿到一個軟件需求,但是卻不知道怎麼才能更好地架構好整個系統,在此,我簡單地根據我的經驗介紹一下我是怎麼設計一個軟件系統的吧。當然,這只是我的一個簡單的思路而已,真正涉及到一個大的軟件項目,可能還要複雜很多很多。

 

要設計一個面向對象的系統,建議遵循如下思路:  

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章