文/纪丽娜
随着各行各业的发展需要,越来越多的培训项目开始引入在线培训模式,与此同时如何提高培训项目的管理效率是目前在线培训面临的一项重要挑战。
BBS的英文全称是Bulletin Board System,最早是用来公布股票涨跌价格等信息的工具。早期的BBS与一般街头公告板和校园内的公告板性质相似,只不过是通过电脑来发送或获取消息而已。近些年来,随着个人计算机的普及,BBS的功能得到了较大的扩充。由于论坛后台强大的管理模式,可以为一些在线管理项目提供更加高效便捷的管理服务,大大提高项目管理效率。
需求分析要求详细、准确地分析清楚系统必须“做什么”,它是关系到软件开发成败的关键阶段。在需求分析阶段,需要用到各种方法,技术和工具等。
本系统的基本需求为,可以发帖和评论,同时可以查询主题以及查询所有教师及授课信息,同时可以向授课教师留言展现自己的问题,也可以针对个别用户进行一对一的短信收发和回复。后台对注册的用户进行的管理,包括新用户添加,对用户信息的修改以及删除过期用户(如果一年内未曾登录本论坛则视为过期用户),同时管理员可以具有:提升用户为管理员、选择授课教师以及删除管理员等权限。除此之外,后台管理系统还应包括:用户管理、论坛主题、帖子管理以及帖子回复管理、个人收发短信及短信回复、统计注册人数以及关键字查询等功能。论坛系统的最终目的是为广大的在线用户提供一个可以自由、方便地发表自己观点和想法的网上空间,同时方便课程培训项目的管理,提高培训管理效率。
2.2.1 程序开发平台
系统开发平台:MyEclipse9.0、Photoshop CS5、 Dreamweaver CS4
数据库:MySQL,第三方工具:Navicat For MySQL
系统开发语言:JAVA
运行平台:Window2000,Windows Xp,Windows Server 2003,Linux
2.2.2 运行环境:运行环境:java jdk1.6.0_16
本系统是论坛后台系统设置的论坛管理员具有最高管理权限,除了可以使用用户的所有功能之外,还可以进行论坛用户管理、帖子管理、回复管理、主题管理、查询、删除、修改所有用户信息等权限。用户能通过查询主题列表查看主题详细信息以及其留言,并可以修改自己的注册信息,当然注册信息要通过管理员审核,不符合平台要求的内容将会被删除,同时用户能查询所有注册教师及授课信息,并通过离线留言提出自己的问题。
如图1所示。
3.2.1 系统功能结构总图
如图2所示。
3.2.2 模块分析图
如图3、图4、图5、图6所示。
由上面的设计分析,本论坛系统中的一些操作是有先后顺序的,例如只有先登录才能做相应的操作。具体系统流程图如图7所示。
图1:系统后台功能模块图
图2:系统总体结构
图3:系统管理模块
图4:用户管理模块
图5:主题模块
图6:课程管理模块
图7:系统流程图
(1)用户表:用于存放用户的一些信息。
(2)发表主题表:用于记录所有用户发表的主题。
(3)回复表:用于记录所有用户回复的内容。
(4)短信表:用于记录系统对用户和用户发送短信的信息。
(5)在线课程表:用于记录在线的辅导课程以及课程信息。
(6)短信回复表:用于记录用户之间的留言以及标识。
4.1.1 系统实体E-R图
根据以上的分析,确定本系统中的实体有:
(1)用户实体:存放用户信息;
(2)主题实体:主题实体和用户存放多对多的联系;
(3)回复实体:回复实体和用户存在多对多的联系;
所示系统实体E-R图如图8所示。
根据以上的设计,数据的字段详细设计如下:
(1)用户表(user):用于保存用户的注册信息,userId是主键,userName为用户名,pass为密码。见表1。
(2)主题表(topic):用于存放用户发表的主题的表,topicId是主键,userName是发表主题的用户名,也是用于关联的和用户表。见表2。
(3)回复表(words):用于存放用户对主题回复的表,wordsId是主键,tipicId是主题ID,userName是回复人的用户名,也是用于关联的和用户表。见表3。
(4)课程辅导表(course):用于存放用户对主题回复的表,courseId是主键。见表4。
(5)个人留言表(sms):用于存放用户对主题回复的表,smsId是主键,sender是发送人,accepter为接收人。见表5。
表1:用户表(user)
表2:主题表(topic)
表3:回复表(words)
表4:课程表(course)
(6)留言回复(reply):用于存放个人留言回复,repluId是主键,smsId为邦定的留言ID,当smsId被用来查找留言信息并向数据库写入留言回复时,设置sms表里面的标识smsDiv为1,初始为0。见表6。
表5:回复表(sms)
表6:留言回复表(reply)
表7:用户管理模块测试
表8:后台管理模块测试
数据库表优先考虑满足功能要求,对于表的逻辑结构设计主要遵循的原则是:一个表只包含一个主要实体,如果主要实体中包含从属实体数据,并且多个主要实体共享一个从属实体,则把从属实体单独设计为表,与主要实体关联,这样增加一个从属实体增加单独的表就行,不会影响以前的功能。
在数据库里面经常用到标记位字段,取值只有0/1(true/false),有时候一个表里有很多这样的字段,通常把所有标记为字段合并为一个数字字段,数字中的每一位就表示一个标记位,可以大大增加数据库的可扩展性。
MySQL管理员有责任保证数据库内容的安全性,使得这些数据记录只能被那些正确授权的用户访问,这涉及到数据库系统的内部安全性和外部安全性。
内部安全性关心的是文件系统级的问题,即,防止MySQL数据目录(DATADIR)被在服务器主机有账号的人(合法或窃取的)进行攻击。如果数据目录内容的权限过分授予,使得每个人均能简单地替代对应于那些数据库表的文件,那么确保控制客户通过网络访问的授权表设置正确,对此毫无意义。
外部安全性关心的是从外部通过网络连接服务器的客户的问题,即,保护MySQL服务器免受来自通过网络对服务器的连接的攻击。必须设置MySQL授权表(grant table),使得他们不允许访问服务器管理的数据库内容,除非提供有效的用户名和口令。
MySQL服务器通过在MySQL数据库中的授权表提供了一个灵活的权限系统。可以通过设置表的内容来允许或拒绝客户对数据库的访问,这提供了你防止未授权的网络访问对你数据库攻击的安全手段。
为保证系统能够正常高效的运行,通过功能测试的方式对本系统进行系统测试,以便及时发现系统漏洞和问题,并随时采取相应的解决措施修补系统漏洞。主要从用户管理和后台管理两个模块进行测试。
见表7。
见表8。
本文从论坛后台系统的功能和体系结构两大部分对该系统进行设计。使用MyEclipse作为开发工具,MySQL作为论坛的后台数据库。由于是基于B/S系统论坛系统,网页在其中就承担着大量的工作,包括从服务器端向后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作由很多个JSP页面之间的跳转传送数据来完成。设计采用了现代软件开发过程的模块化思想,先将系统功能进行分解,大致可分为前台和后台两部分。在开发过程中可以逐步,逐个模块的实现,提高了开发效率。此论坛后台系统极大的提高了管理员的管理效率,为日后的在线培训项目管理带来了极大的方便。