汪大賀,李博,孫維健,王會會,樊鵬輝,于春洋
(長春理工大學(xué),長春 130022)
高校數(shù)據(jù)統(tǒng)計(jì)系統(tǒng)研究與實(shí)踐
汪大賀,李博,孫維健,王會會,樊鵬輝,于春洋
(長春理工大學(xué),長春 130022)
系統(tǒng)以長春理工大學(xué)基本教學(xué)狀態(tài)數(shù)據(jù)的導(dǎo)入存儲、分析統(tǒng)計(jì)、數(shù)據(jù)分析和到處上報到國家級基本狀態(tài)數(shù)據(jù)庫系統(tǒng)為主要目標(biāo),開發(fā)基于三層架構(gòu)的高等學(xué)校數(shù)據(jù)統(tǒng)計(jì)系統(tǒng)。使得基本教學(xué)狀態(tài)數(shù)據(jù)上報至國家的事務(wù)變得簡單化、規(guī)范化。提供數(shù)據(jù)分析功能使得學(xué)校的發(fā)展情況得以生動展示,更有助于學(xué)校進(jìn)行下一步發(fā)展策略的制定。
數(shù)據(jù)統(tǒng)計(jì);數(shù)據(jù)分析;三層架構(gòu)
高校的數(shù)據(jù)統(tǒng)計(jì)與分析是對學(xué)校基本情況科學(xué)明確的一種展示,數(shù)據(jù)包含了學(xué)?;拘畔ⅰ⒔處煂W(xué)生信息、學(xué)科專業(yè)信息、人才培養(yǎng)、教學(xué)管理與質(zhì)量監(jiān)控等方面,對這些數(shù)據(jù)指標(biāo)進(jìn)行橫向與縱向的分析與比對,并對數(shù)據(jù)進(jìn)行系統(tǒng)整理,從中挖掘?qū)W校發(fā)展的潛在規(guī)律與不足之處,為學(xué)校制定總體發(fā)展規(guī)劃目標(biāo)提供有力的數(shù)據(jù)保障。在深入調(diào)研省內(nèi)高校統(tǒng)計(jì)工作與結(jié)合本校實(shí)際情況的基礎(chǔ)上,對系統(tǒng)的研發(fā)做了充分的前期準(zhǔn)備,對總體設(shè)計(jì)思路進(jìn)行了深入的討論,同時在功能實(shí)現(xiàn)方面也充分考慮到信息資源的共享和確保數(shù)據(jù)出口的一致性。通過對長春理工大學(xué)教學(xué)基本狀態(tài)數(shù)據(jù)庫的上報的辦公情況和業(yè)務(wù)流程的分析[1],提出長春理工大學(xué)教學(xué)基本狀態(tài)數(shù)據(jù)庫的功能需求:權(quán)限管理(表單分部門展示,滿足填報與瀏覽權(quán)限的分離,以及系統(tǒng)的分級權(quán)限管理);導(dǎo)入系統(tǒng)(各部門數(shù)據(jù)導(dǎo)入);數(shù)據(jù)展示系統(tǒng)(以具體表格形式展示數(shù)據(jù));數(shù)據(jù)分析(多元指標(biāo)以圖形界面展示數(shù)據(jù));導(dǎo)出系統(tǒng)(導(dǎo)出各表數(shù)據(jù)excel)。根據(jù)對數(shù)據(jù)的詳細(xì)統(tǒng)計(jì)分析,觀察數(shù)據(jù)背后的規(guī)律,找出優(yōu)點(diǎn)及不足之處,統(tǒng)計(jì)分析工作起到了至關(guān)重要的作用[2]。
針對國家教育部各項(xiàng)報表的參數(shù)與指標(biāo)解釋,切實(shí)結(jié)合學(xué)校的兩級管理體制,對整個工程分為七個子系統(tǒng),分別是基礎(chǔ)數(shù)據(jù)管理、人員管理、高基表、教學(xué)狀態(tài)數(shù)據(jù)庫、基本數(shù)據(jù)通報、數(shù)據(jù)分析、系統(tǒng)維護(hù)等。各子系統(tǒng)之間確保數(shù)據(jù)訪問同一個數(shù)據(jù)源,各部門之間合理的劃分權(quán)限和功能,使整個工程是一個緊密聯(lián)系的有機(jī)整體[3]。項(xiàng)目劃分如圖1所示。
(1)基礎(chǔ)數(shù)據(jù)管理模塊:包括學(xué)校各部門信息的導(dǎo)入、導(dǎo)出、數(shù)據(jù)的編輯以及創(chuàng)建統(tǒng)計(jì)時點(diǎn)操作等功能,基礎(chǔ)數(shù)據(jù)的創(chuàng)建同時充分考慮到全校信息標(biāo)準(zhǔn)化。
(2)人員管理模塊:包括人員的變更部門、變更權(quán)限、修改用戶的基本信息等功能。
(3)高基表模塊:包括教育事業(yè)統(tǒng)計(jì)中的全部報表內(nèi)容的顯示與查看功能。
(4)狀態(tài)數(shù)據(jù)庫模塊:包括本科教學(xué)基本狀態(tài)數(shù)據(jù)庫的全部報表內(nèi)容的顯示與查看功能。
(5)基本數(shù)據(jù)通報模塊:包括學(xué)校學(xué)科、教職員工、學(xué)生、固定資產(chǎn)等情況的統(tǒng)計(jì)功能。
(6)統(tǒng)計(jì)分析模塊:包括本科教學(xué)評估報告、學(xué)校各年度數(shù)據(jù)的橫向和縱向?qū)Ρ?、各指?biāo)值的科學(xué)分析與決策等功能。
(7)系統(tǒng)維護(hù)模塊:包括數(shù)據(jù)的備份與恢復(fù)、系統(tǒng)參數(shù)設(shè)定、權(quán)限管理、各模塊關(guān)聯(lián)控制等功能。
圖1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)采用三層架構(gòu)(3-tier architecture)[3]將整個業(yè)務(wù)應(yīng)用劃分為:表示層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data access layer)。區(qū)分層次的目的即為了“高內(nèi)聚低耦合”的思想,具體實(shí)現(xiàn)如圖2所示。
圖2 三層架構(gòu)結(jié)構(gòu)圖
2.1 LINQ TO SQL
LINQ TO SQL提供了對事務(wù)、視圖、存儲過程的完全支持。它同樣為集成數(shù)據(jù)校驗(yàn)和業(yè)務(wù)層邏輯到數(shù)據(jù)模型中提供了一種簡單的實(shí)現(xiàn)方式,具體操作如下:
修改t_Users表中的UserName為大氣象2的偽代碼:
輸入:UserID為2,UserName為大氣象2
輸出:修改后的數(shù)據(jù)
(01)t_Users實(shí)例化一個對象userUpdate;
(02)查找UserID為2的一樣數(shù)據(jù)并賦給userUpdate;
(03)將userUpdate.UserName的值修改為大氣象2;
(04)提交修改。
條件查詢職稱為教授的教師信息的偽代碼如下:
輸入:教授(查詢職稱為教授的教師信息)
輸出:職稱為教授的教授信息的數(shù)據(jù)集
(01)Gridview的name是gdvUsers;
(02)t_Users實(shí)例化一個對象user;
(03)從數(shù)據(jù)庫ManageCUST中查找T_title為教授的教師信息并按照職工號排序;
(04)將查詢到的數(shù)據(jù)集賦給gdvUsers.Data-Source;
(05)綁定到gdvUsers;
2.2 數(shù)據(jù)批量導(dǎo)入導(dǎo)出技術(shù)
為解決信息孤島問題,實(shí)現(xiàn)和學(xué)校其它系統(tǒng)的接口互聯(lián),并且由于學(xué)生信息、學(xué)校用戶的數(shù)據(jù)量比較大,以及每年新生增加,為減少數(shù)據(jù)錄入的工作繁瑣,在系統(tǒng)中設(shè)計(jì)了信息批量導(dǎo)入導(dǎo)出功能[4]。在Excel文字字段與數(shù)據(jù)庫中信息表匹配下,將預(yù)先制作好的Excel格式的數(shù)據(jù)信息直接通過瀏覽器導(dǎo)入到系統(tǒng)后臺數(shù)據(jù)庫或者將系統(tǒng)后臺數(shù)據(jù)庫數(shù)據(jù)信息導(dǎo)入到Excel。
將數(shù)據(jù)批量導(dǎo)出到Excel文件的步驟如下:
(1)分別創(chuàng)建Excel應(yīng)用程序、工作簿和工作表對象,若其創(chuàng)建失敗,則返回;
(2)在數(shù)據(jù)顯示控件GridView中選擇將被導(dǎo)出的數(shù)據(jù),如果被選中的行數(shù)小于0,則返回;
(3)以GridView列數(shù)建立循環(huán),依次向工作表寫入GridView列標(biāo)題;
(4)以GridView被選中的行數(shù)建立外循環(huán),以GridView列數(shù)建立內(nèi)循環(huán),依次向工作表寫入每個單元格的數(shù)據(jù);
(5)存Excel文件,關(guān)閉Excel對象并回收資源。
讀取Excel文件中的數(shù)據(jù),并顯示在GridView控件中,步驟如下:
(1)設(shè)置連接Excel文件的字符串,并指定其擴(kuò)展屬性;
(2)設(shè)置查詢語句,確定被引用的工作表的范圍;
(3)利用OleDbConnection類初始化連接對象。使用“Microsoft.Jet.OleDb”連接Excel文件;
(4)初始化數(shù)據(jù)適配器,填充數(shù)據(jù)集;
將Excel文件中的數(shù)據(jù)批量導(dǎo)入指定數(shù)據(jù)庫中的數(shù)據(jù)表的步驟如下:
(1)判斷Excel文件格式與數(shù)據(jù)庫表結(jié)構(gòu)是否一致(包括字段列數(shù)是否相等、字段名是否相同、數(shù)據(jù)格式是否相同和數(shù)據(jù)寬度是否滿足要求),若不一致,則返回;
(2)在數(shù)據(jù)顯示控件GridView中選擇將被導(dǎo)入的數(shù)據(jù),如果被選中的行數(shù)小于0,則返回;
(3)分別以GridView列數(shù)和GridView被選中的行數(shù)建立循環(huán),讀取GridView列標(biāo)題和單元格數(shù)據(jù),構(gòu)造SQL數(shù)據(jù)插入語句;
(4)判斷數(shù)據(jù)庫表中的數(shù)據(jù)與被插入的數(shù)據(jù)關(guān)鍵字是否相同,若相同,將其記錄在日志文本文件中,否則將該記錄插入到數(shù)據(jù)庫表中;
(5)顯示數(shù)據(jù)批量導(dǎo)入的情況,必要時可以打開日志文本文件,供用戶查閱未導(dǎo)入成功的數(shù)據(jù)情況。
數(shù)據(jù)批量導(dǎo)入導(dǎo)出序列圖如圖3所示。
圖3 數(shù)據(jù)批量導(dǎo)入導(dǎo)出序列圖
整體類圖設(shè)計(jì),根據(jù)數(shù)據(jù)實(shí)體屬性的分析及結(jié)合面向?qū)ο笏枷耄?],可以得到系統(tǒng)類圖。如圖4所示。其中,類MainActivity和類LoginUI是一般關(guān)聯(lián)關(guān)系。而類HomePage、類FindPage、類Mepage、類MessagePage是類MainActivity的一部分,它們與類MainActivity具有一致的生命周期,因此它們與類MainActivity之間是組合關(guān)系。類HomePage、類FindPage、類Mepage、類MessagePage與類User之間是依賴關(guān)系。類User與類Collection、類WebInfor之間是一般關(guān)聯(lián)關(guān)系。類TopicRecommend與類Collection、類Topic是依賴關(guān)系。類Topic與類Information是依賴關(guān)系。同樣,類Information類與WebInfor也是依賴關(guān)系。
圖4 系統(tǒng)類圖
白盒測試是利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與期望的狀態(tài)一致。
本系統(tǒng)采用白盒測試的基本路徑測試法進(jìn)行單元測試[5]。
測試用例,擴(kuò)展歐幾里得算法求乘法逆元方法的測試用例設(shè)計(jì)及其測試結(jié)果與分析如下:
(1)程序控制流圖
擴(kuò)展歐幾里得算法求乘法逆元方法的程序流程圖,對其進(jìn)行簡化得到的程序控制流圖如圖7所示。
(2)計(jì)算環(huán)路復(fù)雜度
環(huán)路的復(fù)雜性為:V(G)=E-N+2=18-15+ 2=5。
因此,該方法環(huán)路復(fù)雜度是5?;韭窂郊杏?條獨(dú)立路徑。
(3)根據(jù)上面的計(jì)算方法,導(dǎo)出基本路徑集,列出該方法程序的獨(dú)立路徑,可得出該方法程序的基本路徑集中有5條獨(dú)立路徑。
路徑1:5-16-17-20
路徑2:5-6-18-19-20
路徑3:5-6-7-8-9-10-11-12-13-9-···
路徑4:5-6-7-8-9-14-7-···
路徑5:5-6-7-8-9-14-15-20
圖5 擴(kuò)展歐幾里得算法求乘法逆元方法的程序控制流圖
測試用例,根據(jù)上述獨(dú)立路徑,設(shè)計(jì)該方法的測試用例表如表1所示:
表1 擴(kuò)展歐幾里得算法求乘法逆元方法的測試用例表
測試結(jié)果:
(1)路徑1的實(shí)際輸出:a[2]=0,與預(yù)期輸出一致,路徑1正確;
(2)路徑2的實(shí)際輸出:b[2]=1,與預(yù)期輸出一致,路徑2正確;
(3)路徑3的實(shí)際輸出:t[0]=1,a[0]=0,b[0]= 1,與預(yù)期輸出一致,路徑3正確;
(4)路徑4的實(shí)際輸出:t[2]=17,a[2]=23,b[2]=17,與預(yù)期輸出一致,路徑4正確;
(5)路徑5的實(shí)際輸出:b[1]=23,與預(yù)期輸出一致,路徑5正確。
通過對擴(kuò)展歐幾里得算法求乘法逆元方法的全部獨(dú)立路徑進(jìn)行測試,由以上結(jié)果可以得知,該方法中的每條通路都能按預(yù)定要求正確工作。
本系統(tǒng)結(jié)合教育部報表及學(xué)校實(shí)際管理,研發(fā)的高?;緮?shù)據(jù)統(tǒng)計(jì)系統(tǒng),能夠合理的對學(xué)?;緮?shù)據(jù)進(jìn)行統(tǒng)計(jì),科學(xué)的分析數(shù)據(jù)背后的規(guī)律及反映的實(shí)際情況,合理的劃分各部門負(fù)責(zé)填報的數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)科學(xué)的分析與信息資源的共享,為向教育部報送數(shù)據(jù)信息及制定學(xué)校發(fā)展規(guī)劃目標(biāo)提供了堅(jiān)實(shí)的保障。同時也有助于理清管理思路,規(guī)范了工作流程,提高了工作效率,真正發(fā)揮統(tǒng)計(jì)數(shù)據(jù)為領(lǐng)導(dǎo)決策服務(wù)、為日常行政事務(wù)服務(wù)的作用。
圖6 系統(tǒng)演示1
圖7 系統(tǒng)演示2
[1]吳生,趙雪曼.高??萍冀y(tǒng)計(jì)實(shí)踐與分析[J].技術(shù)與創(chuàng)新管理,2012,33(5):503-505.
[2]蘇光靖.當(dāng)前高校統(tǒng)計(jì)工作的現(xiàn)狀及對策研究[J].統(tǒng)計(jì)與咨詢,2013(3):13-14.
[3]高揚(yáng).基于.NET平臺的三層架構(gòu)軟件框架的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(2):77-80.
[4]徐永華.基于C#.NET批量數(shù)據(jù)導(dǎo)出的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2012(29):6978-6979.
[5]朱少民.軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2012.
Research and Practice of the Data Statistic System in University
WANG Dahe,LI Bo,SUN Weijian,WANG Huihui,F(xiàn)AN Penghui,YU Chunyang
(Changchun University of Science and Technology,Changchun 130022)
This system in changchun university of science and technology,the basic teaching form import storage of data,analysis of statistics,data analysis and report to the national basic state around database system as the main target,the development of institutions of higher learning data statistics system based on three-layer architecture.Makes the basic teaching status data reported to the state of affairs become simplification,standardization.The development of the school to provide data analysis functions more vivid display,more help to the school for the next step development strategy formulation.
data statistics;data analysis;three layer architecture
TP39
A
1672-9870(2016)06-0090-05
2016-08-26
汪大賀(1979-),男,碩士,助理研究員,E-mail:wdh@cust.edu.cn