课程设计
(计算机与软件学院)
设计课题: 校园网BBS系统
专业班级: 软件技术 软件1003班
组 长: 鄂红猛
组 员:马文敏 吴晓梦 张兵兵 李丽 张海燕
指导老师: 肖 念
目 录
目 录 2
第1章 系统概述 4
1.1. 开发背景 4
1.2. 开发目的 4
第2章 可行性分析 5
2.1. 技术可行性分析 5
2.2. 校园网BBS的好处 5
2.3. 带来的弊病及解决办法 6
2.3.1. 问题 6
2.3.2. 解决办法 7
2.4. 时间可行性(项目开发计划) 7
2.4.1. 第一阶段 7
2.4.2. 第二阶段 7
2.4.3. 第三阶段 8
第3章 系统需求分析 9
3.1. 系统开发运行环境 9
3.2. 业务描述 9
3.2.1. 游客用例图 10
3.2.2. 顶层用例图 10
3.2.3. 用户用例图 11
3.2.4. 版主用例图 11
3.2.5. 超级版主用例图 12
3.2.6. 管理员用例图 12
3.2.7. 用例文档 13
第4章 系统设计 21
4.1. 数据库设计 21
4.2. 概念模型设计(E-R图) 21
4.3. 数据库表及关系建立 21
4.3.1. 用户表 21
4.3.2. 帖子表 22
4.3.3. 回复表 23
4.3.4. 好友表 23
4.3.5. 访问IP信息记录表 23
4.3.6. 板块表 23
4.4. 系统概要设计 24
4.5. 系统架构 24
4.5.1. 定义 25
4.5.2. 人员(角色) 25
4.5.3. 业务(功能) 25
4.6. 系统顺序图 26
4.6.1. 游客注册 26
4.6.2. 用户登录 26
4.6.3. 用户发帖 27
4.6.4. 管理个人信息 27
4.6.5. 删除用户 28
4.6.6.编辑帖子 29
4.6.7. 公告管理 29
4.7. 系统组件 30
4.8. 出错信息 31
4.9. 补救措施 31
第5章 系统的详细设计与实现 32
5.1. 系统的结构 32
5.2. 模块设计说明 32
5.2.1. 功能模块设计 32
5.2.2. 设计方法 38
5.2.3. 流程逻辑 40
3.5接口 40
5.3. 3.7条件 42
5.4. 3.8测试计划 42
5.5. 3.9尚未解决的问题 42
参考网站 42
参考文献 42
系统概述
开发背景
BBS是作网友学习、生活、情感交流的一大要地。目前比较好的BBS有全球最大的中文IT交流社区CSDN,在上面可以找到几乎我们碰到过的所有问题,而且还可以分享我们在学习上的经验。但是CSDN仅仅是作为一个IT交流,明显满足不了其他专业的同学的需求。而且仅就CSDN来说,因学校网速的,在上面下载文件无疑是很艰难的,既浪费资源又费时间。因此我们亟待一个综合性的校内BBS论坛。
作为一所“全国示范性软件职业技术学院”内部没有一个自己的BBS系统,的却是一大缺失。平时的学习,生活交流,很不方便。首先在社团活动宣传方面,依靠板报不仅费时费力,而且如果板报办的不是很好的话,是达不到很好的宣传效果的,而且还会给社团抹黑。使用横幅则不经济,横幅不仅价格高,而且使用一次就舍弃了,造成了资源的浪费。而且横幅语言简短,对活动描述不清楚。其次在学校动态方面,对于学生来说,了解学校一些动态主要依赖学校网站,但是我们学校网站更新速度缓慢,不仅页面古板难看,而且内容太官方,让学生难以接受。
开发目的
实现校园资源共享,为学生提供一个交流的平台,为广大学生者提供交流经验、探讨问题的社区。提供文件的上传与下载,实现资源与经验的共享。
可行性分析
技术可行性分析
本系统采用的技术全部是我们所学的技术,具体包括:
开发语言:Java
前台实现:htm css javascript
数据库:mysql
校园网BBS的好处
一、可以辅助教学:无论怎样,学习仍是我们大学生的主要任务。而学子们也已经把校园BBS作为获取专业信息、解决学习问题的重要途径。无论是文科、理科和工科,在各系的板块里都会有相关内容。由于大学课程学习的特殊性,强调学生的自主学习性。当遇到学习上的困难时,除了在课堂上请教老师、同学外,基本上没有集体讨论的时间。而在BBS上,学子们可以提出问题,共同商量和讨论,还可以向其他老师、学长学姐们请教。同时,老师们可以利用BBS提供更多的学习信息,例如将教学讲义在网络上发布。师生之间也可以在BBS上进行学术思想交流。
二、有利于学生对社会焦点和时政问题的讨论:现代的大学校园并不是封闭的象牙塔,大学学子们对社会热点、时政非常关注,“中日关系”、“社会焦点”、“关注弱势群体”等等热点问题一直是大学生们话题的重点。虽然我们没有实际能力去做什么,但却可以在BBS上毫无顾忌的说出自己的心中所想。我们凭着一颗颗爱国的心,或揭露社会黑暗的一面,或赞美自己观察到的好人好事,或抨击有损国家尊严、领土完整的事件。这些慷慨激昂的言论可以更好地体现我们青年学子对国家的热爱、对未来的抱负。
三、学生情感交流的重要场所:大学生们随着年龄的增长,能够结交到的知心朋友越来越少,加上学业和竞争的压力,迫切需要一个倾吐、交流的空间,BBS刚好给我们提供了这样一个平台。大学生可以在BBS上讲述自己的情感历程、面临的感情难题以及转载自己搜集到的感人或是给人启示的故事,一起交流、探讨或者商量解决办法。由于大家的年龄、学识、经验、需求都具有同质性,因此彼此之间的沟通和交流更容易理解。BBS使得大学生的情感交流更加透明和坦诚,他们不再羞于表白自己的情感,不管是爱情还是亲情。如此一来,BBS里充满了“人情味”,在这里获得了鼓励、支持和建议,在现实世界里也能更好的与同学、朋友进行沟通。
四、丰富课外生活:在校园BBS的版块里,“贴图版”、“笑口常开”、“个人写真”、“漫友风云”等等专版很能体现我们当代大学生兴趣广泛、思维活跃的一面,也反映了当前高校素质教育的蓬勃发展。校园BBS能够使我们大学生学会如何娱乐、如何休闲,调剂我们的日常学习生活,开阔我们的眼界,学到更多特长。
五、发布商业信息的重要场所:同学可以发布一些兼职广告,二手信息等等一些广告,为学生们提供了方便,甚至解决了生活的困难。
六、建设我校校园BBS的基础已经具备,随着生活水平的提高,学生拥有个人电脑的数量也在大幅增加,保证了学生上网的基数。
七、可以作为我校校友们交流的场所:通过我校校园BBS的建设,聚集我校历届校友,增强我校校友的精神归属感。老校友们也可以为师弟师妹们提供他们的就职经验,人生感悟。我们也可以通过校园BBS展示我们的风采,让老校友们了解学校现在的发展现状。
八、提供一个资源共享的平台
带来的弊病及解决办法
问题
几乎所有的网络社区都会碰到问题,基本有以下几点:
1.在内容方面,有些用户不遵守规定,分享一些低俗的内容
2.一些人利用社区散布谣言
3.在局域网这个相对高速的网络环境来说,一些人别有用心,窃取用户信息,造成用户对BBS失去信心。
4.一些人故意上传网络病毒,造成其他用户中毒。
5.网站人员分配,信息的管理,还有很大的难度,比如版主不合理,或者是某个用户不遵守规定,如何处罚等等,都是很大的难点。
解决办法
6.在内容方面提供提供敏感信息检索功能,其次用户还具有投诉权利,对违规用户按程度进行删帖,罚分,封号,封IP等处罚。
7.网站采用用户IP绑定策略,每个用户只提供5个左右的IP权限,网站游客记录,游客登录采用AJAX技术,每五次登录失败则需等待15分钟后才能进行登录操作。每天登录失败次数为50次。
8.网站管理采用四级用户组制度,即系统管理员、超级版主、版主和用户。
9.网站维护由开发人员和系统管理员组成,每周至少维护一次,每次维护必须进行数据清理,数据统计,用户统计,IP访问量统计,数据全部记录在在册。
10.网站用户采用等级制度,用户登录,发帖和回帖等相关操作获得积分,再由积分计算等级,不同等级拥有的权限不同,等级越高,权限越大。
时间可行性(项目开发计划)
第一阶段
本阶段采用一个月时间,采用原型模型,根据已存在在的系统的优点编写
1.问题定义与可行性分析
2.项目规划
3.需求分析
4.总体设计(含两部分:软件结构总体设计和数据库设计)
5.详细设计
第二阶段
采用连个星期时间,严格根据需求文档编写。
编程
测试(单元测试、集成测试)
第三阶段
系统维护是一个长期过程,必须靠几届同学大量人维护。
运行与系统维护
系统需求分析
系统开发运行环境
开发环境: Windows XP或者Windows 7 TomCat6.0 JDK1.6
硬件实现: 学生自己电脑
开发语言: Java
数 据 库: MySQL
开发工具: Eclipse3.7
预期成果: 一个可扩展的基于MVC模式的 BBS论坛
业务描述
对于访问论坛的用户,可分为游客和注册会员。游客只能查看帖子和用户信息(用户名、等级等),不能回复,下载;会员有三种身份:普通会员,版主,超级版主,其中普通会员享有用例图中相关功能,版主主要管理自己所管辖板块的帖子,具有删除不合法帖子的权限,而且版主对帖子的回复放在最前面。超级版主是对其他版主具有管理权限的版主,主要功能有:删除不作为的版主,更换版主,增加版主。
系统的用例图如下:
游客用例图
顶层用例图
用户用例图
版主用例图
超级版主用例图
管理员用例图
用例文档
用例编号:0101
用例名称:注册
用例描述:游客注册成为系统用户
用例参与者:游客
用例前置条件:游客已经进入系统
用例后置条件:转到注册页面
事件路径:
1、游客进入注册页面。
2、游客填入信息并提交
3、系统检测信息
3a、信息不符合条件
3a1、提示游客信息不符合条件,1秒后转到注册页
4、系统将信息写入数据库
5、注册成功
6、转入登录页面
用例编号:0102
用例名称:登录
用例描述:注册用户,版主,超级版主进行某些操作时需要先登录论坛
用例参与者:注册用户,版主,超级版主、管理员
用例前置条件:用户必须是已经注册的
用例后置条件:输入登录信息后,确认无误登录到论坛
事件路径:
1、用户填写账户信息
2、系统检测信息是否符合条件
2a、信息不符合条件
2a1、提示用户密码错误,1秒后转到登录页
3、系统将信息写入数据库
4、登录成功,转到欢迎页面
用例编号:0103
用例名称:发帖
用例描述:注册用户,版主,超级版主进行发帖操作
用例参与者:注册用户,版主,超级版主
用例前置条件:已登录
用例后置条件:转入发帖成功页面
事件路径:
1、用户编辑帖子信息
2、用户提交帖子
3、系统检测帖子的正确性及合法性
a、信息不符合条件
b 、提示错误,1秒后转到发帖页面
4、系统将信息写入数据库
5、发布成功,转到发帖成功页面
用例编号:0104
用例名称:查看所有帖子
用例描述:注册用户,版主,超级版主进行发帖操作
用例参与者:注册用户,版主,超级版主
用例前置条件:已登录
用例后置条件:
事件路径:
1、用户点击查看帖子链接
2、系统转入帖子列表
用例编号:0105
用例名称:管理个人信息
用例描述:注册用户,版主,超级版主管理个人信息
用例参与者:注册用户,版主,超级版主
用例前置条件:已登录
用例后置条件:转入个人信息页面
事件路径:
1、用户点击查个个人信息链接
2、系统转入个人信息页面
3、用户修改需要修改的信息
4、用户修改需要修改的信息
a、信息不符合条件
b 、提示错误并转到,1秒后转到个人信息页面
5、系统将信息写入数据库
6、发布成功,转入个人信息页面
用例编号:0106
用例名称:编辑帖子
用例描述:发帖用户可以对自己发表的文章进行编辑,版主和管理员有权限对所有帖子进行编辑,同等级别用户不能互相编辑
用例参与者:管理员、发帖用户
用例前置条件:帖子符合网站要求,有可改之处
用例后置条件:编辑完帖子后,确认无误后退出该用例
事件路径:
1、用户、管理员、版主,浏览帖子
2、发帖用户对自己发表的帖子不满意时可以修改自己的帖子,管理员、版主对用户的帖子也可以进行编辑修改
3、对帖子管理完毕后检查并保存
用例编号:0107
用例名称:设置用户权限
用例描述:可对所有论坛用户进行设置权限操作
用例参与者:具有权限的管理员
用例前置条件:用户遵守帖子规定,无不良信息
用例后置条件:设置最后一个用户权限,确认操作无误后退出
事件路径:
1、管理员查询到要授予或回收权限的用户
2、给予不同用户不同的帖子管理权限
3、选择正确
用例编号:0108
用例名称:查看所有用户
用例描述:管理员查看所有用户
用例参与者:管理员
用例前置条件:管理员已登陆系统
用例后置条件:查看完毕,退出
事件路径:
1、管理员点击查看所有用户信息
2、系统显示所查看的信息
3、结束用例
用例编号:0109
用例名称:删除用户
用例描述:管理员删除用户
用例参与者:管理员
用例前置条件:管理员已登陆系统
用例后置条件:无用的用户被删除
事件路径:
1、管理员点击查看用户的信息
2、找到要删除的用户
3、删除用户信息
4、系统将信息写入数据库
5、结束用例
用例编号:0110
用例名称:发布公告
用例描述:管理员发布公告
用例参与者:管理员
用例前置条件:管理员已登陆系统
用例后置条件:
事件路径:
1、进入发布信息页面
2、编辑最新消息和一些网站热点,然后点击提交。
3、系统将信息写入数据库
4、系统会将这些最新消息以窗口的形式来提示用户
用例编号:0111
用例名称:浏览公告
用例描述:进入系统浏览公告
用例参与者:管理员、用户、版主、超级版主、游客
用例前置条件:已登陆系统
用例后置条件:浏览公告,获取信息
事件路径:
1、进入网站首页
2、系统会将这些最新消息以窗口的形式来进行提示
3、可以选择浏览信息
3a选择浏览这些信息
3b可以关闭系统弹出的提示窗口
4、结束用例
用例编号:0112
用例名称:更换版主
用例描述:管理员更换版主
用例参与者:管理员
用例前置条件:管理员已登陆系统
用例后置条件:板块的版主被更换
事件路径:
1、进入管理员界面
2、查找要更换的版主的详细信息界面
3、进行所需的更改
4、点击保存,系统将信息写入数据库
5、结束用例
用例编号:0113
用例名称:删除帖子
用例描述:发帖用户可以对自己发表的文章进行删除,版主和管理员有权限对所有帖子进行删除,同等级别用户不能互相编辑
用例参与者:管理员、用户、版主、超级版主
用例前置条件:帖子符合网站要求,有可改之处
用例后置条件:编辑完帖子后,确认无误后退出该用例
事件路径:
1、用户、管理员、版主,浏览帖子
2、发帖用户对自己发表的帖子不满意时可以删除自己的帖子,管理员、版主对用户的帖子也可以进行删除
3、对帖子管理完毕后检查并保存
4、系统将信息写入数据库
5、结束用例
用例编号:0114
用例名称:搜索帖子
用例描述:注册成为论坛用户后,用户具搜索帖子内容的功能
用例参与者:注册用户,版主,超级版主
用例前置条件:用户进入论坛浏览
用例后置条件:浏览完成后,退出登录即可
事件路径:
1、用户、管理员、版主,浏览帖子
2、用户选择搜索的条件
3、用户输入搜索的关键字
4、系统从数据库帖子信息表检索与关键字匹配的帖子
5、如果存在显示相关帖子,不存在提示无相关帖子
用例编号:0115
用例名称:删除板块
用例描述:这是一个管理员或超级版主对论坛版块的管理,其中包括删除不需要的版块操作
用例参与者:具有管理权限的管理员或超级版主
用例前置条件:版块功能正常,数据正确
用例后置条件:删除版块,确认无误后退出
事件路径:
1、管理员或超级版主进入管理界面,浏览各个版块
2、当发现有没有用处的版块,以及不能为用户提供更好信息的版块进行删除版块操作
3、系统将信息写入数据库。
4、系统提示成功删除
用例编号:0116
用例名称:增加版块
用例描述:这是一个管理员或超级版主对论坛版块的管理,其中包括创建各个不同的版块操作
用例参与者:具有权限的管理员和超级版主
用例前置条件:论坛的版块不够
用例后置条件:增加版块,确认无误后退出
事件路径:
1、管理员或超级版主进入管理界面,浏览各个版块
2、根据用户需要增加新版块以满足用户需求,加入新的版块信息
3、系统将信息写入数据库
4、系统提示成功添加
用例编号:0117
用例名称:修改个人资料
用例描述:注册成为论坛用户后,用户具有查看修改个人信息的功能
用例参与者:注册用户,版主,超级版主
用例前置条件:用户遵守网站要求,无不良信息
用例后置条件:修改完成信息后,检查提交,退出该用例
事件路径:
1、进入个人管理界面,进行信息修改
2、修改完成后,检查并提交
3、系统将信息写入数据库
4、系统提示修改成功
用例编号:0118
用例名称:添加好友
用例描述:注册成为论坛用户后,为增加文件的传出
用例参与者:注册用户,版主,超级版主
用例前置条件:用户遵守网站要求,无不良信息
用例后置条件:添加好友完成信息后,检查提交,退出该用例
事件路径:
1、进入个人管理界面,查看用户信息
2、添加选择的人完成后,检查并提交
3、系统将信息写入数据库
4、系统提示添加成功
用例编号:0119
用例名称:增加版主
用例描述:这是一个管理员对论坛版主的管理,其中包括创建版主操作
用例参与者:具有权限的管理员
用例前置条件:论坛的版主不够
用例后置条件:增加版主,确认无误后退出
事件路径:
1、管理员进入管理界面,浏览各个版块
2、根据需要增加新版主以满足需求,加入新的版主信息
3、系统将信息写入数据库
4、系统提示增加成功
用例编号:0120
用例名称:删除版主
用例描述:这是一个管理员对论坛版主的管理,其中包括删除不需要的版主操作
用例参与者:具有管理权限的管理员
用例前置条件:版块功能正常,数据正确
用例后置条件:删除版主,确认无误后退出
事件路径:
1、管理员进入管理界面,浏览各个版主信息
2、当发现有没有用处的版主,以及不再管理版块的版主进行删除版主操作
3、系统将信息写入数据库
4、系统提示删除成功
用例编号:0121
用例名称:查看版主
用例描述:这是一个管理员对论坛版主的管理,其中查看各个版主的操作
用例参与者:具有权限的管理员
用例前置条件:管理员登录系统成功
用例后置条件:查看所有版主
事件路径:
1、管理员进入管理界面。
2、根据需要查看各个版主信息
3、查看完毕后,退出
用例编号:0122
用例名称:增加超级版主
用例描述:这是一个管理员对论坛超级版主的管理,其中包括创建超级版主操作
用例参与者:具有权限的管理员
用例前置条件:论坛的超级版主不够
用例后置条件:增加超级版主,确认无误后退出
事件路径:
1、管理员进入管理界面,浏览各个版块
2、根据需要增加新的超级版主以满足需求,加入新的超级版主信息
3、系统将信息写入数据库
4、系统提示增加成功
用例编号:0123
用例名称:删除超级版主
用例描述:这是一个管理员对论坛超级版主的管理,其中包括删除不需要的超级版主操作
用例参与者:具有管理权限的管理员
用例前置条件:版块功能正常,数据正确
用例后置条件:删除超级版主,确认无误后退出
事件路径:
1、管理员进入管理界面,浏览各个超级版主信息
2、当发现有没有用处的超级版主,以及不再管理版主的超级版主进行删除操作
3、系统将信息写入数据库
4、系统提示删除成功
系统设计
数据库设计
概念模型设计(E-R图)
数据库表及关系建立
用户表
用于保存用户信息
| 用户表 | 逻辑名 | Tb_UserInfo | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| User_Id | int | 主键,用户唯一编号,系统自动生成,自增列 | |
| User_Login_Name | varchar(50) | 主键,不为空 | |
| User_Login_PWD | varchar(100) | 不为空 | 系统内部加密后存储 |
| Uname | varchar(50) | 不为空 | |
| User_Sex | varchar(10) | ||
| User_QQ | varchar(15) | ||
| User_Email | varchar(30) | ||
| Register_Time | date | ||
| User_Score | int | 默认为0 | 用于计算用户组 |
| Last_login_time | date | 系统函数生成 | |
| User_Tel | varchar(15) |
用户保存用户发布的帖子
| 帖子表 | 逻辑名 | Tb_Articl | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| article_ID | int | 主键,用户唯一编号,系统自动生成,自增列 | |
| title | varchar(50) | 不为空 | |
| article_Content | varchar(待定) | 不为空 | |
| User_Id | int | 外键,用户表中用户ID字段 | |
| belongs_ID | int | 板块ID | |
| release_Date | date | 由系统函数生成 |
用于保存帖子的回复
| 回复表 | 逻辑名 | Tb_ReArticl | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| ReArticl_ID | int | 主键,用户唯一编号,系统自动生成,自增列 | |
| ReArticl_content | text | ||
| ReUser_id | int | ||
| Re_date | date |
用于保存用户添加的好友
| 好友表 | 逻辑名 | Tb_friends | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| f_user_id | int | ||
| friends_id | int |
用于保存游客和用户的访问记录
| 登录信息表 | 逻辑名 | Tb_LoginManager | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| ID | int | 主键 | |
| Login_Time | date | 系统函数得到 | |
| User_IP | varchar(50) | 系统获取得到 | |
| User_Id | int | 可为空 |
用于保存用户创建的板块信息
| 板块表 | 逻辑名 | Tb_Type | |
| 逻辑名 | 数据类型 | 其他 | 备注 |
| Type_ID | int | 主键 | |
| moderator1_id | int | 外键,用户表中用户ID字段 | |
| moderator2_id | int | 外键,用户表中用户ID字段 | |
| moderator3_id | int | 外键,用户表中用户ID字段 | |
| moderator4_id | int | 外键,用户表中用户ID字段 | |
| moderator5_id | int | 外键,用户表中用户ID字段 | |
| Type_Name | varchar(50) | 外键,用户表中用户ID字段 | |
| type_create_date | date | 创建时间 |
系统架构
定义
人员(角色)
游客:所有登录论坛网站,尚未登录的人
会员:拥有该论坛登录账号的人
版主:具有发布版块公告,删除帖子等功能的已注册用户
版块:一类帖子的集合
管理员:拥有该轮胎的最高权限,可以管理模块、管理会员、管理版主
业务(功能)
注册用户:按系统默认的规则申请成为该论坛的会员
登 录:拥有该论坛的账号,按照系统默认的规则登录
浏览主题:游客和用户可以浏览该论坛内的所有帖子
发布主题:注册用户按照系统默认规则发布新的主题
回复主题:注册用户按照系统默认规则发布对某个主题的回复
版主管理:由系统管理员指定、删除、修改某个版块的版主
版块管理:由系统管理员对版块进行增加、删除、修改、重命名等
帖子管理:由版主对版块内的帖子进行删除、加精、指定等操作
恢复帖子:将加精、置顶过的帖子回复为普通帖子
修改信息:注册过的会员按照系统默认的规则修改个人资料
系统顺序图
游客注册
用户登录
用户发帖
管理个人信息
删除用户
编辑帖子
公告管理
系统组件
出错信息
用一览表的方式说明每种可能出错或故障情况出现时,系统输出信息的形式,含义以及处理方法。
补救措施
说明故障出现后可能采取的变通措施,包括:
后备技术说明准备采用的后备技术,当原始系统系统数据万一丢失时启用副本的建立和启动技术,例如周期性的把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以使是手工操作和数据的人工记录。
恢复及再启动技术说明将使用的恢复在启动技术,使软件从故障点恢复执行或是软件从头重新运行的方法。
系统的详细设计与实现
系统的结构
模块设计说明
功能模块设计
通过对系统进行详细的需求分析,获得了一个最优的设计方案,将系统划分为若干功能子模块。为了方便后期的设计与编程工作,在划分系统功能模块时尽量注重模块的性,努力做到高内聚,低耦合。
用户注册登陆模块
要完成论坛的各项操作,用户必须登陆论坛系统,如果没有论坛帐户,用户注册是必须的。用户命令如果是退出,则清除用户的状态信息,并返回BBS 首页,如果是登录则使用SQL-Server连接数据库,取得用户输入的帐号和密码并查询数据库,将得出的结果和用户输入的信息做比较,验证正确,显示用户已经登陆到系统,错误将返回消息让用户从新输入.如果用户想注册帐户,则返回注册页面,用户填写信息后,将检测信息的正确性,如果帐号
允许注册,则完成帐号的注册,将信息写入到数据库中,如果帐户已经存在,则返回错误信息,告诉用户帐号存在,请用户重新输入,并完成注册,进程结束。
帐户信息模块
当用户登陆系统后,在个人工具箱中,可以通过点击个人资料修改的链接来修改个人资料(其中帐户名是不允许修改的),通过最近发表的话题来查看和修改自己发布的帖。
文章发布模块
用户登陆系统后可以查看其他所有用户发的文章,并可以发布自己的话题,也可响应回复其他用户和自己发表的话题。
公告制度模块
论坛管理员可以通过后台管理系统发布论坛公告,公告可以选择版面,公告的主题,并可以设置字体的颜色大小等工具,支持UBB Code论坛的制度上可以设置对文章操作的客户积分。例如用户每发一篇文章,则增加一定量的积分。
版块管理模块
论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:添加分类或版面,版面配置或删除;并可以对已存在的版块设置属性(包括名称,类别,隐藏,属性,默认风格,主题,回复,排序等)。
信息管理 模块
信息管理模块主要完成下面的功能:社区信息配置;添加管理员; 编辑管理员;设定等级;配置权限;重新登录;安全退出;用户等级;管理团队;用户列表;黑名单;用户查询。
功能
1.提供完善的用户登录功能,要求为不同用户提供分级权限。
2.提供标准的加贴、删贴功能,并且每一个帖子的内容不加,帖子 必须能显示加贴时间、作者,以及是否有回贴,有多少个回贴。
3.提供回帖功能,每个回帖有父贴。父帖与子帖是一对多的关系,删除 父帖后,子帖也连带被删除。
4.提出精华区的概念,为每个版面都提供一个精华区,其中内容是多次提出的热点问题。
5.任何浏览器都可访问该BBS 系统。
设计方法
基于WEB的通用BBS系统其系统定义部分采用面对对象的系统分析方法,并结合传统的结构化分析方化,设计出其系统模型,如果采用面向对象的程序设计语言开发系统,则可以很方便地从系统分析阶段平滑地过渡到设计阶段。
系统主页面 Main.jsp
这是BBS网站的HomePage,程序首先进行用户身份判断。
本系统用户身份信息经登录后保存在SESSION对象的USERNAME和ADMINBOARD两个变量里。匿名用户(既Guest)这两个变量为空或没有定义;普通用户USERNAME变量有用户在本系统注册的会员昵称,但其ADMINBOARD变量没有定义或为空;版主用户其ADMINBOARD变量保存有他管理版面的ID;如果ADMINBOARD变量为“0”则为超级会员。
各级别用户私有功能的实现方法
私有功能是不能为比其级别高的用户所继承的功能。因此,私有功能WEB网页应进行具体某个级别身份的识别,非这个级别层次的用户则被拒绝访问。
会员用户积分的计算模型
会员用户每提交一篇文章,可以积10分。某篇文章得好评3分,差评0分,每天限评论50次,每天限发布文章10篇以下。
会员等级与积分管理
注册用户可获积分50,用户登录一次可获积分2分
新手上路:1-100分
初出茅庐:100-500分
熟能生巧:500-2000分
天下无双:2000分以上
版主申请条件
版主申请条件:为正式注册会员,积分要在2000分上,用户提出申请, 经超级管理员审核通过后方可成为版主。
超级版主: 超级版主由一般版主中选取,由管理员提名,一般版主都同意的条件下产生,超级版主最多为三个。
流程逻辑
3.5接口
用户接口
本系统采用的标准的Java编写,内部套用Java脚本、XML、CSS,风格统一,用户可通过一个窗体即可完成所有的输入工作,本模块不涉及大图片、音频和视频等,这样能保证输出时的快速性。用户可以直观的查看数据和填写数据,尽可能的简化操作,其主界面简便易于使用。
3.5.2外部接口
系统的数据库连接主要采用访问SQL-Server数据库的方式,这样的连接方法简单,避免了直接连接所产生的弊端,所有的数据库操作都交给SQL-Server,数据库的访问全部由操作系统内部来完成。数据库的接口采用Hibernate连接实现。使用Mysql来存放BBS的所有数据,包括用户信息,文章数据,用户信件,用户消息,系统数据等。
3.5.3内部接口
Hibernate完成应用程序和数据库的连接;
3.6存储分配
数据库设计,在整个BBS 系统中,首先设计了三个数据库:
其一、就是User (用户信息数据库) , 用来存放登记在本BBS 系统的用户信息,包括用户的ID 号、姓名、密码等个人信息。其中用户的ID号是自动编号,并没有特殊的意义,只是用来表示唯一的一名用户,其他各列都是文本类型。在此库中并没有为用户设计权限,即所有的用户在此库中都是平等的。
其二、是Board(版面数据库) ,用来记录版面的名称、版主的ID 号、版面的ID 号等信息,这里版主的ID 与User 库中的用户ID 是相关联的,即该表的Boardmaster 与User 表中的UserID 是一致的, 通过Boardmaster 必定能找到位于User 库中属于该版主的一些个人信息,这样它与User 库相结合,就能够为不同的用户划分了不同的两个权限,一是版主权限,二是普通用户权限。
其三、是Announce (帖子数据库) ,其中存放所发送帖子的ID、题目、作者、连接地址、子帖号、父帖号、帖子的内容、长度、所在的层次,以及所在版面等信息,在这里通过是否有子帖、是否有父帖、父帖的个数、所在的层次等项建立一个帖子的二级树状结构。为了代码的维护以及系统实现的容易性,只采用了二级结构,即只有父帖才能有回帖,回帖下面不能再有回帖,一组帖子中只能有一个父帖,但可以有多个子帖。同时为了能够显示该帖子的影响程度,可加上一个点击数一项,表示该帖子被查看过的次数。此外,为了能够把大家都感兴趣的话题集中起来,也就是要加上一个精华区,这样必然要有一个。
3.7条件
在整个BBS 系统的设计过程中,WEB 数据库访问技术是至关重要的,它完全影响着开发工具的选择、服务器端脚本的选择、数据库的选择,以及执行速度、安全性等多方面因素,而实现WEB 数据库访问的方法多种多样。
3.8测试计划
实现目标:
⑴没有注册的用户能够在登录时自动注册,并给出友好提示。
⑵帖子列表支持分页显示,使得可以轻松查看所有帖子。
⑶帖子拥有点击统计,更方便了解热点话题。
⑷站长版面管理实现WEB在线编辑,管理工作更加轻松随意。
⑸超强帖子查询功能。根据您感兴趣的内容快速获得信息,可对帖子按主题和发言人姓名按版面进行查询。其中,主题查询实施模糊查询方法。
3.9尚未解决的问题
当初现帐号,密码等通常的错误时,用户可以重新输入信息,即可解决,或是重新启动客户端,当出现无法连接数据库或者是查询中的错误,通常系统管理员重新启动服务即可解决,由于数据库的连接错误是全局的,所以重新启动服务是最佳的操作。
参考网站
百度:http://www.baidu.com
CSDN:http://www.csdn.net
乐社区:http://bbs.lenovomobile.com
水木清华:http://www.smth.edu.cn
参考文献
《软件建模》 曹静主编
《东北大学本科生毕业设计》作者不详
《Java数据库连接池毕业设计》武汉软件工程职业学院 计算机应用工程系0701 孟德军
《武汉软件工程职业学院毕业论文基本规范》下载本文