基于Web的BBS系统开发报告.docx

上传人:b****4 文档编号:5512945 上传时间:2022-12-17 格式:DOCX 页数:38 大小:1.34MB
下载 相关 举报
基于Web的BBS系统开发报告.docx_第1页
第1页 / 共38页
基于Web的BBS系统开发报告.docx_第2页
第2页 / 共38页
基于Web的BBS系统开发报告.docx_第3页
第3页 / 共38页
基于Web的BBS系统开发报告.docx_第4页
第4页 / 共38页
基于Web的BBS系统开发报告.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于Web的BBS系统开发报告.docx

《基于Web的BBS系统开发报告.docx》由会员分享,可在线阅读,更多相关《基于Web的BBS系统开发报告.docx(38页珍藏版)》请在冰豆网上搜索。

基于Web的BBS系统开发报告.docx

基于Web的BBS系统开发报告

 

实验第四小组

姓名

学号

角色

备注

组长

史孟玲

079094302

管理者

制定软件开发计划、系统定义、分配人员任务

组员

方卫卫

079094288

开发人员

负责系统的程序开发

组员

黄德正

079094292

分析人员

需求分析

组员

黄锐

079094293

测试人员

测试软件性能

前言

随着网络科技的不断发展,人们与网络的联系也越来越紧密,而网络也在无形之中改变着我们的生活,我们从过去那种万事恭亲的生活方式中仿佛一下子得到了解脱。

看如今我们的生活,买东西要上网;聊天要上网;查阅资料要上网;通信要上网;朋友团聚要上网;甚至找个人生伴侣也要上网。

暂且抛开它的负面影响,就单单在改变人们生活习惯,缩短时空距离,增进交流等方面网络所做出的贡献也使不可磨灭的,甚至于现在网络技术的发展状况也成了计算机科技的发展一个重要衡量标准了。

互联网的浪潮席卷了我们生活的每一寸空间,从全球咨询,到奇闻异事;从时事要闻到衣食住行;只有我们想不到没有在网络上找不到,怪不得现在逢人必说的一句话:

今天你上网了吗?

由此可见网络给我们工作、生活、学习所带来的翻天覆地的变化。

网络一个很重要的方面就是使信息交流多样化,多层次化。

我们不仅能在这里获取自己所急需得东西,更能和网路上的朋友来就某一方面来进行探讨、研究、交流。

所以互联网更为我们提供了我们一个互动式的平台。

有句话叫,没有比脚更长的路,没有比人更高的山。

现在我们要说,没有比互联网更广阔的空间。

网络可以使我们与世界走得更近,打破国界隔阂,打破了文化樊篱。

无论在亚西亚,还是在欧罗巴;无论在美利坚,还是在古埃及。

同时网络可以使我们开阔视野,更新观念,取长补短,激发创造力

BBS论坛系统是一个多人参与、多向交流的网络大论坛,它将世界上各个角落的具有相同兴趣、相同需求的人联系了起来,交流自己的看法,分享有益的经验,或为有困难的人提供帮助。

通过BBS系统可随时取得各种最新的信息,并且随着社会的不断发展更多的人开始注意它,校园里有校园BBS,用它来开阔校园空间,给同学门自己发挥的天地;公司有BSS,通过它让更多人认识自己,认识自己的产品,从而创造出更多的效益;政府也有BBS,有了它能了解民意,体察民情,从而更好的为人民服务。

国家也有BBS,有了它能加强与世界各国的联系,来增进彼此之间的联系,促进经济社会的发展。

所以我选择了“基于Web的BBS系统设计与实现”作为毕业设计课题,通过对BBS的设计和实现,为大家提供一个了解和交流校园生活的平台。

 

基于Web的BBS系统开发计划

关键词

BBS、ASP、ADO、Access2003、Html、JavaScript、VBScript、RegExp

摘要

本文是一篇讨论基于Web的数据库管理的本科毕业论文,它详细地讲述了开发一个基于Web的通用BBS(BullitinBoardSystem)网站系统所用到的技术和方法。

