社区类论坛设计方案.docx

上传人:b****7 文档编号:26632283 上传时间:2023-06-20 格式:DOCX 页数:21 大小:375.74KB
下载 相关 举报
社区类论坛设计方案.docx_第1页
第1页 / 共21页
社区类论坛设计方案.docx_第2页
第2页 / 共21页
社区类论坛设计方案.docx_第3页
第3页 / 共21页
社区类论坛设计方案.docx_第4页
第4页 / 共21页
社区类论坛设计方案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

社区类论坛设计方案.docx

《社区类论坛设计方案.docx》由会员分享,可在线阅读,更多相关《社区类论坛设计方案.docx(21页珍藏版)》请在冰豆网上搜索。

社区类论坛设计方案.docx

社区类论坛设计方案

社区类论坛设计方案

第1章需求分析

论坛能够为社区提供一个自由的空间,来方便大家交流。

最初,论坛只是用于发布公告信息、讨论问题的在线交流平台,后来,随着网络的普及,论坛的功能越来越丰富,受到广大网民的欢迎。

因此商业也对论坛重视起来,纷纷在自己的上开辟论坛,作为与网民交流的园地。

同时,在线技术支持和在线服务也在论坛中开展起来。

1.1用例分析

在论坛里,人们之间的交流打破了空间,时间的限制。

在与别人进行交往时,无须考虑自身的年龄,学历,知识,社会地位,财富,外貌,健康状况,也无从知道交谈的对方的真实社会身份。

这样,参与讨论的人可以处于一个平等的位置与其他人进行任何问题的探讨。

论坛往往是由一些有志于此道的爱好者建立,对所有人都免费开放。

而且,由于BBS的参与人众多,因此各方面的话题都不乏热心者。

我们当然可以利用它来解决学习中的一些疑惑,也可以把自己的心事吐露出来。

图1-1是论坛的用例分析。

图1-1论坛的用例分析

我们来分析每类对象的相关操作,设计对象的功能实现接口,既设计对象的操作类的方法或者说是功能函数。

论坛类只有设置参数一个方法,既把设置一组参数作为一个方法,也可以把设置一个参数作为一个方法。

图1-2是论坛对象的用例分析。

图1-2论坛对象的用例分析

版块实体类有了浏览列表和管理两个方法,管理方法又可分为创建、修改、和删除三个子方法,图1-3是板块对象的用例分析,管理员可以管理版块和浏览版块列表,而用户只能浏览版块列表。

图1-3版块对象的用例分析

帖子类有浏览、发帖、回帖、搜索和管理5个方法,浏览方法,浏览方法又可分为列表和查看两个子方法,管理方法又可分为编辑、删除、置顶、转移、指定精华5个子方法。

图1-4是帖子对象的用例分析,只有管理员可以管理帖子,一般用户是没有这个权限的。

图1-4帖子对象的用例分析

用户类有注册、登陆和管理3个方法,管理方法又分为添加、删除和设置权限3个子方法。

图1-5是用户对象的用例分析,用户的信息和权限是由管理员来设置管理的。

图1-5用户对象的用例分析

1.2业务/机构划分

像日常生活中的黑板报一样,论坛按不同的主题分为许多版块,版面的设立依据是大多数拥护的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法毫无保留地帖到论坛中。

一般来说,论坛也提供功能,如果需要私下的交流,也可以将想说的话直接发到某个人的电子信箱中。

用户在前台的注册、登陆,以及修改个人的注册信息组合成注册登陆模块;用户浏览版块、浏览主题帖列表、查看帖子组成合成浏览模块;用户发帖、回帖、编辑发布的帖子组合成发帖回帖模块;管理员编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华帖组合成管理帖子模块。

1.3业务流程

用户注册登陆进入论坛,就某个话题展开讨论,通过发帖功能发布新的话题,通过回帖功能回复已有的话题,通过搜索功能查找已有的话题。

管理员要管理论坛,软件需要具有的功能有创建、编辑、删除论坛的版块,管理注册的用户,管理帖子,设置论坛基本参数。

这样的流程决定了论坛所具有的功能,图1-6表示论坛功能流程。

图1-6论坛功能流程

1.4实体-关系分析

每个模块的功能,真实反映需求,通过对需求的认真分析,可以设计出符合要求的单独模块。

对于论坛来说,联系各个模块的主线是使用者的权限,用户能使用论坛的那些功能由用户权限决定。

论坛的每个功能都与相应的权限对应。

浏览版块与发帖回帖模块、管理帖子模块关联,是由论坛的系统流程决定的,图1-7是帖子相关模块关系。

图1-7帖子相关模块关系

管理版块模块与浏览模块关联,是由帖子与版块的父子关系决定的,帖子依附于版块,先有版块,后有帖子,帖子必须发表在某个版块中,图1-8是管理板块模块与浏览模块的关系。

图1-8管理版块模块与浏览模块的关系

管理用户模块与注册登陆模块关联,是由同一类对象——用户决定的,注册后获得论坛的身份,后成为用户,所有的用户需要接受管理员的管理,用户登录证明自己在论坛中的身份,图1-9是管理用户模块与注册登录模块的关系。

图1-9管理用户模块与注册登陆模块的关系

 

1.5实体属性和职责

表1-5-1是网上论坛实体目录表

实体名

说明

实体条目编号

管理员

论坛的管理人员

P-01

用户

论坛注册用户包括游客

P-02

帖子

用户发表的文章言论

S-01

短消息

用户间相互发送的信息

S-02

公告

系统发布的信息

S-03

版面信息

发布论坛版面的信息

S-04

联盟论坛信息

发布联盟论坛的信息

S-05

表1-5-1网上论坛实体目录表

下图以“管理员”为例,说明实体条目的具体编制方法,图1-5-2表示了实体条目的编制方法。

1-5-2实体条目的编制方法

第2章设计方案

上一节中确定了论坛系统的设计思路,分析了论坛系统的整体需求。

但是只知道需不行的,整体需对系统目标的一个模糊描述。

要实现一个系统,还需要从需求分析上升到软件设计阶段。

2.1系统结构

从需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:

前台模块和后台模块。

用户在前台注册、登陆,以及修改个人的注册信息组合成注册登录模块;用户浏览版块、浏览主题帖列表、查看帖子组成合成浏览模块;用户发帖、回帖、编辑发布的帖子组合成发帖回帖模块;管理员编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华帖组合成管理帖子模块。

以上4个模块组成前台的功能模块。

后台模块都是与管理员相关的,设置论坛参数单独为论坛设置模块;创建、修改和删除版块为管理版块模块;添加、删除和设置权限为管理用户模块。

图2-1表示了论坛的模块体系。

图2-1论坛的模块体系

2.2系统架构选择

本系统将采用三层架构。

所谓三层架构即三层体系结构,顾名思义,我们将运用程序从整体上分为三个独立而又彼此相关联的层次,这三层分别是:

界面层、业务逻辑层、数据层。

(1)界面层:

界面层就是运用程序与用户的操作接口,提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。

界面层同时也提供一定的安全性,确保用户不会看到的信息。

比如说:

网页。

在用户层,常用到的技术如:

HTML、CSS、JavaScript、ASP/等。

(2)业务逻辑层:

业务逻辑层就是将一些业务处理的逻辑与规则经过封装,它提供一些接口与用户层与数据层进行交互,是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。

在业务逻辑层,当今比较流行的技术和规,如:

Microsoft的COM/DCOM/COM+/NET组件,SUN的EJB等。

(3)数据层:

数据层主要是提供业务逻辑层的数据接口和后台的数据管理,数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。

这一层通常由大型的数据库服务器实现,比较典型的数据库管理系统有:

SQLSercer2000/2005、Orcale8i/9i,DB2等。

图2-2三层架构

2.3设计模式选择

用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变的迅速和容易。

JSP技术是Servlets技术的扩展。

JDBC(JavaDataBaseConnectivity)是Java语言为了支持SQL功能而提供的与数据库相连的用户接口。

JDBC由一组Java语言编写的类和接口组成,使用嵌式的SQL,主要实现三方面的功能:

建立与数据库的连接,执行SQL声明及处理SQL执行结果。

JDBC是建立在ODBC的基础上,实际上可视为ODBC的Java语言翻译形式。

JDBC支持的两种模型如下。

两层模型:

JDBC支持两层模型,图2-3是JDBC支持的两层模型。

图2-3JDBC支持的两层模型

三层模型:

JDBC支持的三层模型,图2-4是JDBC支持的三层模型。

图2-4JDBC支持的三层模型

基于JSP的建设目前主要有两种基本的开发模式:

两层模型和三层模型。

目前市场上的软件开发者大都基于这两种基本的框架形成自己的开发模式,但是都不同程度地存在编码重复现象。

针对开发代码重复的问题,图2-5表示了设计模式。

图2-5设计模式

此种模式对于基本的数据库应用和基本的页面都能够通过参数来实现,对于页面和数据库的设计复杂的情况,此种设计也针对一些特殊情况进行了处理设计。

