邱士慶,王 燕
(北京印刷學(xué)院,北京 102600)
隨著社會經(jīng)濟(jì)的發(fā)展,越來越多的人想去學(xué)習(xí)更多自己喜歡的內(nèi)容,擴(kuò)展自己的技能。而目前的興趣培訓(xùn)班大部分都是線下教學(xué),每個興趣培養(yǎng)機(jī)構(gòu)(簡稱:培養(yǎng)機(jī)構(gòu))之間沒有彼此的聯(lián)系,這也就讓培養(yǎng)機(jī)構(gòu)有機(jī)可乘,這些機(jī)構(gòu)不僅師資條件不足,而且價格也高得離譜。而真正有能力但卻并沒有多余資金去做宣傳的培養(yǎng)機(jī)構(gòu)無法從中脫穎而出,也讓那些想去培養(yǎng)自己興趣的人無法認(rèn)識到各個培養(yǎng)機(jī)構(gòu)的師資水平,教育環(huán)境等方面所存在的問題。[1]因此,針對上述問題,本文設(shè)計(jì)了一個興趣培養(yǎng)機(jī)構(gòu)推廣系統(tǒng),可以提高有能力的培養(yǎng)機(jī)構(gòu)的知名度,以便在使用者想去學(xué)習(xí)內(nèi)容的同時,找到適合他們自己興趣方面的培養(yǎng)機(jī)構(gòu)。
根據(jù)目前興趣培訓(xùn)行業(yè)存在問題以及當(dāng)前網(wǎng)絡(luò)調(diào)研結(jié)果來看,興趣培養(yǎng)系統(tǒng)的主要需求如下:(1)系統(tǒng)實(shí)現(xiàn)管理員和機(jī)構(gòu)用戶的注冊和登錄功能,并且賬號名稱不可重復(fù)。(2)系統(tǒng)可將機(jī)構(gòu)用戶所添加的內(nèi)容進(jìn)行完整顯示,并能進(jìn)行實(shí)時修改、添加或查詢。(3)管理員用戶可查詢機(jī)構(gòu)用戶添加的內(nèi)容,如個人信息、聯(lián)系方式等,查看其主要推廣產(chǎn)品以及教學(xué)質(zhì)量并對其進(jìn)行審核。(4)系統(tǒng)有一套完整的管理員信息管理系統(tǒng),可以添加新管理員成員進(jìn)系統(tǒng),系統(tǒng)管理員可修改、刪除機(jī)構(gòu)用戶的基本信息以及工作負(fù)責(zé)人方面的信息。
在軟件體系架構(gòu)中,為秉持高內(nèi)聚、低耦合的開發(fā)思想,分層式結(jié)構(gòu)設(shè)計(jì)是必不可少的一環(huán),本系統(tǒng)采用了三層架構(gòu)模式,可以降低層與層之間的依賴性,有利于相同業(yè)務(wù)功能的復(fù)用。[2]一般情況下將其劃分為三層:顯示層(User Interface Layer, UIL)、業(yè)務(wù)邏輯層(Business Logic Layer, BLL)、數(shù)據(jù)訪問層(Data Access Layer, DAL)。
UIL是展現(xiàn)給用戶的界面,用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供可以交互的操作界面及表現(xiàn)邏輯,即用戶所看到的視圖部分。
BLL也被稱為領(lǐng)域?qū)?BLL針對具對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。該層負(fù)責(zé)從UI用戶中獲取用戶指令和數(shù)據(jù),執(zhí)行業(yè)務(wù)邏輯,并通過DAL寫入數(shù)據(jù)源,還可以從DAL中獲取數(shù)據(jù),將結(jié)果返回給UI用戶。
DAL也叫作持久化層,UIL所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、查找等。用來從數(shù)據(jù)源加載數(shù)據(jù),其中數(shù)據(jù)源包括數(shù)據(jù)庫、XML文件、文本文件等;向數(shù)據(jù)源寫入數(shù)據(jù)或刪除數(shù)據(jù),系統(tǒng)三層架構(gòu)模式圖如圖1所示。
興趣培養(yǎng)機(jī)構(gòu)推廣系統(tǒng)是一款可以幫助興趣培養(yǎng)機(jī)構(gòu)實(shí)現(xiàn)在線推廣、編輯個人區(qū)域、上傳教育特點(diǎn)等功能,并且可以幫助管理員管理和了解用戶以及調(diào)查當(dāng)前形勢下的培養(yǎng)方式問題等功能的在線教育推廣系統(tǒng)。[3]所以興趣培養(yǎng)機(jī)構(gòu)推廣系統(tǒng)分為管理員用戶和培養(yǎng)機(jī)構(gòu)用戶前臺展示系統(tǒng)和后臺管理系統(tǒng)兩部分。系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)如圖2所示。
管理員用戶模塊主要包括對前端界面圖文展示內(nèi)容編輯修改的“新聞圖文管理模塊”、對管理人員賬號進(jìn)行增刪操作的“管理成員增刪模塊”、對機(jī)構(gòu)用戶賬號進(jìn)行增刪操作的“用戶內(nèi)容管理模塊”。
機(jī)構(gòu)用戶模塊主要包括編輯具體課程安排內(nèi)容的“開設(shè)課程管理模塊”、設(shè)置機(jī)構(gòu)課程活動具體信息的“舉辦活動管理模塊”、編輯機(jī)構(gòu)用戶介紹的“機(jī)構(gòu)介紹管理模塊”、修改創(chuàng)建機(jī)構(gòu)用戶賬號信息的“機(jī)構(gòu)資料修改模塊”。
數(shù)據(jù)庫設(shè)計(jì)采用概念模型設(shè)計(jì)中典型的E-R模型設(shè)計(jì),通過實(shí)體-聯(lián)系-屬性的方式反映數(shù)據(jù)庫表中關(guān)系。[4]根據(jù)系統(tǒng)模塊設(shè)計(jì)和E-R設(shè)計(jì)圖所示(圖3),本系統(tǒng)主要有:機(jī)構(gòu)用戶表(user)、管理員用戶表(admin_name)、資料修改表(data_modify)、通知管理表(notice_manage)、活動管理表(activity_manage)、課程管理表(course_manage)。
機(jī)構(gòu)用戶表:賬號名(User_name)、密碼(User_password)、手機(jī)號(Cell_phone)、簽名(Autograph),電子郵箱(Email)、地區(qū)(Region)、身份證號(User_id)、企業(yè)名稱(Enterprise_name)。用戶注冊創(chuàng)建表,在創(chuàng)建用戶時,將User_name設(shè)置為主鍵,賬號名和密碼為用戶登錄系統(tǒng)時憑證,其他屬性信息均為注冊時的機(jī)構(gòu)用戶的個人信息。
管理員用戶表:賬號名(Admin_name)、密碼(Admin_password)。管理員用戶表中賬號名和密碼為管理員登錄憑證,管理員用戶注冊時,只能通過超級管理員在后臺添加管理員進(jìn)行設(shè)置。
通知管理表:圖片(Photo)、文本(Text)。通知管理表是管理員在展示頁面編輯新聞通知內(nèi)容的數(shù)據(jù)表,主要分為展示圖片和新聞通知。
課程管理表:課程名稱(Course_name)、授課老師(Teacher)、授課時間(Teaching_time)、發(fā)布機(jī)構(gòu)(Enterprise_name)、上傳時間(Add_Time)、課程簡介(Course_introduction)。課程管理表是機(jī)構(gòu)用戶對發(fā)布課程進(jìn)行編輯管理的數(shù)據(jù)表,Course_name為數(shù)據(jù)表主鍵,Add_Time為機(jī)構(gòu)用戶在添加課程信息的過程后點(diǎn)擊提交的時間,其他屬性信息均需要在課程編輯內(nèi)容時填寫。其中Course_introduction為課程介紹具體內(nèi)容,Teaching_time為課程開始時間。
活動管理表:活動名稱(Activity_name)、上傳時間(Add_time)、發(fā)布機(jī)構(gòu)(Publisher)、活動介紹(Activity_Introduction)、開始時間(Play_Time)、結(jié)束時間(End_Time)、活動范圍(Range)?;顒庸芾肀硎菣C(jī)構(gòu)用戶在對自身開設(shè)課程舉辦活動提交的數(shù)據(jù)表,Activity_name為數(shù)據(jù)表主鍵,Add_time同課程管理表中Add_Time類型相同,其他屬性信息均需要在編輯活動內(nèi)容時填寫。
資料修改表:課程名稱(Course_Name)、活動名稱(Activity_Name)、簡介(Introduction)、用戶名(User_name)、機(jī)構(gòu)簡介(Enterprise_introduction)。資料修改表是機(jī)構(gòu)用戶編輯個人資料的數(shù)據(jù)表,其中包括上述課程管理表和活動管理表中的Activity_name、Course_name,若機(jī)構(gòu)用戶曾創(chuàng)建過課程或活動內(nèi)容則可在此表中進(jìn)行修改或刪除。
整個興趣培養(yǎng)機(jī)構(gòu)推廣系統(tǒng),采用的是JavaWeb來實(shí)現(xiàn)開發(fā)。請求之中采用HttpServlet技術(shù)來實(shí)現(xiàn)前臺的請求和響應(yīng),數(shù)據(jù)庫連接使用JDBC技術(shù),讀取數(shù)據(jù)時使用JavaBean組件,數(shù)據(jù)庫采用MySQL數(shù)據(jù)庫。整個系統(tǒng)編寫在IntelliJ IDEA中進(jìn)行,自行下載jar包進(jìn)行項(xiàng)目管理,并最終部署在Tomcat服務(wù)器上。
本系統(tǒng)編碼設(shè)計(jì)上使用gb2312編碼格式,這樣設(shè)計(jì)在Tomcat服務(wù)器上啟動時速度則會比其他編碼格式更快一些,并且占用內(nèi)存較少,較為適合輕量級開發(fā)[5]。分頁設(shè)計(jì)通過后臺數(shù)據(jù)庫sql語句分頁獲取數(shù)據(jù),然后使用limit關(guān)鍵字來實(shí)現(xiàn)分頁操作。
本系統(tǒng)設(shè)置Tomcat端口號為8080,我們在IntelliJ IDEA啟動程序后,在瀏覽器地址輸入欄中輸入localhost:8080/index.jsp便可進(jìn)入系統(tǒng)首頁。首次機(jī)構(gòu)用戶登錄該系統(tǒng)后,首先需要注冊用戶,成功后才可以登錄使用機(jī)構(gòu)用戶后臺系統(tǒng)進(jìn)行內(nèi)容編輯。用戶機(jī)構(gòu)登錄后如圖4所示,其中可在左側(cè)欄中選擇功能進(jìn)行編輯,并將會在系統(tǒng)首頁展示。本系統(tǒng)僅機(jī)構(gòu)用戶有注冊功能,管理員賬號為超級管理員設(shè)置。初始管理員為數(shù)據(jù)庫表中自行添加字段,后可通過設(shè)置添加管理員成員協(xié)助系統(tǒng)維護(hù),管理員后臺如圖5所示,可對機(jī)構(gòu)用戶和系統(tǒng)新聞通知進(jìn)行管理操作。
為保證系統(tǒng)能夠正常運(yùn)行,完成系統(tǒng)后對其全部功能進(jìn)行測試是必不可少的步驟[6],本系統(tǒng)從三個方面系統(tǒng)測試,檢測系統(tǒng)的功能完整性、是否存在安全問題和不同瀏覽器所顯示內(nèi)容是否存在不兼容情況。
功能測試:針對功能測試,通過本地端口打開本系統(tǒng)創(chuàng)建機(jī)構(gòu)用戶并對其進(jìn)行注冊登錄操作,并在機(jī)構(gòu)用戶后臺分別進(jìn)行課程內(nèi)容添加、活動添加、個人資料編輯,可在系統(tǒng)前臺成功顯示并可在數(shù)據(jù)庫表中完整顯示其修改內(nèi)容,管理員后臺操作相同,在增刪管理員和修改新聞通知內(nèi)容時,可在系統(tǒng)前臺成功顯示,也可觀察到數(shù)據(jù)庫表中相應(yīng)數(shù)據(jù)的修改。
安全測試:針對安全測試,首先通過未登錄用戶來進(jìn)入后臺系統(tǒng),系統(tǒng)彈出阻攔通知,并跳回首頁,使用請求頭中cookie調(diào)用查看其本地瀏覽器中用戶登錄記錄并未成功,中途使用其他計(jì)算機(jī)和同一局域網(wǎng)在機(jī)構(gòu)用戶進(jìn)行注冊操作和編輯時,模擬中途斷網(wǎng)操作,發(fā)現(xiàn)數(shù)據(jù)庫表數(shù)據(jù)并未修改。
負(fù)載測試:本次測試中,20個用戶訪問系統(tǒng)進(jìn)行一系列操作。在整個測試過程中,系統(tǒng)并未出現(xiàn)閃退、未響應(yīng)、頁面加載錯誤等問題,在Windows操作系統(tǒng)下的系統(tǒng)出現(xiàn)延遲稍緩的現(xiàn)象,但是已滿足正常系統(tǒng)使用。機(jī)構(gòu)中選擇出適合他們的課程和負(fù)責(zé)任的老師,這也是該系統(tǒng)平臺存在的價值,而采用的三層框架結(jié)構(gòu)也為之后對系統(tǒng)內(nèi)容進(jìn)行擴(kuò)展、補(bǔ)充、維護(hù)起到了不少的便利作用。
本文對興趣培養(yǎng)機(jī)構(gòu)推廣系統(tǒng)進(jìn)行了框架和系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)的講解,可以直觀看到,對于機(jī)構(gòu)用戶來講,給他們一個可以展示內(nèi)容的平臺,而對于想學(xué)習(xí)興趣培訓(xùn)班的群體來說,可以幫他們從眾多