通用BBS论坛系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。

网站以其独特的优势在信息化的过程中占有重要的一席。

为了方便信息的交流,在使用JAVA开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。

论坛用当今主流的网站开发技术jsp语言进行开发。

论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。

数据库采用免费,小巧,易用的mysql数据库。

该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。

该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。

本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。

本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!
关键词:BBS , JAVA , MySQL ,JSP
目录
第一章引言 (1)
第二章需求分析 (2)
第三章总体设计 (4)
第四章详细设计与实现 (9)
第五章系统测试 (12)
结论 (13)
参考文献 (14)
第一章引言
进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。

传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。

而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。

各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。

互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。

第二章需求分析
作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。

接下来,我将详细阐述一下这些功能。

(一)、用户登录和注册功能
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。

输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。

若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。

(二)、用户找回密码功能
在有些时候,我们可能会忘记登录密码,这时就用到了密码找回功能,通过正确的回答当初注册时的一些信息即可取回密码。

(三)、用户帖子的浏览
当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,
1、帖子的总览
在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:主题、作者和时间。

鼠标单击主题便进入了下一页面——该帖的详细内容页面。

2、查看特定帖的详细信息
详细内容页面主要包含了该帖的详细内容和他人对此帖的回复,点击“我要回复”便可回复此贴。

(四)、用户帖子的发布/修改/删除/回复功能
1、帖子的发布
登陆成功进入主题页面后,点击“发表新的主题文章”按钮后,便可进入发表帖子的界面。

在该页面中填写完信息,点击“发送新的主题”,点击“我要回复”按钮便可对该贴进行回复,如要想对其他回复此贴的人进行回复,可以点击回复人后面的“回复XX楼”按钮对其进行回复。

2、帖子的删除
在主题帖子页面中,每幅帖子的最左面都有一个删除按钮,点击此按钮便可删除你所发表的帖子。

每个用户(除管理员外)只可删除自己的帖子。

(五)、管理员对帖子的查看/发表/删除功能
1、管理员查看或发表帖子
2、管理员删除帖子
综上,得到的系统用例图如图2.1所示。

图2.1系统用例图
第三章
总体设计
3.1 系统框架
图3.1 功能结构图
BBS 系
角色管理 管理员
会员
用户
前台显示 后台管理
首页管理
个人信息管理
个人帖子管理
会员信息管理
会员帖子管理
修改密码
发布系统消息
修改个人信息
修改密码 发布帖子 修改帖子 删除帖 子 查看帖子
查看会员信息 删除会员信息
发帖回帖流程图是一种表明用户发帖回帖过程的流程图,它可以帮助分析人员找出流程中的不合理回路。

下面图3.2就用户发帖回帖流程图。

登陆系统论坛主页发帖模块 : 注册用户
输入用户名和密码
显示论坛分类,查看论坛详细文章
发表新文章;回复新帖
继续浏览文章
图3.2 用户发帖回帖流程图
3.2数据库设计
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

数据库的设计通常是以一个已经存在的数据库管理系统为基础的。

通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图3.3所示。

图3.3 通用BBS论坛ER图
E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。

本系统数据库使用SQL Server 2000,包含以下4个表:用户表(student)、回复表(reply)、讨论表(discuss)。

下面分别详细介绍以上各表:
表3.1 用户表(student)
字段名称数据类型长度是否为空主外键说明id int 11 否主键编码username varchar 20 否否用户姓名password varchar 20 否否密码sex varchar 8 否否性别age varchar 4 否否年龄birth varchar 20 否否生日telephone varchar 12 否否电话email varchar 40 否否电邮
表3.2回复表(reply)
字段名称数据类型长度是否为空主外键说明id int 4 否主键编码name varchar 50 否否姓名content varchar 50 否否内容time varchar 50 否否时间reply varchar 50 否否回复
表3.3 讨论表(discuss)
字段名称数据类型长度是否为空主外键说明name varchar 50 否主键姓名email varchar 40 否否电邮id int 4 否外键编码subject varchar 60 否否题目username varchar 20 否否用户姓名content varchar 655535 否否内容time varchar 40 否否时间
第四章详细设计与实现
详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。

