国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于BCE的移動選題系統(tǒng)研究與實現(xiàn)

2020-04-22 20:27楊國清
微型電腦應用 2020年3期
關鍵詞:移動平臺數(shù)據(jù)庫系統(tǒng)

楊國清

摘 要:針對目前高校畢業(yè)論文指導現(xiàn)狀,開發(fā)基于移動平臺的畢業(yè)論文選題系統(tǒng)成為必然。Web的移動應用具有較好的可移植性,對客戶端要求較低,適合于本研究項目的實施。根據(jù)BCE設計模式的規(guī)范,開展需求分析與系統(tǒng)設計工作。結合高校選題活動的時序性和并發(fā)性特征,確定設計類在時間軸中的位置。在系統(tǒng)實現(xiàn)時,重點關注移動端UI設計與并發(fā)控制,提升用戶友好性體驗,提高系統(tǒng)的應用性能。

關鍵詞:BCE; 數(shù)據(jù)庫系統(tǒng); 移動平臺; Web應用

中圖分類號: TP311.52

文獻標志碼: A

Abstract:In view of the current situation of university graduate thesis guidance, it was inevitable to develop a theme selection system based on mobile platform. Web-based mobile applications have good portability, lower requirements for clients, so they are suitable to implement the research project. According to the BCE standards, requirements analysis and system design were conducted. Based on the time sequence and concurrency characteristics of the theme selection activities in colleges and universities, the position of design classes in the timeline was determined. We focused on the mobile UI design and the concurrent control during the implementation of the system to improve the user friendly experience and the application performance of the system.

Key words:BCE; Database system; Mobile platform; Web application

0 引言

近年來,我國高校在校學生人數(shù)屢創(chuàng)新高,每年的畢業(yè)論文指導成為大學教師一項繁重工作。國內部分高校安排畢業(yè)指導任務的做法是:根據(jù)學生數(shù)與具有指導資格的老師數(shù)進行配比,每個老師按學號順序分配多名學生。然后,老師與學生一對一協(xié)商確定論文選題。該安排方式具有隨機性,存在的主要缺陷是:學生事先不知道老師的專業(yè)領域和研究方向;老師不了解學生的專業(yè)特點以及研究意愿。該缺陷可能導致畢業(yè)論文選題的針對性偏弱,后期論文指導的難度增加。

畢業(yè)論文雙向選題模式,能夠更好地將指導老師和學生的專業(yè)特點結合起來,充分調動學生與指導老師的積極性,是做好畢業(yè)論文指導工作的前提與基礎。

目前,國內高校選題系統(tǒng)多為畢業(yè)論文系統(tǒng)的子系統(tǒng),是一種基于個人電腦的信息系統(tǒng),使用的便捷性、互動的及時性相對較差,與智能手機廣泛使用的現(xiàn)狀相背離。建設基于手機移動平臺的畢業(yè)論文選題系統(tǒng),成為一項具有現(xiàn)實意義的軟件開發(fā)工作。

1 系統(tǒng)分析與設計

1.1 BCE設計模式概述

BCE(Boundary—Controller—Entity:邊界—控制器—實體)是一種軟件設計模式,該模式強制性地把應用程序的輸入、處理和輸出分開。邊界(Boundary)是用戶的可視化界面,用于展示數(shù)據(jù),并接受用戶的輸入??刂破鳎–ontroller)接受用戶請求并決定調用相關實體模型和邊界,并向用戶返回相應的結果。實體(Entity)表示業(yè)務的數(shù)據(jù)模型和業(yè)務處理邏輯。被實體返回的數(shù)據(jù)是中立的,與數(shù)據(jù)格式無關,一個實體模型能為多個邊界提供數(shù)據(jù)支撐。[1]

BCE模式的層次結構如圖1所示。控制器接收到邊界用戶的請求時,根據(jù)請求的具體內容,決定調用哪個實體模型來完成處理工作。然后,實體模型用業(yè)務邏輯來處理用戶的請求并返回數(shù)據(jù)。最后,控制器使用相應的邊界格式化實體返回的數(shù)據(jù),并通過表示層展現(xiàn)給用戶。最典型的基于BCE模式的應用為JSP+Servlet+Javabean框架。

1.2 需求分析

需求分析的主要任務是結合應用場景進行現(xiàn)場調研,獲取第一手原始資料,確定用戶業(yè)務活動流程以及功能需求,并對場景中的數(shù)據(jù)和業(yè)務活動加以提取和固化。[2]

(1) 選題活動前

