軟件系統設計方案


系統背景

  本項目需要設計一個工業互聯網平台,完成用戶管理,設備管理(包括設備狀態監測和設備控制)以及系統故障報警等功能。工作人員可以通過雲端平台完成對設備的狀態監測和控制,進而減小工作強度,提升工作效率。

   本文將對項目進行完整的分析,給出項目的設計方案和軟件架構,從不同的角度以不同的視圖給出對項目的描述。

一  系統設計

1.1  軟件架構

  本項目是在設計一個工業互聯網平台,需要大量的人機交互,所以采用了MVC架構模式來進行設計。

  MVC是三個單詞的首字母縮寫,分別是Model(模型)、View(視圖)和Controller(控制)。MVC模式認為,程序不論簡單或復雜,從結構上看,都可以分成三層。

    1)最上面的一層,是直接面向最終用戶的"視圖層"(View)。它是提供給用戶的操作界面,是程序的外殼。

    2)最底下的一層,是核心的"數據層"(Model),也就是程序需要操作的數據或信息。

    3)中間的一層,就是"控制層"(Controller),它負責根據用戶從"視圖層"輸入的指令,選取"數據層"中的數據,然后對其進行相應的操作,產生最終結果。

    這三層是緊密聯系在一起的,但又是互相獨立的,每一層內部的變化不影響其他層。每一層都對外提供接口(Interface),供上面一層調用。這樣一來,軟件就可以實現模塊化,修改外觀或者變更數據都不用修改其他層,大大方便了維護和升級。同時降低了系統中客戶和服務構件之間耦合度,提高了服務構件的可重用性。

    在本系統中,Controller將會由業務邏輯層和數據訪問層兩部分共同組成。

    本項目中選擇了B/S模式。B/S架構的全稱為Browser/Server,即瀏覽器/服務器結構。Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,主要事務邏輯在服務器端實現。

      采用B/S架構的系統無須特別安裝,只有Web瀏覽器即可。

      服務器可以直接部署在廣域網上,通過一定的權限控制實現多客戶訪問即可。

      同時用戶無需下載及升級多個客戶端,直接升級服務器即可。

 

1.2  接口設計

   API是指應用程序編程接口,我們通過API接口可以實現特定的功能,而不需要了解其內部實現細節。可以把API接口理解為是特定服務的一種封裝,將服務封裝起來提供給他人調用,這樣一來很多功能不需要二次開發。

接口名稱 接口地址 請求方式 請求參數 響應格式
register /register POST username,email,passwd success/fail
login /login  POST username,passwd success/fail
userInfo /profile/{username} GET username userInfo
addDevice /addDevice POST deviceId,type,IPaddress success/fail
getDevSta /getDevSta GET deviceId devStaInfo
ctrDevSta /ctrDevSta POST deviceId,state success/fail
delDev /delDev POST deviceId success/fail

 

  

 

 

 

 

 

 

 

 

 

二   系統視圖

2.1  分解視圖

  分解是構建軟件架構模型的關鍵步驟,分解視圖也是描述軟件架構模型的關鍵視圖,一般分解視圖呈現為較為明晰的分解結構(breakdown structure)特點。分解視圖用軟件模塊勾划出系統結構,往往會通過不同抽象層級的軟件模塊形成層次化的結構。

 

 

2.2  依賴視圖

  依賴視圖展現了軟件模塊之間的依賴關系。比如一個軟件模塊A調用了另一個軟件模塊B,那么我們說軟件模塊A直接依賴軟件模塊B。如果一個軟件模塊依賴另一個軟件模塊產生的數據,那么這兩個軟件模塊也具有一定的依賴關系。

  依賴視圖在項目計划中有比較典型的應用。比如它能幫助我們找到沒有依賴關系的軟件模塊或子系統,以便獨立開發和測試,同時進一步根據依賴關系確定開發和測試軟件模塊的先后次序。

      

 

 

 

2.3  泛化視圖

  泛化視圖展現了軟件模塊之間的一般化或具體化的關系,典型的例子就是面向對象分析和設計方法中類之間的繼承關系。泛化視圖有助於描述軟件的抽象層次,從而便於軟件的擴展和維護。

   下圖展示了User,Worker,Manager之間的泛化關系。

    

2.4  執行視圖 

  執行視圖展示了系統運行時的時序結構特點,比如流程圖、時序圖等。執行視圖中的每一個執行實體,一般稱為組件(Component),都是不同於其他組件的執行實體。如果有相同或相似的執行實體那么就把它們合並成一個。

  執行實體可以最終分解到軟件的基本元素和軟件的基本結構,因而與軟件代碼具有比較直接的映射關系。在設計與實現過程中,我們一般將執行視圖轉換為偽代碼之后,再進一步轉換為實現代碼。

 

2.5  部署視圖

  部署視圖是將執行實體和計算機資源建立映射關系。這里的執行實體的粒度要與所部署的計算機資源相匹配,比如以進程作為執行實體那么對應的計算機資源就是主機,這時應該描述進程對應主機所組成的網絡拓撲結構,這樣可以清晰地呈現進程間的網絡通信和部署環境的網絡結構特點。

      

  

  部署視圖有助於設計人員分析一個設計的質量屬性,比如軟件處理網絡高並發的能力、軟件對處理器的計算需求等。

三   數據庫設計

數據庫設計主要包含下列關系表:

用戶表:

 
字段 類型 注釋
ID String 用戶編號
name String 姓名
password String 登錄密碼
email String 郵箱
grade int 用戶等級,標識管理員或值班員

 

 

 

 

 

 

 

 

 

設備表:

字段 類型 注釋
ID String 設備編號
class String 設備類型
area int 所屬區域
state int 設備狀態
IPaddress String IP地址

 

 

 

 

 

 

 

 

區域表(網關表):

字段 類型 注釋
areaId int 區域編號
IPaddress String 對應網關IP地址
discribe String 描述信息

 

 

 

 

 

四   運行環境及技術選型

  

  開發語言:JAVA

  Web開發框架:SpringBoot

  緩存:Redis

  數據庫:MySQL

  運行環境:Linux平台+Docker容器

五   系統工作機制

  概念原型是一種虛擬的、理想化的軟件產品形式。具體的講,概念原型 = 用例 + 數據模型。

  通過上述分析,總結項目的工作過程如下:

  用戶成功登錄后,我們根據用戶等級為其賦予不同的功能。對於系統管理員,可以進行維護信息,用戶管理,設備管理,接受報警信息等操作。對於值班員可以進行維護信息,設備管理,接受報警信息等操作,但設備管理中不能創建,刪除以及修改設備信息。

  針對用戶的不同操作請求,由業務處理層給出不同的響應,比如驅動設備完成相關操作,返回包含用戶信息和設備狀態的頁面等。

 

  參考文獻:《軟件科學基礎概念


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM