张英亮 高善辉
【摘 要】传统的考勤方法通常是点名或者是纸质签到方式,已经无法满足当今教学管理信息化的需要。本研究运用UML进行系统分析,在.NET平台下,采用三层架构,以C#为开发语言,SQL Server 2008为数据库管理系统开发了多角色考勤管理与预警系统,实现了考勤管理的规范化、信息化、网络化。
【关键词】考勤管理;预警;多角色;三层架构
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
學生的考勤能够很好的反映学生的日常学习情况是掌握学生动态的最直观手段。高校课堂是大学生获取知识、培养能力、提高素质的主要场所[1]。在课堂教学中,学生的考勤检查是一项很重要的内容,它能够实时的检查每一位学生的到课情况和听课情况。传统的学生出勤检查往往是教师拿着一张纸质名单逐一点名,或让学生上交课堂作业以便课后查询出勤情况。这些方法往往造成统计结果不及时,数据容易遗漏,对学生进行教育难及时到位,甚至容易出现无法处分学生的现象(学生从未得到批评教育,也未受到警告、严重警告、记过等处分,却面临要留校察看的局面),班主任、辅导员、教师、学生无法及时了解考勤状况,监控失效。
针对以上问题,开发多角色考勤管理与预警系统,任课教师可以在课堂上直接登录系统进行学生考勤检查并记录考勤信息。可以根据实际情况设置课程的缺勤预警条件,当某个学生的缺勤达到预警条件的时候,系统将自动列出该学生的缺勤信息,使教师能够及时、直观地看到,对此类学生进行帮扶。此外,在课余,任课教师、班主任、辅导员及学校各级领导也可以登陆该系统查询学生的出勤情况。
1 系统需求
1.1 系统需求
高校考勤管理与预警系统主要包含学生信息管理、教师信息管理、管理人员信息管理、课程信息管理、预警信息管理等,是一项复杂而又操作频繁的工作。用户是系统的最终使用者,在设计系统之前,笔者与系统用户(学生,教师,管理人员)进行了深入交流,经过多次系统需求调研与分析总结了以下功能需求:
1)学生可以查看本人的出勤信息,这些信息包含出勤情况、上课时间、课程名称、任课教师等。
2)任课教师上课时,系统能根据教师课表的安排,自动列出课程信息、学生信息、上课时间等信息,并能对学生进行考勤记录。任课教师能对自己所教授课程设置预警条件后,系统能自动列出达到预警条件的学生信息,可以查看所授课程的学生出勤信息。
3)教学秘书管理所属院系学生信息、任课教师信息、班级课程信息、任课教师课程信息、辅导员信息。
4)辅导员可以查看所属院系学生的出勤信息,可以设置所属院系的单一课程和全部课程的预警条件,如:设置单一课程预警条件为4次,全部课程的预警条件为10次,系统将会自动列出单一课程缺勤次数达到4次和全部课程缺勤次数达到10次的学生信息。
5)系统管理员拥有系统的最高权限,负责管理系统运行所必需的数据,基本功能需求:管理教学秘书信息;管理上课教室的信息;设置学期的开始时间、结束时间、持续周数;设置教师检查考勤的有效时间段,如:如果设置有效时间为10分钟,则考勤有效时间为课程开始10分钟之内;设置数据可用性,如:设置2012-2013年第一学期、2012-2013年第二学期的数据可用,表示这两个学期的数据可用,其他学期的数据不可用。
1.2 系统角色
角色是与系统、子系统或类交互的外部人员、进程或事物,是拥有某些权限的一类用户,代表完成某些功能的资格或权利[2]。通过分析系统需求,可以识别出5个角色:学生、任课老师、教学秘书、辅导员、系统管理员。
1.3 系统用例图
用例是指对系统提供的功能(或称系统的用途)的一种描述[3],是角色和系统在一次交互过程中执行的相关事务的序列。用例图是由用例、角色以及它们之间的关系构成的,用来描述一个软件系统中人和功能之间,即角色和用例之间的关系的一种图形化的表达,可以准确描述角色和用例之间的关系。通过对考勤管理与预警系统的需求分析,可以识别系统的角色,确定用例,建立系统用例图,如图1所示。endprint
2 系统设计
2.1 系统架构
根据软件设计“高内聚,低耦合”的思想,同时为克服两层结构中将界面部分代码、业务逻辑代码和数据库操作代码混合在一起,导致软件后期修改、维护和升级困难[4],应用软件开发通用的做法是将应用程序的实现分布在从底向高的三个层:数据访问层(DAL层)、业务逻辑层(BLL层)和表示层[5,6],如图2所示。
图2 三层架构原理图
本系统遵循三层架构,数据访问层直接访问数据库,实现基本记录操作;业务逻辑层调用相关的数据访问类,实现用户所需功能;表示层部署控件后,调用业务逻辑层的类,实现具体功能。将应用程序的功能分层后,对于固定的DBMS,数据访问层基本可以不变,一旦用户的需求改變,只对业务逻辑层、表示层改动即可。这种做法使程序的可复用性、可修改性都得到了很好的改善,大大提高了软件工程的效率。
2.2 数据库设计
数据库设计在系统需求分析结果的基础上,充分考虑数据结构的合理性、完整性及安全性,采用软件工程的先进思想和方法,便于程序设计及系统的维护与升级[7]。根据这些原则,采用关系型数据库SQL Server 2008设计了考勤管理与预警系统数据库的逻辑结构由以下数据表构成(只给出部分属性):系统管理员表(管理员编号,姓名…);院系表(院系编号,名称);班级表(班级编号,名称,院系编号…);教学年度学期表(学期编号,学期名称,开始时间,结束时间,持续周数…);课程信息表(课程编号,课程名称,学年编号,院系编号,学分…);班级课程表(班级编号,课程编号,上课周次,上课节次,教室编号…);教师课程表(教师编号,课程编号,上课周次,上课节次,教室编号…);教室表(教室编号,教室名称,教室类型…);学生表(学号,姓名,班级编号…);任课教师表(教师编号,姓名,院系编号…);辅导员表(辅导员编号,姓名,院系编号…);教学秘书表(教学秘书编号,姓名,院系编号…);考勤表(学号,教师编号,课程编号,上课时间…);预警信息表(学号,课程编号,缺课次数,学期编号,是否预警…);预警条件表(编号,设置者编号,预警类型,预警条件…);
3 系统实现
3.1 开发环境
操作系统:Windows XP Professional (sp3)。
开发平台:Microsoft Visual Studio 2010。
开发语言:Microsoft Visual C#.NET。
数据库管理系统:Microsoft SQL Server 2008。
3.2 系统架构实现
考勤管理与预警系统采用三层架构实现,各项目的依赖关系如图3所示。BLL是业务逻辑层;DALFactory是数据访问层的抽象工厂;DBHelper是数据访问基础类;IDAL是数据访问层的接口定义;Web是表示层,是系统的UI部分,负责使用者与整个系统的交互;Model是实体层;SQLServerDAL是数据访问层,操作SQL Server数据库;WebConfig系统配置层。系统各项目的创建次序依次是:Model,DBHelper,IDAL,WebConfig,SQLServerDAL,DALFactory,BLL,Web。
图3 系统架构分层交互图
Model是数据库表、视图等的逻辑映射,在系统中起数据传输的作用。实体层中包含系统的实体类,实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。
DBHelper项目包含操作各种数据库的Helper类,不同数据库的Helper类的方法基本相同,本系统采用的是SQLServer数据库,所以DBHelper项目只有一个SQLHelper类。SqlHelper类通过一组静态方法封装了数据访问功能,这些方法调用起来非常方便。该类是抽象类不能被继承或实例化。
IDAL是数据访问层的类要实现的一组接口。数据访问层的类需要完成对数据库的访问,但是不同的数据库需要使用不同的数据访问对象,这样对于业务逻辑层来说无法实现数据库无关性,为了实现数据库无关性,可以将数据访问层对象转化为他所实现的接口类型,这样就和具体的数据库访问对象无关,也就是说数据访问层对象实现IDAL接口,上层程序在使用时不直接使用数据访问层对象,而是使用IDAL接口,从而使得整个数据访问层有利于数据库迁移。IDAL要达到的目的是:实现业务逻辑与数据库访问层的完全分离。
WebConfig项目只有一个类Config,这个类用来读取表示层中Web.config配置文件中的配置信息,文件中的数据库链接字符串,在SQLServerDAL项目中使用,程序集名称,在DALFactory项目中使用。如果数据库更换,只需更换数据库链接字符串和程序集名称即可。
SQLServerDAL项目中的类要实现IDAL项目中相对应的接口,实现对数据库的Select,Insert,Update和Delete操作。
DALFactory项目使用反射和抽象工厂来实例化数据访问层的类对象。实现方法是:通过WebConfig项目的Config类读取表示层中Web.config配置文件中程序集名称信息,然后使用反射来实例化数据访问层的类对象,根据程序集名称和类名动态实例化数据访问层的类对象,实现数据库的无缝切换。
BLL业务逻辑层包含了整个系统的核心业务,它处于数据访问层与表示层之间,起到了数据交换中承上启下的作用。在业务逻辑层中,不能直接访问数据库,必须通过数据访问层。对数据访问业务的调用,是通过接口项目IDAL来完成,层与层之间的关系就是松散耦合的。endprint
Web表示层负责直接和用户交互。一般就是指系统的界面,用于数据的录入,显示等功能。
3.3 系统主要功能实现
3.3.1 课程考勤
任课教师登录考勤管理与预警系统后,系统根据教师的课表、周次、上课时间、上课教室自动显示上课的学生信息、课程信息、教师信息等。如图4所示,任课教师通过此界面对学生进行考勤记录。
3.3.2 查看考勤信息
用户登录考勤管理与预警系统后可以查看考勤信息,学生可以查看本人的考勤信息,任课教师可以查看所授课程学生的考勤信息,辅导员可以查看所属院系学生的考勤情况。图5是任课教师查看考勤信息界面。
4 結论
在.NET平台下,采用三层架构设计了多角色考勤管理与预警系统,实现了高校考勤管理的规范化、信息化、网络化,为高校的考勤管理工作提供了一个方便快捷的平台,有效减轻了考勤工作对于教师、学生和教学管理人员的负担,减少了人为的干预,提高了学生管理的效率,解决了高校规模壮大后,对学生考勤管理的难题,对于智慧校园的建设有着重要的现实意义。
【参考文献】
[1]隗玲,王昌.高校课堂移动考勤系统的设计与应用[J].学园,2014(32):8-9.
[2]张琪.基于角色的权限管理系统的设计与实现[D].成都:电子科技大学,2013.
[3]邵博超,王文俊.基于UML的文化中心设施管理系统的设计与实现[J].信息技术,2015(1):39-43.
[4]陈翠红,庄彦.基于B/S三层架构的中职师资培训测评系统的设计与实现——以安徽省中职师资培训测评系统为例[J].长沙大学学报,2014,28(2):39-42.
[5]高扬.基于.NET平台的三层架构软件框架的设计与实现[J].计算机技术与发展,2011,21(2):77-85.
[6]佟海亮,杨征,王鑫.基于三层架构和SOA体系的农业种植管理系统开发[J].南方农业,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