在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。

该系统的设计基于以下几个原则:1.标准化;2.模块化;3.先进性;4.安全性;5.交互性。

4.1 登录页面
<%
String username = request.getParameter("username");//参数传递,用户名
String password = request.getParameter("password");//参数传递,密码
PreparedStatement pstmt = null;// 数据库表达式
sql = "select * from Student where username = ? and password= ?";
// SQL语句
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {//
request.getSession(true);//创建session
//保存登录用户到session中
session.putValue("username", username);
session.putValue("password", password);
session.putValue("userIP", request.getRemoteAddr());
session.putValue("enter", "true");
//登录成功主题页面
response.sendRedirect("MainForm.jsp");
} else
response.sendRedirect("login.html");//登陆失败转向登录页面
%>
4.2注册新会员
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String age = request.getParameter("age");
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");
String telephone = request.getParameter("telephone");
String email = request.getParameter("email");
String msg = null;
username = convert(username);
sql = "select * from student where username='" + username + "'";
rs = stm.executeQuery(sql); //查询数据库
if (!rs.next()) {//如果不存在
sex = convert(sex);
age = convert(age);
String birth;
birth = year + "年" + month + "月" + day + "日";
sql = "insert into student ( username, password, sex, birth,
age, telephone , email )values('"+ username+ "','"+ password + "','"+ sex+ "','" + birth + "','"+ age+ "','"+ telephone + "','"+ email + "')";
stm.executeUpdate(sql); //插入数据库中
msg = "恭喜你,已注册成功!";
response.sendRedirect("login.html");
} else {//如果注册用户已存在
msg = "你所注册的用户已经存在,请你重新注册!";
out.println("<center><font color=green size=5>提示信息:
out.println("<input type=button value=回上一页
onclick=history.back();>");
}
%>
第五章系统测试
为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。

(1)单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。

(2)集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。

如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。

(3)确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。

经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

(4)系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。

包括恢复测试、安全测试、强度测试和性能测试等。

单独对系统的测试主要从以下几方面入手:
①功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。

功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。

②强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。

经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。

结论
我所选题目是“通用BBS论坛系统”。

在老师辛勤指导的基础上,经过自己不断的努力,和同学们的帮助,尽管辛苦,最终“通用BBS论坛系统”还是按时完成了。

通用BBS 论坛管理系统在不断的设计更改过程中,逐渐的成熟。

在设计的过程中参考了一些设计模式,使得该系统更加完善。

当然该系统也存在很多不足的地方,比如用户的权限过于简单,安全性低,希望在今后的学习中,逐步的进行改进。

通过这次设计,加深了我对jsp的认识,体会到了一些平时课堂学习所不能领会的内容,加强了动手能力,收获良多。

对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报。

参考文献
[1] 张海藩.软件工程[M].北京:清华大学出版社.2009
[2] 邱加永.JSP基础与案例开发详解[M].北京:清华大学出版社.2009
[3] 庞永庆.JavaScript网页编程从入门到精通[M].北京:科学出版社.2008
[4] 张金霞.HTML网页设计参考手册[M].北京:清华大学出版社社.2006
[5] 徐明华.STRUTS基础与案例开发详解[M].北京:清华大学出版社.2009
[6] 王鹏.零基础学Java[M].北京:机械工业出版社.2008
[7] 刘威葳.JSP应用开发详解[M].北京:电子工业出版社.2002
[8] 武延军.黄飞跃. 精通JSP编程技术[M].北京:人民邮电出版社.2001
[9] 柏亚军.JSP编程基础及应用实例集锦[M].北京:人民邮电出版社.2001。

相关文档
最新文档