为了适应特殊的需要,比如应用时需要的页面没有相应的模板、Word插件的处理等,此种设计也提供了扩展的能力,应用时可以根据自己的特殊需要来添加相应的JSP模板文件。

2.4技术路线选择

俗话说:

工欲善其事,必先利其器。

我选择了WebLogic作为应用服务器,同样的BorlandJBuilder全球最具威力之Java开发环境JBuilder也被选择作为开发工具,而数据库则选用MySQL。

2.3.1WebLogic服务器的选择

本设计项目的应用服务器选择WebLogicPlatform8.1。

Platform8.1简体中文版是BEA公司2004年2月9日发布的应用服务器平台。

BEA公司的WebLogic企业应用平台软件可提供统一的、简便的和可扩展的应用基础结构,为企业节省了时间和资金,确保企业软件更和谐地协同工作,可让企业软件开发人员和IT工作人员更富效率,更少失误,并且其敏捷性让企业能够快速地适应新的软件需求,避免以往那些导致大量软件项目失败的复杂性。

为此选用该应用服务器软件构建和运行网上商城应用系统。

其优点主要体现在流程、访问、变化三个方面:

(1)优化端到端的流程,使企业更有效率;

(2)改进信息访问方式,增强业务响应能力;

(3)借助正确的决策标准,适应业务的各种变化。

2.3.2Java应用开发工具选择

对于Java的开发,BorlandJBuilder全球最具威力之Java开发环境,相较过去版本,JBuilder提供更多省时工具与精灵,让您团队生产力提升至极限,协助您在最短时间开发更好的软件。

这仅是完整Borland解决方案的一部份,JBuilderEnterprise以融入应用程序开发周期(applicationlifecycle)为第一要务,能够使用您现有之技术投资,并给您最大的自由与弹性,让您以自己的方式与流程完成工作。

BorlandOptimizeitSuite已包含于JBuilderEnterprise版中:

JBuilder所包含之创新工具与加值功能将企业级Java开发提升至新境界。

加速Java开发之最佳工具:

视觉化设计工具,让您快速、顺畅地建构EJB,全新DataTransferObject(DTO)与SessionFaade精灵协助您用户端程序码简单而正确地使用EJB。

JBuilder与BorlandTogetherEditionforJBuilder双向塑模(two-waymodeling)能力,使得UML图形与程序码能够双向自动同步,您可以运用UML技术建立设计蓝图与开发团队成员相互沟通,或藉由程序码验证模型是否合理。

2.3.3网页设计工具选择

本项目的界面设计软件工具选用DreamweaverMX。

Macromedia公司推出的DreamweaverMX中文版,不仅是专业人员制作的首选工具,而且普及到广大网页制作爱好者中,相对于其它网页制作工具和以前版本,有以下这些优势:

(1)对简体中文良好的支持,不会出现一些不兼容中文的现象。

例如,在早期的Dreamweaver4.0中,制作Flash按钮时会出现乱码。

(2)使用DreamweaverMX中文版,可以在可视化界面制作出ASP,ASP,NET,JSP,PHP,ColdFusion站点。

(3)DreamweaverMX中文版自带大量模板,简化了用户的制作过程。

(4)DreamweaverMX中文版支持数量众多的第三方插件,大大增强了DreamweaverMX的功能。

(5)通过配置DreamweaverMX生成符合XHTML的代码,确保用最新的HTML设计标准及时更新站点。

2.3.4MySQL数据库服务器的选择

本设计项目的数据库选择MySQL。

MySQL是一个真正的多用户、多线程SQL数据库服务器。

SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。

MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序和很多不同的客户程序和库组成。

MySQL是一个真正的多用户、多线程SQL数据库服务器。

SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。

MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序和很多不同的客户程序和库组成。

SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。

例如,你能用SQL语言为一个检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。

MySQL 主要目标是快速、健壮和易用。

最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。

自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个字节(GB)的关键应用数据。

MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。

尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。

第3章系统实现

本系统是采用JSP+JavaBean+Servlet开发的.具有Java语言跨平台的特性,可以方便的运行在Windows、Linux、Unix等操作系统上。

支持MySQL、Oracle、SQLserver数据库,如需要还可以方便的扩充其他数据库的支持。

系统整体系统结构清晰,扩展性良好。

支持集群运行,同时做到负载均衡。

同时运用了多种设计模式,具有核稳定、界面简洁、功能强大、操作方便、数据安全等特点。

3.1系统文件功能

