BBS论坛概要设计说明书

lyvv

贡献于2012-05-26

字数:6755 关键词: 论坛系统BBS

 BBS论坛概要设计说明书 编写人(签字): 日期: xxxx年xx月xx日 用户方项目代表(签字):   日期: xxxx年xx月xx日 开发方项目代表(签字):        日期: xxxx年xx月xx日 质量保证 代表(签字):        日期: xxxx年xx月xx日 目 录 第一章 引言 5 1.1编写目的 5 1.2背景 5 1.3定义 6 1.4参考资料 6 第二章 总体设计(系统架构设计) 7 2.1需求规定 7 2.2运行环境 7 2.3基本设计概念和处理流程 8 2.3.5总体架构设计2.4 系统结构(系统各个组件设计) 12 2.4 系统结构(系统各个组件设计) 13 第三章 系统数据结构设计 19 3.1数据库逻辑结构设计 19 3.2数据库物理结构设计 26 第一章 引言 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、为什么对本项目要应用轻量级的框架技术 轻量级容器的设计目标是为了能够避免如下所有这些麻烦事情,基于以下的各个优点,我们决定在本项目中采用轻量级的框架技术。 l 侵略性的API(代码依赖于EJB) l 对容器的依赖(代码不能在EJB 容器之外工作) l 只提供固定的一组功能,不具备配置能力 l 启动时间长 l 部署过程取决于特定的产品,无法通用 2.3.2 系统架构示图 1、本论坛系统的整体架构设计为Struts +Spring +hibernate架构组成 Struts(承担表示层和控制层的角色) Spring(利用IoC进行各种对象的管理 ) Hibernate(实现数据访问和O/R Mapping) 相互集成 对 DAO进行管理 (1)对于表示层 经验表明,最好的方法是选择已存在的并已得到证明了的Web应用框架,而不是自己去设计和开发新的框架。我们拥有多个可选择的框架,如Struts,WebWork和JSF等,在本项目中,我们选择采用Struts。 (2)EJB 和POJO都可以用来创建业务逻辑层 如果应用是分布式的,采用具有remote接口的EJB是一个好的选择;由于本系统是一个典型的不需要远程访问的Web应用,因此选用POJO,并充分利用Spring 框架的IoC和AoP的特性,将是实现业务逻辑层的更好选择。 (3)在持久层中由于需要利用关系型数据库实现数据的持续化,但在应用中可以存在多种方法可用来实现: l JDBC:这是最为灵活的方法,然而,低级的JDBC难以使用,而且质量差的JDBC代码很难运转良好 l EJB Entity beans:CMP的Entity bean是一种分离数据访问代码和处理ORM的昂贵的方法,它是以应用服务器为中心的方法,即Entity bean不是将应用与某种数据库类型而是EJB容器约束在一起。 l O/R Mapping 框架:一个ORM框架采用以对象为中心的方法实现数据持续化,一个以对象为中心的应用易于开发并具有高度的可移植性 ----在该领域中存在几个框架可用—JDO、Hibernate、TopLink以及iBATIS 和CocoBase等。在本项目中我们选用Hibernate。 2、架构示图 Struts表示层(JSP和HTML) Struts控制层 Spring业务处理层 Hibernate数据访问层 前端控制器类 业务控制类 业务处理基类 业务 接口 数据操作类 数据连接类 持久实体类 数据访问服务 数据访问操作 业务处理类 业务实体类 本系统采用了多层非分布式的构架,上图展示了系统的分层以及每一层中所采用的技术和对应的框架,并且各层将存在于同一个Web容器中。 3、该形式的总体架构设计的主要特点 (1)遵循Sun J2EE中两个主要的原则:“多层架构、松藕合” 由于采用分层的设计方式,各个模块功能相互独立封装,层与层之间关联少,保持松耦合连接,稳定性高,便于扩展和维护。 (2)本项目中的每一层所采用的技术都是可替换的 例如Struts可以被JSF或者Tapestry替换掉,JDO可替换Hibernate。 l 在每个层中都不同程度地应用了J2EE中常用的设计模式 l 使用基于POJO的轻量级架构,从而使得系统易于测试;便于移植;“开发-发布”周期短。 4、各层中的组件 (1)表示层由Struts JSP组件实现,利用了Struts 中的构造标签技术,在用户浏览界面利用表单构造网页的整体结构 (2)控制层由Struts中的ActionServlet和 Action组件实现,并利用ActionForm封装JSP页面中的表单。将页面整体作为对象处理,在相应的Action了中调用业务逻辑,完成业务功能。 l 前端控制层: ActionServlet类,并且对它加以扩展。 l 业务中心控制层:各个业务Action类(标准Action类和 DispatchAction类) (3)业务处理层由Spring中的IoC来管理 l 业务处理基类:将各个业务功能模块中共同的部分抽象出,从而完成一些共同的功能。 l 各个业务处理类:完成具体的应用功能的各个模块 (4)数据访问层由Hibernate框架来提供技术支持 l 数据库操作(DAO)类:完成对数据库数据的相关操作(增、删、解、查询等)。 l 数据持久(PO)类:针对应用系统中的各个数据库表提供对应的POJO类 2.3.3各层中应用了相应的主流的J2EE框架技术 1、服务器端表示层Struts框架完成如下工作 l 客户端表单进入的验证; l 管理请求和响应; l 提供控制器来完成页面流转和向业务逻辑层的委托; l 返回到客户端页面显示。 其它:标签技术、MVC、成熟技术、ActionForm技术等 2、业务逻辑层Spring框架完成如下工作 l 为服务器段表示层提供松散的耦合; l 处理真实的企业级应用; l 事务管理的选择; l 协调各种业务逻辑对象之间的依赖关系; l 为持久层和业务逻辑层之间提供松散耦合; l 实现持久层的业务逻辑。 其它: l 解藕(类与类、系统本身脱离容器) l AOP(统一地解决系统中一些“切面”-----技术性的问题) l IoC(对象的管理由容器完成) l POJO(普通JavaBean)-----不继承框架中某个类 l 容器服务(事务、数据库连接池)---Spring中已经提供了 l 包装其它的框架(简化) 3、持久层Hibernate框架完成如下工作 l 对数据库进行查询,得到持久化对象PO; l 对数据库进行添加、删除、修改的动作并以PO来进行。 域模型层VO完成如下工作:为各层之间数据交互服务,同时也在持久层部分可以描述一个实体,并与PO进行转换。 其它: l 屏蔽数据库的差异性-----数据库方言 l 以面向对象的数据库访问(减少了SQL) l 各种对象关系O/R Mapping实现 l 技术成熟-----企业开发 l 统一的事务管理实现 l 提供各种缓存技术以提高速度(性能) 2.3.模型组件 控制调度层 表示层中的请求 业务处理层 表示层中的业务成功显示 数据访问层 表示层中的业务失败显示 4系统基于MVC设计 2.3.采用Spring中的IoC来管理对象 index.jsp userRegister.jsp UserLogin.jsp Messageindex.jsp UserLoginForm MessageFormClass UserRegisterAction 基于Hibernate技术的数据访问组件(DAO) MessageActionClass UserLoginAction SearchBBS.jsp UserRegisterForm BBSActionServlet 自定义的标签 用户 BBSSearchAction BBSSearchForm ormClass 视图助手组件 UserException 业务基类和面向业务接口编程 各种具体的业务组件 各种具体的业务组件 各种具体的业务组件 各种具体的业务组件 Struts中的各种标签库中的标签 Façade模式 Template模式 DAO模式 View Helper模式 复合视图模式 DTO模式 基于DBCP的数据库连接池 MS SQLServer2000数据库 5总体架构设计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标识 id int(自动编号) 无 PK BBS作者 author vchar 无 BBS标题 title vchar 无 字段名 标识符 类型及长度 是否允许为空 主键 主题ID bbsID int 4 Not null PK 主题作者 author nvarchar(20) Not null 主题标题 bbsTitle nvarchar(20) Not null 回复数 reply int 4 Not null 发表时间 createTime nvarchar(20) Not null 最后回复时间 lastUpdateTime nvarchar(20) Not null 内容 content ntext(16) Not null 点击数 hits int 4 Not null BBS表情图片 iconID int 4 所属类型ID bbsTypeID int 4 Not null 所属版块ID boardID int 4 Not null 用户ID userID int 4 Not null 是否为精华帖 bbsElite int 4 是否置顶主题 bbsTop int 4 是否禁止回复 bbsLock int 4 所属类型:原创、转贴、问题、灌水、建议、种子、资料、下载 2、BBS回复信息表结构及数据字典定义表 字段名 标识符 类型及长度 是否允许为空 主键 回复帖ID replyID int 4 Not null PK 所属主题ID bbsID int 4 Not null 回复作者 replyAuthor nvarchar(20) Not null 回复时间 replyTime nvarchar(20) Not null 回复表情ID replyIconID int 4 回复标题 replyTitle nvarchar(50) Not null 回复内容 replyContent ntext Not null 3、BBS分类标题数据库表结构及数据字典定义表 字段名 标识符 类型及长度 是否允许为空 主键 版块ID boardID int 4 Not null PK 版块题目 boardTitle nvarchar(20) Not null 版块内容 boardContent nvarchar(255) Not null 版主 leaderName nvarchar(20) 副版主 secLeaderName nvarchar(20) 版块主题总和 allTopicNumber int 4 版块当天帖子总和 todayTopicNumber int 4 最后回复的时间 lastReplyTime nvarchar(20) Not null 最后回复的作者 lastReplyAuthor nvarchar(20) Not null 4、用户信息数据库表结构及数据字典定义表 字段名 标识符 类型及长度 是否允许为空 主键 用户ID userID int 4 否 PK 用户名 username nvarchar(20) 否 用户性别(男0,女1) userSex smallint(2) 否 用户密码 userPassWord nvarchar(16) 否 用户Email userEmail nvarchar(50) 否 用户取回密码问题 userPassAsk nvarchar(30) 否 用户取回密码答案 userPassAnswer nvarchar(30) 否 用户角色 userType tinyint(1) 否 用户生日 userBirthday nvarchar(10) 用户地址 userComeFrom nvarchar(50) 注册时间 userRegister nvarchar(20) 否 用户头像 userSign nvarchar(255) QQ号 userQQCode nvarchar(15) 用户签名档 userIdiograph ntext 最后登录时间 userLastTime nvarchar(20) 否 用户发表的主题数总和 userTopicCount int 4 用户回复的主题数总和 userReTopicCount int 4 用户被删的帖子总和 userDelTopicCount int 4 用户被推荐精华帖总和 userEliteTopicCount int 4 用户登录次数 userLoadDegree int 4 是否被禁言 userLock int 4 5、管理员的数据库表及数据字典定义表 6、用户联系数据库表结构及数据字典定义表 7、用户角色数据库表结构及数据字典定义表 字段名 标识符 类型及长度 是否允许空 主键 角色ID roleID int 4 Not null PK 角色名称 roleName nvarchar(20) Not null 用户ID userID int 4 Not null 下面为说明在Access中创建出各个数据库表之间的E-R图的实现过程 可以在Access中创建除各个数据库表之间的E-R图,首先选择“工具”---à“关系” 此时,将产生除“关系”菜单项目,然后选择其中的“编辑关系”菜单项目。 在项目的对话框中选中我们所需要创建关系的各个数据库表 最后点击“添加”按钮,将出现下面的图示 选择“关系”菜单中的“编辑关系” 子菜单 在对话框中选择“创建”按钮以创建新的关系 分别选择主动表和被动表以及它们之间的关联字段(主--外键) 最后点击“创建”按钮,将产生除下面的E-R图 3.2数据库物理结构设计

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享文档获得金币 ]
4 人已下载

下载文档

相关文档