其中运用了ASP技术(AvtiveServerPage)、ADO技术(ActiveXDataObject)、Access2003数据库技术、RegExp技术(RegularExpression正则表达式)、网页制作Html、VBScript及JavaScript脚本语言技术等等,并从几个不同的方面来对上述技术的实现方法进行了讨论。

一、技术支持

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。

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

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

本文讨论的是一个基于Web的通用BBS网站,它具有BBS网站应该具有的所有功能。

二、系统定义

2.1系统功能定义

BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,注册登录本系统,在这个平台上发表帖子、阅读、回复、词条搜索、更改信息、管理帖子和个人信息等等。

此类系统通常有以下四种类型的操作用户:

匿名用户、普通用户、版面管理员、超级管理员。

每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。

与之相应,此类系统通常应具有以下功能:

用户注册、用户登录、发表帖子、阅读帖子、回复帖子、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。

这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。

早期的软件系统多以此作为首选设计标准。

2.1.1基于Web的通用BBS系统技术可行性分析

B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。

B/S结构,主要是利用了成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

将应用程序分成好几个离散逻辑组件,就是多层式结构(N-Tier)应用程序。

最常见的选择是分成三个部分:

表示层、事务逻辑层和数据层(3-Tier),不过也有其它的组合。

多层式结构应用程序,在一开始是解决某些与传统客户端/服务器(主从式)应用程序相关的问题,但是随着Web的出现,此结构已经成为主导新程序之开发的结构。

下面就是3-Tier结构各层功能以及经常采用的技术作个简介:

表示层主要运行于客户端浏览器,采用Script(脚本)语言编写。

HTML、JavaScript、VBScript是此类应用系统中展示层最常用的脚本编制语言,结合CCS以及ActiveX技术,能设计出交互相当灵活功能又相当强大的客户端网页。

事务逻辑层设计通常有三个选择:

ASP网页、COM或COM+组件、DBMS中所执行的预存程序。

将程序代码的一部分,建立成执行于数据库管理系统(DBMS)中的预存程序,使数据与程序代码储存在相同的位置,有助于最佳化执行效率,但是,预存程序都依赖于特定的数据库系统,在编写和侦错方面都相当复杂,只适宜于大型的商业应用系统。

以COM对象的方式,编写中间层(MiddleTier)事务逻辑,可以使用全功能的语言,来产生经过编译的执行程序,执行效率也相当高,此外,在COM对象中包装事务逻辑,还可以清楚地将此程序代码与网页内含的展示程序代码分隔,这样可以使应用程序更易于维护,但是,COM对象的部署也有一定的麻烦,新编写的组件对象,只有在服务器重新启动后才能被应用程序调用。

用ASP网页设计事务逻辑相对来说比较简单,但是,ASP网页采用脚本语言来编写事务逻辑,比如VBScript,程序代码只有在执行时才被翻译,这样会降低执行效能,此外,ASP网页中的程序代码也是难以维护的,因为事务逻辑程序代码与建立使用者接口的展示程序代码彼此混杂在一起。

数据层较为灵活,视系统规模可选择Sybase、Oracle、MySQL、SQLserver或者Access。

综上所述,结合本系统实际需要,本BBS系统采用B/S结构,使用微软公司的技术解决方案。

开发环境采用微软的Dreamwear8+Firework8。

引入WindowsDNA概念,将WindowsDNA应用到系统开发中。

采用3-Tier软件结构:

表示层采用HTML、JavaScript或VBScript结合CSS、ActiveX技术来编写;事务逻辑层,考虑到本系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的WEB平台,特别是个人用户想在一些免费主页空间搭建自已的论坛,而这类免费主页空间通常只支持ASP来处理服务器端数据或数据库,另外,本系统事务逻辑层设计采用ASP网页;至于数据层,本系统采用最基本的Access2003数据库系统,视需要,系统作较小的改动就可以移植到其它大型数据库系统。

 

基于Web的BBS系统需求分析报告

一、系统的综合要求

1、系统界面要求

系统的初始界面假定用户是匿名登录,用户可以通过初始界面提供的统一的用户登录接口,注册或登录进入各自的操作界面。

2、系统功能要求

