版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄III引言研究背景隨著“十三五”五年計劃的剛剛結(jié)束,“十四五”計劃為我國未來五年的發(fā)展計劃臨摹除了一副新的“藍圖”。推動綠色發(fā)展,促進人與自然和諧共生正是這個藍圖之中不可或缺的一塊拼圖,不論缺失了那一部分,這份藍圖都將變成一個不切實際的空想。所以環(huán)境的保護可謂是得到了空前絕后的關(guān)注,而海洋環(huán)境是整個自然環(huán)境之中的一大主體。然而完成這部分任務(wù)的路途之上不可能總是一帆風順的。盡管人們對于海洋環(huán)境保護的重要性的理解相比之前已經(jīng)有了大幅提高;國家出臺了許多法律條款來對海洋進行保護,但是仍然有不少根深蒂固的問題,在海洋環(huán)境保護的路上充當著“絆腳石”的角色。比如垃圾源源不斷的被投入海洋;人類生產(chǎn)活動持續(xù)深刻影響海洋生態(tài)環(huán)境;突發(fā)海難導致化工物品進行海洋生態(tài)環(huán)境,造成海洋富營養(yǎng)化、海水含氧量降低、海洋食物鏈受影響等。海洋占地球表面積的71%,是全球水汽循環(huán)和碳循環(huán)的最大載體,影響著局部氣象和全球氣候的變化REF_Ref5654\r\h[1]。隨著陸地資源的逐漸枯竭,人們開始不斷對蔚藍大海進行探索。海洋不僅儲備了巨大的動力來源,還可以通過養(yǎng)殖多種海洋生物以滿足人類的生存所需,因此,認識海洋、管理海洋、合理管控海洋對涉海國家的發(fā)展具有重要。為此,諸多的海洋環(huán)境監(jiān)測/保護系統(tǒng)層出不窮。然而,在這些系統(tǒng)之中,或多或少都存在著一些問題,在這些問題中,具有共通性的兩個就是數(shù)據(jù)實時傳遞、監(jiān)測以及監(jiān)測數(shù)據(jù)項的自由配置。這兩個問題使得海洋環(huán)境監(jiān)測系統(tǒng)缺少靈活性、便捷性和準確性。近年來,計算機存儲量的擴大、數(shù)據(jù)庫和網(wǎng)頁化技術(shù)日新月異的發(fā)展著,物聯(lián)網(wǎng)技術(shù)也在不斷地迭代更新中得到升級優(yōu)化。使得數(shù)據(jù)傳輸?shù)乃俣群头€(wěn)定性都得到了一定的提升,讓數(shù)據(jù)實時傳輸變得不再是天馬行空的想象。結(jié)合現(xiàn)代數(shù)據(jù)監(jiān)測平臺可以使用組件的多樣化,實現(xiàn)海洋數(shù)據(jù)實時監(jiān)測,檢測項實時調(diào)整提供了新思路。在這樣的背景之下,本文主要的研究內(nèi)容就是在監(jiān)測海洋環(huán)境的傳感器已經(jīng)設(shè)置完的前提之下,如何利用B/S架構(gòu)的優(yōu)勢,提高海洋環(huán)境監(jiān)測系統(tǒng)的準確性和便捷性。實時監(jiān)控海洋環(huán)境數(shù)據(jù),促進構(gòu)建良好的海洋生態(tài)環(huán)境,規(guī)范人們的海上生產(chǎn)活動。國內(nèi)外現(xiàn)狀與研究意義通過對國內(nèi)外文獻的研究,不難發(fā)現(xiàn)以下發(fā)展路線。最初的檢測系統(tǒng)是通過C/S模式的三層架構(gòu)來實現(xiàn)對傳感器所在監(jiān)測物體進行監(jiān)視、維護、管理等。由系統(tǒng)在界面層發(fā)出請求到邏輯層,邏輯層向數(shù)據(jù)訪問層發(fā)送操作命令,服務(wù)器根據(jù)獲得的命令進行響應(yīng)將結(jié)果反饋會界面層加以渲染的頁面上,最后通過Dephi語言將管理的數(shù)據(jù)統(tǒng)一存放在excel表格中REF_Ref13145\r\h[2]。之后,隨著瀏覽器的不斷更新與發(fā)展,B/S模式應(yīng)運而生,前輩們通過將傳統(tǒng)的C/S模式與B/S模式進行對比發(fā)現(xiàn)傳統(tǒng)C/S模式具有以下缺點:(1)系統(tǒng)的開發(fā)成本高,C/S架構(gòu)對硬件的要求較高。(2)系統(tǒng)兼容性差,缺乏開放性,難以與Internet接軌。(3)系統(tǒng)生命周期短,系統(tǒng)資源冗余度大。(4)系統(tǒng)的維護難度高。而隨著瀏覽器的快速發(fā)展B/S模式應(yīng)運而生。B/S相比于C/S模式的優(yōu)點在于:(1)系統(tǒng)使用標準通信協(xié)議,能夠讓不同平臺通信便捷,跨平臺性高。(2)數(shù)據(jù)庫應(yīng)用與B/S模式緊密貼合。(3)應(yīng)用服務(wù)器提供的動態(tài)HTML頁面生成能力、三層客戶訪問、安全性、處理邏輯以及數(shù)據(jù)庫訪問等功能。使得B/S模式成為當前Web開發(fā)的主流技術(shù)REF_Ref7398\r\h[3]。B/S模式在維護更新方面更加方便簡單,并且通過主流框架MVC+EntityFrameWork框架,來完成數(shù)據(jù)庫表的設(shè)計與實體之間的映射。前些年,由于各類高級語言的不斷出現(xiàn),為了便捷日常開發(fā)以及增加網(wǎng)頁美感,許多開源的前端框架的發(fā)展如火如荼。伴隨而來的就是在原本的B/S基礎(chǔ)上通過使用基于Js原生開發(fā)的Echarts庫對數(shù)據(jù)庫中的數(shù)據(jù)進行了可視化處理,讓使用者能夠更加直觀的觀測到數(shù)據(jù)庫中數(shù)據(jù)的分布情況,并進行一定預測。如今,由于手機應(yīng)用市場的發(fā)展趨勢有超越電腦軟件應(yīng)用市場的趨勢,導致了很多電腦軟件對移動應(yīng)用市場趨之若鶩,開始大批流入移動應(yīng)用市場REF_Ref8129\r\h[4]。兩篇文章的研究人員在原本的PC端B/S模式的基礎(chǔ)下,對移動端的監(jiān)測平臺進行了設(shè)計與實現(xiàn)。移動端的監(jiān)測平臺設(shè)計思路大致與PC端類似,運用B/S的模式的三層架構(gòu)。通過移動端發(fā)送請求,后端執(zhí)行命令對數(shù)據(jù)庫進行操作并返回相關(guān)的數(shù)據(jù)實現(xiàn),最終將從后臺取來的數(shù)據(jù)渲染到頁面上REF_Ref10572\r\h[5]。研究分析可行性分析海洋環(huán)境檢測系統(tǒng)需要拆分成兩個方面。軟件端與硬件端。軟件端采用的是是基于近幾年比較熱門的Springboot+Vue的框架使用J2EE開發(fā),對于輕量級的單頁面式應(yīng)用使用Vscode和IntelliJIDEA(內(nèi)置了ApacheTomcat容器)進行整合開發(fā)的技術(shù)已經(jīng)越發(fā)成熟與流行。在硬件方面,采用的是MODBUS/TCP協(xié)議封裝的傳輸協(xié)議REF_Ref12384\r\h[6],加上近些年5G技術(shù)的橫空出世加快了數(shù)據(jù)傳播的速度,擴展了數(shù)據(jù)傳播的容量。雖然由于條件有限,沒有設(shè)計出傳感器實體。但是可以通過編寫數(shù)據(jù)接口,來模擬傳感器已經(jīng)檢測到數(shù)據(jù)并且通過串口發(fā)送數(shù)據(jù)包給后臺的這個過程來達到模擬實際情形下檢測點的工作場景。同時,有指導老師和公司前輩的知道,對于完成該監(jiān)測系統(tǒng)的,技術(shù)上是可行的。主要研究內(nèi)容研究要點實現(xiàn)在一張地圖上實時動態(tài)的更新監(jiān)測點和監(jiān)測點中配備的傳感器所檢測出來的數(shù)值,并且能夠拖動地圖和改變地圖的規(guī)模實現(xiàn)實時數(shù)據(jù)監(jiān)測,并且能夠讓用戶自主配置傳感器監(jiān)測信息是否顯示實現(xiàn)不同用戶所能行使的權(quán)限不同且可以由管理員調(diào)配實現(xiàn)海洋環(huán)境監(jiān)測系統(tǒng)的PC端,并且將PC端的環(huán)境監(jiān)測平臺的部分功能移植到微信小程序平論文組織結(jié)構(gòu)論文共計六個章節(jié),各章節(jié)的主要內(nèi)容如下:引言。在該章節(jié)本文介紹了本文的研究背景、分析了國內(nèi)外的研究現(xiàn)狀與研究意義、探討了研究內(nèi)容的可行性、論文主要的研究內(nèi)容和組織結(jié)構(gòu)。海洋環(huán)境監(jiān)測系統(tǒng)技術(shù)綜述。在該章節(jié)本文簡要介紹了本文開發(fā)過程中涉及到的開發(fā)框架和相關(guān)技術(shù)。其中包括SpringBoot框架、Vue框架、外部地圖接口、Echarts技術(shù)、Redis數(shù)據(jù)緩存技術(shù)。系統(tǒng)需求分析。在該章節(jié),本文對系統(tǒng)進行了綜述介紹,并且從業(yè)務(wù)流程角度、系統(tǒng)功能性角度,系統(tǒng)非功能性角度大致分析了系統(tǒng)的一系列問題。系統(tǒng)的設(shè)計與實現(xiàn)。在該章節(jié),本文對系統(tǒng)的架構(gòu)與數(shù)據(jù)庫進行設(shè)計、并且根據(jù)第三章中分析出來的功能需求進行每個功能模塊的設(shè)計與實現(xiàn)概述。海洋環(huán)境監(jiān)測系統(tǒng)的測試。在該章節(jié),本文進行系統(tǒng)測試環(huán)境的介紹并且對第四章中的每一個功能模塊的實現(xiàn)進行功能測試。最后根據(jù)測試的情況進行分析??偨Y(jié)與展望。在該章節(jié),本文對整個系統(tǒng)的實現(xiàn)過程進行了總結(jié)。并且對于其中不足的部分進行了進一步工作方向的制定。第2章海洋環(huán)境監(jiān)測系統(tǒng)技術(shù)綜述海洋環(huán)境監(jiān)測系統(tǒng)技術(shù)綜述SpringBoot近乎所有Spring框架的的優(yōu)秀基因都被Springboot所繼承REF_Ref12458\r\h[7]。并且Springboot框架在原有的基礎(chǔ)上進行了改進,使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。同時,它自帶Tomcat容器,簡化了Maven的配置,提供了一個pom.xml文件進行依賴的導入,支持熱部署,能夠通過jar包的形式運行整個項目,方便了部署與維護。Springboot的設(shè)計初衷是為了讓Spring框架能夠從繁多的配置文件之中解脫出來,通過默認配置一些框架的使用方式的形式來達到這個目的。Boot對Spring應(yīng)用的開發(fā)進行了簡化,提供了模塊化導入依賴的能力。使用Springboot可以高效快速地搭建起一個簡單的項目。在企業(yè)基礎(chǔ)領(lǐng)域,他能夠?qū)崿F(xiàn)快速開發(fā)、更小的代碼庫、企業(yè)級集成和模塊化部署REF_Ref12507\r\h[8]。前端框架PC端前端框架采用的Vue框架。Vue是一套用于構(gòu)建用戶界面的漸進式框架。Vue開發(fā)的前端項目采用的MVVM架構(gòu),能夠完全支持復雜的單頁面應(yīng)用。它采用的是自底向上的增量式開發(fā)設(shè)計REF_Ref12589\r\h[9]。Vue能夠通過抓包管理工具快速整合第三方庫或既有項目。它與其他市場上的主流前端框架相比之下具有如下特點:采用MVVMREF_Ref12670\r\h[10]架構(gòu)開發(fā)輕量級,靈活,易上手數(shù)據(jù)驅(qū)動可組合視圖組件插件化開發(fā)具有一系列原生指令,且能夠自定義指令圖2.2MVVM 架構(gòu)示意圖Uniapp是基于Vue.js開發(fā)的前端框架,它具有良好的兼容性,一套代碼能夠同時發(fā)布在幾個不同的主流市場上,且繼承了近乎Vue的所有良好基因,支持Vue的所有特性REF_Ref12729\r\h[11]。地圖接口本系統(tǒng)的地圖接口采用了兩種,分別是高德地圖的接口與騰訊地圖的接口,他們都是輕量級的地圖接口,內(nèi)部自帶了強大的各類視圖組件。并且封裝了使用地圖過程中需要使用到的數(shù)據(jù)類型和各類事件。RedisRedis是一個基于NoSQL概念設(shè)計的完全開源并且嚴格遵守BSD協(xié)議的高性能的key-value數(shù)據(jù)庫。它同時支持五種數(shù)據(jù)類型:String(字符串)、set(集合)、list(列表)、zset(有序集合)、hash(散列)。Redis支持數(shù)據(jù)持久化,可以將內(nèi)存中的數(shù)據(jù)存儲到磁盤中,重啟時可以再次加載進行使用。因為Redis是完全進行內(nèi)存操作、單線程操作、采用非阻塞的I/O多路復用機制等,所以它在某種程度上可以避免上下文頻繁切換和提高項目的效率REF_Ref12830\r\h[12]。并且Redis支持通過自從復制的模式進行數(shù)據(jù)備份。EchartsEcharts是一個純基于js實現(xiàn)的開源可視化庫,可以流暢的運行PC端和移動設(shè)備上,還能夠兼容絕大部分市場上主流的瀏覽器,底層依賴輕量級矢量庫ZRender,提供了直觀,交互豐富,可高度個性化的可視化圖表REF_Ref12873\r\h[13]。
ECharts提供了常規(guī)的折線圖、柱狀圖、散點圖、餅圖、K線圖,用于統(tǒng)計的盒形圖,用于地理數(shù)據(jù)可視化的地圖、熱力圖、線圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖、旭日圖,多維數(shù)據(jù)可視化的平行坐標,還有用于BI的漏斗圖,儀表盤,并且支持圖與圖之間的混搭。本章小結(jié)在本該章節(jié)中,文章主要介紹了在系統(tǒng)開發(fā)時需要使用到的框架和技術(shù)。其中框架有Vue前端框架、后端SpringBoot框架和Uniapp的小程序前端框架。時候到的技術(shù)有Redis數(shù)據(jù)緩存技術(shù)、Echarts數(shù)據(jù)可視化技術(shù)和外部地圖接口,并且介紹了他們的優(yōu)勢。第3章需求分析需求分析海洋環(huán)境監(jiān)測系統(tǒng)概述本文主要研究便捷、靈活、方便的環(huán)境監(jiān)測項目中的海洋環(huán)境檢測系統(tǒng)的功能設(shè)計與實現(xiàn)?;谇捌诘恼{(diào)研與需求理解,系統(tǒng)用戶中最重要的角色是系統(tǒng)管理員。其余用戶由管理員進行添加,并且為該用戶配置他所具備的權(quán)限。不同權(quán)限用戶登錄系統(tǒng)后顯示的功能導航欄根據(jù)管理員配置的權(quán)限的不同而跳轉(zhuǎn)的不同的頁面。由于權(quán)限是由管理員手動配置,所以下面的功能通過管理員進行描述。系統(tǒng)管理員能夠行使的權(quán)限包括首頁模塊、Gis模塊、數(shù)據(jù)實時監(jiān)測模塊、監(jiān)測點管理模塊、監(jiān)測點數(shù)據(jù)對比模塊以及用戶管理模塊。在首頁模塊主要是對一些監(jiān)測點的信息以圖表的形式動態(tài)呈現(xiàn)出來,其中包括發(fā)布的信息,監(jiān)測點的天氣情況,監(jiān)測點各個監(jiān)測數(shù)值之間的占比,監(jiān)測點的歷史監(jiān)測數(shù)據(jù)等;Gis模塊主要是顯示出一張世界地圖,地圖上顯示出我們配置的監(jiān)測點,監(jiān)測點上能夠顯示信息框,信息框中顯示所有該監(jiān)測點配置的傳感器的所實施監(jiān)測的信息;實時數(shù)據(jù)監(jiān)測模塊主要是對單個監(jiān)測點的各個數(shù)據(jù)的區(qū)間做限制,遇到已經(jīng)作出一些警告提示;監(jiān)測點管理模塊主要是對已經(jīng)添加的監(jiān)測點的一些基礎(chǔ)信息進行修改,同時可以對監(jiān)測點上的傳感器進行配置;數(shù)據(jù)對比模塊主要是選擇兩個監(jiān)測點,用戶可根據(jù)監(jiān)測點傳回來的數(shù)值進行圖表繪制,直觀呈現(xiàn)給用戶,供其進行對比參考;用戶管理模塊主要是對用戶進行查找、增加、刪除和修改,同時進行新全新的增加和身份所具有的權(quán)限配置。系統(tǒng)的后臺是基于Springboot開發(fā),進行數(shù)據(jù)庫相關(guān)操作使用的Mybatis-plus技術(shù)。PC端的前端開發(fā)框架使用的Vue,微信小程序端用的是Uniapp。數(shù)據(jù)庫選擇使用免費高效的MySQL與內(nèi)存數(shù)據(jù)庫Redis相結(jié)合來進行數(shù)據(jù)的高效存儲與讀取。海洋環(huán)境監(jiān)測系統(tǒng)目標用戶根據(jù)監(jiān)測系統(tǒng)的實際需求,系統(tǒng)的目標用戶大致分為了兩鐘,管理員與一般用戶。兩種角色的說明如下:管理員角色。管理員能夠正常行使系統(tǒng)的所有功能。一般用戶角色。一般用戶具體能夠使用的功能需要依賴于該角色被分配到的角色以及該角色所具備的權(quán)限。通常,一般用戶能夠行使的權(quán)限范圍在首頁模塊、Gis模塊、實時數(shù)據(jù)監(jiān)測模塊、監(jiān)測點管理模塊和數(shù)據(jù)對比模塊之中。海洋環(huán)境監(jiān)測系統(tǒng)用例圖在需求分析階段,將使用UML過程中的用例圖對需求進行確認,用例圖能夠直觀形象地展示參與者、用例、參與者與用例之間的關(guān)系。以下將通過對系統(tǒng)的需求得出系統(tǒng)的用例圖。如圖3.1是海洋環(huán)境監(jiān)測系統(tǒng)的用例圖。通過用例圖可以看出,系統(tǒng)參與者分為管理員和一般用戶兩類。每類參與者關(guān)聯(lián)的用例如下。圖3.1系統(tǒng)用例圖如圖3.1所示為海洋環(huán)境監(jiān)測系統(tǒng)的系統(tǒng)用例圖,從圖中可以看出海洋環(huán)境監(jiān)測系統(tǒng)主要包括了首頁模塊、Gis模塊、實時監(jiān)測模塊、監(jiān)測點管理模塊、數(shù)據(jù)對比模塊、用戶管理模塊。接下來將使用用例規(guī)約對每個模塊的用例進行說明。表3.1首頁模塊用例規(guī)約用例名稱首頁展示用例IdUC01角色一般用戶、管理員用例說明首頁功能模塊包括用戶和管理員可以對某個監(jiān)測點的監(jiān)測信息進行查看前置條件用戶登錄系統(tǒng),進入首頁功能模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入首頁模塊2系統(tǒng)返回默認監(jiān)測點檢測信息3用戶選擇監(jiān)測點4系統(tǒng)檢索用戶選中的監(jiān)測點信息并且返回5用戶選擇顯示數(shù)據(jù)類型6系統(tǒng)過濾返回數(shù)據(jù)的類型并且返回7用戶點擊收起按鈕8系統(tǒng)響應(yīng)點擊事件并且將主頁面占屏比放大后置條件系統(tǒng)顯示選中監(jiān)測點的信息表3.2Gis模塊用例規(guī)約用例名稱監(jiān)測點預覽用例IdUC02角色一般用戶、管理員用例說明首頁功能模塊包括用戶和管理員可以對全部監(jiān)測點的監(jiān)測信息進行查看和對監(jiān)測點進行部分的管理功能前置條件用戶登錄系統(tǒng),進入Gis模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入Gis模塊2系統(tǒng)讀取全部監(jiān)測點和傳感器監(jiān)測信息。3用戶拖動地圖4系統(tǒng)中地圖地理位置改變5用戶拖拉地圖控件6系統(tǒng)中地圖規(guī)模發(fā)生改變7用戶點擊監(jiān)測點8系統(tǒng)出現(xiàn)彈窗顯示選中監(jiān)測點信息9用戶點擊地圖空余部分10系統(tǒng)彈出彈窗11用戶填寫信息提交12系統(tǒng)提示提交結(jié)果信息且地圖上監(jiān)測點發(fā)生改變后置條件地圖上顯示所有的監(jiān)測點,監(jiān)測點氣泡框中顯示實時的監(jiān)測信息數(shù)據(jù)表3.3實時數(shù)據(jù)監(jiān)測模塊用例規(guī)約用例名稱實時數(shù)據(jù)監(jiān)測用例IdUC03角色一般用戶、管理員用例說明實時數(shù)據(jù)監(jiān)測模塊進行監(jiān)測點數(shù)據(jù)實時監(jiān)測并且可以配置監(jiān)測點顯示內(nèi)容前置條件用戶登錄系統(tǒng),進入實時數(shù)據(jù)監(jiān)測模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入實時數(shù)據(jù)監(jiān)測模塊2系統(tǒng)讀取全部監(jiān)測點信息。3用戶選中下拉框中的監(jiān)測點4系統(tǒng)響應(yīng)返回監(jiān)測點監(jiān)測信息5用戶點擊配置按鈕6系統(tǒng)彈出彈窗并且顯示所有傳感器信息7用戶輸入數(shù)據(jù)范圍8系統(tǒng)記錄用戶輸入的信息9用戶點擊傳感器開關(guān)10系統(tǒng)主頁顯示相關(guān)檢測點的監(jiān)測信息11用戶靜止一段時間系統(tǒng)響應(yīng)刷新監(jiān)測點信息后置條件數(shù)據(jù)實時監(jiān)測主頁面上顯示出用戶配置的傳感器的監(jiān)測信息,檢測值低于最小值出現(xiàn)警告提示,大于最大值出現(xiàn)警告。表3.4數(shù)據(jù)對比模塊用例規(guī)約用例名稱監(jiān)測點數(shù)據(jù)對比用例IdUC04角色一般用戶、管理員用例說明首頁功能模塊包括用戶和管理員可以對某個監(jiān)測點的監(jiān)測信息進行查看和對監(jiān)測點進行部分的管理功能前置條件用戶登錄系統(tǒng),進入數(shù)據(jù)對比模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入用戶管理模塊2系統(tǒng)讀取全部監(jiān)測點和傳感器監(jiān)測信息3用戶選取參考監(jiān)測點4系統(tǒng)參考監(jiān)測點柱狀圖顯示相關(guān)信息5用戶選取樣本監(jiān)測點6系統(tǒng)樣本監(jiān)測點柱狀圖顯示相關(guān)信息后置條件用戶選擇了樣本和參考點之后圖表上出現(xiàn)相應(yīng)的數(shù)據(jù)3.5監(jiān)測點管理用例規(guī)約用例名稱監(jiān)測點管理用例IdUC05角色一般用戶、管理員用例說明監(jiān)測點管理模塊主要是對監(jiān)測點與傳感器進行管理前置條件用戶登錄系統(tǒng),進入監(jiān)測點管理模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入監(jiān)測點管理模塊2系統(tǒng)讀取全部監(jiān)測點和傳感器監(jiān)測信息3用戶點擊添加按鈕4系統(tǒng)彈出彈窗5用戶輸入相關(guān)信息并提交6系統(tǒng)提示提交結(jié)果更新表格7用戶點擊配置8系統(tǒng)彈出彈窗9用戶點擊配置或添加10系統(tǒng)彈出彈窗11用戶輸入相關(guān)信息并提交12系統(tǒng)提示提交結(jié)果后置條件主頁面顯示用戶經(jīng)過一些列操作之后的表格結(jié)果表3.6用戶管理用例規(guī)約用例名稱用戶管理用例IdUC06角色管理員用例說明用戶模塊對用戶進行管理,并且進行用戶權(quán)限的配置前置條件用戶登錄系統(tǒng),用戶模塊基本事件流參與者動作系統(tǒng)響應(yīng)1用戶進入用戶管理模塊2系統(tǒng)讀取全部用戶信息與權(quán)限信息3用戶點擊修改或添加按鈕4系統(tǒng)彈出彈窗5用戶填入相關(guān)信息6系統(tǒng)響應(yīng)并且提示用戶提交結(jié)果7用戶進入權(quán)限管理子模塊8系統(tǒng)加載權(quán)限信息9用戶點擊穿梭框內(nèi)的勾選框點擊轉(zhuǎn)移按鈕10系統(tǒng)記錄已有權(quán)限信息11用戶點擊保存按鈕12系統(tǒng)保存用戶新權(quán)限后置條件用戶擁有權(quán)限發(fā)生變更海洋環(huán)境監(jiān)測系統(tǒng)業(yè)務(wù)流程分析首先用戶在監(jiān)測點管理模塊進行監(jiān)測點的新增,之后再為新增的監(jiān)測點配置傳感器,之后進入Gis模塊運行一段時間之后,進入實時數(shù)據(jù)監(jiān)測模塊選擇對應(yīng)的監(jiān)測點信息,并且配置需要顯示數(shù)據(jù)項的數(shù)值范圍。結(jié)束結(jié)束數(shù)據(jù)實時監(jiān)測的時候,可以到首頁模塊查看監(jiān)測點的數(shù)據(jù)信息的大屏展示。再進入數(shù)據(jù)對比模塊選擇監(jiān)測點進行數(shù)據(jù)的對比。在需要進行用戶管理的時候進入用戶管理頁面,進行用戶信息、身份、權(quán)限進行管理。圖3.2海洋環(huán)境監(jiān)測系統(tǒng)數(shù)據(jù)流圖海洋環(huán)境監(jiān)測系統(tǒng)功能需求分析本系統(tǒng)按照功能分為六大功能模塊,接下來將按照功能模塊的劃分進行每一個功能模塊的需求分析。在首頁功能模塊中,頁面提供一個選擇框讓用戶選擇需要進行數(shù)據(jù)展示的監(jiān)測點。頁面顯示的信息需要能夠?qū)崟r的刷新,并且該頁面需要能夠進行大屏展示功能。在Gis模塊中,頁面需要展示一個地圖,地圖上展現(xiàn)出數(shù)據(jù)庫中的監(jiān)測點,監(jiān)測點上能夠以氣泡的形式對監(jiān)測的數(shù)據(jù)進行顯示,并且能夠自動實時刷新數(shù)據(jù)。地圖能夠進行拖拽以及修改地圖規(guī)模。在數(shù)據(jù)實時監(jiān)測模塊中,要求用戶能夠?qū)x中的監(jiān)測點中的傳感器監(jiān)測數(shù)據(jù)進行配置。能夠?qū)?shù)據(jù)的范圍進行設(shè)定,并且實時監(jiān)測數(shù)據(jù)是否符合設(shè)定的范圍。在監(jiān)測點管理模塊中,要求用戶能夠?qū)σ延械谋O(jiān)測點進行統(tǒng)一的管理,在管理過程中能夠?qū)ΡO(jiān)測點所擁有的傳感器進行配置。在數(shù)據(jù)對比模塊中,需要我們能夠在用戶選擇好兩個監(jiān)測點信息之后,以圖標的形式展示出兩個監(jiān)測點的監(jiān)測信息,方便用戶直觀的進行數(shù)據(jù)比對。在用戶管理模塊中,要求管理員能夠?qū)崟r添加用戶,配置角色權(quán)限和用戶信息的增刪改查等。海洋環(huán)境監(jiān)測系統(tǒng)非功能性測試本系統(tǒng)在實現(xiàn)海洋環(huán)境中各項數(shù)值的監(jiān)測與展示功能時,還需要對系統(tǒng)的性能進行充分考慮。由于海洋環(huán)境中的各項數(shù)值很多,所以監(jiān)測點上配置的傳感器也會伴隨著增長,并且監(jiān)測時需要達到實時的效果就要每分每秒都要發(fā)送請求,將監(jiān)測的數(shù)值存入數(shù)據(jù)庫中。系統(tǒng)是否能夠穩(wěn)定運行,性能是否符合要求這些對于系統(tǒng)來說都是至關(guān)重要要的。在系統(tǒng)性能方面,由于監(jiān)測點是每時每刻都在進行數(shù)據(jù)的監(jiān)測,并且監(jiān)測的數(shù)據(jù)項隨著使用時長的增加,監(jiān)測的數(shù)據(jù)項可能也會增多。因此系統(tǒng)在設(shè)計初期就需要考慮如何將儲存監(jiān)測結(jié)果的接口負載進行分攤。保證后臺不會因為頻繁的寫入操作導致系統(tǒng)后臺崩潰。在系統(tǒng)安全方面,系統(tǒng)在設(shè)計之初就需要對系統(tǒng)的使用者進行劃分,存在一個管理員具有系統(tǒng)的所有權(quán)限?;诠芾韱T劃分出來的不同的角色以及該角色被賦予的相關(guān)權(quán)限,不同的用戶在使用系統(tǒng)時所能進行的功能模塊訪問權(quán)限具有一定的限制。在系統(tǒng)的可靠性方面,系統(tǒng)需要保證能夠長期正常運行,系統(tǒng)中各個業(yè)務(wù)邏輯都能夠正確進行,顯示的數(shù)據(jù)具有準確性。對于用戶而言,在使用系統(tǒng)時系統(tǒng)中的各個組件的響應(yīng)時間是否過長,頁面是否出現(xiàn)卡頓或者崩潰的現(xiàn)象直接影響到用戶的使用體驗。章節(jié)小結(jié)在該章節(jié)中,文章介紹了海洋環(huán)境監(jiān)測系統(tǒng)的概述,分析了系統(tǒng)的大致業(yè)務(wù)流程。并且在此基礎(chǔ)上,對整個系統(tǒng)的需求進行分析總結(jié)出了系統(tǒng)模塊劃分,劃分出了首頁模塊、Gis模塊、實時數(shù)據(jù)監(jiān)測模塊、監(jiān)測點管理模塊、數(shù)據(jù)對比模塊、用戶管理模塊。再對市面上的監(jiān)測系統(tǒng)進行了調(diào)查,總結(jié)出系統(tǒng)的非功能性需求。第4章系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)的設(shè)計與實現(xiàn)系統(tǒng)設(shè)計目標與原則對于海洋環(huán)境檢測系統(tǒng),其設(shè)計目的旨在將傳統(tǒng)的海洋環(huán)境監(jiān)測系統(tǒng)從C/S模式中解放出來。通過將系統(tǒng)部署在服務(wù)器上,直接通過瀏覽器進行訪問來規(guī)避傳統(tǒng)C/S模式中的弊端。通過網(wǎng)絡(luò)數(shù)據(jù)傳播速度的加快和數(shù)據(jù)可視化技術(shù)的發(fā)展,傳統(tǒng)監(jiān)測系統(tǒng)的數(shù)據(jù)無法實時獲取的問題得到改善REF_Ref26847\r\h[11]。并且嘗試在監(jiān)測平臺從PC端移植到微信小程序端。在設(shè)計過程中,需要明確系統(tǒng)的總體架構(gòu),吸取先前監(jiān)測系統(tǒng)的經(jīng)驗,在數(shù)據(jù)庫設(shè)計時需要考慮數(shù)據(jù)的寫入和讀取速度問題。在系統(tǒng)設(shè)計階段需要遵循以下原則:實用性原則在對海洋環(huán)境監(jiān)測系統(tǒng)進行設(shè)計的過程中需要遵循實用性原則,系統(tǒng)本著方便海洋環(huán)境數(shù)據(jù)監(jiān)測,提高相關(guān)部門監(jiān)控海洋生態(tài)環(huán)境的效率,將更多的權(quán)限交付給用戶行使。在系統(tǒng)界面的設(shè)計上要清晰,操作簡單,盡可能方便用戶對系統(tǒng)的操作REF_Ref12958\r\h[14]。安全性原則系統(tǒng)主要用于海洋環(huán)境相關(guān)的部門,涉及到部門人員的部分個人信息,所以系統(tǒng)在安全性上具有一定的要求。在系統(tǒng)設(shè)計時需要對用戶進行認證才能夠進入到系統(tǒng)中,并且通過權(quán)限的設(shè)置,來限制不同用戶對系統(tǒng)的使用權(quán)限。數(shù)據(jù)庫對于關(guān)鍵的數(shù)據(jù)會每隔一段時間進行備份防止關(guān)鍵數(shù)據(jù)丟失??赏卣剐栽瓌t由于目前系統(tǒng)還沒有開始迭代,且海洋環(huán)境監(jiān)測的功能需求很可能會發(fā)生變化。因此,在系統(tǒng)設(shè)計時需要考慮可拓展性,使得在日后業(yè)務(wù)有變化的情況下也能夠適用。通過將系統(tǒng)層次化和功能模塊化使系統(tǒng)具備可拓展性。系統(tǒng)架構(gòu)設(shè)計系統(tǒng)邏輯結(jié)構(gòu)設(shè)計海洋環(huán)境監(jiān)測涉及到眾多的業(yè)務(wù),新的業(yè)務(wù)需求的出現(xiàn)頻率也會很高,系統(tǒng)的開發(fā)與維護的難度大。所以,系統(tǒng)對于整個架構(gòu)的可靠性和可復用性的要求很高。當一個新的業(yè)務(wù)要求提出,系統(tǒng)只需要根據(jù)已有數(shù)據(jù)接口或是編寫全新的接口加上一個與新業(yè)務(wù)相關(guān)的前端頁面組件即可實現(xiàn)。圖4.1系統(tǒng)架構(gòu)圖如系統(tǒng)結(jié)構(gòu)圖4.1所示,系統(tǒng)自上而下分為用戶層、前端控制層、服務(wù)層、數(shù)據(jù)持久層、數(shù)據(jù)存儲層。通過降低系統(tǒng)各個層次之間的耦合度,提高了系統(tǒng)的可維護性和可拓展性。用戶層。用戶層主要是對系統(tǒng)的操作者類型進行歸類。歸類成管理員與一般用戶兩類。各個用戶通過用戶賬號和密碼進入系統(tǒng),行使各自權(quán)限范圍內(nèi)的功能。前端控制層。前端控制層是根據(jù)不同在各個功能模塊的不同的操作頁面,對用戶的不同類型的請求進行分類,通過Spring的DispatcherServlet將用戶發(fā)送的請求進行接收解析。經(jīng)過適配器處理之后,由服務(wù)層接收用戶發(fā)送的請求,進行對應(yīng)的處理之后,將處理結(jié)果返回給用戶。服務(wù)層。服務(wù)層主要對前端控制層發(fā)送來的請求進行接收,調(diào)用數(shù)據(jù)持久層中進行數(shù)據(jù)庫相關(guān)操作,將數(shù)據(jù)庫操作結(jié)果返回給用戶。并且服務(wù)層通過實現(xiàn)數(shù)據(jù)持久化抽象出來的接口能夠讓系統(tǒng)結(jié)構(gòu)更加通俗易懂。數(shù)據(jù)持久化層。數(shù)據(jù)數(shù)據(jù)持久化層通過使用同一的數(shù)據(jù)訪問口讓服務(wù)層能夠?qū)?shù)據(jù)庫進行交互,并且將交互結(jié)果返回給服務(wù)層。通過數(shù)據(jù)持久化層,能夠提高系統(tǒng)的響應(yīng)速度,減少對數(shù)據(jù)庫的訪問頻率從而達到提高系統(tǒng)運行速度的目的。本系統(tǒng)數(shù)據(jù)庫操作使用的MybatisPlus框架,通過使用Springboot的注解管理數(shù)據(jù)庫,通過Mapper組件將數(shù)據(jù)庫訪問層和數(shù)據(jù)持久層的表示方式抽象化,對關(guān)系型數(shù)據(jù)庫進行讀取與寫入操作,提高數(shù)據(jù)庫的效率。數(shù)據(jù)存儲層。系統(tǒng)的數(shù)據(jù)存儲層采用的是MySQL與Redis相結(jié)合的方式對數(shù)據(jù)進行存取。數(shù)據(jù)庫包括與用戶、監(jiān)測點、傳感器相關(guān)的表,這些數(shù)據(jù)通過MySQL數(shù)據(jù)庫進行存儲。Redis緩存的主要作用是用于應(yīng)對實時數(shù)據(jù)監(jiān)測的情景之下,對每一次監(jiān)測的數(shù)據(jù)進行保存。之后再將存儲的監(jiān)測數(shù)據(jù)存放到MySQL數(shù)據(jù)庫之中。以這種方式均攤MySQL的交互壓力,提高系統(tǒng)的容錯率。系統(tǒng)功能結(jié)構(gòu)設(shè)計根據(jù)第三章中對海洋環(huán)境監(jiān)測系統(tǒng)的需求分析,系統(tǒng)包括對不同的用戶具有不同的操作服務(wù)。為降低系統(tǒng)開發(fā)難度,計劃將系統(tǒng)各個功能劃分成幾個并行的結(jié)構(gòu)模塊,從而降低各個模塊之間的耦合度,提高系統(tǒng)可維護性。4.2海洋環(huán)境監(jiān)測系統(tǒng)功能結(jié)構(gòu)圖海洋環(huán)境監(jiān)測系統(tǒng)的功能結(jié)構(gòu)圖如圖4.2所示。系統(tǒng)按照功能模塊主要分為六個功能模塊,分別是首頁模塊,Gis模塊,實時數(shù)據(jù)監(jiān)測模塊,監(jiān)測點管理模塊,數(shù)據(jù)對比模塊,權(quán)限配置(用戶管理)模塊。首頁模塊。在首頁模塊中用戶需要先選擇一個監(jiān)測點,選擇結(jié)束后,在下拉框下方的五個卡片中會顯示出通知信息,監(jiān)測點天氣,監(jiān)測點當前監(jiān)測數(shù)據(jù)占比的餅圖,該監(jiān)測點所有的歷史監(jiān)測數(shù)據(jù)繪制而成的餅圖。最后一個卡片會以表格形式呈現(xiàn)的歷史各項數(shù)據(jù)的檢測結(jié)果,并且提供一個過濾器來篩選用戶需要的信息Gis模塊。在Gis模塊中,用戶能夠在一個地圖上觀測到數(shù)據(jù)庫中已有監(jiān)測點的所在地和該監(jiān)測點所具有測傳感器監(jiān)測出來的數(shù)據(jù)會以氣泡的形式呈現(xiàn)在監(jiān)測點附近。用戶能夠直接通過點擊地圖上的區(qū)域進行監(jiān)測點的添加,也能直接點擊已有的監(jiān)測點對其進行刪除操作。數(shù)據(jù)實時監(jiān)測模塊。在該模塊中用戶首先需要選擇一個監(jiān)測點,之后點擊右上方的配置。之后在彈出串口中對該監(jiān)測點所擁有的傳感器監(jiān)測數(shù)值進行配置,配置的主要內(nèi)容包括該傳感器監(jiān)測信息是否顯示,該傳感器監(jiān)測的數(shù)值范圍。傳感器配置模塊。傳感器配置模塊用戶可以對已設(shè)置的監(jiān)測點進行傳感器的配置。同時可以進行監(jiān)測點的管理,包括修改,增加和刪除功能。數(shù)據(jù)對比模塊。該模塊用戶需要在兩個下拉框中選取兩個監(jiān)測點,一個作為參照點。然后根據(jù)用戶選取的監(jiān)測點在下方形成對應(yīng)監(jiān)測點監(jiān)測數(shù)值的柱狀圖,以供公戶進行直觀對比兩個監(jiān)測點的區(qū)別。用戶管理模塊。用戶管理模塊,管理員可以在此模塊中進行用戶的查詢,修改,增添和刪除。同時可以進行用戶身份的配置和某個身份權(quán)限的配置。數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫原則設(shè)計本系統(tǒng)的的數(shù)據(jù)存儲采用高性能的關(guān)系型數(shù)據(jù)庫MySQL和菲關(guān)系型數(shù)據(jù)庫Redis兩種數(shù)據(jù)儲存技術(shù)相結(jié)合的方式,解決訪問磁盤數(shù)據(jù)時CPU和磁盤的I/O速率不匹配問題。數(shù)據(jù)訪問問題的解決使得系統(tǒng)能夠快速響應(yīng)用戶的請求,從而提高系統(tǒng)性能。針對兩種不同類型的數(shù)據(jù)存儲技術(shù),設(shè)計數(shù)據(jù)表時需要遵循相應(yīng)的規(guī)則,使得開發(fā)過程方便,同時能夠滿足日后系統(tǒng)功能業(yè)務(wù)的拓展后的數(shù)據(jù)需求。對于MySQL數(shù)據(jù)庫,主要存儲用戶、監(jiān)測點、傳感器等用戶可以手動調(diào)整的信息。對于表的設(shè)計要求每一個屬性不可再分,非主鍵和外鍵字段之間不能夠相互依賴,數(shù)據(jù)類型設(shè)計要盡可能簡單。對于Redis數(shù)據(jù)庫,存儲的信息主要是用各個監(jiān)測點監(jiān)測出的每一個數(shù)據(jù)。由于監(jiān)測點的數(shù)據(jù)是每時每刻都在監(jiān)測,且用戶需要大量頻繁的讀取監(jiān)測點的監(jiān)測數(shù)據(jù)。這種業(yè)務(wù)情景十分契合非關(guān)系型數(shù)據(jù)庫寫入和讀取數(shù)據(jù)速度快的特性。Redis將監(jiān)測數(shù)據(jù)存儲在內(nèi)存中,監(jiān)測數(shù)據(jù)定時刷新到硬盤中。使用Redis的時候需要注意,Redis的數(shù)據(jù)存儲量不能夠超出內(nèi)存的大小,需要根據(jù)內(nèi)存設(shè)計存儲數(shù)據(jù)量,每個key對應(yīng)的數(shù)據(jù)量不能太大,對于過期的key需要進行清理騰出內(nèi)存空間。數(shù)據(jù)庫概念設(shè)計綜合海洋環(huán)境監(jiān)測系統(tǒng)的業(yè)務(wù)需求,需要將基礎(chǔ)數(shù)據(jù)進行數(shù)據(jù)庫設(shè)計,歸納出系統(tǒng)的實體。在數(shù)據(jù)庫概念設(shè)計之中得出每一個實體之間的關(guān)系,得到每一個實體所擁有的屬性,根據(jù)系統(tǒng)的主要實體得出來的系統(tǒng)總體E-R圖如圖4.3所示。由圖可知,海洋環(huán)境監(jiān)測系統(tǒng)包括的實體有用戶、用戶權(quán)限、監(jiān)測點、傳感器和監(jiān)測結(jié)果幾個主要主體。幾個主要主體的關(guān)系有用戶擁有用戶權(quán)限,能夠建立監(jiān)測點,配置傳感器;監(jiān)測點配備有傳感器;傳感器能夠傳輸監(jiān)測結(jié)果。每個用戶可以配置多個監(jiān)測點;每個監(jiān)測點可以擁有多個傳感器;每個傳感器能夠監(jiān)測出多個結(jié)果;每個身份能夠?qū)?yīng)多個權(quán)限。圖4.3海洋環(huán)境監(jiān)測系統(tǒng)E-R圖數(shù)據(jù)庫邏輯設(shè)計對于海洋環(huán)境監(jiān)測系統(tǒng)而言,在確定完數(shù)據(jù)庫的主要主體之后,需要根據(jù)實體屬性與實體之間的關(guān)系進行數(shù)據(jù)庫表的設(shè)計。在對數(shù)據(jù)庫表進行設(shè)計時,需要嚴格遵循數(shù)據(jù)庫設(shè)計原則,對每張表的字段屬性進行簡要闡述,將表之間的關(guān)聯(lián)進行準確分析,保證數(shù)據(jù)庫邏輯的嚴密性。系統(tǒng)數(shù)據(jù)庫中主要包含了五張表,分別為用戶表、監(jiān)測點表、傳感器表、用戶權(quán)限表、監(jiān)測結(jié)果表。以下將對各表進行詳細的定義說明。表4.1系統(tǒng)使用所有表序列表名表類型說明1User基礎(chǔ)信息表用戶表2Monitor基礎(chǔ)信息表監(jiān)測點表3Sensor基礎(chǔ)信息表傳感器表4Authority基礎(chǔ)信息表用戶權(quán)限表5Apiresult采購管理表監(jiān)測結(jié)果表用戶表。用戶表用來存放能夠使用系統(tǒng)的用戶信息,用戶的屬性有用戶編號、用戶賬號、用戶密碼、用戶名稱、用戶身份。用戶表的結(jié)構(gòu)如表4.2所示。表4.2用戶表字段名稱字段類型字段介紹是否為主鍵user_idint用戶編號是user_accountvarchar用戶賬號否user_passwordvarchar用戶登錄密碼否user_namevarchar用戶名臣否user_authorityvarchar用戶權(quán)限否用戶權(quán)限表。用戶權(quán)限表用來存放用戶需要被管理員分配的權(quán)限,用戶權(quán)限的屬性有權(quán)限編號、權(quán)限名稱、權(quán)限歸屬的角色。用戶權(quán)限表的結(jié)構(gòu)如表4.3所示。表4.3用戶權(quán)限表字段名稱字段類型字段介紹是否為主鍵authority_idint權(quán)限編號是authority_labelvarchar權(quán)限名稱否authority_pathvarchar權(quán)限路徑否authority_belongvarchar權(quán)限所屬否監(jiān)測點表。監(jiān)測點表用來存放用戶用戶設(shè)置的的監(jiān)測點信息。監(jiān)測點的屬性有監(jiān)測點編號、監(jiān)測點名稱、監(jiān)測點所在地、監(jiān)測點經(jīng)度、監(jiān)測點緯度。監(jiān)測點表的結(jié)構(gòu)如表4.4所示。表4.4監(jiān)測點表字段名稱字段類型字段介紹是否為主鍵monitor_idint監(jiān)測點編號是monitor_namevarchar監(jiān)測點名稱否monitor_locationvarchar監(jiān)測點所在地否monitor_latvarchar監(jiān)測點緯度否monitor_lngvarchar監(jiān)測點經(jīng)度否傳感器表。傳感器表用來存放配置給監(jiān)測點表的傳感器信息。傳感器的屬性有傳感器編號、傳感器所屬監(jiān)測點編號、傳感器對應(yīng)接口、傳感器監(jiān)測數(shù)值名稱等字段。表4.5傳感器表字段名稱字段類型字段介紹是否為主鍵sensor_idint傳感器編號是monitor_idint所屬監(jiān)測點編號否sensor_apivarchar傳感器接口地址否sensor_dataNamevarchar傳感器監(jiān)測數(shù)據(jù)名稱否sensor_unitvarchar傳感器監(jiān)測數(shù)據(jù)單位否監(jiān)測結(jié)果表。監(jiān)測結(jié)果表主要用來存儲范圍傳感器信息傳回來的數(shù)值。監(jiān)測結(jié)果的屬性包括監(jiān)測結(jié)果編號、監(jiān)測結(jié)果所屬傳感器編號、監(jiān)測結(jié)果、監(jiān)測數(shù)據(jù)名稱、監(jiān)測數(shù)據(jù)單位、監(jiān)測數(shù)據(jù)日期。表4.6檢測結(jié)果表字段名稱字段類型字段介紹是否為主鍵result_idint監(jiān)測結(jié)果編號是monitor_idint監(jiān)測結(jié)果所屬所屬監(jiān)測點編號否result_datavarchar傳感器監(jiān)測數(shù)值否result_dataNamevarchar傳感器監(jiān)測數(shù)據(jù)名稱否result_unitvarchar傳感器監(jiān)測數(shù)據(jù)單位否result_datevarchar傳感器監(jiān)測數(shù)據(jù)的日期否功能設(shè)計與實現(xiàn)首頁模塊首頁模塊是用戶對監(jiān)測點信息進行查看的功能模塊,查看內(nèi)容包括天氣內(nèi)容,監(jiān)測數(shù)值占比,監(jiān)測點歷史信息查詢包括折線圖和圖表形式查詢。圖4.5為系統(tǒng)首頁模塊的類圖。根據(jù)首頁模塊需求分析繪制出首頁模塊的功能類圖。該功能類圖主要由四個部分組成,控制類,服務(wù)類,數(shù)據(jù)持久化類、實體類。首頁模塊的控制類是MonitorController,該類負責接收由前端發(fā)送過來的與監(jiān)測點相關(guān)的請求并作出響應(yīng)返回業(yè)務(wù)處理結(jié)果。MonitorService是首頁模塊的模塊的服務(wù)類,用來處理控制類類傳回來的參數(shù),根據(jù)參數(shù)進行相關(guān)的業(yè)務(wù)邏輯處理,并返回處理結(jié)果給控制類。MonitorMapper類使用來提供與傳感器相關(guān)的數(shù)據(jù)持久化操作的類。Monitor和Sensor是與首頁模塊相關(guān)的實體類。圖4.4系統(tǒng)首頁模塊截圖圖4.5首頁模塊功能類圖圖4.6為首頁模塊的時序圖。系統(tǒng)在用戶進入首頁在頁面初始畫的時候發(fā)送請求到后端把所有的監(jiān)測點信息以及當時監(jiān)測的信息返回回來,渲染下拉框綁定的數(shù)據(jù)中,之后再根據(jù)每一個模塊先發(fā)送獲取天氣接口,當用戶選中了監(jiān)測點之后發(fā)送請求給后端取回選中監(jiān)測點的歷史信息。最后再將當前監(jiān)測到的信息和歷史信息分別渲染到模塊中的餅圖與折線圖中。最后設(shè)置一個定時器過段時間刷新監(jiān)測信息。圖4.6首頁模塊時序圖Gis模塊在Gis模塊中,用戶按照需求要求實測點需要顯示在地圖正確的地理位置之上,監(jiān)測點能夠以氣泡框為載體顯示出當前的監(jiān)測點監(jiān)測出來的信息并且能夠?qū)崟r刷新,用戶能夠進行監(jiān)測點的管理和刪除。圖4.8為系統(tǒng)首頁模塊的類圖。其中控制器類用來接收前端發(fā)送的獲取監(jiān)測點的請求,新增監(jiān)測點的請求,刪除監(jiān)測點的請求。服務(wù)層負責在接收在Gis模塊中前端系統(tǒng)中發(fā)送過來的請求中攜帶來的參數(shù)。根據(jù)不同請求對應(yīng)的業(yè)務(wù)邏輯,進行參數(shù)傳遞執(zhí)行相關(guān)的數(shù)據(jù)庫持久化操作。圖4.7系統(tǒng)Gis模塊截圖圖4.8Gis模塊功能類圖圖4.9Gis模塊時序圖圖4.9為系統(tǒng)Gis模塊的時序圖。在用戶最初進入Gis模塊時,前端發(fā)送請求到后端服務(wù)區(qū)取出所有的監(jiān)測點信息和監(jiān)測點傳感器的監(jiān)測信息返回給前端用來渲染到地圖上和生成每個監(jiān)測點的氣泡框內(nèi)容。用戶通過點擊地圖,在彈窗中輸入監(jiān)測點的名稱的所屬地發(fā)送請求到后端添加監(jiān)測點。點擊監(jiān)測點在修改彈窗的下方的一個紅色刪除按鈕進行刪除。數(shù)據(jù)實時監(jiān)測模塊在數(shù)據(jù)實時監(jiān)測模塊中,用戶的需求要求該模塊能夠把傳感器的配置的權(quán)限轉(zhuǎn)讓給用戶,用戶可以配置傳感器監(jiān)測的信息是否顯示,配置傳感器監(jiān)測數(shù)據(jù)的范圍。如圖4.5所示是數(shù)據(jù)實時監(jiān)測模塊的功能類圖。在數(shù)據(jù)實時監(jiān)測模塊之中,頁面發(fā)送的請求只有請求監(jiān)測點信息和根據(jù)監(jiān)測點的編號獲取監(jiān)測點的傳感器信息。圖4.10實時數(shù)據(jù)監(jiān)測模塊時序圖如圖4.10所示是數(shù)據(jù)實時監(jiān)測模塊的時序圖。在該模塊中,在用戶進入實時監(jiān)測模塊模塊之后前端到后臺獲取監(jiān)測點信息,之后點擊配置界面,系統(tǒng)到后臺取出該監(jiān)測點被配置的傳感器的信息并顯示在彈窗,之后通過前端給傳感器信息添加一個是否可見屬性并且綁定到一個Switch組件中。通過子父組件之間的通信控制傳感器信息是否能顯示。之后在頁面的生命周期中設(shè)定一個定時器,每過一段固定的時間進行一次數(shù)據(jù)的刷新,但是刷新的數(shù)據(jù)內(nèi)容會保持刷新之前的配置與數(shù)據(jù)范圍信息等。圖4.11系統(tǒng)實時數(shù)據(jù)監(jiān)測模塊截圖監(jiān)測點管理模塊在監(jiān)測點管理模塊中,按照需求分析得出該模塊需要能夠進行監(jiān)測點的管理,能夠進行監(jiān)測點傳感器的配置管理。如圖4.12所示為系統(tǒng)監(jiān)測點管理模塊的類圖。在這個功能中,前端需要向兩個控制類發(fā)送請求,首先需要發(fā)送請求到MonitorController中的page方法對應(yīng)的結(jié)構(gòu)獲取監(jiān)測點的表格數(shù)據(jù),之后可以勾選表格進行批量刪除或是點擊修改按鈕進行傳感器信息的修改。對于類圖中的SensorController的用途在于當用戶點擊了表格中對應(yīng)監(jiān)測點的配置按鈕之后再彈出窗口內(nèi)進行傳感器的配置修改。圖4.12系統(tǒng)監(jiān)測點管理截圖圖4.13監(jiān)測點管理功能類圖如圖4.13所示為系統(tǒng)監(jiān)測點管理模塊與監(jiān)測點的接口交互的時序圖。每當用戶最初進入到該模塊主頁面時,頁面加載MonitorController類中的page方法返回主頁面中表格每一頁所需要的數(shù)據(jù)。MonitorController類中的save方法用于監(jiān)測點的新增與更新,通過點擊表格中的修改按鈕修改監(jiān)測點信息和添加鈕時使用。delete方法在用戶勾選表頭的勾選框后點擊刪除按鈕是使用圖4.9監(jiān)測點管理功能監(jiān)測點相關(guān)時序圖圖4.14監(jiān)測點管理功能傳感器相關(guān)時序圖如圖4.14所示為系統(tǒng)監(jiān)測點管理模塊的與傳感器接口交互的時序圖。當用戶點擊了監(jiān)測點圖表的配置按鈕彈出彈窗后對彈窗內(nèi)表格進行數(shù)據(jù)的初始化時用了到了SensorController中的page方法,點擊下方的添加按鈕和表格尾部的修改按鈕使用的是SensorController中的save方法。然后點擊刪除按鈕使用的是delete方法。數(shù)據(jù)對比模塊在數(shù)據(jù)對比模塊中,按照需求分析得出的功能要求該模塊用戶需要給出兩個監(jiān)測點。然后系統(tǒng)根據(jù)用戶給出監(jiān)測點到后臺取出對應(yīng)的數(shù)據(jù)之后渲染的圖表上。圖4.15系統(tǒng)數(shù)據(jù)監(jiān)測模塊截圖圖4.16系統(tǒng)數(shù)據(jù)對比功能類圖如圖4.16所示為數(shù)據(jù)對比模塊的類圖。在該功能模塊中系統(tǒng)主要使用的后端接口主要是MonitorController中的getMonitors方法和getInfo方法來分別獲取監(jiān)測點信息和監(jiān)測點對應(yīng)的所有傳感器監(jiān)測信息。圖4.17系統(tǒng)數(shù)據(jù)對比功能類圖如圖4.17所示為數(shù)據(jù)對比模塊的時序圖。當用戶進入到該功能模塊頁面時,系統(tǒng)首先通過MonitorController類的getMonitors方法取到所有的監(jiān)測點用于用戶選取監(jiān)測點信息。之后當用戶在下拉框中選擇了監(jiān)測點,前端根據(jù)用戶選擇的監(jiān)測點編號發(fā)送請求到MonitorController類中的getInfo方法中取得該監(jiān)測點所有傳感實時的監(jiān)測信息。用戶管理模塊在用戶管理模塊中,按照先前的需求分析得出該模塊需要對用戶進行管理,同時還要能夠?qū)τ脩羯矸莺陀脩魴?quán)限進行配置。圖4.18系統(tǒng)用戶管理模塊截圖如圖4.19所示為用戶管理模塊類圖。用戶管理模塊使用到的兩個控制類分別為UserController和AuthorityController。UserController類中的接口方法主要負責讀取用戶數(shù)據(jù)給表格實現(xiàn)圖4.19用戶管理功能類圖如圖4.20所示為用戶管理功能部分時序圖。為用戶管理模塊部分之一的用戶管理的時序圖。當用戶進入用戶管理模塊,頁面初始化想UserController中的page方法獲取數(shù)據(jù)庫中已有全部用戶的信息。通過表格上方的下拉框和輸入框輸入過濾條件,重新想page方法根據(jù)輸入條件取出符合條件的用戶信息。通過表格后方的修改按鈕或者主頁面頂部的增加按鈕在彈出框填入相關(guān)信息再到UserController中進行存儲更新操作。通過點擊表格后面的刪除或是勾選表頭勾選框再批量刪除發(fā)送請求到UserController中的delete方法中對特定對象進行數(shù)據(jù)庫刪除操作。圖4.20用戶管理功能時序圖圖4.21用戶管理功能時序圖如圖4.21所示為用戶管理功能部分時序圖。該部分為修改用戶權(quán)限的功能時序圖。用戶首相通過頂部的下拉框選擇需要配置的角色。之后系統(tǒng)通過選擇的角色到AuthorityComtroller中的page方法中取出該用戶擁有的權(quán)限和不具有的權(quán)限。用戶可以再穿梭框中添加用戶沒有的權(quán)限或是已有的權(quán)限進行保存。之后將該用戶角色擁有的角色到AuthorityController1中的save方法將數(shù)據(jù)庫中的該角色的權(quán)限先刪除再進行存入。本章小結(jié)在本章節(jié)中,文章基于第三章節(jié)的需求分析,設(shè)定了系統(tǒng)設(shè)計的目標與原則。設(shè)計出了系統(tǒng)整體從前端用戶發(fā)送請求到控制層接受用戶請求再到服務(wù)層根據(jù)業(yè)務(wù)邏輯和用戶傳來的參數(shù)到數(shù)據(jù)持久層中對數(shù)據(jù)庫中的數(shù)據(jù)進行一定的操作,并且返回操作結(jié)果的系統(tǒng)架構(gòu)。通過類圖和時序圖分析系統(tǒng)中六個功能模塊,并且給出了每個功能模塊的截圖。第5章系海洋環(huán)境監(jiān)測系統(tǒng)的測試海洋環(huán)境監(jiān)測系統(tǒng)的測試測試環(huán)境搭建本系統(tǒng)的測試工作主要針對六個主要功能模塊進行用例測試展開,系統(tǒng)的的運行和使用都是本機上進行部署。系統(tǒng)運行過程中包括客戶端和后端服務(wù)器端,測試環(huán)境用Windows操作系統(tǒng),一下分別對客戶端和服務(wù)器端的具體測試環(huán)境通過表格說明。表5.1客戶端測試環(huán)境表操作系統(tǒng)Windows7系統(tǒng)為數(shù)64位瀏覽器Chrome90.0內(nèi)存/硬盤8G/4TCPUIntelI5客戶端測試環(huán)境如表5.1所示,采用一般的硬件配置即可滿足客戶端的日常使用需求。軟件方面主要選擇了市場上主流的瀏覽器進行系統(tǒng)測試,從而驗證系統(tǒng)的可用性與可靠性。表5.2服務(wù)器端測試環(huán)境表操作系統(tǒng)Windows7系統(tǒng)為數(shù)64位MySQLMySQL8.0系統(tǒng)后臺服務(wù)器Tomcat7.0Java環(huán)境JDK1.8運行內(nèi)存/硬盤8G/4TCPUInteli5Redis3.2.1Springboot2.3.1服務(wù)器端測試環(huán)境如表5.2所示。數(shù)據(jù)庫采用高性能的MySQL配合Redis集群來實現(xiàn)均攤數(shù)據(jù)庫端的負載壓力。為了保證測試的效果,操作系統(tǒng),數(shù)據(jù)庫,工具軟件等均采用比較穩(wěn)定的正式版本。硬件方面運行內(nèi)存為8G,硬盤4T,較大的存儲空間保障在大量數(shù)據(jù)下服務(wù)器端能夠正常運行。避免了因為數(shù)據(jù)量過大導致的服務(wù)器端崩潰。系統(tǒng)功能測試首頁模塊功能測試首頁模塊需要顯示頁面的系統(tǒng)通知消息;顯示今日且包括接下來四天的天氣信息;對當前選中的監(jiān)測點監(jiān)測的數(shù)據(jù)占比量進行實時顯示;對監(jiān)測點歷史的所有監(jiān)測數(shù)據(jù)種類繪制成折線圖;將選中監(jiān)測點的歷史信息以圖表形式呈現(xiàn)。表5.3首頁模塊功能測試用例表用例ID1用例名稱首頁功能模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入首頁模塊用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊首頁模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶登錄首頁模塊初始加載登錄系統(tǒng),跳轉(zhuǎn)到首頁模塊主頁面首頁主頁面元素完整,顯示需要顯示的項目,但是在沒有選擇監(jiān)測點之前無內(nèi)容符合預期TC2監(jiān)測點選擇環(huán)節(jié)點擊位于主頁面右上方的下拉框選中選項中的監(jiān)測點下拉框中顯示選中的對象與選中對象一致符合預期TC3查看系統(tǒng)消息模塊登錄系統(tǒng),跳轉(zhuǎn)到首頁主頁面首頁模塊中的消息欄內(nèi)顯示最新的消息信息符合預期TC4查看天氣信息模塊登錄系統(tǒng),跳轉(zhuǎn)到首頁主頁面首頁模塊中的天氣欄模塊中顯示了當天的天氣和未來四天的天氣預期符合預期TC5查看監(jiān)測占比餅圖模塊登錄系統(tǒng),跳轉(zhuǎn)到首頁主頁面首頁中的監(jiān)測點數(shù)據(jù)占比欄能夠顯示出選中監(jiān)測點的各項數(shù)據(jù)占比并且能夠?qū)崟r刷新餅圖符合預期TC6查看監(jiān)測點歷史信息折線圖模塊登錄系統(tǒng),跳轉(zhuǎn)到首頁主頁面首頁中折線圖模塊中顯示出選中監(jiān)測點的歷史各項數(shù)據(jù)和變化趨勢符合預期TC7查看監(jiān)測點表格登錄系統(tǒng),跳轉(zhuǎn)到首頁主頁面首頁模塊中選中監(jiān)測點表格信息顯示所有歷史信息符合預期表5.3為首頁模塊的測試用例,通過對首頁功能模塊的需求分析確定的功能需求進行比較和分析,判斷該功能模塊是否符合預期結(jié)果Gis功能模塊測試表5.4Gis模塊功能測試用例表用例ID2用例名稱Gis功能模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入Gis模塊用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊Gis模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶進入Gis模塊初始加載在系統(tǒng)主頁面中點擊Gis模塊地圖正常加載,地圖上的監(jiān)測點顯示位置正常。符合預期TC2監(jiān)測信息查看在系統(tǒng)主頁面中點擊Gis模塊監(jiān)測點的氣泡正常顯示且顯示信心正確能夠?qū)崟r刷新符合預期TC3監(jiān)測點管理在系統(tǒng)主頁面中點擊Gis模塊點擊監(jiān)測點點擊地圖上的監(jiān)測點進行刪除與修改、點擊地圖剩余部分進行監(jiān)測點的添加符合預期實時監(jiān)測模塊測試表5.5實時數(shù)據(jù)監(jiān)測模塊功能測試用例表用例ID3用例名稱實時數(shù)據(jù)監(jiān)測模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入實時數(shù)據(jù)監(jiān)測模塊用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊實時數(shù)據(jù)監(jiān)測模塊模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶進入實時數(shù)據(jù)監(jiān)測模塊初始加載在系統(tǒng)主頁面中點擊實時數(shù)據(jù)監(jiān)測模塊實時數(shù)據(jù)監(jiān)測模塊沒有顯示任何內(nèi)容,但是下拉框中具有已有所有監(jiān)測點符合預期TC2查看傳感器配置在系統(tǒng)主頁面中點擊實時數(shù)據(jù)監(jiān)測模塊點擊下拉框,選中框中監(jiān)測點,點擊設(shè)置按鈕用戶選完監(jiān)測點后點擊配置后彈窗顯示傳感器信息符合預期TC3配置傳感器設(shè)置在系統(tǒng)主頁面中點擊實時數(shù)據(jù)監(jiān)測模塊用戶進入配置界面進行傳感器信息配置符合預期監(jiān)測點管理模塊測試表5.6監(jiān)測點管理模塊用例ID4用例名稱監(jiān)測點管理模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入監(jiān)測點管理用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊監(jiān)測點管理模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶進入監(jiān)測點管理模塊初始加載在系統(tǒng)主頁面中點擊監(jiān)測點管理模塊監(jiān)測點管理模塊的主頁面中顯示已設(shè)置的全部監(jiān)測點信息符合預期TC2管理傳感器信息點擊主頁面表格中的配置選項進入傳感器管理彈窗進行管理監(jiān)測點的觀感器信息發(fā)生改變符合預期數(shù)據(jù)對比模塊測試表5.7數(shù)據(jù)對比模塊用例ID5用例名稱數(shù)據(jù)對比模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入數(shù)據(jù)對比模塊用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊數(shù)據(jù)對比模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶進入數(shù)據(jù)對比模塊初始化加載在系統(tǒng)主頁面中點擊數(shù)據(jù)模塊主頁面中兩個下拉框中的監(jiān)測點數(shù)據(jù)顯示符合預期TC2對比圖表信心查看選中兩個下拉框中的數(shù)據(jù),查看顯示的圖表兩個下拉框下方的圖表顯示出具體測試的數(shù)值符合預期用戶管理模塊測試表5.8用戶管理模塊用例ID6用例名稱用戶管理模塊用例描述用戶登錄海洋環(huán)境監(jiān)測系統(tǒng),進入用戶管理管理用例入口打開客戶端瀏覽器,在導航欄輸入系統(tǒng)地址,點擊用戶管理模塊測試場景ID測試場景測試步驟預期結(jié)果測試結(jié)果TC1用戶進入監(jiān)測點管理模塊初在系統(tǒng)主頁面中點擊用戶管理模塊監(jiān)測點管理模塊的主頁面中顯示已設(shè)置的全部監(jiān)測點信息符合預期TC2系統(tǒng)用戶管理在系統(tǒng)主頁面中點擊用戶管理模塊監(jiān)測點的觀感器信息發(fā)生改變符合預期TC3用戶權(quán)限管理在系統(tǒng)中點擊用戶管理模塊用戶擁有的權(quán)限發(fā)生了更改符合預期測試結(jié)果分析在系統(tǒng)的功能測試中,對不同的功能模塊進行了用力測試,所有的測試用例均測試通過,測試結(jié)果與預期結(jié)果一致操作流程符合管理系統(tǒng)的操作流程。在進行數(shù)據(jù)操作時系統(tǒng)提醒簡潔明了,能夠正確執(zhí)行用戶操作。通過系統(tǒng)的功能測試,標明系統(tǒng)目前具有一定的穩(wěn)定性與實用性,可以滿足用戶對于業(yè)務(wù)邏輯。通過一系列的功能測試,系統(tǒng)符合預期要求。本章小結(jié)在該章節(jié)中,文章根據(jù)第三章分析出來的功能模塊劃分與第四章中每個功能模塊的實現(xiàn)邏輯與實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東廣州市越秀區(qū)人民街道辦事處招聘輔助人員2人參考筆試題庫附答案解析
- 2025內(nèi)蒙古鄂爾多斯市達拉特旗第二批事業(yè)單位引進高層次、急需緊缺人才28人參考考試題庫及答案解析
- 2025天津市西青經(jīng)開區(qū)投資促進有限公司面向全國公開招聘招商管理人員4人模擬筆試試題及答案解析
- 2025年下半年貴州遵義市市直事業(yè)單位選調(diào)56人考試備考題庫及答案解析
- 2025江蘇南京醫(yī)科大學第四附屬醫(yī)院(南京市浦口醫(yī)院)招聘專技人員33人參考筆試題庫附答案解析
- 2026中國華錄集團有限公司招聘42人備考筆試題庫及答案解析
- 2025福建漳州市薌江人力資源服務(wù)有限公司文化館招聘專業(yè)技術(shù)人員備考考試試題及答案解析
- 2025廣西南寧市紅十字會醫(yī)院招聘護理人員5人模擬筆試試題及答案解析
- 2025廣東清遠市連南瑤族自治縣瑤華建設(shè)投資集團有限公司第三次招聘會計人員1人模擬筆試試題及答案解析
- 網(wǎng)店股份合同范本
- IPO融資分析師融資報告模板
- 搏擊裁判員培訓課件
- 2024年北京廣播電視臺招聘真題
- 危險廢物安全措施課件
- 形勢與政策(吉林大學)單元測試(第11-25章)
- 2025版寄生蟲病癥狀解析與護理方法探討
- 2025年國家開放大學(電大)《物理化學》期末考試備考題庫及答案解析
- 無領(lǐng)導小組討論面試技巧與實戰(zhàn)案例
- 2025年及未來5年中國養(yǎng)老產(chǎn)業(yè)行業(yè)發(fā)展趨勢預測及投資規(guī)劃研究報告
- 2025年中國辦公樓租戶調(diào)查分析報告
- 環(huán)保設(shè)備銷售培訓
評論
0/150
提交評論