本设计的主目录是bbs,在Weblogic服务器中发布和部署的Web应用放在它的bbs子目录下。

本设计所编写的人事管理系统是一个JavaWeb应用,它由一组Servlet、JSP和与其相关的class组成。

每种组件在Web应用中都有固定的存放目录。

目录结构如表3-1网上论坛Web应用文件目录结构表所示。

 

描述

/bak

存放整个工程的备份文件

/classes

包含几个模块的目录,里面存放各模块编译后的字节码文件

/doc

工程文档文件,包括标题,描述,,公司,作者,版本等信息

/bbs

存放css、javascripts、images、WEB-INF、jsp等文件夹

/bbs/css

存放系统页面显示样式的层叠样式表文件

/bbs/javascripts

存放实现日历时间、动态菜单、表单校验、输入格式校验等java脚本

/bbs/images

存放系统页面要使用的图片文件

/bbs/WEB-INF/lib

存放系统运行需要的JAR文件

/bbs/WEB-INF

存放Web应用的配置文件web.xml、Web服务器的配置文件server.xml

/bbs/jsp

包含多个模块的目录,存放JSP文件

/src

包含多个模块的目录,存放Servlet、JavaBean文件

表3-1网上论坛Web应用文件目录结构表

从上表可以看出,在src目录下存放着所有的.jsp文件;在WEB-INF目录下存放着与Web应用配置信息有关的web.xml文件和与Web服务器配置信息有关的server.xml文件;在foundation目录下的四个子目录中分别存放着连接数据库、处理数据的Java文件和处理字符、日期、数据转换、调试及异常处理的Java文件;在common目录下存放着共用的接口和表单类及实现收发、表单校验等功能的Java文件,其子目录upload中存放的是smartupload插件文件,主要用来实现图片的上传、下载等功能。

3.2主要类和接口

DataBaseMySQL类的UML图,图3-1是DataBaseMySQL类的UML图。

图3-1DataBaseAccess类的UML图

本系统可以通过DataBaseMySQL类实现对不同类型的数据库的连接和数据访问。

由上图可以看出,DataBaseMySQL类由java.lang类包的Object类扩展而来。

调用它的getDB2Connection()方法、getInformixConnection()方法、getMySqlConnection()方法、getOracleConnection()方法、getSQLServerConnection()方法和getSybaseConnection()方法可以分别实现对DB2、Informix、MySql、Oracle、SQLServer和Sybase数据库的连接。

DataBaseMySQL类也可以被MySQLCommand类的实例调用,以执行SQL命令,查询数据库的数据。

DataBaseMySQL类可以调用java.lang类包里的Exception类、String类、StringBuffer类做异常处理、字符串处理和字符串缓冲等。

DataBaseAccess类还可以调用Connection对象、DriverManager类和SQLException类的实例连接数据库,并处理执行SQL语句时出现的异常。

此外,DataBaseMySQL类还可以调用Properties类做对象属性的获取和设置处理。

调用Context对象和InitContext类来为应用创建上下文环境,并对其做初始化处理。

还可以调用DataSource对象访问数据源。

3.3主要系统界面

下面仅将用户登录界面、发帖界面、投票界面、搜索界面列出。

(1)用户登录界面

图3-2是用户登陆界面,是本系统的用户登陆界面,数据库中已经存在用户的信息。

该模块在用户登陆时要进行用户名和密码的有效性校验,查询用户表,如果该用户存在则让他进入主页,如果不存在或者密码有误,回到登陆页以便用户再次输入用户名及密码登陆。

图3-2用户登陆界面

如果用户是首次访问此论坛,还没有注册,可以单击[没有注册]按钮进入新用户注册界面进行注册,这是给用户进入论坛的一个通道,是任何论坛都不可缺少的部分。

如果已经注册了的用户在登陆时忘记了密码,则可单击[忘记论坛密码]按钮,系统应该提示用户输入密码提示等帮用户找回密码,这是个比较人性化的设计。

(2)发帖界面

当登陆进来想说话的时候,自然会想到怎么才能说,怎么发帖子呢?

图3-3是发帖界面,是发帖子的界面,这里只允许会员发表新帖子,需要填写的新帖子信息包括:

用户名、密码、主题、当前心情、具体容等,这也是帖子表里应该有的最基本信息。

其中标题下不能超过200个汉字,要进行校验。

针对“当前心情”,本论坛提供了一些心情图片,用户只需选择一个即可。

“容”是指书写帖子容时输入框支持什么不支持什么等。

具体容输入框上的按钮可以对输入的容进行字体等方面的设置。