本系统应具有通常BBS网站应该具有的所有功能,包括用户注册、用户登录、匿名登录、发表帖子、阅读帖子、回复别人的帖子、分页查找、主题查找、作者查找、个人资料修改、在线人数统计等,此外,用户在发表帖子时,能输入带格式文本,用户在发表或回复一篇帖子时,能获得相应的积分,其积分能反应此用户在本论坛的活跃程度。

3、各级别用户功能

本系统操作用户按不同级别依次可分为:

匿名用户、普通会员用户、版主会员用户、超级用户。

高级别的用户可以继承低级别用户的公用功能。

同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。

匿名用户功能要求---通用功能:

查看各版面文章、查看系统版主列表、查看系统会员列表;私有功能:

注册为系统正式会员、会员找回遗失密码、登录为正式会员。

普通会员功能要求---通用功能:

发表或回复帖子、个人资料维护、退出或重新以匿名身分登录;私有功能:

申请为版面版主、注销会员资格。

版主会员功能要求---通用功能:

帖子管理、张贴公告、友情链接管理

超级用户功能要求---通用功能:

论坛基本设定、版面管理、版主会员管理、普通会员管理

4、系统性能要求

对于帖子查看、发表帖子以及回复帖子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。

5、安全性保密性可靠性等其它方面的要求

高级别用户的所有管理操作要有针对低级别用户的身分识别功能,以防止低级别的用户越权执行高级别用户才具有的操作功能。

二、系统的数据要求

根据系统的功能需求,本系统管理和维护以下几种数据元素(实体Entity):

会员、管理员、论坛、论坛版面、帖子、友情链接、日志。

1、会员实体

会员用户包含这样一些基本属性:

用户名、用户密码、用户密码提示问题、用户密码提示问题答案、用户EMAIL、用户真名、性别、出生年月日、主页URL、联系方式、积分。

其中,用户名为用户唯一标志,不允许重名。

积分为此用户在本论坛发表文章以及文章被其它用户关注程度所累积的分数,作为衡量此用户在本论坛活跃程度的一个标志。

2、管理员

管理员实际上派生于会员用户,意味着只有会员用户才有资格申请本论坛各版面的管理权限,因此,他除了包含会员用户所有的基本属性以外,还应包含以下几属性:

申请管理版面、申请理由、申请被批准状态。

一个管理员可以管理几个版面,一个版面可以由几个管理员管理,所以,应该有一个管理员序号来唯一标志这个实体。

3、论坛

论坛基本信息比较稳定,只能为超级管理员所维护,此实体包括以下一些基本属性:

论坛名称、论坛版权信息、论坛公告、公告内容。

4、版面

论坛版面包含这样一些基本属性:

中文名称、英文名称、版面简介、版面公告。

此外,论坛版面实体与管理员实体有联系,与帖子实体也有联系。

5、帖子

帖子包含以下一些基本属性:

所属版面,作者,标题,帖子类型,所属主帖,回复数量,点击次数,标题图像,帖子内容,帖子书写时间,最后一次更新帖子时间。

帖子包括两种类型:

主贴和回复。

帖子序号为此帖子唯一标志。

6、友情链接

友情链接实体包含以下一些基本属性:

添加本链接管理员,链接名,链接URL,链接说明。

一个管理员可以添加多条友情链接。

除超级管理员外,已添加的友情链接只能由添加作者修改或删除。

链接名,链接URL不可重复,可作主键。

7、日志

日志包括以下一些基本属性:

登录会员,登录IP,登录时间,退出时间。

三、系统的逻辑模型

 

*系统逻辑模型数据流简要说明:

1、匿名用户与信息处理系统之间

系统的输入数据流:

注册资料、登录数据、找回密码数据

系统的输出数据流:

用户遗失密码、某篇帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表

加工逻辑:

注册加工、登录加工、用户找回密码加工

2、会员用户与信息处理系统之间

系统的输入数据流:

版主资格申请、注册资料修改、发表帖子、回复帖子

系统的输出数据流:

某帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表

加工逻辑:

版主资格申请、注册资料修改、发表帖子,回复帖子

3、版主与信息处理系统之间

系统的输入数据流:

注册资料修改、发表帖子、回复帖子、友情链接维护、发布公告、管理版面帖子维护

系统的输出数据流:

某帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表

加工逻辑:

注册资料修改、发表帖子、回复帖子、友情链接维护、发布公告、管理版面帖子维护

4、超级会员与信息处理系统之间

系统的输入数据流:

注册资料修改、发表帖子、回复帖子、友情链接维护、添加版面、论坛基本信息维护、论坛所有帖子维护、版主申请批复

系统的输出数据流:

某帖子内容、会员列表、版主列表、版面列表、人气帖子列表、热门话题列表

加工逻辑:

注册资料修改、发表帖子、回复帖子、友情链接维护、添加版面、论坛基本信息维护、论坛所有帖子维护、版主申请批复

四、系统实体联系

本系统实体之间主要有以下几类联系(Relation):

用户与论坛版面之间存在管理联系(M:

N)、用户与帖子之间(1:

M)、用户与友情链接(1:

M)、用户与日志(1:

M)、论版面与帖子(1:

M)基本实体-联系图(ER图)如下:

(图转下页)

 

基于Web的BBS系统设计报告

一、系统概要设计

1、数据结构的设计

参照用户与版面之间管理关系ER图,可以将用户、版面转换成三个关系模式,设计如下:

论坛版面关系模式(版面ID#,版面中文名,版面英文名,版面简介)

用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户联系方式,用户积分)

管理员关系模式(管理员ID#,用户名#,申请管理版面ID#,申请管理理由,申请被批示状态)

参照用户与帖子之间ER图,可以将其转换成二个关系模式,设计如下:

用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户联系方式,用户积分)

帖子关系模式(帖子ID#,标题,帖子类型,主帖子ID,回复数量,点击次数,标题图像,帖子内容,帖子书写时间)

按照上述转换方法,再结合系统一些功能以及性能方面的需要,系统所有关系模式设计如下:

论坛基本信息(论坛信息ID#,论坛名,版权说明,论坛公告标题,公告内容,最后一次修改时间)

论坛版面信息(版面ID#,版面中文名,版面英文名,版面简介)

用户基本信息(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户联系方式,用户积分)

管理员基本信息(管理员ID#,用户名#,申请管理版面ID#,申请管理理由,申请被批示状态)

帖子基本信息(帖子ID#,版面ID#,用户名#,标题,帖子类型,主帖子ID,回复数量,点击次数,标题图像,帖子内容,帖子书写时间,最后一次更新帖子时间)

友情链接基本信息(链接ID#,用户名#,链接名,链接URL,链接说明)

用户访问日志信息(日志ID#,用户名#,用户登录IP,登录时间,退出时间)

*注:

第一个带“#”标志的属性为本关系模式的主键,其它为外键

二、系统结构的设计

系统主页面自动进行身份判别,按照访问者的身份自动进入其相应的操作界面,其流程如下所示:

 

三、基于UML建模

1、语义规则:

用例模型(usecasesview)(用例视图)的基本组成部件是用例(usecase)、角色(actor)和系统(system)。

用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。

角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。

系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。

在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:

外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。

UML:

是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。

用例(usecase):

参与者(actor):

2、UML模型

四、系统详细设计

基于WEB的通用BBS系统其系统定义部分采用面对对象的系统分析方法,并结合传统的结构化分析方化,设计出其系统模型,如果采用面向对象的程序设计语言开发系统,则可以很方便地从系统分析阶段平滑地过渡到设计阶段。

但是,本系统采用ASP技术,我们知道ASP不支持继承和强类型转换等面向对象程序设计所必需的功能,只能采用一定的技术措施,用传统的结构型程序设计方式实现诸如继承等这类功能。

下面就部分系统实现做一下简要说明:

1.系统主页面Main.asp

这是BBS网站的HomePage,程序首先进行用户身份判断。

本系统用户身份信息经登录后保存在SESSION对象的USERNAME和ADMINBOARD两个变量里。

匿名用户(既Guest)这两个变量为空或没有定义;普通用户USERNAME变量有用户在本系统注册的会员昵称,但其ADMINBOARD变量没有定义或为空;版主用户其ADMINBOARD变量保存有他管理版面的ID;如果ADMINBOARD变量为“0”则为超级会员。

依据程序对用户所做的判断,插入相应用户的功能操作菜单。

这就实现了不同层次对象的同一方法的不同功能。

譬如Guest:

:

main.asp载入的功能菜单为genhead.asp,Super:

:

main.asp载入的功能菜单则为superhead.asp。

注意:

功能菜单文件其实就是普通的HTML文件,按照各自所属的操作对象列示其相应的功能链接。

2.各级别用户私有功能的实现方法

私有功能是不能为比其级别高的用户所继承的功能。

因此,私有功能ASP网页应进行具体某个级别身份的识别,非这个级别层次的用户则被拒绝访问。

3.各级别用户公有功能的实现方法

公有功能是可以为比其级别高的用户所继承的功能。

因此,公有功能ASP网页只进行比其级别低的用户身份的识别,如果此用户级别低则拒绝继续访问。

此外,高级别的用户可以进行功能重载,譬如,匿名用户只能查看本系统会员列表,但是,超级会员在查看的同时,还可以进行管理操作,如修改,删除等。

下面是所有公用功能的重载列表:

Guest:

:

useradmin.asp查看本论坛注册会员列表

Super:

:

useradmin.asp查看并管理本论坛注册会员列表

Guest:

:

adminorlist.asp查看本论坛版主列表

Super:

:

adminorlist.asp查看并管理本论坛版主列表

Adminor:

:

articleadmin.asp自已管理辖版面范围内的贴子维护

Super:

:

articleadmin.asp本论坛所有版面贴子维护

Adminor:

:

linkadmin.asp添加或维护自已曾添加的友情链接

Super:

:

linkadmin.asp维护所有友情链接列表

Adminor:

:

newpost.asp在自已管理版面发布公告

Super:

:

newpost.asp在任一版面发布公告

4.会员用户积分的计算模型

会员用户每提交一篇文章,可以积十分。

回复某篇文章,则可以积五分,同时原文作者积三分。

5.版主申请条件以及计算模型

版主申请条件:

为正式注册会员;一个会员最多管理二个版面;一个版面最多五个管理员。

计算机模型:

用户提出申请,超级用户审批。

审批完成前此会员不能再次就同一版面申请版主权限。

6.超文本信息输入

具有普通会员身份以上级别的用户,发表贴子或回复贴子时,可以在其贴子内插入诸如滚动文字,字体大小颜色不同的文字,以及超链接等等。

系统接受用户输入时对带格式文本应进行相应的编码(Encode),系统显示带超文本信息的贴子时则应进行相应的解码(Decode)。

 

软件实现测试与评估文档

一、实现方法

1、ASP网页数据库的连接

网页数据库的连接方法有两种,一种是DSN数据源,另一种是DSN-less方式,即不建立DSN连接数据。

我们考虑最简单的BBS系统应用环境,使用互联网上免费资源,通常互联网上免费主页空间只支持简单的ASP应用以及Access数据库应用,Access数据库通常要求放置在固定的虚拟目录位置,譬如:

[\db]目录位置,数据库的连接也只支持DSN-less方式,这也是自然的,既然是免费资源,总不能要求人家还特别帮你设置一个DSN数据源。

另外,BBS通常只作为Web应用的一部分,或者说作为你个人主页或商业网站提供的一个附加功能,这个时候,你的BBS论坛系统通常都安装在主页空间一个单独的目录下,我们假定为[\BSS]。

所有要进行数据库存取的ASP网页都要以DSN-less方式进行数据库连接,由此我们可以将执行数据库连接的ASP代码单独形成一个插入文件,通常插入文件都是以[.inc]作为扩展名,考虑到安全性的需要,防止用户直接输入文件名下载此插入文件,所以我们仍然以[.asp]作为插入文件的扩展名,比如,我们将一个用作数据读操作的数据库连接插入文件名命名为[dbconr.asp],下面就是其典型代码:

<%

'adModeUnknown0default

'adModeRead1

'adModeWrite2

'adModeReadWrite3

'adModeShareDenyRead4

'adModeShareDenyWrite8

'adModeShareExclusive12

'adModeShareDenyNone16

strDBPath=Server.MapPath("dbconr.asp")

strDBPath=replace(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1