管理員提前批量導入畢業(yè)生和具有指導資格的老師個人資料,含聯(lián)系電話、登錄賬號、初始密碼等信息。學生填寫自己的專業(yè)特點等個人資料。老師填寫專業(yè)、職稱、研究方向等信息。老師撰寫選題題目和題目的專業(yè)要求、研究目標,提交到系統(tǒng)留存。老師可提前將某個選題題目指定給某個學生,該學生自動申報該題目,并獲得老師的批準。該選題題目在待選題庫邊界中不可見。

(2) 選題活動中

每個學生只能申報一個選題,申報完成后系統(tǒng)會以短信方式通知老師,以便老師及時批復。學生可在與相關老師口頭協(xié)商后,自擬選題并填寫該選題的研究目標與研究計劃。學生提交自擬題目,向老師申報該選題,等待老師批復。老師批準之前,學生可撤銷申請。老師批準后,學生不能自行撤銷申請,只有與指導老師口頭協(xié)商后,由指導老師進行撤銷操作,刪除該申請。老師在瀏覽申報記錄后,根據(jù)選題的專業(yè)要求與申報學生的專業(yè)特點,決定是否同意該申報。老師同意或拒絕時,系統(tǒng)通過短信平臺發(fā)送消息給學生,告知批復結果,以便學生及時重新申報選題。老師批準的學生總人數(shù)和學生專業(yè)數(shù)不能超過限額。老師可根據(jù)實際情況修改選題內容,包括題目、專業(yè)要求、研究目標等。

(3) 選題活動后

管理員進行選題終止操作,學生和老師將只能查看當前選題及申報情況,不能改變選題狀態(tài),也不能修改選題內容。管理人員統(tǒng)計當前選題情況,包括未申報學生、未獲批學生、老師批準人數(shù)、學生選題結果等。

1.3 實體類設計

結合前期從客觀現(xiàn)實世界獲取的需求分析結果,展開概念模型設計工作,得到傳統(tǒng)意義上的實體-聯(lián)系模型。運用BCE設計理念,將概念與聯(lián)系進一步升級轉化為相應的實體類。這一階段的工作可理解為傳統(tǒng)數(shù)據(jù)庫設計,但需要在傳統(tǒng)的關系上添加相應的操作行為。實體類的行為特征主要描述數(shù)據(jù)業(yè)務邏輯,屬于BCE模式中E的范疇。

實體類設計是數(shù)據(jù)庫系統(tǒng)開發(fā)的重點,是一項基礎性工作。如果實體類設計不到位,將會加大后期程序實現(xiàn)的難度。實體類設計中屬性的確定采用傳統(tǒng)的數(shù)據(jù)庫理論與方法,主要做好實體類的規(guī)范化檢查,使它們的屬性符合三個范式的基本要求。與些同時,確定實體的主鍵、外鍵、自定義約束等完整性要求,并設計其物理索引,確定其物理結構。

選題系統(tǒng)中有4個主要實體類,它們是學生、選擇、題目、教師。選題系統(tǒng)實體類如圖2所示。

1.4 邊界類設計

選題系統(tǒng)中有三個主要參與者,他們分別是學生、指導老師、管理員。參與者對系統(tǒng)功能的使用,可以描述為用例圖。用例圖是指由參與者、用例,邊界以及它們之間的關系構成的用于描述系統(tǒng)功能的視圖。用例圖主要的作用是獲取需求、指導測試、指導工作流。每一個用例都有一個邊界類與之相對應,用于提供與參與者的交互。[2]

選取學生參與者的用例為典型代表,展示BCE模式中邊界類的外在形式。學生用例如圖3所示。

1.5 控制類設計

控制類用于調配實體類與邊界類的工作,協(xié)調兩者在時間軸的先后次序,形象地說:控制類起到“上傳下達”的作用。針對每個用例,在產(chǎn)生一個邊界類的同時,也可以產(chǎn)生一個控制類。比較普遍的做法是:將某個子系統(tǒng)中所有用例統(tǒng)一起來,產(chǎn)生一個核心控制類,負責處理當前子系統(tǒng)的外部事件,實現(xiàn)控制流。在選題系統(tǒng)中主要有學生選題申報、指導老師批復、管理員管理三個二級應用場景,因此可以產(chǎn)生三個核心控制類,分別是學生控制類、老師控制類、管理員控制類。

在BCE模式中,能夠體現(xiàn)控制類核心作用的圖形為序列圖。序列圖表示系統(tǒng)內部對象之間的互動,在參與者執(zhí)行某個用例期間,控制系統(tǒng)內部的運作流程。序列圖關聯(lián)了類圖與用例圖兩方面,并且將系統(tǒng)要素在時間上的先后關系體現(xiàn)出來。選擇學生用例展開典型分析,可以得到學生序列圖,如圖4所示。學生序列圖體現(xiàn)了學生控制類在BCE模式中的中心地位。[3]

2 系統(tǒng)實現(xiàn)

2.1 實現(xiàn)框架選型

