基于UML的考试管理系统设计
2011-06-01薛媛
薛 媛
(陕西广播电视大学资源建设与现代教育技术中心,陕西西安 710004)
随着教学规模的不断扩大,教务部门工作量越来越大,传统的教务管理模式不能满足日益复杂的教务管理工作。设计了一种排考信息系统,目的是减少教务员的工作量,提高其工作效率,实现教务部门的排考工作的办公自动化。
1 UML建模过程
应用UML建模技术进行软件开发,要经过初始、细化、构造和移交4个阶段,是一种以用例为驱动、以体系结构为中心、迭代及无间隙性的过程,此过程以喷泉模型作为其工作模型,软件生存期各阶段没有明显的界限。在每个阶段,UML都提供了相应的视图和元素,以满足系统的分析与设计。其中,用例图、类图、组件图和配置图用于系统的静态建模;时序图、协作图、状态图和活动图用于系统的动态建模。
在建模过程中,各阶段的主要工作如下:
(1)在初始阶段,根据用户提出的需求产生角色、用例,并采用用例图进行可视化描述。在此阶段可以使用用例和用例图从高层建模系统描述要实现的功能。对于每个用例,使用用例描述模板描述角色和系统交互的事件流等,并建档保存。
(2)细化阶段的主要任务是进一步分析并细化初始阶段产生的用例模型,对用例要进行详细描述,包括用例的处理流程与用例交互的角色;然后从用例中分析、提取出相关的类,用类图建立类以及相互关系,同时还要添加必要的边界类或控制类。若类之间的交互关系复杂,可用时序图描述详细的交互过程;若某类的状态多样并且迁移复杂,可用状态图描述类状态之间的转换。
(3)构造阶段是根据细化阶段已建档的类规范和类图,结合具体的程序设计语言,建立系统组件图,以反映系统的实际结构和组件之间的依赖关系。并通过具体的程序设计语言和一系列迭代过程构造并测试实际可用的系统。
(4)移交阶段是系统向用户做最后准备和运行部署阶段,主要是对系统进行测试,继续改善系统,根除错误等[1-2]。
2 排考信息系统UML建模实例
2.1 系统分析
2.1.1 业务描述
根据排考需求,该系统具有以下功能模块:
(1)系统基础信息设置模块。分为当前学期、场次时间、基础大类代码、基础子类代码、课程信息、教师信息、场地信息设置。
(2)排考基础信息设置模块。分为行政班设置,教学计划设置,对教学班的基础信息,如教学班编号、教学班名称等信息进行设置。
(3)排考模块。主要进行排考的相关操作。将选择的考试科目、监考教师等信息安排到相应的场地。
(4)查询统计模块。分为班级考试信息查询,主要对各班的排考信息、各教师的排考信息、各场地的排考信息进行查询打印。
2.1.2 系统的用例分析
用例模型主要包括用例图和用例规约两部分。用例图用来确定系统中包含的参与者、用例以及两者之间的关系。用例规约针对每个用例,用规约文档来描述用例的细节内容[3]。从前面的需求可以得到,整个系统的角色分为教务员、班级和教师和场地4类,其关系如图1所示。
图1 系统的用例图
用例图描述了系统提供的各种服务,下面介绍排考这一用例的规约。
用例描述如下:用例的标识号003;用例名称为排考;简要说明,管理员把每门考试科目、监考教师安排到对应的场地上;前提条件,即必须已设置好行政班、教学计划信息。
事件流包括:教务员选择要安排考试的行政班科目;教务员给此考试科目安排监考教师;选择要安排的场地班级;对所有信息核对无误后,点击提交按钮,系统会把排考信息存入数据库中,并在场地界面上显示出来。
后至条件:如果排考用例成功后,教务员便可以查询打印出相关的报表。
2.2 系统设计
系统设计分为概要设计和详细设计两个阶段。概要设计阶段主要考虑的问题可以用UML的逻辑视图和动态视图来描述。逻辑视图用于显示系统内部的功能设计,它利用静态结构和动态行为来描述系统功能;类图描述系统的静态结构;协作图、状态图、时序图、活动图描述系统的动态特征。在详细设计阶段,把概要设计阶段的结果扩展成技术解决方案,包括用户界面、数据结构和算法流程等,为系统实现阶段提供详细的规格说明,推动不断进行详细设计的方法是对每个用例进行动态建模。
2.2.1 类图设计
对于信息处理系统静态结构的描述,要依据类图、对象图和包图来实现。其中,类图尤为重要,它不仅定义系统中的类,表示系统中对象之间的抽象联系如关联、聚合、泛化等,也包括类的内部结构。下面采用分层式设计来表示类图,分层式设计是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划开解决,易于控制、延展和分配资源[4]。依据目前流行分层设计3层结构模式设计的,它由表示层、业务逻辑层和数据访问层3个层次结构组成。这样有利于系统的开发、维护、部署和扩展。高校排考信息系统的层次结构分为3层:用户界面层、业务逻辑层和数据访问层。图2是UML的类图模型,主要给出考试安排这个模块的类图模型。
图2 系统类图模型
用户界面层中的类主要是排考主界面类,它主要显示排考信息,例如班级信息、场地信息、课程信息、教师和一些操作控件等,实现用户与系统的交互。
业务逻辑层有ExamArrange类。为使系统层次结构清晰、程序更易于编写,把一些简单的业务逻辑则放在用户界面层或数据库的存储过程中处理,只把复杂的业务逻辑放到业务逻辑层。
数据访问层中的类有 CommandBuilder、PaikaoMenthod。其作为业务逻辑层与数据管理层之间的中介,CommandBuilder类封装了用于数据库连接的方法。PaikaoMenthod类实现对数据的增加、删除、修改和读取操作。
2.2.2 时序图设计
对于系统设计,除建立静态模型之外,更重要的是分析各种信息处理时序,恰当地控制处理此类信息,而动态建模能实现此目标。这里用时序图描述用例的动态行为。时序图是按时间排序的交互图,采用从上到下的顺序来表示时间的顺序。图3是排考用例的时序图。其主要过程是:教务员登录后进入排考主界面,选择排考的时间,然后选择要排考的行政班级,当选中班级后,系统会在界面下方显示该班级待排的科目;教务员选择一到多个科目,显示在界面上;教务员选择排考场地,系统会将场地信息显示在界面下方;教务员选择相应的监考教师,系统也会将信息显示在界面下方;最后,教务员核对无误后,点击保存排考信息,系统会把该条排考信息现在相应的场地上。
图3 排考用例的时序图
2.3 系统的实现
在上述需求分析和UML建模的基础上,进行了系统的开发。开发系统的工具为Microsoft Visual Studio 2008,以 C#语言作为开发语言,数据库采用的是SQL Server2005。系统的关键模块是排考模块,排考类是该模块的最重要的类。图4是排考模块的运行界面。
图4 排考模块的运行界面
3 结束语
通过对排考过程的分析,设计了排考信息系统,实现了排考信息化实现方案。该系统采用了面向对象分析和设计方法。采用UML对系统进行建模,提高了代码的质量和软件复用。
[1]IVAR J,GRADY B,JAMES R.统一软件开发过程[M].周伯生,冯学民,译.北京:机械工业出版社,2002.
[2]娄雅斌,张恩胜,顾红生,等.UML技术在城市消防预案演示系统开发中的应用[J].计算机系统应用,2004(10):115-119.
[3]傅纯一.UML用例建模指南[EB/OL].(2008-08-19)[2010 - 09 - 18]http://www.uml.org.cn/SoftWareProcess/200501281.htm.
[4]唐政,房大伟.C#项目开发全程实录[M].北京:清华大学出版社,2008.