張英亮 高善輝
【摘 要】傳統(tǒng)的考勤方法通常是點(diǎn)名或者是紙質(zhì)簽到方式,已經(jīng)無法滿足當(dāng)今教學(xué)管理信息化的需要。本研究運(yùn)用UML進(jìn)行系統(tǒng)分析,在.NET平臺(tái)下,采用三層架構(gòu),以C#為開發(fā)語(yǔ)言,SQL Server 2008為數(shù)據(jù)庫(kù)管理系統(tǒng)開發(fā)了多角色考勤管理與預(yù)警系統(tǒng),實(shí)現(xiàn)了考勤管理的規(guī)范化、信息化、網(wǎng)絡(luò)化。
【關(guān)鍵詞】考勤管理;預(yù)警;多角色;三層架構(gòu)
Design and Implementation of Multi-role Attendance Management and Early-warning System
ZHANG Ying-liang1 GAO Shan-hui2
(1.College of Computer and Information Engineering, Tianjin Agricultural University,
Tianjin 300384,China;2. Tianjin YAAN Technology Co. Ltd, Tianjin 300392,China)
【Abstract】Traditional attendance method mainly including roll call and registration, had been unable to keep up with the demand of teaching managements information. Multi-role attendance management and early-warning system was developed in .NET platform by applying UML to carry out object-oriented system analysis, using C# as development language, Microsoft SQL Server 2008 as database management system, adopting three-layer structure. Attendance managements standardization, information and networking were realized in this system.
【Key words】Attendance management; Early-warning; Multi-role; Three-layer structure
學(xué)生的考勤能夠很好的反映學(xué)生的日常學(xué)習(xí)情況是掌握學(xué)生動(dòng)態(tài)的最直觀手段。高校課堂是大學(xué)生獲取知識(shí)、培養(yǎng)能力、提高素質(zhì)的主要場(chǎng)所[1]。在課堂教學(xué)中,學(xué)生的考勤檢查是一項(xiàng)很重要的內(nèi)容,它能夠?qū)崟r(shí)的檢查每一位學(xué)生的到課情況和聽課情況。傳統(tǒng)的學(xué)生出勤檢查往往是教師拿著一張紙質(zhì)名單逐一點(diǎn)名,或讓學(xué)生上交課堂作業(yè)以便課后查詢出勤情況。這些方法往往造成統(tǒng)計(jì)結(jié)果不及時(shí),數(shù)據(jù)容易遺漏,對(duì)學(xué)生進(jìn)行教育難及時(shí)到位,甚至容易出現(xiàn)無法處分學(xué)生的現(xiàn)象(學(xué)生從未得到批評(píng)教育,也未受到警告、嚴(yán)重警告、記過等處分,卻面臨要留校察看的局面),班主任、輔導(dǎo)員、教師、學(xué)生無法及時(shí)了解考勤狀況,監(jiān)控失效。
針對(duì)以上問題,開發(fā)多角色考勤管理與預(yù)警系統(tǒng),任課教師可以在課堂上直接登錄系統(tǒng)進(jìn)行學(xué)生考勤檢查并記錄考勤信息??梢愿鶕?jù)實(shí)際情況設(shè)置課程的缺勤預(yù)警條件,當(dāng)某個(gè)學(xué)生的缺勤達(dá)到預(yù)警條件的時(shí)候,系統(tǒng)將自動(dòng)列出該學(xué)生的缺勤信息,使教師能夠及時(shí)、直觀地看到,對(duì)此類學(xué)生進(jìn)行幫扶。此外,在課余,任課教師、班主任、輔導(dǎo)員及學(xué)校各級(jí)領(lǐng)導(dǎo)也可以登陸該系統(tǒng)查詢學(xué)生的出勤情況。
1 系統(tǒng)需求
1.1 系統(tǒng)需求
高??记诠芾砼c預(yù)警系統(tǒng)主要包含學(xué)生信息管理、教師信息管理、管理人員信息管理、課程信息管理、預(yù)警信息管理等,是一項(xiàng)復(fù)雜而又操作頻繁的工作。用戶是系統(tǒng)的最終使用者,在設(shè)計(jì)系統(tǒng)之前,筆者與系統(tǒng)用戶(學(xué)生,教師,管理人員)進(jìn)行了深入交流,經(jīng)過多次系統(tǒng)需求調(diào)研與分析總結(jié)了以下功能需求:
1)學(xué)生可以查看本人的出勤信息,這些信息包含出勤情況、上課時(shí)間、課程名稱、任課教師等。
2)任課教師上課時(shí),系統(tǒng)能根據(jù)教師課表的安排,自動(dòng)列出課程信息、學(xué)生信息、上課時(shí)間等信息,并能對(duì)學(xué)生進(jìn)行考勤記錄。任課教師能對(duì)自己所教授課程設(shè)置預(yù)警條件后,系統(tǒng)能自動(dòng)列出達(dá)到預(yù)警條件的學(xué)生信息,可以查看所授課程的學(xué)生出勤信息。
3)教學(xué)秘書管理所屬院系學(xué)生信息、任課教師信息、班級(jí)課程信息、任課教師課程信息、輔導(dǎo)員信息。
4)輔導(dǎo)員可以查看所屬院系學(xué)生的出勤信息,可以設(shè)置所屬院系的單一課程和全部課程的預(yù)警條件,如:設(shè)置單一課程預(yù)警條件為4次,全部課程的預(yù)警條件為10次,系統(tǒng)將會(huì)自動(dòng)列出單一課程缺勤次數(shù)達(dá)到4次和全部課程缺勤次數(shù)達(dá)到10次的學(xué)生信息。
5)系統(tǒng)管理員擁有系統(tǒng)的最高權(quán)限,負(fù)責(zé)管理系統(tǒng)運(yùn)行所必需的數(shù)據(jù),基本功能需求:管理教學(xué)秘書信息;管理上課教室的信息;設(shè)置學(xué)期的開始時(shí)間、結(jié)束時(shí)間、持續(xù)周數(shù);設(shè)置教師檢查考勤的有效時(shí)間段,如:如果設(shè)置有效時(shí)間為10分鐘,則考勤有效時(shí)間為課程開始10分鐘之內(nèi);設(shè)置數(shù)據(jù)可用性,如:設(shè)置2012-2013年第一學(xué)期、2012-2013年第二學(xué)期的數(shù)據(jù)可用,表示這兩個(gè)學(xué)期的數(shù)據(jù)可用,其他學(xué)期的數(shù)據(jù)不可用。
1.2 系統(tǒng)角色
角色是與系統(tǒng)、子系統(tǒng)或類交互的外部人員、進(jìn)程或事物,是擁有某些權(quán)限的一類用戶,代表完成某些功能的資格或權(quán)利[2]。通過分析系統(tǒng)需求,可以識(shí)別出5個(gè)角色:學(xué)生、任課老師、教學(xué)秘書、輔導(dǎo)員、系統(tǒng)管理員。
1.3 系統(tǒng)用例圖
用例是指對(duì)系統(tǒng)提供的功能(或稱系統(tǒng)的用途)的一種描述[3],是角色和系統(tǒng)在一次交互過程中執(zhí)行的相關(guān)事務(wù)的序列。用例圖是由用例、角色以及它們之間的關(guān)系構(gòu)成的,用來描述一個(gè)軟件系統(tǒng)中人和功能之間,即角色和用例之間的關(guān)系的一種圖形化的表達(dá),可以準(zhǔn)確描述角色和用例之間的關(guān)系。通過對(duì)考勤管理與預(yù)警系統(tǒng)的需求分析,可以識(shí)別系統(tǒng)的角色,確定用例,建立系統(tǒng)用例圖,如圖1所示。endprint
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)架構(gòu)
根據(jù)軟件設(shè)計(jì)“高內(nèi)聚,低耦合”的思想,同時(shí)為克服兩層結(jié)構(gòu)中將界面部分代碼、業(yè)務(wù)邏輯代碼和數(shù)據(jù)庫(kù)操作代碼混合在一起,導(dǎo)致軟件后期修改、維護(hù)和升級(jí)困難[4],應(yīng)用軟件開發(fā)通用的做法是將應(yīng)用程序的實(shí)現(xiàn)分布在從底向高的三個(gè)層:數(shù)據(jù)訪問層(DAL層)、業(yè)務(wù)邏輯層(BLL層)和表示層[5,6],如圖2所示。
圖2 三層架構(gòu)原理圖
本系統(tǒng)遵循三層架構(gòu),數(shù)據(jù)訪問層直接訪問數(shù)據(jù)庫(kù),實(shí)現(xiàn)基本記錄操作;業(yè)務(wù)邏輯層調(diào)用相關(guān)的數(shù)據(jù)訪問類,實(shí)現(xiàn)用戶所需功能;表示層部署控件后,調(diào)用業(yè)務(wù)邏輯層的類,實(shí)現(xiàn)具體功能。將應(yīng)用程序的功能分層后,對(duì)于固定的DBMS,數(shù)據(jù)訪問層基本可以不變,一旦用戶的需求改變,只對(duì)業(yè)務(wù)邏輯層、表示層改動(dòng)即可。這種做法使程序的可復(fù)用性、可修改性都得到了很好的改善,大大提高了軟件工程的效率。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)需求分析結(jié)果的基礎(chǔ)上,充分考慮數(shù)據(jù)結(jié)構(gòu)的合理性、完整性及安全性,采用軟件工程的先進(jìn)思想和方法,便于程序設(shè)計(jì)及系統(tǒng)的維護(hù)與升級(jí)[7]。根據(jù)這些原則,采用關(guān)系型數(shù)據(jù)庫(kù)SQL Server 2008設(shè)計(jì)了考勤管理與預(yù)警系統(tǒng)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)由以下數(shù)據(jù)表構(gòu)成(只給出部分屬性):系統(tǒng)管理員表(管理員編號(hào),姓名…);院系表(院系編號(hào),名稱);班級(jí)表(班級(jí)編號(hào),名稱,院系編號(hào)…);教學(xué)年度學(xué)期表(學(xué)期編號(hào),學(xué)期名稱,開始時(shí)間,結(jié)束時(shí)間,持續(xù)周數(shù)…);課程信息表(課程編號(hào),課程名稱,學(xué)年編號(hào),院系編號(hào),學(xué)分…);班級(jí)課程表(班級(jí)編號(hào),課程編號(hào),上課周次,上課節(jié)次,教室編號(hào)…);教師課程表(教師編號(hào),課程編號(hào),上課周次,上課節(jié)次,教室編號(hào)…);教室表(教室編號(hào),教室名稱,教室類型…);學(xué)生表(學(xué)號(hào),姓名,班級(jí)編號(hào)…);任課教師表(教師編號(hào),姓名,院系編號(hào)…);輔導(dǎo)員表(輔導(dǎo)員編號(hào),姓名,院系編號(hào)…);教學(xué)秘書表(教學(xué)秘書編號(hào),姓名,院系編號(hào)…);考勤表(學(xué)號(hào),教師編號(hào),課程編號(hào),上課時(shí)間…);預(yù)警信息表(學(xué)號(hào),課程編號(hào),缺課次數(shù),學(xué)期編號(hào),是否預(yù)警…);預(yù)警條件表(編號(hào),設(shè)置者編號(hào),預(yù)警類型,預(yù)警條件…);
3 系統(tǒng)實(shí)現(xiàn)
3.1 開發(fā)環(huán)境
操作系統(tǒng):Windows XP Professional (sp3)。
開發(fā)平臺(tái):Microsoft Visual Studio 2010。
開發(fā)語(yǔ)言:Microsoft Visual C#.NET。
數(shù)據(jù)庫(kù)管理系統(tǒng):Microsoft SQL Server 2008。
3.2 系統(tǒng)架構(gòu)實(shí)現(xiàn)
考勤管理與預(yù)警系統(tǒng)采用三層架構(gòu)實(shí)現(xiàn),各項(xiàng)目的依賴關(guān)系如圖3所示。BLL是業(yè)務(wù)邏輯層;DALFactory是數(shù)據(jù)訪問層的抽象工廠;DBHelper是數(shù)據(jù)訪問基礎(chǔ)類;IDAL是數(shù)據(jù)訪問層的接口定義;Web是表示層,是系統(tǒng)的UI部分,負(fù)責(zé)使用者與整個(gè)系統(tǒng)的交互;Model是實(shí)體層;SQLServerDAL是數(shù)據(jù)訪問層,操作SQL Server數(shù)據(jù)庫(kù);WebConfig系統(tǒng)配置層。系統(tǒng)各項(xiàng)目的創(chuàng)建次序依次是:Model,DBHelper,IDAL,WebConfig,SQLServerDAL,DALFactory,BLL,Web。
圖3 系統(tǒng)架構(gòu)分層交互圖
Model是數(shù)據(jù)庫(kù)表、視圖等的邏輯映射,在系統(tǒng)中起數(shù)據(jù)傳輸?shù)淖饔谩?shí)體層中包含系統(tǒng)的實(shí)體類,實(shí)體類是用于對(duì)必須存儲(chǔ)的信息和相關(guān)行為建模的類。實(shí)體對(duì)象(實(shí)體類的實(shí)例)用于保存和更新一些現(xiàn)象的有關(guān)信息。實(shí)體類通常都是永久性的,它們所具有的屬性和關(guān)系是長(zhǎng)期需要的,有時(shí)甚至在系統(tǒng)的整個(gè)生存期都需要。
DBHelper項(xiàng)目包含操作各種數(shù)據(jù)庫(kù)的Helper類,不同數(shù)據(jù)庫(kù)的Helper類的方法基本相同,本系統(tǒng)采用的是SQLServer數(shù)據(jù)庫(kù),所以DBHelper項(xiàng)目只有一個(gè)SQLHelper類。SqlHelper類通過一組靜態(tài)方法封裝了數(shù)據(jù)訪問功能,這些方法調(diào)用起來非常方便。該類是抽象類不能被繼承或?qū)嵗?/p>
IDAL是數(shù)據(jù)訪問層的類要實(shí)現(xiàn)的一組接口。數(shù)據(jù)訪問層的類需要完成對(duì)數(shù)據(jù)庫(kù)的訪問,但是不同的數(shù)據(jù)庫(kù)需要使用不同的數(shù)據(jù)訪問對(duì)象,這樣對(duì)于業(yè)務(wù)邏輯層來說無法實(shí)現(xiàn)數(shù)據(jù)庫(kù)無關(guān)性,為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)無關(guān)性,可以將數(shù)據(jù)訪問層對(duì)象轉(zhuǎn)化為他所實(shí)現(xiàn)的接口類型,這樣就和具體的數(shù)據(jù)庫(kù)訪問對(duì)象無關(guān),也就是說數(shù)據(jù)訪問層對(duì)象實(shí)現(xiàn)IDAL接口,上層程序在使用時(shí)不直接使用數(shù)據(jù)訪問層對(duì)象,而是使用IDAL接口,從而使得整個(gè)數(shù)據(jù)訪問層有利于數(shù)據(jù)庫(kù)遷移。IDAL要達(dá)到的目的是:實(shí)現(xiàn)業(yè)務(wù)邏輯與數(shù)據(jù)庫(kù)訪問層的完全分離。
WebConfig項(xiàng)目只有一個(gè)類Config,這個(gè)類用來讀取表示層中Web.config配置文件中的配置信息,文件中的數(shù)據(jù)庫(kù)鏈接字符串,在SQLServerDAL項(xiàng)目中使用,程序集名稱,在DALFactory項(xiàng)目中使用。如果數(shù)據(jù)庫(kù)更換,只需更換數(shù)據(jù)庫(kù)鏈接字符串和程序集名稱即可。
SQLServerDAL項(xiàng)目中的類要實(shí)現(xiàn)IDAL項(xiàng)目中相對(duì)應(yīng)的接口,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的Select,Insert,Update和Delete操作。
DALFactory項(xiàng)目使用反射和抽象工廠來實(shí)例化數(shù)據(jù)訪問層的類對(duì)象。實(shí)現(xiàn)方法是:通過WebConfig項(xiàng)目的Config類讀取表示層中Web.config配置文件中程序集名稱信息,然后使用反射來實(shí)例化數(shù)據(jù)訪問層的類對(duì)象,根據(jù)程序集名稱和類名動(dòng)態(tài)實(shí)例化數(shù)據(jù)訪問層的類對(duì)象,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的無縫切換。
BLL業(yè)務(wù)邏輯層包含了整個(gè)系統(tǒng)的核心業(yè)務(wù),它處于數(shù)據(jù)訪問層與表示層之間,起到了數(shù)據(jù)交換中承上啟下的作用。在業(yè)務(wù)邏輯層中,不能直接訪問數(shù)據(jù)庫(kù),必須通過數(shù)據(jù)訪問層。對(duì)數(shù)據(jù)訪問業(yè)務(wù)的調(diào)用,是通過接口項(xiàng)目IDAL來完成,層與層之間的關(guān)系就是松散耦合的。endprint
Web表示層負(fù)責(zé)直接和用戶交互。一般就是指系統(tǒng)的界面,用于數(shù)據(jù)的錄入,顯示等功能。
3.3 系統(tǒng)主要功能實(shí)現(xiàn)
3.3.1 課程考勤
任課教師登錄考勤管理與預(yù)警系統(tǒng)后,系統(tǒng)根據(jù)教師的課表、周次、上課時(shí)間、上課教室自動(dòng)顯示上課的學(xué)生信息、課程信息、教師信息等。如圖4所示,任課教師通過此界面對(duì)學(xué)生進(jìn)行考勤記錄。
3.3.2 查看考勤信息
用戶登錄考勤管理與預(yù)警系統(tǒng)后可以查看考勤信息,學(xué)生可以查看本人的考勤信息,任課教師可以查看所授課程學(xué)生的考勤信息,輔導(dǎo)員可以查看所屬院系學(xué)生的考勤情況。圖5是任課教師查看考勤信息界面。
4 結(jié)論
在.NET平臺(tái)下,采用三層架構(gòu)設(shè)計(jì)了多角色考勤管理與預(yù)警系統(tǒng),實(shí)現(xiàn)了高??记诠芾淼囊?guī)范化、信息化、網(wǎng)絡(luò)化,為高校的考勤管理工作提供了一個(gè)方便快捷的平臺(tái),有效減輕了考勤工作對(duì)于教師、學(xué)生和教學(xué)管理人員的負(fù)擔(dān),減少了人為的干預(yù),提高了學(xué)生管理的效率,解決了高校規(guī)模壯大后,對(duì)學(xué)生考勤管理的難題,對(duì)于智慧校園的建設(shè)有著重要的現(xiàn)實(shí)意義。
【參考文獻(xiàn)】
[1]隗玲,王昌.高校課堂移動(dòng)考勤系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].學(xué)園,2014(32):8-9.
[2]張琪.基于角色的權(quán)限管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[3]邵博超,王文俊.基于UML的文化中心設(shè)施管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2015(1):39-43.
[4]陳翠紅,莊彥.基于B/S三層架構(gòu)的中職師資培訓(xùn)測(cè)評(píng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——以安徽省中職師資培訓(xùn)測(cè)評(píng)系統(tǒng)為例[J].長(zhǎng)沙大學(xué)學(xué)報(bào),2014,28(2):39-42.
[5]高揚(yáng).基于.NET平臺(tái)的三層架構(gòu)軟件框架的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(2):77-85.
[6]佟海亮,楊征,王鑫.基于三層架構(gòu)和SOA體系的農(nóng)業(yè)種植管理系統(tǒng)開發(fā)[J].南方農(nóng)業(yè),2015,9(3):163-166.
[7]Daniela Florescu, Alon Levy, Alberto Mendelzon.Database Techniques for the World Wide Web[J]. Sigmod record, 2005,32(3):59-74.endprint