基于B/S架構的Web應用,可以采用Struts2+Spring+Hibernate(SSH)、ASP.NET MVC+ADO.NET Entity、Python Django等應用框架。這些框架各有優(yōu)點和不足。選題系統(tǒng)是一個輕量級的Web移動應用項目,選用ASP.NET MVC+ADO.NET Entity框架,可以較完美地實現(xiàn)基于BCE模式的設計內容。后臺數(shù)據(jù)庫服務選用與ASP.NET配合良好的SQL Server系統(tǒng),編程語言采用C#語言。[4]

(1) 邊界類的實現(xiàn)

(2) 控制類的實現(xiàn)

采用ashx一般處理程序或者aspx.cs頁面處理程序。

(3) 實體類的實現(xiàn)

采用ADO.NET Entity相關技術。實體類的數(shù)據(jù)業(yè)務活動,可以向下滲透到業(yè)務邏輯層,通過存儲過程實現(xiàn)實體類的操作行為,從而更好地體現(xiàn)數(shù)據(jù)模型與用戶界面相分離的原則。例如:登錄時,調用后臺服務器中的存儲過程篩選學生實體,根據(jù)查詢結果返回不同的狀態(tài)值給登錄界面,從而判斷登錄成功與否以及登錄失敗原因。

(4) 前后臺數(shù)據(jù)交互的實現(xiàn)

移動界面采用主流的HTML5+CSS3開發(fā)。前臺使用HTTP協(xié)議訪問信息服務器,獲取后臺數(shù)據(jù)庫服務器中的數(shù)據(jù)。獲取到的數(shù)據(jù)形式為JSON和XML等,數(shù)據(jù)被解析之后,使用UI框架進行封裝,得到相應的用戶數(shù)據(jù)界面。前臺使用cookie和session等技術手段,在不同頁面間傳遞用戶數(shù)據(jù),實現(xiàn)用戶驗證、參數(shù)傳遞等功能。

2.2 移動端UI設計

基于B/S架構的移動端應用具有多平臺共享、可移植性強的特點。電腦端、Android移動端、IOS移動端等多平臺可以協(xié)調統(tǒng)一,不需要二次開發(fā)。通過移動端瀏覽器直接訪問Web信息,相比于APP應用程序方式,用戶不需要下載客戶端軟件,使用方便。移動端的特點是屏幕小,呈現(xiàn)的內容有限;操作方式獨特,觸屏操作。因此,要充分考慮移動端開發(fā)的上述特點,認真做好選題系統(tǒng)各個用戶界面的設計工作。

(1) 適應性設置

與電腦端Web頁面相比較,應該在移動端頁面HTML源的頭部設置內容寬度為滿屏,相應代碼行是:“〈meta name="viewport" content="width=device-width, initial-scale=1"/>”。 同時,將頁面的body節(jié)的css樣式內容設置為“margin:0; ?padding:0;”,提高頁面的可利用空間。

另外,BCE模式設計中得到的邊界類在移動端會被分解為眾多子類,控制類也應該做出相應的調整。

(2) 簡潔原則

pushHistory();

window.addEventListener("popstate", function(e) {location.href = 'target.aspx?rand=A' + parseInt(Math.random() * 1 000); }, false);

function pushHistory(){var url = "#"; var state={title: "title", url: "#"};

window.history.pushState(state,"title","#");}

2.3 并發(fā)控制

學生選題的流程一般為老師先上傳題目,學生在指定時間開始申報。由于學生非常重視畢業(yè)選題工作,在系統(tǒng)開放之初,會產(chǎn)生大量的并發(fā)請求。如果不進行數(shù)據(jù)訪問的并發(fā)控制,會產(chǎn)生“臟讀”、“幻讀”等形式的錯誤,造成數(shù)據(jù)不唯一或者數(shù)據(jù)實時更新異常。

事務在執(zhí)行某項數(shù)據(jù)操作之前,常常需要判斷其先決條件是否滿足。例如,學生A申報某個題目時,需要先判斷該題目的狀態(tài),只有其狀態(tài)為“可申報”時,才能在“選擇表”中新增該題目的申報記錄。讀取狀態(tài)與新增記錄之間存在時間差,如果允許其他學生在該時間差內讀取數(shù)據(jù),則會取得錯誤的題目狀態(tài)值。故此,一定要在業(yè)務邏輯中,將事務的所有操作當成一個整體,在事務讀取數(shù)據(jù)時,也要對數(shù)據(jù)加排它鎖,鎖定相關記錄行或整張數(shù)據(jù)表,完成全部事務操作后,才打開鎖。實現(xiàn)學生申報選題的并發(fā)控制核心代碼如下:[5]

SqlTransaction trans1 = conn.BeginTransaction();//新建事務

SqlCommand cmd1 = conn.CreateCommand();

SqlCommand cmd2 = conn.CreateCommand();

SqlCommand cmd3 = conn.CreateCommand();

cmd1.CommandText = "select count(*) from questions with(tablockx) where [status]=1 and qid=" + Qid;//定義查詢語句,獲取當前題目可申報狀態(tài)

cmd2.CommandText = "select count(*) from stuTtea with(tablockx) where [status]!=3 and stuid='" + newstuid + "'";//定義查詢語句,獲取當前學生已申報狀態(tài)

cmd3.CommandText = "insert into stuTtea(qid,stuid,reTime,okTime,[status],[isStudel],[isteaRe],

[isTeaEsc]) values("+Qid+",'"+newstuid + "',getdate(),getdate(),4,0,0,1)";//添加申請

cmd1.Transaction = trans1;//將命令對象關聯(lián)到事務

cmd2.Transaction = trans1;

cmd3.Transaction = trans1;

int quesN = Convert.ToInt32(cmd1.ExecuteScalar());//當前題目的可申報狀態(tài)

int stuOkN = Convert.ToInt32(cmd2.ExecuteScalar()); //學生的已申報狀態(tài)

if (quesN > 0 && stuOkN == 0){

cmd3.ExecuteNonQuery();

trans1.Commit();}

3 軟件應用情況

最近兩年,本研究所設計的移動選題系統(tǒng),在筆者所在高校得到推廣使用。軟件上線后,運行平穩(wěn)、響應及時、使用方便,得到本校教師與學生的良好評價。該軟件由教師、學生、管理員三大功能模塊構成,可以在電腦和手機等多種平臺運行,內外網(wǎng)結合,實現(xiàn)了手機端的學生選題與教師批復、電腦端的用戶管理及題目管理、管理員數(shù)據(jù)導入導出、短消息提醒等關鍵功能,達到了本研究的目標。

4 本研究的不足

本研究所提出的解決方案基于集中式數(shù)據(jù)管理方式,隨著系統(tǒng)應用規(guī)模的擴大,系統(tǒng)會產(chǎn)生“瓶頸”效應,應用性能下降,響應時間變長,用戶友好性體驗變差。因此,本研究的后續(xù)工作方向是建立分布式數(shù)據(jù)處理機制,將龐大的數(shù)據(jù)處理工作通過網(wǎng)絡分解到不同物理位置的服務器上,同時做好數(shù)據(jù)訪問的負載平衡控制,實現(xiàn)系統(tǒng)整體性能的提升。

5 總結

移動選題系統(tǒng)植根于手機移動平臺,師生采用多方式交互,做到了畢業(yè)論文雙向選題的公開透明和及時準確。同時,在信息傳遞上更快捷、更方便,改變了傳統(tǒng)的信息系統(tǒng)僅能在電腦端使用的現(xiàn)狀。本課題研究意義在于探索信息系統(tǒng)在新形勢下的表現(xiàn)形式,提供一種更具有親和力、學生樂于接受的Web應用方式。課題研究成果在普通高校有一定的應用前景,推廣使用后可產(chǎn)生較好的社會效益和經(jīng)濟效益。

參考文獻

[1] 劉瓊.基于MVC架構的英語教學系統(tǒng)設計及應用[J].微型電腦應用,2018(11):107-109.

[2] 黃藍會.基于UML進行軟件需求分析的研究[J].微型電腦應用,2016(7):9-11.

[3] Joseph Schmuller.UML基礎、案例與應用(第3版)[M].李虎,李強,譯.北京:人民郵電出版社,2018.

[4] 吳善財.ASP.NET項目開發(fā)實戰(zhàn)密碼[M].北京:清華大學出版社,2016.

[5] 曾建華.Visual Studio 2010(C#)Web數(shù)據(jù)庫項目開發(fā)[M].北京:電子工業(yè)出版社,2013.

(收稿日期: 2019.10.12)

猜你喜歡
移動平臺數(shù)據(jù)庫系統(tǒng)
計算機數(shù)據(jù)庫系統(tǒng)在信息管理中的應用
基于移動式培訓評估系統(tǒng)的培訓閉環(huán)管理研究與探索
對分布式數(shù)據(jù)庫系統(tǒng)的安全分析
基于移動平臺的電力營銷系統(tǒng)應用探析
數(shù)字化校園中統(tǒng)一移動平臺的實踐與探索
基于互聯(lián)網(wǎng)+環(huán)境下大學生自主學習移動平臺設計的研究
基于眾包的數(shù)據(jù)庫信息查詢處理方法
數(shù)據(jù)庫系統(tǒng)在信息管理中的使用
電子商務企業(yè)營銷觀念淺析
淺析移動互聯(lián)網(wǎng)營銷