BBS论坛设计论文(完整版!)

BBS论坛设计论文(完整版!)
BBS论坛设计论文(完整版!)

摘要

当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在结合JAVA和S.S.H 技术之下开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。

论坛在Struts+Hibernate+Spring扩展Struts框架的基础上,用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库采用免费,小巧,易用的mysql数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。

本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

关键词:BBS ,S.S.H(Struts ,Hibernate ,Spring),JAVA , MySQL ,JSP

Abstract

Society nowadays just be placed in the network for ages , the information-based big tide rolls up the word , the network is making widely available to open in the our country with the unprecedented speed . In order to facilitate the teachers and students information the exchange, in unified JAVA and S.S.H under the server technology has developed this quick truncation, the contact surface friendly teachers and students alternating-current system.realized a function relatively complete forum system, the net friend has been possible freely to propose the question as well as helped other people to solve the problem, or exchange experience.

This BBS prepares to expand the Struts frame in Struts + Hibernate + Spring in the foundation , carries on the development with now the mainstream website development technology ----JSP language . This website will use the B/S system structure , the people may visit the teching website through the browser the main page . This make sure that the guarantee server is secure . The database uses free , exquisite , easy-using , MYSQL database . This forum function is complete, may freely express own viewpoint in here and express the opinion to the forum subject, we also may promptly solve to net friend's question, gain to the oneself useful knowledge. This forum also has some special functions, like the on-line personnel demonstrates, the formidable search function. This website strictly carries on the development according to the software project development flow , regarding the website development feasibility analysis , the demand analysis , the outline design , the detailed design as well as all has the detailed

elaboration and the realization process to the website test and the maintenance .

Keywords: BBS ,Struts ,Hibernate ,Spring ,JAVA ,MySQL ,JSP

目录

摘要 (Ⅰ)

Abstract (Ⅱ)

目录 (Ⅲ)

第一章系统概述 (1)

1.1总体概述 (1)

1.2开发背景 (2)

1.3开发目的 (3)

第二章系统分析 (4)

2.1技术可行性分析 (4)

2.1.1开发语言综述 (4)

2.1.2 MySQL数据库的选用 (5)

2.1.3 S.S.H框架优点 (6)

2.1.4系统层次设计 (9)

2.1.5 技术可行性综述 (10)

2.2时间可行性(项目开发计划) (10)

2.3系统需求分析 (10)

2.3.1 系统开发运行环境 (10)

2.3.2业务描述 (11)

2.3.3 系统功能概述 (12)

2.3.4 数据流程 (12)

2.4系统总体结构分析结论 (15)

第三章系统设计 (16)

3.1数据库设计 (16)

3.1.1概念模型设计(E-R图) (16)

3.1.2数据库表及关系建立 (18)

3.1.3详细数据库结构设计 (18)

3.2系统概要设计 (23)

3.2.1功能模块设计 (23)

3.2.2系统界面设计 (26)

3.2.3系统的组件设计 (28)

第四章系统的详细设计与实现 (31)

4.1系统框架实现 (31)

4.1.1底层数据库的建立 (31)

4.1.2持久化层的建立(hibernate) (32)

4.1.3业务逻辑层的建立 (33)

4.1.4表示层的建立 (36)

4.2系统功能模块实现 (36)

4.2.1会员模块实现 (36)

4.2.2帖子模块实现 (39)

4.2.3后台管理模块实现 (42)

4.3系统设计总结 (44)

第五章系统的调试与测试 (45)

5.1测试概述 (45)

5.1.1软件测试的目的 (45)

5.1.2软件测试的任务 (45)

5.1.3测试环境 (46)

5.2单元测试 (46)

5.2.1黑盒测试 (46)

5.2.2白盒测试 (47)

5.2.3模块接口测试 (48)

5.3集成测试 (50)

5.3.1自顶向下集成 (50)

5.3.2确认测试标准 (51)

第六章结论 (52)

参考文献 (53)

致谢 (54)

附录A 英文文献 (55)

附录B 翻译 (68)

第 1 章系统概述

1.1总体概述

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间, 影响和改变着我们的生活。

1.2开发背景

1978年在美国芝加哥开发出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系统。之后随着苹果机的问世,开发出基于苹果机的Bulletin Board System和大众信息系统(Peoples Message System)2种BBS系统。1981年IBM个人计算机诞生时,并没有自己的BBS系统。直到1982年,Buss Lane 才用Basic语言为IBM个人计算机编写了一个原型程序。其后经过几番增修,终于在1983年通过Capital PC User Group(CPCUG)的Communication Special Interest Group会员的努力,改写出了个人计算机系统的BBS。经Thomas Mach整理后,终于完成了个人计算机的第1版BBS系统——RBBS-PC。这套BBS系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。

大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为2种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余BBS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。一般BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽

带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS 将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。

而国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式,这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展,

于是在这种情况下,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

1.3开发目的

综上所述,本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!

第 2 章系统分析

2.1技术可行性分析

2.1.1 开发语言综述

本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点

1.简化结构:J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java 编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。

EJB组件使编写应用程序更为简单。尽管EJB体系结构复杂,但应用程序开发人员一般都必再编写访问系统服务的代码,EJB容器会实现系统级的服务,例如,事务、安全性等。

另外,J2EE还支持异构环境。基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。

2. 提高开发效率:由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。例如:图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面和EJB由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。

3.可移植性强:除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。

4.重用性好:由于在EJB模型中,各个软件组件都是严格分离的,因此,可以

从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。

5.易于维护:基于组件的设计简化了应用程序的维护。由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。

6.可伸缩性:企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。

7.被广泛接受:主要的IT供应用商都采纳EJB体系结构,不同供应商的产品只要符合EJB体系结构,就都是可互操作的。

2.1.2 MySQL数据库的选用

MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任

MySQL具有以下优点:

1、首先是速度。对于MySQL来说,速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL 的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL将有可能一直保持速度的优势。

2、MySQL更流行,流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。

3、MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows 应用程序运行(在NT/Win2000/WinXP下,是一个服务),在Windows运行中,MySQL更加的稳定。

4、MySQL使用了线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

5、MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。

6、MySQL在权限系统上更为完善。MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限。MySQL还允许你指定基于主机的权限。

7、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再仅仅成为劣势。相反,因为MySQL保留无事务的表类型。这就为用户提供了更多的选择。

8、MySQL的MERGE表提供了一个独特管理多个表的方法。

9、MySQL的myisampack可以对只读表进行压缩,此后仍然可以直接访问该表中的行。

2.1.3 S.S.H框架的优点

S.S.H框架是J2EE应用中struts+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,

它由以下3个框架构成:

1.Struts框架

Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。

图2.1 S truts框架工作流程

2.Spring框架

Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案。

Spring框架由以下7个部分组成

图2.2 Spring框架构成

3.Hibernate框架

Hibernate 是一个开放源码的 ORM 持久层框架。作为优秀的持久层框架实现,Hibernate 框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。

图2.3 Hibernate框架

2.1.4 系统层次设计

系统很据S.S.H框架的特点,决定使用四层结构,这样做的优点是

(1)可以分层开发,访问数据库与业务逻辑实现能够分开。

(2)提高代码的复用

图2.4 LeafBBS系统的分层结构

2.1.5 技术可行性综述

综上所述,这些成熟的框架和优秀的设计思想,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供了坚实基础。

2.2时间可行性(项目开发计划)

本系统的难点在于三大框架的结合使用,但目前有很多优秀的书籍可供参阅,且参加过类似项目的开发,预计本系统在规定时间内,基本能够完成.

开发计划如下:

2007.01.01-03.30 调研

2007.04.31-04.13 资料查阅

2007.04.16-04.20 方案设计

2007.04.02-05.18 编写程序

2007.05.07-05.18 撰写论文

2.3 系统需求分析

2.3.1 系统开发运行环境

鉴于系统的开发语言和数据库,采用如下的开发环境

开发环境: Windows 2000NT TomCat6.0 JDK1.5

硬件实现:PentiumⅣ2.4G 1G内存 80G硬盘

开发语言: Java

数据库: MySQL

开发工具: MyEclipse5.1

预期成果:一个可扩展的基于MVC模式的 BBS论坛

2.3.2 业务描述

对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等, 系统的用例图如下:

图2.5 系统用例图

2.3.3 系统功能概述

本系统是一套网上交流的BBS软件,根据用户的需要和实际的管理条件,应由用户功能实现,帖子功能实现和后台管理等几个模块所构成,用户可以对一些数据进行查找和修改,并且注册的用户可以对帖子进行特定的操作,而管理员可以对用户和帖子进行相关的管理.

鉴于本系统的性质,系统应该实现以下功能.

1.用户功能实现

(1).用户的登录

(2).用户的注册

(3).用户的查找

(4).用户资料的修改

2.帖子功能实现

(1).帖子的发表

(2).帖子的回复

(3).帖子的查找

3.后台管理

(1).用户的管理

(2).帖子的管理

(3).论坛信息的管理

(4).图片的管理

2.3.4 数据流程

本系统是为了提供给广大用户一个网上交流的平台,所以论坛的流程是以用户为中心进行的.

数据流图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数

几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流图具有以下两个特性:

(1)抽象性:表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理与存储。

(2)概括性:表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。

数据流图由以下四种基本元素组成,既外部实体、数据流、处理(功能)、数据存储等,数据流图中所用的符号如下:

外部实体处理数据流数据存储

LeafBBS论坛系统的数据流程图如下

说明:⑴——访问信息,⑵⑶⑽⑾——用户信息,⑷——发表帖子信息,⑸更新帖子信息,⑹搜索信息

⑺——获取帖子信息,⑻回复信息,⑼搜索用户,⑿更新用户信息,⒀获取用户资料

图2.6 数据流程图

2.4系统总体结构分析结论

通过对系统框架及数据库的选择,和总体的需求分析,完成了前期对系统模块的划分,数据的流程,以及一些可行性的分析.在此基础上,可以系统的数据库和功能模块进行概要设计.

相关主题
相关文档
最新文档