基于UML模型的选课系统设计

时间:2022-09-24 08:37:36

基于UML模型的选课系统设计

摘要:以面向对象的统一建模语言UML为基础,分析并建立选课系统的可视化图形关系模型。进而以MS Visual Studio为平台,利用C#程序设计语言和SQL Server数据库技术,设计并实现了一种功能全、体积小、适用范围广的高校选课系统。

关键词:UML建模;选课系统;SOL Server;面向对象编程

中图分类号:TP319文献标识码:A文章编号文章编号:16727800(2013)0010009703

作者简介:张丙炀(1992-),男,同济大学机械与能源工程学院学生,研究方向为机械工程。

0引言

选课是高校学分制教学模式中的一个重要环节[1],网络选课系统需要处理课程、学生、教师、成绩等大量信息。与传统手段相比,它需要具有操作简便、适用性强、功能全面和信息完整的特点。为实现这些目标,本文所设计的选课系统采用UML建立关系模型。

统一建模语言UML表达能力丰富、功能强大[2],可实现各种复杂系统成分结构描述的可视化,并进一步构造系统模型,为程序设计提供清晰的思路与指导。本系统在设计过程中首先分析了用户需求,建立了UML用户用例图,然后采用UML对象模型(UML类图)描述了系统的静态关系结构,建立了类与类之间的联系,对系统进行了概念建模,最后以MS Visual Studio为平台,以C#语言为工具,利用SQL Server数据库技术完成了设计。

1总体UML建模设计

1.1系统用户需求分析

为提高本选课系统的适用性,在系统中共设置了教务员、学生、教师和管理员4类用户角色。各用户角色功能需求如下:

(1) 教务员。

①增加、更新、查询学生信息;

②增加、更新、查询教师信息;

③增加、更新、查询课程信息;

④开设本学期课程;

⑤为指定的学生选课;

⑥查询已开课程的选课学生名单;

⑦输入、更新、查询、统计已开课程学生成绩。

(2) 学生。

①选课, 查询自己所有的选课信息(包括自己的已选课列表和待选课列表);

②对本学期所选课程的任课教师进行评价;

③查询成绩。

(3) 教师。

①查询所开设的课程及学生名单;

②输入本学期学生成绩。

(4)管理员。

①查询、分配、更新各账户权限;

②增加新账户。

此外,每种用户还应具有自我账户管理(如密码修改)、重新登陆、退出等通用辅助功能。

1.2系统用例图设计

(1) 教务员用例。

如图1所示,它分为:①学生、教师管理用例;②课程管理用例;③开课及成绩管理用例三部分。部分用例操作(如成绩输入)需要先查询相关信息用例(通过开课查询用例调出学生名单)才能进行,这符合教务员的工作习惯。没有安排教师的课程是静态的,学生无法选择。

(2) 学生用例。

如图2所示,它分为课程管理与成绩管理两部分,对应学生用户的3个功能要求。

(3) 教师用例。

如图3所示,要实现输入学生成绩操作,需要先查询已开设课程,再打开该课程的学生名单,这样的设计便于操作和定位。

(4) 登陆用例。

如图4所示,选课者在登陆时需要经过系统的账户密码验证方能获得相应的操作权限,然后系统会根据操作权限决定如何在主界面上显示系统的可操作项[3]。

1.3UML对象建模

(1) 数据分析。

根据选课系统的功能用例图,可分析得出系统中明确存在以下几种概念数据:学生(学号、出生年月、学生姓名、性别、院系号);教师(工号、教师姓名、性别、院系号);课程(课程号、课程名称);院系(院系号、院系名称);角色(角色号、角色名称);权限(权限号、权限名称);账户(账号、密码)。其中标注下划线的属性为该数据类的主键,标识唯一数据。教务员是教职工中的一类,将其归类到教师类中,不再单独设置类来表示。系统的静态关系结构大体可分为两个部分:一是各角色、课程和院系之间的功能关系;二是执行登陆验证操作时的登陆关系。

(2) UML类图建立。

以上的数据分析以及各类之间的对应关系,如图5所示。通过该图可以基本明确系统的静态关系结构和数据库中各类数据的存储调用方式。对于存在n对n关系的数据类,它都增加了关联类用以清晰描述其关系结构。

2系统软件设计

本选课系统数据库服务器为SQL Server2005,编写环境为MS Visual Studio2005,编译语言选择了较为适合于编写Windows应用程序的C#。

2.1多层系统体系结构设计

