1网上论坛系统实践指南2介绍网上论坛系统的立项、需求、设计和编程实现,重点是J2EE下的系统整体架构设计、数据库设计、JDBC数据库连接中间件的连接方法、用户注册登录功能和版块管理功能的编程实现源代码。根据课程设计指导书的文档制作标准,给出详细而标准的需求分析文档和系统设计文档。本项目的重要性与先进性在于:网上论坛系统是在当今最先进的J2EE平台下设计的。作为学生实习的项目,网上论坛系统的规模(或工作量)不大不小,既非常合适,又极具新意,希望将学生划分为多个项目组,每组3-5人,确定1名项目经理,进行分工协作,一边上课,一边看书,一边模仿着做项目,用2周时间完成这项任务。验收内容包括需求文档、设计文档。3系统立项背景论坛又叫BBS,全称为BulletinBoardSystem,中文意思是“电子公告板”,它是Internet上的一种交互性极强的、网友喜闻乐见的电子信息服务系统,提供一块公共电子白板,每个用户都可以在上面书写,发布各自的信息或提出不同的看法,以便与其它用户进行交流讨论。J2EE技术具有许多显著的优点,所以我们采用J2EE平台来开发。近两年来也开始流行起新的网络编程脚本语言ASP.NET。ASP.NET和JSP同样是属于编译型的,即在第一次运行WEB应用时将代码编译,以后重新运行就不再进行编译了,除非代码发生改变。网上论坛管理系统采用了J2EE设计模式中的MVCModel2模式,采用MySQL做数据库服务器。4系统需求分析需求分析就是对顾客的需求进行定义或确定,这一过程十分重要,而且有许多工作看似容易,做起来很难。因为客户的需求具有动态性,甚至有个别用户朝三暮四地变化;同时客户的需求具有模糊性,有些客户对业务流程表达不规范,对需求表达不清楚不明确,甚至自己都不清楚真正的需求是什么。所以唯一不变的是变化!论坛具有的最基本模块有:(1)用户模块主要包括用户登录、注册、用户资料修改等;(2)版块模块主要实现对论坛版块的管理,如增删改等;(3)帖子模块主要实现显示帖子内容,斑竹或管理员能进行相应管理;(4)友情链接主要用于其他站长申请友情链接;(5)广告模块主要用于论坛放置广告,并进行相应管理。5系统需求分析尽管需求分析过程的工作很多,但最主要的是完成以下8项任务:第1项任务:画出网上论坛管理系统的组织结构图,由于论坛的组织结构是以角色的组成为结构的,因此列出角色结构就可以了。画出了组织结构图,就可以了解到论坛的角色组成,为往后的权限分配和开发各个功能模块奠定了基础。第2项任务:画出网上论坛管理系统的业务操作流程图,即业务操作模型,重点是业务操作的流水步骤。第3项任务:列出论坛系统的功能点列表,即功能模型。第4项任务:列出论坛系统的性能点列表,即性能模型。第5项任务:列出系统的接口列表,即接口模型。由于网上论坛管理系统不需要与其它系统或设备进行交互、连接等,因此此项需求任务在该论坛系统中略去。第6项任务:确定网上论坛管理系统的运行环境,即环境模型。第7项任务:约定网上论坛管理系统的界面,即界面模型。第8项任务:对网上论坛管理系统的开发工期、费用、开发进度、系统风险等问题进行分析与评估。6需求规格说明书(RequirementsSpecification)1.概述(Summary)1.1用户简介(UserSynopsis)现实生活中的交流存在时间和空间上的局限性,交流人群范围的狭小,以及间断的交流,不能保证信息的准确性和可取性。因此,用户需要通过网上论坛的交流扩大交流面,同时可以从多方面获得自己的及时需求。本系统面向所有乐于参与交流活动的广大网友,用户角色大致分为三类:普通用户、管理员、斑竹(也称为版主,以下均称为斑竹)。1.2项目目的和目标(PurposeandAimofProject)信息时代迫切要求信息传播速度加快,局部范围的信息交流只会减缓前进的步伐。本系统的目的在于为分散于五湖四海的人提供一个共同交流、学习、倾吐心声的平台,实现来自不同地方用户的极强的信息互动性,用户在获得自己所需要的信息的同时也可以广交朋友,拓宽自己的视野和扩大自己的社交面。1.3术语定义(TermsGlossary)IceFishBBS:冰鱼论坛的英文名称。7需求规格说明书(RequirementsSpecification)1.4参考资料(References)《实用软件工程》第二版,赵池龙等编著,电子工业出版社,2006年9月1.5相关文档(RelatedDocuments)【1】《IceFishBBS项目开发计划书》【2】《IceFishBBS概要设计说明书》【3】《IceFishBBS详细设计说明书》。1.6版本更新信息(VersionUpdatedRecord)2.目标系统描述(SysteminTarget)2.1组织结构与职责(OrganizingFrameworkandFunction)本系统用户的组织结构图如图4-3所示。2.2角色定义(RoleDefinition)用户在系统中扮演的角色,以及可以执行的职责,如表4-3所示。2.3作业流程(业务模型)(BusyworkFlow)(OperationModel)系统总体业务流程图,如图4-8所示。对于每一个小的业务流程图,需要单独画出,为了节省篇幅,在此不再介绍。2.4信息源(BillofDocument)本系统的主要信息源说明,如表4-4至表4-9所示。83.目标系统功能需求(FunctionofTargetSystem)94.目标系统性能需求(PerformanceofTargetSystem)4.1时间需求(TimeRequest)(1)查询的最长等待时间不超过5秒;(2)更新信息的时间不超过3秒;(3)数据的上传和下载的时间不超过10秒。4.2空间需求(SpaceRequest)(1)支持的终端数:=1000;(2)支持的并行操作的使用者数:=300;(3)处理的记录数:1000。105.目标系统界面与接口需求(InterfaceofTargetSystem)图4-5论坛首页11图4-6后台管理界面12开发环境和运行环境目前的J2EE应用开发环境分为两大类:基于命令行的开发环境和集成开发环境。基于命令行的开发环境利用简单的文本编辑工具写程序代码,并使用Java命令进行编译、发布、运行。常见的集成开发环境有Borland公司的JBuilder、IBM公司的WSAD、SUN公司的SUNoneStudio等,但这些集成开发环境价格昂贵,且运行时对硬件配置要求较高。我们使用开源的免费集成开发环境Eclipse,来开发冰鱼论坛管理系统。冰鱼论坛管理系统的测试、部署和运行,还需要一个WEB服务器的支持,这里选择使用开源免费的Tomcat。另外,还采用免费的MySQL作为数据库服务器。系统环境配置如下:JDK1.5+Eclipse3.1+Tomcat5.5.15+MySQL5.1。其中的JDK1.5可以从Sun官方网()下载,它是一切Java应用程序的基础。Eclipse3.1可以到下载,Tomcat5.5.15可以到下载,MySQL5.1可以到下载。当然,以上介绍的版本可能已经不是最新版本,读者可以从它们的官方网站选择下载最新版本。安装过程:首先安装JDK,可以选择目标安装位置,其它的步骤可以按默认选项进行安装;接着安装Tomcat和MySQL,可以都按照默认选项进行安装;最后是Eclipse,直接从官方网站下载的压缩包解压就行了,第一次运行时会自动找出系统中适合Eclipse运行的Java环境。13整体架构设计Java是一门纯面向对象的编程语言,用来编写各种应用程序。与Java不同的是,J2EE是一种体系结构,而不是一门编程语言。J2EE是一个标准中间件体系结构,旨在简化和规范分布式多层企业应用系统的开发和部署。如图4-7为J2EE多层体系结构,包括了客户层、表示层、业务逻辑层和企业信息系统层。J2EE体系结构的实施显著地提高了企业应用系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。14J2EE多层体系结构J2EE架构开发应用系统主要有两种类型:Model1和Model2。Model1为三层体系结构,以JSP为中心进行开发,在JSP页面中同时实现显示、业务逻辑和流程控制。这种开发模式便于掌握且开发快速,然而从软件工程化的角度来看,它存在着一些不足之处:(1)由一组JSP页面实现一个业务流程,在进行改动时要同时改进多个地方,不便于应用扩展和升级;(2)业务逻辑和表示逻辑混合在JSP页面中,不利于应用系统业务的重用和改动;(3)对于大型应用程序,随着后期开发,JSP会变得臃肿笨重,应用系统的可维护性会严重恶化。Model2是基于MVC(Model-View-Control)模式的框架,很好地将业务逻辑和表示逻辑分离出来。MVC架构具有以下优点:(1)多视图使用同一模型,及时地得到模型数据变化,从而使所有相关联的视图和控制器做到同步;(2)MVC三个层各施其职,互不干扰,并且有利于开发的分工;(3)容易支持新类型的客户端,只需写一个新的视图和控制,就可连接到现存的业务模型中。15J2EE多层体系结构本章的冰鱼论坛管理系统案例,将采用Model2的MVC架构来实现。现在,根据前面的需求分析,设计出论坛系统的总体结构图,如图4-8所示。冰鱼论坛管理系统由五个子系统构成,并且除了注册登录功能模块有所不同,其它子系统或功能块的处理与实现都是相似的增删改查功能。因此,这里将仔细讨论用户注册登录和版块管理的功能。对于帖子管理、友情管理等子系统将在这里略去,读者可以参考附件光盘上的源代码。然后,根据需求分析文档,设计出注册登录系统的整体体系结构和版块管理子系统的整体体系结构,它们均分为四层:表示逻辑层、控制逻辑层、数据表示层、数据持久层。由图4-10可知版块管理子系统用MVC模式设计出来的流程如下:管理员在View层(视图层)JSP页面中输入版块相关信息后,由Control层(控制层)中的BoardServlet利用request获取JSP页面中表单的版块相关信息以及判断action的行为(增删改查),然后再传递给Model层(模型层)的BoardBean进行版块信息的封装,接着BoardServlet再调用模型层中已封装了所有SQL语句BoardDataBean中相应的方法对数据库进行相应的操作。由以上流程可以看出,MVC设计模式的一个明显优点是,三个层次各司其职,互不干扰。16J2EE多层体系结构View层(JSP页面)负责在界面上表现,它是通过Model(模型)访问企业数据并指定这些数据的显示。Control层(Servlet)负责处理与视图的交互转化成模型执行的动作,用户可以通过按钮或菜单等,来提交在Web应用中GET和POSTHTTP请求。Model层(JavaBean)负责实现业务逻辑的封装,很好的分离了后台业务逻辑和前台表示逻辑,提高了程序的可维护性。另外,MVC模式也有利于软件开发中的分工,对于擅长于网页设计界面的美工,可以负责View层,而不必熟悉Java;熟悉Java的程序员主要负责Control层和业务逻辑层。这样的分工合作,达到开发资源的最优配置,充分发挥每个人的专长.17数据库设计冰鱼论坛系统通过数据库连接中间件JDBC,来访问数据库。几乎在所有的Web应用程序中,都要访问存储在数据库中的信息,J2EE提供了一个标准接口JDBC来进行数据库的访问操作。要利用JDBC访问数据库,首先必须在机器上安装一个数据库管理系统,并将数据库的JDBC驱动程序添加到J2EE应用服务器的Java编译器路径中。冰鱼论坛管理系统采用的是MySQL数据库