999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于BCE的移動選題系統研究與實現

2020-04-22 20:27:38楊國清
微型電腦應用 2020年3期

楊國清

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

關鍵詞:BCE; 數據庫系統; 移動平臺; 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 引言

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

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

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

1 系統分析與設計

1.1 BCE設計模式概述

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

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

1.2 需求分析

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

(1) 選題活動前

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

(2) 選題活動中

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

(3) 選題活動后

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

1.3 實體類設計

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

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

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

1.4 邊界類設計

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

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

1.5 控制類設計

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

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

2 系統實現

2.1 實現框架選型

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

(1) 邊界類的實現

(2) 控制類的實現

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

(3) 實體類的實現

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

(4) 前后臺數據交互的實現

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

2.2 移動端UI設計

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

(1) 適應性設置

與電腦端Web頁面相比較,應該在移動端頁面HTML源的頭部設置內容寬度為滿屏,相應代碼行是:“〈meta name="viewport" content="width=device-width, initial-scale=1"/>”。 同時,將頁面的body節的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 并發控制

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

事務在執行某項數據操作之前,常常需要判斷其先決條件是否滿足。例如,學生A申報某個題目時,需要先判斷該題目的狀態,只有其狀態為“可申報”時,才能在“選擇表”中新增該題目的申報記錄。讀取狀態與新增記錄之間存在時間差,如果允許其他學生在該時間差內讀取數據,則會取得錯誤的題目狀態值。故此,一定要在業務邏輯中,將事務的所有操作當成一個整體,在事務讀取數據時,也要對數據加排它鎖,鎖定相關記錄行或整張數據表,完成全部事務操作后,才打開鎖。實現學生申報選題的并發控制核心代碼如下:[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;//定義查詢語句,獲取當前題目可申報狀態

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

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;//將命令對象關聯到事務

cmd2.Transaction = trans1;

cmd3.Transaction = trans1;

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

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

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

cmd3.ExecuteNonQuery();

trans1.Commit();}

3 軟件應用情況

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

4 本研究的不足

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

5 總結

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

參考文獻

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

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

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

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

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

(收稿日期: 2019.10.12)

主站蜘蛛池模板: 五月天久久综合国产一区二区| 国产成人免费手机在线观看视频| 最新国产麻豆aⅴ精品无| 国产在线98福利播放视频免费| 国产精品七七在线播放| 国产精品大白天新婚身材| 欧美亚洲国产一区| 欧美在线视频a| 精品无码国产自产野外拍在线| 91久久夜色精品| 午夜一区二区三区| 欧美一区精品| 日韩欧美综合在线制服| 久久不卡国产精品无码| 人妻丰满熟妇AV无码区| 国产尤物jk自慰制服喷水| 亚洲—日韩aV在线| 日本影院一区| 中国精品久久| 精品免费在线视频| 2048国产精品原创综合在线| 亚洲天堂区| 在线视频亚洲色图| 国产精品永久不卡免费视频| 亚洲天堂视频网站| 欧美日本激情| 欧美激情综合一区二区| 伦伦影院精品一区| 内射人妻无套中出无码| 9999在线视频| 尤物成AV人片在线观看| 日韩av高清无码一区二区三区| 精品在线免费播放| 麻豆精品视频在线原创| 亚洲高清在线天堂精品| 婷婷色一二三区波多野衣| 亚洲欧美日韩另类在线一| 日韩毛片免费| 99视频有精品视频免费观看| 久久婷婷五月综合色一区二区| 久久频这里精品99香蕉久网址| 亚洲视频在线观看免费视频| 中文字幕日韩丝袜一区| 福利国产微拍广场一区视频在线| 亚洲一区二区在线无码| 91青草视频| 精品国产成人三级在线观看| 国产一区二区三区精品欧美日韩| 亚洲天堂色色人体| 亚洲男人天堂久久| 国产99在线观看| 亚洲男人天堂2020| 国产精选自拍| 在线观看网站国产| 国产在线观看91精品亚瑟| 精品国产91爱| 欧美视频在线不卡| 久久综合伊人 六十路| 欧美国产在线一区| 制服丝袜在线视频香蕉| 精品撒尿视频一区二区三区| 国产亚洲日韩av在线| 久久精品欧美一区二区| 国产原创第一页在线观看| 色婷婷久久| 青青草久久伊人| 制服丝袜 91视频| 日韩不卡高清视频| 国产激情影院| a级毛片网| 国产十八禁在线观看免费| 毛片久久网站小视频| 自慰网址在线观看| 精品久久香蕉国产线看观看gif| 国产aⅴ无码专区亚洲av综合网 | 欧美国产日本高清不卡| 国产精品亚洲一区二区三区z| 日韩午夜福利在线观看| 国产va在线观看免费| 色呦呦手机在线精品| 91丝袜乱伦| 欧美激情伊人|