与一般的应用程序体系结构划分一样,本系统采用了4层结构模式。其具体划分及作用如下:

① 数据存储层:创建选课系统所需的数据库,并将其部署在SQL Server数据库服务器端;

② 数据访问层:实现应用程序与数据库的连接和访问功能;

③ 逻辑层:负责控制数据访问,处理用户请求,并向表现层返回结果;

④ 数据表示层:即向用户表示信息的界面层,是应用程序的重要组成部分。

为实现4层的体系结构与UML功能需求,将本文设计的面向对象的选课系统中的类分为3种,下面以学生管理功能为例,说明各分类作用及组成:

① 实体类:用于保存能持久储存的信息。包括学生类(Student)与课程类(Course);

② 边界类:负责系统与用户的交互,主要用于信息采集和显示。包括主窗体(Form1)、输入学生子窗体(Input Student Form)、更新学生子窗体(Update Student Form),查询学生窗体(Search Student Form);

③ 控制类:负责应用逻辑,为增加系统的适应性而设计的类。包括数据库连接类(DB Connection)、学生管理控制类(Student Manage Action)。

其余功能类的组成与学生管理功能形式相同。下面说明对部分功能组成的创新与优化设计。

2.2数据连接类(DB Connection)设计

(1) XML配置文件生成。

选课系统应用程序与数据库连接采用了读取XML配置文件的方式获得数据库名和服务器名参数。使用配置文件可以动态生成数据库连接串,在不修改代码的前提下,方便对不同服务器和不同数据库的访问,增强了程序的适应性。

(2) 公有方法与继承的应用。

为节省空间、缩小选课系统体积,在数据连接类的设计中使用了公有方法与继承模式。因选课系统在增加、修改、删除、查询和写入各类信息时,除数据库SQL语句不同外,其他代码操作完全相同,所以在数据库连接类(DB Connection)中编写若干公有方法,并以字符串作为形式参数。此后在各功能控制类中采用继承数据库连接类的方式可以直接调用这些公有方法,同时将特定的SQL语句字符串传入公有方法即可实现响应功能。这样可在一定程度上简化代码、缩小系统体积。

2.3增加学生界面(Input Student Form)设计

(1) 界面逻辑。增加学生界面加载事件逻辑为:从数据库Department表中读取院系名称,显示在组合框CB Dept中;增加按钮单击事件逻辑为:将界面输入的新学生信息添加至界面ListView控件中。

(2) 哈希表的应用。由于组合框中显示的是院系名称,而添加到数据库中时学生类中的属性为院系号,因此需要在此界面上通过院系名称得到院系号,这里使用哈希表来实现这一功能。在学生管理控制类(Student Manage

Action)中添加的读取院系名称/号的哈希表方法代码如下:

public static Hashtable getDeptList()

{

creat new Hashtable;

creat SQL string = "select deptId,deptName from Department order by deptId";

creat new OleDbCommand;

try {

open connection;

OleDbDataReader dbReader = data read from database;

while (reading is not end)

{ string deptId = "deptId" of the dbReader;

string deptName = "deptName" of the dbReader;

add (deptName,deptId)to Hashtable;

}

}

catch(OleDbException ex)

{ …;}

Close connection;

return Hashtable;

}

2.4学生选课界面设计

学生选择与退选课程操作通过选课界面上的“选课”与“退选”按钮来完成。在课程查询环节中按照该课程学生有无成绩增加了已修和未修课程的甄别功能,这样在退选课程时将只显示本学期新选择课程。在选择课程时,学生还可查看该课程以往的评价列表,这有利于学生更好地决策。

3结语

本系统在编写中使用了XML配置文件、公有方法、类继承、哈希表以及属性甄别等创新优化方法。与现有的选课系统相比,它有效地减小了系统体积,增加了系统适用性与功能性,并在Windows XP和Windows7下能够顺利运行。

参考文献:

[1]吴志云,刘涛.用UML方法开发基于的学生选课系统[J].电脑知识与技术,2006(4):911.

[2]邵维忠,梅宏.统一建模语言UML述评[J].计算机研究与发展,1999,36(4):15.

[3]从培胜,龚沛曾,高枚,等.计算机软件开发技术与应用[M].北京:高等教育出版社, 2011.

[4]陈洛资.数据库系统及应用系统[M].北京:清华大学出版社,2002.

上一篇:基于改进用户浏览行为个性化搜索引擎系统研究 下一篇:“三型”计算机应用人才培养模式探究