1. 程式人生 > >軟體專案設計八大步驟

軟體專案設計八大步驟

本人初學者,所寫都為自己領悟,以方便以後參考;若有不對之處,還請各位大佬指出:

軟體設計可分為八個大的步驟:

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專案: