1 绪论
本章节首先论述了课题的研究背景和意义,然后简略介绍了国外和国内教学质量评价的现状以及发展,最后提出当前教师教学质量评价与反馈系统存在的问题以及本系统对这些问题的解决方案。
1.1 课题的背景和意义
高等学校是培养社会主义现代化建设专门人才的主阵地,教学质量是高等学校人才培养和生存发展的根本保证,提高教学质量是高等教育教学工作的核心问题。随着高等教育由精英教育向大众教育的转变以及全球的教育经费投入的相对紧张,人们越来越关心教育质量和投资效益,因此,注重教学质量管理是大学现代化的必然趋势。建立良好的教学质量保障体系是世界一流大学的重要标志,而实行客观的教学评价则是完善质量管理体系的基本前提。科学规范、行之有效的教学质量评价模式及体系健全、富于创新的评价标准,是加强教师师德教风建设、正确发挥质量评价的导向作用、稳步提高教学质量的重要保障。
传统的以手工和纸张对高校教师教学质量的评价模式己经远远不能适应新的发展需要。特别是随着计算机网络和Internet的普及,运用先进的管理信息系统,对信息进行科学化和网络化管理,建立一套全方位,多层次,信息网络化的教学质量评价系统直接关系到高校对于教师教学效果的监督、管理以及今后整体教学工作的规划与实施。
1.2 教学质量评价信息系统的发展
我国高校早期进行教学评价工作时主要是通过纸质的调查问卷完成的,这种方法评价耗时长,评价过程繁琐,数据统计分析麻烦,人为因素干扰比较大,教师的隐私也难以得到保证。从1995年开始逐渐出现了网络化的教学评价信息系统,用户可以通过登录网上教学评价系统完成教学评价,但是从实践过程中系统还是暴露出以下几个问题。
(1) 教学评价体系尚未系统化,对教学质量评价没有引起足够的重视。调查发现很多高校对教学质量的评价工作只是作为教学管理的一个子功能,学期结束只有学生对教师进行简单的评分操作,评价结束后拥有重要价值的评价数据也没有进行充分有效地分析利用。
(2) 教学评价表过分注重所有教师教学行为的共性特征,而教师教学的差异性特征往往在评价中被忽视。教师只能看到自己的评价信息无法了解自身教学活动的优势和劣势在哪里,无法真正发挥教师教学评价在高校教学质量保障体系中的作用。
(3) 教学质量评价指标不够科学。目前我国高校教学质量评价指标大部分只是局限于学生对教师课程的评价指标,并没有提供学生对学院开设的课程、教师与教师之间的评价。学生对学院开设课程的评价是很重要的,通过对这一部分的数据分析,学院可以灵活设置以后的课程安排,不断缩社会专业知识的需求同学院设置的课程知识的差距。
针对以上问题,系统加强了对评价数据的分析处理过程,通过多维度、多条件的数据分析图,教师和督导员可以更加清楚的知道教学活动的优势和劣势。系统增加了学生对学期课程、同科室教师之间的评价指标体系。通过这些数据的分析反馈,学院领导或教师可以从更多的方面了解学院课程设置情况和教师之间的教学差异情况,有利于教师提高自身的教学素质。
2 开发技术简介
本章节主要介绍系统所用到的开发技术,首先简单介绍了.NET框架,然后重点着重介绍了ASP.NET开发技术和SQL Server 2008数据库。
2.1 .NET技术简介
.NET Framework又称 .Net框架,是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。.NET框架是微软公司继Windows DNA之后的新开发平台, 它是一种采用系统虚拟机运行的编程平台,以通用语言运行库为基础,支持多种语言的开发。.NET也为应用程序接口提供了新功能和开发工具。.NET框架创造了一个完全可操控的、安全的和特性丰富的应用执行环紧。这不但使得应用程序的开发和发布更加简单,而且成就了众多种类语言的无缝集成。
建立在操作系统最上层的服务,是管理运行时代码需求的通用语言运行库,这些代码可以用任何现有编程语言编写。它提供了许多服务,这些服务有助于简化代码开发和应用程序的开发,同时也将提高应用程序的可靠性。.NET Framework包括一套可被开发者用于任何编程语言的类库。在此之上是许多应用程序模板,这些模板专门为开发网络站点和网络服务提供高级组件和服务。
2.2 ASP.NET简介
ASP.NET 是 Microsoft .NET Framework 的一部分,是一种可以在高度分布的 Internet 环境中简化应用程序开发的集成环境。.ASP.NET 是下一代的 ASP,但是不能把 ASP.NET 称为 ASP 的升级版本。ASP.NET 是全新的服务器端 ASP 脚本。更为重要的是,ASP.NET吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
下面着重介绍一下ASP.NET应用程序的运行原理。一个ASP.NET的应用程序是开始于IIS的,当请求一个包含ASP.NET应用的网址时,IIS收到请求后,会根据请求者请求的主机头或者IP或者端口号来找到对应的站点。当找到站点后,如果你请求的资源是以ASPX为结尾的WEBFORM,时,IIS会将控制权交给一个ISAPI扩展,名叫AspNet_ISAIP.DLL。这时,控制权由IIS交到ASPNET的ISAPI扩展上。ISAPI收到处理请求后,会启动一个ASP.NET工作进程。然后将请求者的请求信息转交给ASP.NET工作进程。接下来,控制权由ASPNET_WP掌握。ASPNET_WP首先解出请求者的信息,如果请求者请求的ASP.NET应用程序尚未拥有APPDOMAIN,ASPNET_WP就会建立一个APPDOMAIN,并且将被请求的ASP.NET应用所需Assembly载入到APPDOMAIN中。
当APPDOMAIN初始化完成后,接下来就需要建立会话。因此,请求由HttpRuntime来接受,HttpRunTime主要的工作便是为每一个提出请求的客户建立一个HttpContext对象。它管理着HttpSession对象,每一个访问者有各自的HttpContext对象和HttpSession对象。
接下来,HttpApplication调用ProcessRequest方法来处理用户请求,此方法会调用对应的HttpHandler来处理用户请求,HttpHandler根据用户请求的文件的扩展名处理请求,并把请求的结果,也就是HTML发送到客户浏览器。
ASP.NET应用程序运行原理如图2-1所示:
图2-1 ASP.NET应用程序运行原理图
2.3 SQL Server 2008数据库
SQL Server 2008是微软公司推出的大型数据库管理系统,建立在成熟而强大的关系模型基础之上,可以很好地支持B/S网络模式。SQL Server 2008是一个杰出的数据库平台,能够满足各种类型的企事业单位对构建网络数据库的需求,同时还具有数据性能分析,数据和备份压缩,资源监控,自自动管理等新功能。它与Windows操作系统紧密集成,具有方便易用的图形界面,并提供了一套完整的管理工具和实用程序,大大减轻了管理员的工作量,使用户对数据库的操作变得非常简单,使许多以前需要手工进行处理的复杂任务,现在可以通过图形化界面和向导工具来轻松完成。
3 系统分析
本章节主要从经济、技术、操作方面对该系统的可行性进行了详细的分析。
3.1 可行性分析
一般说来,对一个课题应从技术可行性、经济可行性和操作可行性三个方面研究它的可行性。根据课题的来源,通过初步的调查,与指导教师的交流,收集数据资料,研究分析得出结论:此项目从技术上,经济上和操作上均具有可行性。
3.1.1 经济可行性
经济可行性分析我们主要是对项目的经济效益进行评价。以手工和纸张对教学质量评价的传统模式对纸张和评价设备的依赖性很大,需要很多人力和物力支持。当前Web方式下教学质量评价信息系统虽然经济耗费较以前有很大的减少,但是它依旧无法完成有效地教学质量评价分析。本系统的实施可以方便的实现对教师教学质量的评价和加强了信息反馈,减少了人力、物力,提高了工作效率,避免了工作上人为的失误,简化了工作流程。因此,本系统在经济上是可行的。
3.1.2 技术可行性
C/S和B/S模式是现在比较流行的两种数据库应用模式。C/S模式主要是在以局域网为基础的环境下进行运用,受到地域的限制,而且安装、配置繁琐,如果将其运用到互联网中客户端的安装维护将是一大问题。而B/S模式通过互联网客户端只需要一个浏览器既可以实现。
微软推出的.NET战略正是迎合了B/S模式下的网络信息传递,其中的ASP.NET是在原有的ASP基础上发展而来,ASP.NET几乎全是基于组件和模块化,每一个页、对象和HTML元素都是一个运行的组件对象。在开发语言上,ASP.NET使用.NET Framework所支持的VB.NET、C#.NET等语言作为其开发语言,这些语言生成的网页都继承了页面类,并编译成了一个DLL。由于ASP.NET是编译执行的,所以它比ASP拥有了更高的效率。
SQL Server 2008是微软公司推出的大型数据库管理系统,建立在成熟而强大的关系模型基础之上,可以很好地支持B/S网络模式。SQL Server 2008是一个杰出的数据库平台,能够满足各种类型的企事业单位对构建网络数据库的需求,同时还具有功能强大,安全可靠等特点,可用于大型联机事务处理、数据仓库及电子商务等。
由于本系统基于ASP.NET的开发框架、SQL Server的数据库平台以及易于实施的B/S开发模式,从软件技术上分析完全可行。
硬件方面,在科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足系统的需要。
综上所述,本系统在软件和硬件方面都成熟可行。
3.1.3 操作可行性
传统的评价模式需要用户通过纸和笔进行评价操作,操作很繁琐,评价数据的统计分析也很麻烦。本系统只需要一个普通的客户端浏览器即可浏览ASP.NET所设计的页面内容,ASP.NET技术开发的系统可以生成美观、友好且交互性很强的界面。这样,用户就可以方便地控制和管理数据,进行数据库的查询、添加、删除等各种操作。整个系统的管理与维护易于实现,所以系统在操作上是可行的。
3.2 系统需求分析
需求分析是介于系统分析和软件设计阶段之间的重要桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对他们进行检查和调整。另一方面,需求规格说明又是软件设计、实现、测试,直至维护的主要基础。
需求分析是在可行性研究的基础上进行的。需求分析的结果是软件开发的基础,必须仔细验证它的正确性,开发人员必须和用户取得完全一致的意见,需求分析的文档应该被用户所确认。为了更准确、更具体地确定用户的需求,往往需要构造出目标系统的原型,供用户试用以取得实践。
良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
3.2.1 系统概述
系统主要功能是设计一个基于网络的数据库管理系统,能够实现有效的教师教学质量的评价与反馈。
3.2.2 系统具体功能需求
(1) 学生用户:登录、退出系统,评价本学期任课教师,评价本学期课程,浏览本学院的教师信息,查看系统信息,修改个人信息。
(2) 教师用户:登录、退出系统,查看历学期个人的教学评价信息,查看评价数据统计分析图,评价同科室的教师,查看系统信息,修改个人信息。
(3) 督导员用户:登录、退出系统,查看历学期本学院教师和课程评价信息,查看班级评价信息,评价本学院教师,查看、发布系统信息,修改个人信息。
(4) 系统管理员用户:登录、退出系统,开启或关闭系统,管理教学评价指标,管理系统信息,管理、统计评价信息数据,备份、还原系统数据库,修改个人信息。
3.2.3系统流程图
当系统用户完成教学评价任务后,由系统管理员完成评价信息数据的汇总分析,然后教师和督导员可以登录系统查看评价分析结果。系统流程图如图3-1:
图3-1 系统流程图
4 系统总体设计
本章节首先介绍了系统架构设计,然后简略说明了系统各个模块的功能,最后给出了系统E-R图和系统数据字典。
4.1 系统构架
系统功能结构图如下图所示,系统采用ADO.NET技术实现对数据库的访问操作。系统的最底层是数据库,使用SQL Server 2008数据库,由于系统许多模块需要处理大量的数据,所以比较复杂的计算操作都通过数据库存储过程来实现。系统功能结构图如图4-1所示:
图4-1 系统功能结构图
4.2 系统模块设计
把系统划分为一个一个的模块既有利于系统程序编码的实现,也有利于保持系统功能结构的低耦合性。通过系统分析,系统各个模块的简介如下:
用户身份验证模块:用户身份验证模块实现对用户合法性检查,读取相应的用户权限,同时把用户的基本信息保存到Session中。Session中保存的是用户唯一标识ID。用户登录成功之后,根据用户权限,在顶部导航栏里显示其可执行的操作。
(1) 系统信息管理模块:系统信息管理模块实现对系统信息的查看、添加、删除、修改操作。学生,教师角色只可以查看系统信息和下载附件,督导员角色可以查看、添加系统信息,系统管理员可以管理所有的系统信息。
(2) 评价信息模块:评价信息模块主要实现用户对教学信息的评价功能,主要分为学生对教师课程的评分和留言,学生对课程的评分,教师对教师的评分和督导员对教师的评分和留言。
(3) 查看评价信息结果模块:查看评价信息结果模块主要实现教师和督导员角色根据不同的查询条件来多维度的查看教学评价结果,教师可以查看个人的评价数据分析图表,督导员可以查看学院所有教师评价结果和学生对课程的评价数据分析图表。
(4) 系统管理模块:此模块主要实现系统数据的备份还原工作。系统数据备份还原功能提供必要的数据保护手段,对数据进行备份,在数据丢失或系统遭到破坏的情况下对数据进行还原操作。系统管理员还可以开启、关闭评价系统,统计分析教学评价信息。
(5) 指标库管理模块:通过该模块系统管理员可以查看、添加、删除、修改系统评价指标,动态的调整系统评价指标。
(6) 个人信息管理模块:个人信息管理模块提供给用户修改个人信息功能,包括密码、电子邮件、联系方式、头像的更改等操作。
(7) 留言信息管理模块:系统管理员可以通过留言信息管理模块查看所有的评价留言信息,也可以查找、删除过激的留言信息。
4.3 系统E-R图
系统E-R图主要描述了系统实体之间的关系,通过系统需求分析确定了系统中存在教职工、学生、系统信息、课程信息、评价指标、教师绩效成绩、评价、留言实体关系。系统E-R图如下所示:
图4-2 系统E-R图
4.4 系统数据字典
根据需求分析,系统建立tb_stu、tb_worker、tb_norm、tb_news、tb_course、tb_eval、tb_message、tb_teacherScore,共八张数据库表。系统数据字典如下表所示:
tb_stu数据库表存储了学生角色的个人信息,表结构如表4-1所示:
表 4-1 学生信息表(tb_stu)
属性 | 数据类型 | 约束 | 备注 |
ID | nvarchar(15) | 主键 | 登录名 |
Pas | nvarchar(15) | 不为空 | 密码 |
Name | nvarchar(8) | 不为空 | 姓名 |
Lock | bit | 不为空 | 系统是否开放 |
ClassName | nvarchar(20) | 不为空 | 班级名称 |
DeptName | nvarchar(50) | 不为空 | 专业名称 |
CollegeName | nvarchar(50) | 不为空 | 学院名称 |
Sex | nvarchar(2) | 男 女 | 性别 |
PhoneNum | nvarchar(11) | 手机号码 | |
| nvarchar(30) | |
tb_worker数据库表存储了教职工角色的个人信息,表结构如表4-2所示:
表4-2 教职工信息表(tb_worker)
属性 | 数据类型 | 约束 | 备注 |
ID | nvarchar(15) | 主键 | 教职工登录名 |
Pas | nvarchar(15) | 不为空 | 密码 |
Name | nvarchar(8) | 不为空 | 姓名 |
Type | nvarchar(10) | 教师 督导员 系统管理员 不为空 | 类型 |
Lock | bit | 不为空 | 系统是否开放 |
DeptName | nvarchar(50) | 专业名称 | |
CollegeName | nvarchar(50) | 学院名称 | |
Sex | nvarchar(2) | 男 女 | 性别 |
PhoneNum | nvarchar(11) | 不为空 | 手机号码 |
| nvarchar(30) | | |
Photo | nvarchar(50) | 教师照片路径 | |
ZhiCheng | nvarchar(10) | 职称 | |
XueLi | nvarchar(10) | 学历 | |
EmployDate | date | 聘用日期 | |
Introduce | text | 个人简介 |
tb_norm数据库表存储了所有评价指标的信息,表结构如表4-3所示:
表4-3 评价指标表(tb_norm)
属性 | 数据类型 | 约束 | 备注 |
ID | int | 主键 自增 | 指标ID |
Text | nchar(50) | 不为空 | 指标名称 |
Type | int | 不为空 |
tb_news数据库表存储了系统新闻信息,表结构如表4-4所示:
表4-4 系统信息表(tb_news)
属性 | 数据类型 | 约束 | 备注 |
ID | int | 主键 自增 | 信息ID |
Title | nvarchar(50) | 不为空 | 信息标题 |
Text | text | 不为空 | 信息内容 |
PublishTime | datetime | 不为空 | 更新时间 |
PublishName | nvarchar(15) | 不为空 | 发布人姓名 |
AppFile | nvarchar(50) | 附件路径 | |
ClickVolume | int | 不为空 默认0 | 点击量 |
tb_course数据库表存储了学生用户选课信息,表结构如表4-5所示:
表4-5 课程信息表(tb_course)
属性 | 数据类型 | 约束 | 备注 |
CourseID | int | 主键 | 课程ID |
StuId | nvarchar(15) | 不为空 | 学生ID |
CourseName | nvarchar(50) | 不为空 | 课程名称 |
TeacherId | nvarchar(15) | 不为空 | 教师ID |
Semester | nvarchar(10) | 不为空 | 学年学期 |
BeginEndWeek | nvarchar(10) | 不为空 | 起始周 |
CourseHour | int | 不为空 | 教学课时 |
TestType | nvarchar(4) | 不为空 考试 考查 | 考核方式 |
CourseType | nvarchar(4) | 不为空 必修课 选修课 | 课程类型 |
Credit | int | 不为空 | 学分 |
CollegeName | nvarchar(50) | 不为空 | 开课学院 |
tb_eval数据库表存储了教学评价数据,表结构如表4-6所示:
表4-6 教学评分表(tb_eval)
属性 | 数据类型 | 约束 | 备注 |
ID | int | 主键 自增 | 评分ID |
RaterId | nvarchar(15) | 不为空 | 评价人ID |
ShouPingId | nvarchar(15) | 不为空 | 受评人ID |
NormId | int | 不为空 | 指标ID |
Score | int | 不为空 | 得分 |
Type | int | 不为空 | 评价类型 |
AttachId | int | 课程ID | |
Semester | nvarchar(10) | 不为空 | 评分学期 |
tb_message数据库表存储了用户留言信息,表结构如表4-7所示:
表4-7 留言表(tb_message)
属性 | 数据类型 | 约束 | 备注 |
ID | int | 主键 自增 | 留言编号 |
RaterId | nvarchar(15) | 不为空 | 留言人ID |
ShouPingId | nvarchar(15) | 不为空 教师ID | 收信人ID |
Type | int | 不为空 | 留言类型 |
Message | nvarchar(MAX) | 不为空 | 留言内容 |
tb_teacherScore数据库表存储了教师绩效考核数据,表结构如表4-8所示:
表4-8 教师绩效成绩表(tb_teacherScore)
属性 | 数据类型 | 约束 | 备注 |
ID | int | 主键 自增 | 编号 |
TeacherID | nvarchar(15) | 不为空 | 教师ID |
Semester | nvarchar(10) | 不为空 | 评分学期 |
Total | float | 不为空 默认0 | 总分 |
StuScore | float | 不为空 默认0 | 学生评价得分 |
TeacherScore | float | 不为空 默认0 | 教师评价得分 |
LeaderScore | float | 不为空 默认0 | 督导员评价得分 |
5 系统详细设计与实现
系统采用MVC三层架构设计,使用三层设计,可以实现高内聚,低耦合的设计标准。层与层之间只提供几个接口,具体的细节由各层内部各模块完成。这样方便系统扩展与维护。
表示层UI:主要使用ASP.NET和模板页技术,完成与用于的直接交互,用户所有的请求直接提交到业务逻辑层。
数据访问层DAL:负责与数据库的直接交互,接受由业务逻辑层的请求,完成对数据的各种操作,并返回数据。
业务实体层MODEL:实现连接表示层和数据访问层DAL的作用,它处理用户通过页面提交的数据,对数据进行处理,并提交给数据访问层。同时它也接受由数据访问层返回的数据,对这些数据进行加工,并提交给表示层显示。
5.1 数据访问层
SqlHelper程序实现对数据访问的统一方法,包括执行无返回值的SQL语句、执行数据查询、一些控件的数据绑定及对一些控件通用的简单操作。需要调用时,通过传递参数,选择不同的方法以进行不同的操作。
5.2 业务实体层
在操作过程中常常需要用户信息,这些信息往往是用户登录成功之后用Session或Application存放的,而使用过多的Session或Application会占用大量的服务器系统资源,因此需要尽量减少使用Session。在系统中,把用户信息封装到一个类中,用户登录成功后提取用户登录名存放在Session中,在使用的时候从Session中读取出来。
5.3 功能模块的详细设计
5.3.1 用户身份验证模块
用户登录界面需要用户输入用户名、密码、验证码,然后选择角色进行登录操作,用户名、密码、验证码是不可以为空的。当验证通过时会转向到各个角色的主页面,否则提示用户登录失败,重新指向登录界面。系统登录界面如图5-1所示:
图5-1 系统登录界面
当点击“登录”时,触发登录按钮事件,首先验证验证码是否正确,然后生成登录实体类,根据用户名,密码,角色来访问数据库,假如数据库中有对应记录则将用户登录名存到Session["loginId"]中,返回true登录成功,否则返回false登录失败。
5.3.2 系统信息管理模块
系统信息管理模块包括管理系统信息,查看系统信息。只有系统管理员角色才可以管理系统信息,包括对系统信息的添加,删除,修改操作。系统信息管理界面如图5-2所示:
图5-2 系统信息管理界面
系统管理员可以在这个界面上查看到信息的编号、标题、点击量、更新时间、发布人信息,当点击列表的叉号时会提示用户是否要删除信息,点击确定时删除信息。系统信息的绑定代码简略如下:
/// <summary>
/// 初始化,加载全部系统信息
/// </summary>
private void init()
{
string sql = "select ID,Title,PublishTime,PublishName,ClickVolume from tb_news";
this.gv.DataSource = SqlHelper.getDataSet(sql);
this.gv.DataBind();
}
当点击详细链接时会跳转到信息编辑页面,如图5-3所示:
图5-3 系统信息编辑界面
系统管理员可以在这里修改信息的标题,内容等信息,当点击确定按钮时系统信息将更新。更新事件代码简略如下:
/// <summary>
/// 更新系统信息
/// </summary>
protected void btnSave_Click(object sender, ImageClickEventArgs e)
{
int id = Int32.Parse(Request["id"]);
News news = new News();
bool res=news.updateNews(id, this.txtTitle.Text, this.txtContent.Text, this.txtAuthor.Text);
if (res)
{
Response.Write("<script lanuage=javascript>alert('更新成功!');location='javascript:history.go(-1)'</script>");
}
else
{
Response.Write("<script lanuage=javascript>alert('服务器繁忙,请您稍后再试!');location='javascript:history.go(-1)'</script>");
}
}
查看系统信息页面是学生,教师,督导员共有的界面,用户可以在此页面查看最新的系统信息,也可以根据关键字搜索系统信息,系统信息列表界面如图5-4:
图5-4 系统信息列表界面
当点击搜索按钮时,后台获取搜索关键字,拼凑SQL查询语句进行数据查询操作,然后返回查询结果绑定GridView控件,搜索事件代码简略如下:
///根据条件搜索
protected void btnSearch_Click(object sender, ImageClickEventArgs e)
{
string sql = null;
sql = "select ID,Title,PublishTime,ClickVolume from tb_news where 1=1 ";
if (txtTitle.Text.Trim() != "")
{
sql += "and Title like '%" + txtTitle.Text + "%'";
}
if (txtCon.Text.Trim() != "")
{
sql += "and Text like '%" + txtCon.Text + "%'";
}
this.gv.DataSource = SqlHelper.getDataSet(sql);
this.gv.DataBind();
this.lblSum.Text = this.gv.Rows.Count.ToString();
this.lblPage.Text = this.gv.PageCount.ToString();
this.lblNow.Text = (this.gv.PageIndex + 1).ToString();
}
5.3.3 评价信息模块
评价信息模块包括学生对教师的评价、学生对课程的评价、教师对教师的评价、督导员对教师的评价,评价主要分为指标评分和留言,学生对课程的评价,教师对教师的评价是没有留言功能的。用户登录系统后会看到待评价的教师或课程列表,当用户点击“进入评价”链接时会跳转到评价界面,待评价列表界面如图5-5:
图5-5 待评价列表界面
进入评价页面后,用户勾选对应评价指标后的分数进行评分,在某些界面允许用户进行留言操作。评价界面如图5-6:
图5-6 评价界面
5.3.4 查看评价信息结果模块
查看评价信息结果模块主要包括教师查看评价信息结果和督导员查看学院评价信息结果模块,其中督导员还有权限查看学院教师学期绩效成绩考核列表和各个班级评分情况。评价信息结果界面如图5-7:
图5-7 评价结果界面
教师通过此界面图可以了解到自己和班级、学院的各个指标的评价平均分,通过三者之间的对比,可以清楚的知道哪些指标自己的得分比较低需要改进,哪些指标自己的得分比较高需要继续保持。系统充分有效地利用评价数据,教师更加直观的明确自己的优势和劣势,为下一步的教学工作提供有效地指导工作。
督导员除了可以查看学院课程评价情况、教师学期绩效成绩列表,还可以查看每个班级评分的统计分析图,如图5-8所示:
图5-8 班级评分分值统计图
通过班级评分分值统计,督导员可以了解到此班级各个指标的评分的分值百分比,从而更加清楚地明白教师的评价情况。
5.3.5 系统管理模块
系统管理主要包括开放或关闭评价系统、统计学期评价数据、备份还原系统数据库。系统管理界面如图5-9所示:
图5-9 系统管理界面
开启关闭评价系统是通过存储过程设置用户数据库表里面的Lock字段实现。当系统开启时Lock字段为false,系统关闭是Lock字段为true,用户将无法登录。
统计当前学期教学评价数据也是通过存储过程自动实现的,事件代码如下:
///统计学期教师教学绩效成绩
protected void btnCalculate_Click(object sender, EventArgs e)
{
Int res=SqlHelper.ExecuteNonQuery("sp_calculateTeacherScore");
Response.Write("<script lanuage=javascript>alert('恭喜您,已完成 本学期数据统计!');
location='javascript:history.go(-1)'</script>");
}
数据库管理功能可完成数据库的备份和还原操作,以防止系统数据库遭到破坏。
5.3.6 指标库管理模块
指标库是指学生对教师、学生对课程、教师对教师、督导员对教师的评价指标管理。系统管理员可以进行指标的增添,删除,修改,查询操作。评价指标管理界面如图5-10所示:
图5-10 评价指标管理界面
添加评价指标时首先在下拉列表中选择指标类型,然后输入指标名称点击确定即可添加指标。事件处理代码如下:
///添加指标
protected void btnSave_Click(object sender, ImageClickEventArgs e)
{
int type = 1;
switch (this.dopAddType.Text)
{
case "学生对课程评价指标":
type = 2; break;
case "教师对教师评价指标":
type = 3; break;
case "督导员对教师评价指标":
type = 4; break;
}
Norm norm = new Norm();
if (norm.addNorm(type, this.txtText.Text))
{
Response.Write("<script lanuage=javascript>alert('添加成功!');location='javascript:history.go(-1)'</script>");
}
else
{
Response.Write("<script lanuage=javascript>alert('添加失败!');location='javascript:history.go(-1)'</script>");
}
}
5.3.7 个人信息管理模块
个人信息管理主要指用户更新个人信息,包括头像,密码,Email等信息。个人信息管理界面如图5-11:
图5-11 个人信息管理界面
用户输入信息,点击“确定”按钮更新个人信息,更新个人信息事件代码如下:
protected void btnSave_Click(object sender, ImageClickEventArgs e)
{
worker worker = new Worker();
If(worker.updateWorker(txtId.Text,txtPas.Text,txtEmail.Text,
txtPhoneNum.Text,txtIntroduce.Text))
{
Response.Write("<script lanuage=javascript>alert('恭喜您,
保存成功!’);
location='javascript:history.go(-1)'</script>");
}
else
{
Response.Write("<script lanuage=javascript>alert(‘对不起,
服务器繁忙,请您稍后再试!’);
location='javascript:history.go(-1)'</script>");
}
}
5.3.8 留言信息管理模块
留言信息管理主要是为了防止用户发表过激的言论,系统管理员可以查看或搜索留言信息进行删除操作。留言界面如图5-12所示:
图5-12 留言信息管理界面
6 系统测试
本章节主要介绍了对系统进行单元测试和集成测试的过程。
6.1 系统测试目标
测试是为了发现系统中的错误而运行系统的过程,通过测试发现系统中的问题,而发现系统问题并不是系统测试的最终目的,发现问题是为了解决问题,系统测试就是尽可能的发现并排除软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。因此,通过测试发现错误以后还必须诊断并改正错误,这就是测试的目的。
所以针对本系统进行测试的目标是尽可能的发现系统中的错误,并加以修正,使系统趋于完善,稳定。
6.2 系统测试策略
6.2.1 系统单元模块测试
设计健壮的软件系统,要求每个模块完成一个清晰定义的子功能,并且这个子功能和同级其他模块的功能之间没有相互依赖关系。因此,我们可以把每一个模块作为一个单独的实体来测试,而且通常比较容易设计验证模块正确性的测试方案。
下面是使用Visual Studio 2010集成单元测试工具对系统模块测试出现的错误和解决办法。
(1) 评价留言模块:用户进行评价留言操作时总是无法将留言内容插入数据库中,经过Debug发现SqlHelper类执行留言操作的InsertMessage存储过程时并没有把它作为存储过程执行,而是认为它是一个SQL语句,所以执行失败。究其原因,SqlHelper类是根据数据库标识符Insert、Update、Select、Delete来判断类型的。由于InsertMessage和Insert开头是一致的,所以SqlHelper类会认为它是SQL语句,执行出错。解决办法:将InsertMessage更换名称为sp_insertMessage。
(2) 用户个人信息管理模块:用户更新个人头像时当数据库中存在同样名称的图片名称时会出现IO错误。解决办法:当用户上传头像时,假如头像名称已经存在提示用户修改图片名称后上传图片。
protected void btnUpdatePhoto_Click(object sender, EventArgs e)
{
if (this.imgUpload.HasFile && checkPhoto())//存在照片且不存在重名照片
{
this.UpFile();
string sql = "update tb_worker set Photo='" + imgUpload.FileName + "' where ID='" + Session["loginId"].ToString() + "'";
SqlHelper.ExecuteNonQuery (sql);
}
else
{
Label1.Visible = true;
Label1.Text = "请您修改照片名称,谢谢合作!";
}
}
(3) 用户评价信息模块:当用户评价信息完成以后,待评价列表的该条记录应该标记为不可评价状态,用户不可以二次评价。解决办法:加载用户待评价列表时,使用存储过程检测该评价纪录是不是已经存在于系统中,假如存在时标记评价状态为已经评价。
protected void gv_DataBound(object sender, EventArgs e)
{
Eval eval = new Eval();
string raterID = Session["loginId"].ToString();
for (int i = 0; i < gv.Rows.Count; i++)
{
string shouPingID = gv.Rows[i].Cells[0].Text;
if (eval.checkEval(raterID, shouPingID,0))
{
gv.Rows[i].Cells[8].Text = "已经评价";
gv.Rows[i].Cells[8].ForeColor = Color.Gray;
}
}
}
6.2.2系统集成测试
系统集成测试是把经过测试的子系统装配成一个完善的系统来测试。在这个过程中不仅应该发现设计和编码错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定的要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明的中的错误。
经过系统的集成测试,系统可以稳定运行。