軟體專案設計八大步驟
本人初學者,所寫都為自己領悟,以方便以後參考;若有不對之處,還請各位大佬指出:
軟體設計可分為八個大的步驟:
1, 確認專案工作方式 :
專案有大有小,大的如:淘寶、京東這樣的電商網站;小的如:淘寶系統中某一個功能模組,如登入,都可以認為是一個專案;那麼很明顯淘寶和登入有不一樣的工作方式,在這一個步驟時,就是要確認專案的整體工作流程,並以此為基礎進行分解,最後確認專案結構和軟體機構;
如淘寶,整體的工作方式就是:瀏覽器發起一個連線,這個連線對應淘寶提供的應用服務,淘寶處理這個服務,並返回;
2, 分解專案 :
剔除專案整個流程中不需要關注的部分,只留下需要做的專案;或者將專案分成幾個或多個子專案,如遊戲專案的開發,需要開發客戶端和伺服器端等多個專案;
3, 確認應用提供服務:
根據專案需要,確認該專案或系統需要向用戶提供的服務;
如一個web專案,可能需要提供一下服務:
登入服務、使用者資訊管理服務、會員服務、好友服務、聊天服務等....
4, 分解應用服務需要的支撐功能:
將提供的應用服務分解到程式階段,即:程式需要提供怎麼樣的功能,才能支撐起那樣一個應用的服務;
5, 確認應用服務具體流程
確定一個應用服務具體的流程;
6, 提取所有應用服務中所有相同功能
將所有應用服務中相同的程式功能提取出來,封裝到一起;
7, 確認軟體系統整體結構
將之前的應用服務提取的公共功能組裝在一起,組合成系統的整體結構;
8, 確認專案整體結構
依據系統的整體結構和專案的整體工作方式,將專案分解為不同的功能層級,即可完成專案整體結構圖;
每一個步驟具體實現,示例:
1, 首先確定系統和外部使用者整體的交流方式;
如一個網站系統使用者交流流程:
2, 分解系統為服務端和客戶端為兩個系統,如上述網頁瀏覽,或該專案,則客戶端系統是已存在或不需要再設計和重做的;這樣就只需要關注服務端系統;
3, 分解專案需求,確認系統提供的應用服務;
如一個web專案基本功能服務:
4, 分解每一個應用服務對應支援功能:
如使用者登入服務:
5, 應用服務功能支援的流程圖設計:
如登入服務的流程圖:
接收資料 ---- 解密資料 ----- 解碼資料 ----- 登入請求 -----返回登入頁面 ---- 登入提交 ----- 檢驗碼檢測 ------- 使用者登入資料異常過濾 ------ 使用者判斷密碼判斷 -------- 登入成功管理業務服務 ------ 日誌記錄 ------ 登入返回,進入主頁;
6, 應用服務支援功能相同功能提取;
如web服務中,資料的接收加解密、編解碼等功能,可以使用現有的服務框架,如tomcat、nginx、jboss等;
如日誌記錄功能:是否可以使用spring 或者aspectj的面向切面設計,進行統一的處理等,當然這是可行的;
7, 系統整體結構組裝,即將每一個應用服務相同部分提取,設計為相同部分,將不同部分封裝到各種應用的內部;
如上述web服務:
8 , 提取軟體結構圖公共部分,繪製專案結構圖;
如上述web專案: