通用BBS论坛系统的设计与实现Word格式.docx
《通用BBS论坛系统的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《通用BBS论坛系统的设计与实现Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。
输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。
若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。
(二)、用户找回密码功能
在有些时候,我们可能会忘记登录密码,这时就用到了密码找回功能,通过正确的回答当初注册时的一些信息即可取回密码。
(三)、用户帖子的浏览
当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,
1、帖子的总览
在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:
主题、作者和时间。
鼠标单击主题便进入了下一页面——该帖的详细内容页面。
2、查看特定帖的详细信息
详细内容页面主要包含了该帖的详细内容和他人对此帖的回复,点击“我要回复”便可回复此贴。
(四)、用户帖子的发布/修改/删除/回复功能
1、帖子的发布
登陆成功进入主题页面后,点击“发表新的主题文章”按钮后,便可进入发表帖子的界面。
在该页面中填写完信息,点击“发送新的主题”,点击“我要回复”按钮便可对该贴进行回复,如要想对其他回复此贴的人进行回复,可以点击回复人后面的“回复XX楼”按钮对其进行回复。
2、帖子的删除
在主题帖子页面中,每幅帖子的最左面都有一个
删除按钮,点击此按钮便可删除你所发表的帖子。
每个用户(除管理员外)只可删除自己的帖子。
(五)、管理员对帖子的查看/发表/删除功能
1、管理员查看或发表帖子
2、管理员删除帖子
综上,得到的系统用例图如图2.1所示。
图2.1系统用例图
第3章总体设计
3.1系统框架
图3.1功能结构图
发帖回帖流程图是一种表明用户发帖回帖过程的流程图,它可以帮助分析人员找出流程中的不合理回路。
下面图3.2就用户发帖回帖流程图。
图3.2用户发帖回帖流程图
3.2数据库设计
数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库的设计通常是以一个已经存在的数据库管理系统为基础的。
通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图3.3所示。
图3.3通用BBS论坛ER图
E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。
本系统数据库使用SQLServer2000,包含以下4个表:
用户表(student)、回复表(reply)、讨论表(discuss)。
下面分别详细介绍以上各表:
表3.1用户表(student)
字段名称
数据类型
长度
是否为空
主外键
说明
id
int
11
否
主键
编码
username
varchar
20
用户姓名
password
密码
sex
8
性别
age
4
年龄
birth
生日
telephone
12
电话
email
40
电邮
表3.2回复表(reply)
name
50
姓名
content
内容
time
时间
reply
回复
表3.3讨论表(discuss)
id
外键
subject
60
题目
655535
time
第4章详细设计与实现
详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。
在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。
该系统的设计基于以下几个原则:
1.标准化;
2.模块化;
3.先进性;
4.安全性;
5.交互性。
4.1登录页面
<
%
Stringusername=request.getParameter("
username"
);
//参数传递,用户名
Stringpassword=request.getParameter("
password"
//参数传递,密码
PreparedStatementpstmt=null;
//数据库表达式
sql="
select*fromStudentwhereusername=?
andpassword=?
"
;
//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);
password);
userIP"
request.getRemoteAddr());
enter"
"
true"
//登录成功主题页面
response.sendRedirect("
MainForm.jsp"
}else
login.html"
//登陆失败转向登录页面
%>
4.2注册新会员
<
Stringsex=request.getParameter("
sex"
Stringage=request.getParameter("
age"
Stringyear=request.getParameter("
year"
Stringmonth=request.getParameter("
month"
Stringday=request.getParameter("
day"
Stringtelephone=request.getParameter("
telephone"
Stringemail=request.getParameter("
email"
Stringmsg=null;
username=convert(username);
select*fromstudentwhereusername='
+username+"
'
rs=stm.executeQuery(sql);
//查询数据库
if(!
rs.next()){//如果不存在
sex=convert(sex);
age=convert(age);
Stringbirth;
birth=year+"
年"
+month+"
月"
+day+"
日"
insertintostudent(username,password,sex,birth,age,telephone,email)values('
+username+"
'
+password+"
+sex+"
+birth+"
+age+"
+telephone+"
+email+"
)"
stm.executeUpdate(sql);
//插入数据库中
msg="
恭喜你,已注册成功!
}else{//如果注册用户已存在
你所注册的用户已经存在,请你重新注册!
out.println("
center>
fontcolor=greensize=5>
提示信息:
inputtype=buttonvalue=回上一页onclick=history.back();
>
}
第5章系统测试
为了保证测试的质量,将测试过程分成几个阶段,即:
代码审查、单元测试、集成测试、确认测试和系统测试。
(1)单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。
(2)集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。
如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;
把子功能组合起来可能不产生预期的主功能;
个别看起来是可以接受的误差可能积累到不能接受的程度;
全程数据结构可能有错误等。
(3)确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。
经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
(4)系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。
包括恢复测试、安全测试、强度测试和性能测试等。
单独对系统的测试主要从以下几方面入手:
①功能测试:
测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。
功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
②强度测试及性能测试:
测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。
结论
我所选题目是“通用BBS论坛系统”。
在老师辛勤指导的基础上,经过自己不断的努力,和同学们的帮助,尽管辛苦,最终“通用BBS论坛系统”还是按时完成了。
通用BBS论坛管理系统在不断的设计更改过程中,逐渐的成熟。
在设计的过程中参考了一些设计模式,使得该系统更加完善。
当然该系统也存在很多不足的地方,比如用户的权限过于简单,安全性低,希望在今后的学习中,逐步的进行改进。
通过这次设计,加深了我对jsp的认识,体会到了一些平时课堂学习所不能领会的内容,加强了动手能力,收获良多。
对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报。
参考文献
[1]张海藩.软件工程[M].北京:
清华大学出版社.2009
[2]邱加永.JSP基础与案例开发详解[M].北京:
[3]庞永庆.JavaScript网页编程从入门到精通[M].北京:
科学出版社.2008
[4]张金霞.HTML网页设计参考手册[M].北京:
清华大学出版社社.2006
[5]徐明华.STRUTS基础与案例开发详解[M].北京:
[6]王鹏.零基础学Java[M].北京:
机械工业出版社.2008
[7]刘威葳.JSP应用开发详解[M].北京:
电子工业出版社.2002
[8]武延军.黄飞跃.精通JSP编程技术[M].北京:
人民邮电出版社.2001
[9]柏亚军.JSP编程基础及应用实例集锦[M].北京: