BBS论坛概要设计文档

更新时间:2024-02-26 07:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

BBS论坛概要设计说明书

目 录

第一章 引言 ................................................................. 2

1.1编写目的 ............................................................. 2

1.2背景 ................................................................. 2

1.3定义 ................................................................. 3

1.4参考资料 ............................................................. 3

第二章 总体设计(系统架构设计) .............................................. 4

2.1需求规定 ............................................................. 4

2.2运行环境 ............................................................. 4

2.3基本设计概念和处理流程 ................................................ 5

2.3.5总体架构设计2.4 系统结构(系统各个组件设计) ........................ 9

2.4 系统结构(系统各个组件设计) ........................................ 10

第三章 系统数据结构设计 ..................................................... 16

3.1数据库逻辑结构设计 ................................................... 16

3.2数据库物理结构设计 ................................................... 23

第一章 引言

1.1编写目的

本文档作为BBS的概要设计说明文档,用于与用户确定最终的目标,并成为协议文本的一部分,同时也是本系统设计人员的基础文档。

1.1.1 概要设计说明书目的

本概要设计说明书说明了BBS论坛系统设计的整体结构。

1.1.2 预期读者

本系统开发人员及维护人员。

1.2背景

BBS论坛,或者称为社区,是电子商务网站中一种常见功能,也是互联网上一种极为常见的互动交流服务。它为上网用户提供了也各自由的讨论区。通过论坛可以向用户提供开放性的分类专题讨论区服务,同时注册的用户可以根据需要在论坛上发表文章,交流技术经验,或者提出问题并表达自己的观点。不仅如此,上网的用户还可以在论坛中看到他人发表的文章,并且能够对该文章进行评论。

一般情况下,BBS按不同主题分为多个布告栏,其设立多是依据使用者的要求和喜好,但多具有信件交流、软件交流、信息发布等功能。

目前,大部分BBS由教育机构、研究机构或商业机构管理,大多有自己的拨入电话号码,用户只需电脑、调制解调器和电话线就可通过电话拨号登录BBS站点。

1.2.1 待开发软件系统的名称

BBS论坛系统

1.2.2 项目的任务提出者 1.2.3 项目的任务开发者 1.3定义

1.3.1 本文档中涉及的专业词汇

1、GB:中华人民共和国国家标准的英文缩写字母

2、构件:具有某种功能的可重用的软件模版单元,表示了系统中主要的计算元素和数据存储。 3、逻辑视图:描述支持系统的功能需求的视图。

4、开发视图:也称模块视图,主要侧重于软件模块的组织和管理描述。

1.3.2 名词说明

1、BBS:Bulletin Board Service 2、JSP(JavaServer Pages)

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易

3、Struts只是一个MVC框架(Framework)

它用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。

1.4参考资料

1、本软件项目规划依据标准为国家表准:GB856T——88; 2、技术参考资料

(1)J2EE项目实训Hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)

杨少波 等编著 清华大学出版社 2008 年5月

(2)J2EE项目实训Spring框架技术(21世纪高等学校实用软件工程教育规划教材)

杨少波 等编著 清华大学出版社 2008 年5月

(3)J2EE项目实训UML及设计模式(21世纪高等学校实用软件工程教育规划教材)

杨少波 等编著 清华大学出版社 2008 年5月

(4)J2EE项目实训Struts框架技术(21世纪高等学校实用软件工程教育规划教材)

杨少波 等编著 清华大学出版社 2008 年10月

第二章 总体设计(系统架构设计)

2.1需求规定 2.1.1输入输出要求

界面风格:要求整体界面美观,有清晰的层次感,布局简洁、合理。同时保证后台的管理页面和前台的服务页面保持风格的一致。

2.1.2时间要求

时间需求:在软件方面,响应时间,更新处理时间都比较快且迅速,系统响应时间不能超过20秒。

2.1.3灵活性要求

灵活性:当用户需求,如操作方式,运行环境,结果精度,数据结构等其他软件接口等发生变化时,设计的软件能做出适当调整,灵活性非常大。

2.2运行环境 2.2.1设备

1、主机类型如表2-1

表2-1 主机类型

类别 CPU 内存 硬盘 其他 服务器标准配置 Intel奔腾P4 2。0GHz以上 256MB,最好512MB以上 120G以上 无特殊要求 2、网络类型:百兆高速局域网 3、存贮器容量:大容量存贮器

4、其他特殊设备:网络打印机,复印机

2.2.2支撑软件

1、操作系统: Windows 2003

2、数据库管理系统:MySQL 以上版本数据库 3、其他支撑软件:J2SDK1.5及以上版本 4、应用服务器:Tomcat 5.0以上

2.3基本设计概念和处理流程 2.3.1系统概述

1、系统采用基于J2EE的轻量级B/S架构体系

BBS网上论坛系统采用B/S架构(浏览器/服务器)模式来实现。考虑到系统应用性、安全性、可扩展性与可维护性,决定采用基于J2EE的轻量级架构体系。其体系结构图如下所示:

2、为什么对本项目要应用轻量级的框架技术

轻量级容器的设计目标是为了能够避免如下所有这些麻烦事情,基于以下的各个优点,我们决定在本项目中采用轻量级的框架技术。

? 侵略性的API(代码依赖于EJB)

? 对容器的依赖(代码不能在EJB 容器之外工作) ? 只提供固定的一组功能,不具备配置能力 ? 启动时间长

? 部署过程取决于特定的产品,无法通用

2.3.2 系统架构示图

1、本论坛系统的整体架构设计为Struts +Spring +hibernate架构组成

对 DAO进行管理 相互集成 Struts(承担表示Spring(利用Hibernate(实现 层和控制层的角IoC进行各种数据访问和O/R 色) 对象的管理 ) Mapping)

(1)对于表示层

经验表明,最好的方法是选择已存在的并已得到证明了的Web应用框架,而不是自己去设计和开发新的框架。我们拥有多个可选择的框架,如Struts,WebWork和JSF等,在本项目中,我们选择采用Struts。 (2)EJB 和POJO都可以用来创建业务逻辑层

如果应用是分布式的,采用具有remote接口的EJB是一个好的选择;由于本系统是一个典型的不需要远程访问的Web应用,因此选用POJO,并充分利用Spring 框架的IoC和AoP的特性,将是实现业务逻辑层的更好选择。

(3)在持久层中由于需要利用关系型数据库实现数据的持续化,但在应用中可以存在多种方法可用来实现:

? JDBC:这是最为灵活的方法,然而,低级的JDBC难以使用,而且质量差的JDBC代码很难运转良

? EJB Entity beans:CMP的Entity bean是一种分离数据访问代码和处理ORM的昂贵的方法,它

是以应用服务器为中心的方法,即Entity bean不是将应用与某种数据库类型而是EJB容器约束在一起。

? O/R Mapping 框架:一个ORM框架采用以对象为中心的方法实现数据持续化,一个以对象为中心

的应用易于开发并具有高度的可移植性----在该领域中存在几个框架可用—JDO、Hibernate、TopLink以及iBATIS 和CocoBase等。在本项目中我们选用Hibernate。

2、架构示图 Struts表示Spring业务处Hibernate数 Struts控制理层 据访问层 层 (JSP和层 HTML) 前端控业务控制数据访数据访 制器类 类 问服务 问操作 业务业务 业务业务 接口 处理处理实体数据操数据连接持久实 基类 体类 类 类 作类 类 本系统采用了多层非分布式的构架,上图展示了系统的分层以及每一层中所采用的技术和对应的框架,并且各层将存在于同一个Web容器中。

3、该形式的总体架构设计的主要特点 (1)遵循Sun J2EE中两个主要的原则:“多层架构、松藕合”

由于采用分层的设计方式,各个模块功能相互独立封装,层与层之间关联少,保持松耦合连接,稳定性高,便于扩展和维护。

(2)本项目中的每一层所采用的技术都是可替换的

例如Struts可以被JSF或者Tapestry替换掉,JDO可替换Hibernate。 ? 在每个层中都不同程度地应用了J2EE中常用的设计模式

? 使用基于POJO的轻量级架构,从而使得系统易于测试;便于移植;“开发-发布”周期短。

4、各层中的组件

(1)表示层由Struts JSP组件实现,利用了Struts 中的构造标签技术,在用户浏览界面利用表单构造网页的整体结构

(2)控制层由Struts中的ActionServlet和 Action组件实现,并利用ActionForm封装JSP页面中的表单。将页面整体作为对象处理,在相应的Action了中调用业务逻辑,完成业务功能。

? 前端控制层: ActionServlet类,并且对它加以扩展。

? 业务中心控制层:各个业务Action类(标准Action类和 DispatchAction类) (3)业务处理层由Spring中的IoC来管理

? 业务处理基类:将各个业务功能模块中共同的部分抽象出,从而完成一些共同的功能。 ? 各个业务处理类:完成具体的应用功能的各个模块 (4)数据访问层由Hibernate框架来提供技术支持

? 数据库操作(DAO)类:完成对数据库数据的相关操作(增、删、解、查询等)。 ? 数据持久(PO)类:针对应用系统中的各个数据库表提供对应的POJO类

2.3.3各层中应用了相应的主流的J2EE框架技术

1、服务器端表示层Struts框架完成如下工作

? 客户端表单进入的验证; ? 管理请求和响应;

? 提供控制器来完成页面流转和向业务逻辑层的委托; ? 返回到客户端页面显示。

其它:标签技术、MVC、成熟技术、ActionForm技术等 2、业务逻辑层Spring框架完成如下工作

? 为服务器段表示层提供松散的耦合; ? 处理真实的企业级应用; ? 事务管理的选择;

? 协调各种业务逻辑对象之间的依赖关系; ? 为持久层和业务逻辑层之间提供松散耦合; ? 实现持久层的业务逻辑。 其它:

? 解藕(类与类、系统本身脱离容器)

? AOP(统一地解决系统中一些“切面”-----技术性的问题) ? IoC(对象的管理由容器完成)

? POJO(普通JavaBean)-----不继承框架中某个类

? 容器服务(事务、数据库连接池)---Spring中已经提供了 ? 包装其它的框架(简化)

3、持久层Hibernate框架完成如下工作

? 对数据库进行查询,得到持久化对象PO;

? 对数据库进行添加、删除、修改的动作并以PO来进行。

域模型层VO完成如下工作:为各层之间数据交互服务,同时也在持久层部分可以描述一个实体,并与PO进行转换。

其它:

? 屏蔽数据库的差异性-----数据库方言

? 以面向对象的数据库访问(减少了SQL) ? 各种对象关系O/R Mapping实现 ? 技术成熟-----企业开发

? 统一的事务管理实现

? 提供各种缓存技术以提高速度(性能)

2.3.4系统基于MVC设计 表示层中的请求 控制调度层 模型组件 表示层中的业务成功显示 业务处理层 数据访问层 表示层中的业务失败显示 2.3.5总体架构设计

MS SQLServer2000数据库 基于DBCP的数据库连接DAO模式 DTO模式 基于Hibernate技术的数据访问组各种具体的业务组件 各种具体的业务组件 各种具体的业务组件 各种具体的业务组件 UserException Template模式 采用Spring中的IoC来管理对象 业务基类和面向业务接口编UserRegisterAction UserLoginAction MessageActionClass BBSSearchAction UserRegisterForm UserLoginForm MessageFormClass BBSSearchForm 复合视图模式 BBSActionServlet 用户 index.jsp userRegister.jsp View Helper模式 自定义的标签 视图助手组件 UserLogin.jsp Fa?ade模式 Messageindex.jsp SearchBBS.jsp Struts中的各种标签库中的标签 2.4 系统结构(系统各个组件设计) 2.4.1体系结构包图(架构包图)

2.4.2组件设计图(系统中的各个组件)

2.4.3类图与接口设计(各个组件中的相关的类和接口)

1、数据访问层组件

采用一个DAO组件实现数据访问操作

分别采用不同的DAO组件实现数据访问操作

2、业务处理层组件

3、控制层组件

4、表示层组件

2.4.4系统总体类图(以体现类之间的关系)

第三章 系统数据结构设计

3.1数据库逻辑结构设计

3.1.1实体关系(Entity-Relationship)图

1、逻辑图(Logic diagram)

2、物理图(Physical diagram)

3.1.2数据库表的逻辑设计

1、BBS信息数据库表结构及数据字典定义表

注意:对数据库表中的结构设计,最后应该给出下面的对每个字段的详细说明。

字 段 名 标 识 符 类型及长度 有无空值 主键 BBS的ID标识 BBS作者 BBS标题 字段名 主题ID 主题作者 主题标题 回复数 发表时间 最后回复时间 内容 点击数 BBS表情图片 所属类型ID 所属版块ID 用户ID 是否为精华帖 是否置顶主题 是否禁止回复 标识符 bbsID author bbsTitle reply createTime lastUpdateTime content hits iconID bbsTypeID boardID userID bbsElite bbsTop bbsLock id author title int 4 int(自动编号) 无 vchar vchar Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null 无 无 是否允许为空 主键 PK PK 类型及长度 nvarchar(20) nvarchar(20) int 4 nvarchar(20) nvarchar(20) ntext(16) int 4 int 4 int 4 int 4 int 4 int 4 int 4 int 4 所属类型:原创、转贴、问题、灌水、建议、种子、资料、下载 2、BBS回复信息表结构及数据字典定义表

字段名 回复帖ID 所属主题ID 回复作者 回复时间 回复表情ID 回复标题 回复内容 标识符 replyID bbsID replyAuthor replyTime replyIconID replyTitle replyContent 类型及长度 int 4 int 4 nvarchar(20) nvarchar(20) int 4 nvarchar(50) ntext 是否允许为空 Not null Not null Not null Not null Not null Not null 主键 PK 3、BBS分类标题数据库表结构及数据字典定义表

字段名 版块ID 版块题目 版块内容 版主 副版主 版块主题总和 版块当天帖子总和 最后回复的时间 最后回复的作者 标识符 boardID boardTitle boardContent leaderName secLeaderName allTopicNumber todayTopicNumber lastReplyTime lastReplyAuthor 类型及长度 int 4 nvarchar(20) nvarchar(20) nvarchar(20) int 4 int 4 nvarchar(20) nvarchar(20) 是否允许为空 Not null Not null Not null Not null 主键 PK nvarchar(255) Not null 4、用户信息数据库表结构及数据字典定义表

字段名 用户ID 用户名 用户性别(男0,女1) 用户密码 标识符 userID username userSex userPassWord 类型及长度 int 4 nvarchar(20) smallint(2) nvarchar(16) 是否允许为空 否 否 否 否 主键 PK 用户Email 用户取回密码问题 用户取回密码答案 用户角色 用户生日 用户地址 注册时间 用户头像 QQ号 用户签名档 最后登录时间 用户发表的主题数总和 用户回复的主题数总和 用户被删的帖子总和 用户被推荐精华帖总和 用户登录次数 是否被禁言 userEmail userPassAsk userPassAnswer userType userBirthday userComeFrom userRegister userSign userQQCode userIdiograph userLastTime userTopicCount userReTopicCount userDelTopicCount userLoadDegree userLock nvarchar(50) nvarchar(30) nvarchar(30) tinyint(1) nvarchar(10) nvarchar(50) nvarchar(20) nvarchar(255) nvarchar(15) ntext nvarchar(20) int 4 int 4 int 4 int 4 int 4 否 否 否 否 否 否 userEliteTopicCount int 4 5、管理员的数据库表及数据字典定义表

6、用户联系数据库表结构及数据字典定义表

7、用户角色数据库表结构及数据字典定义表

字段名 角色ID 角色名称 用户ID 标识符 roleID roleName userID 类型及长度 int 4 nvarchar(20) int 4 是否允许空 Not null Not null Not null 主键 PK

下面为说明在Access中创建出各个数据库表之间的E-R图的实现过程

可以在Access中创建除各个数据库表之间的E-R图,首先选择“工具”---?“关系”

此时,将产生除“关系”菜单项目,然后选择其中的“编辑关系”菜单项目。

在项目的对话框中选中我们所需要创建关系的各个数据库表

最后点击“添加”按钮,将出现下面的图示

本文来源:https://www.bwwdw.com/article/z2ka.html

Top