針對工程實踐項目,進行軟件系統分析和設計,最終形成軟件系統概念原型。
1. 項目介紹
工程實踐課題為《網絡教學資源共享平台》,目的是實現一個遠程教育資源平台,面向學生以及教師。用戶注冊登錄后可以上傳、瀏覽以及下載平台上的資源,從而實現網上教學資源的共享。
2. 軟件設計方案
2.1 軟件架構
本項目采用B/S體系結構,用戶無需安裝客戶端即可使用該系統。Client/Server(C/S)和 Browser/Server(B/S)是我們常用的對軟件的網絡結構特點的表述方式,但它們背后蘊含着一種普遍存在的軟件架構風格,即 客戶-服務模式 架構風格。
客戶-服務模式的架構風格是指客戶代碼通過請求和應答的方式訪問或者調用服務代碼。客戶是主動的,服務是被動的。客戶知道它向哪個服務發出請求,而服務卻不知道它正在為哪個客戶提供服務,甚至不知道正在為多少客戶提供服務。 客戶-服務模式的架構風格具有典型的模塊化特征,降低了系統中客戶和服務構件之間耦合度,提高了服務構件的可重用性。
2.2 開發架構
本項目基於 MVC 框架,MVC模型包括 Model模型層,View視圖層,Controller控制層 三層結構。
結合實際的Java Web項目開發,我們將結構分成四層:
- DAO層:數據持久層, 負責與數據庫進行聯絡的一些任務都封裝在此 。
- Service層:service層主要負責業務模塊的應用邏輯應用設計。
- Controller層:controller層 負責具體的業務模塊流程的控制 ,在此層要調用service層的接口來控制業務流程。
- View層:view層與控制層結合比較緊密,需要二者結合起來協同開發。view層主要負責前台jsp頁面的顯示
2.3 接口及類圖
3. 軟件系統概念模型
3.1 分解視圖
3.2 依賴視圖
3.3 執行流程視圖
3.3.1 用戶登錄
3.3.2 下載文件
3.3.3 教師上傳文件
3.4 布署視圖
3.5 工程分配視圖
3.6 實現視圖
src 源代碼目錄 -main 存放實現類的源代碼 --bean 存放model類 --controller 存放控制器類 --dao 存放持久層代碼,與數據庫進行交互 --interceptor 使用攔截器對一些不安全的請求進行攔截處理 --service 實現業務功能服務 --util 一些常用工具類 -test 存放測試類的代碼
4 系統運行環境
語言: Java
開發工具: IDEA
前端框架:Vue, Jquery。
后端框架:Springboot + Spring + Mybatis
數據庫: MongoDB
spring解決的是業務邏輯層和其他各層的松耦合問題,集成各種框架,簡化開發,降低開發難度;使用Spring Boot框架實現文件的上傳和下載,相比於SpringMVC,配置更加簡單,開發更加高效;Mybatis作為持久層框架,MyBatis是對JDBC的封裝,輕量級,易學,配置簡單,優於Hibernate;數據庫使用MongoDB,非關系型數據庫,優點:以文檔方式存儲,性能高,擴展性強。
5 數據庫設計
1)用戶表
2)資源表
3)上傳表
4)下載表
5)屬性說明
6 系統概念原型的核心工作機制
概念原型的工作過程:
學生:學生登錄系統,根據資源名稱或是資源號進行資源查詢,得到具體資源后可以選擇瀏覽以及下載,使用完成后退出系統。
教師:教師登錄系統,可以選擇上傳資源或者對自己上傳的資源進行管理。也可以根據資源名稱或是資源號進行資源查詢,和普通學生用戶一樣進行瀏覽以及下載。