输入框下方还提供了一些小图片,用户单击表情图标就可在帖子中加入相应的表情。

“高级设置”中的签名显示还是不显示或者匿名看作者而定,可以选择也可以不选。

所有容填写完毕后,单击[发表]按钮则数据库中相应的帖子表增加一条记录,用户帖子发表成功。

图3-3发帖界面

(3)投票界面

当看到一个比较不错的帖子,要对其进行评论时,就可以对其发起投票,这是发起投票的设计初衷。

投票表与帖子表相似,也相当于一个帖子,只是要针对某个具体的帖子进行操作。

图3-4是投票界面,发起投票的界面与帖子表的界面相似,也只允许会员发表对帖子的投票,需要填写的投票信息包括:

用户名、密码、帖子主题、投票项目、当前心情、具体容等,其中标题不能超过200个汉字,要进行校验。

针对“当前心情”,本论坛提供了一些心情图片,用户只需选择一个即可。

“投票项目”设置一些投票项目,但每行只能有一个项目,最多只能设置十个选项,超过了就自动作废,根据作者的意愿可进行单选和多选的设置进行选择。

“容”是指书写帖子容时输入框支持什么不支持什么等。

具体容输入框上的按钮可以对输入的容进行字体等方面的设置。

输入框下方还提供了一些小图片,用户单击表情图标就可在帖子中加入相应的表情。

“高级设置”中的签名显示还是不显示或者匿名看作者而定,可以选择也可以不选。

所有容填写完毕后,单击[发表]按钮则数据库中相应的帖子表增加一条记录,用户帖子发表成功。

图3-4投票界面

(4)搜索界面

论坛搜索功能三论坛中除了导航按钮这种直接的方式之外的另外一种定位方式。

导航按钮通过告诉用户有哪些东西访问和查询,而搜索则从用户的角度出发来进行设计。

搜索首先需要输入用户要搜索的关键字,其次需要选择该关键字是搜索的新闻主题作者、帖子标题还是帖子容等,关键字搜索的选择包括帖子主题、关键字等,同时在搜索时需要进行日期围的限定,因此需要给出日期的选择项,在本搜索设计中,我们设计的日期围包括:

5天以来、10天以来、15天以来、30天以来、60天以来、90天以来,以此从小的围搜索,都可以满足不同的搜索。

另外一种选择,应该包括论位置的定位。

图3-5是搜索界面。

图3-5搜索界面

3.4文件的打包和部署

先在JBuilder9中将整个工程编译,然后利用JBuilder9自带的工具把工程源文件打包、配置。

下面简单阐述如何在BEAWeblogic中部署自己的应用程序:

(1)启动BEAWeblogicPlatform8.1的configurationwizard创建一个自己的域netshopdomain,设置监听端口为7777。

(2)启动Weblogic的控制台,进入ServicesConfigurationJDBC的ConnectionPools、DataSources下分别配置数据连接池mynetshoppool和数据源netshoDS。

(3)启动Weblogic的控制台,进入YourDeployedResources下WebApplicationModules 中部署自己的应用程序。

(4)启动IE浏览器,在地址栏中输入:

localhost:

7001即可访问自己的首页。

在其他机器中访问输入:

192.168.3.X:

7001(其中192.168.3.X为服务器的IP地址)即可访问。

3.5设计难题及解决办法

3.5.1系统后台与前台的设计

本系统设计过程是将后台部分与前台部分的入口放在主页面上,以方便系统管理人员的通用化管理。

当系统管理员登陆系统首页时,在系统的最上方会出现管理登陆入口,可以从此入后台管理界面。

同时,在系统后台和前台的设计上,系统采用了共同的页面开发模式和组件调用模式,其中的文件头和文件尾等部分都是相互通用的。

3.5.2页面容的分块设计

在系统主页中,从页头、版面列表、推荐论坛、用户来访信息、论坛图例、文件尾等部分进行了抽象提取,这样在需要用到的某一个部分的页面时,只需要进行相关的包含即可。

3.5.3数据库连接池的方便管理

一般编写数据库连接的方式是,在程序需要请求数据库时直接连接,这样有一个问题,就是用户频繁地请求连接,降低了数据库的使用效率,在大用户量的情况下,还容易造成排队阻塞的情况。

为了解决这个问题,本系统使用了连接池,在系统初始化时启动db.properties文件中配置的连接池,如果程序需要连接,则从该池中取出一个连接使用,使用完后又返回给该池

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

当前位置:首页 > 职业教育 > 中职中专

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

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