bbs国漫社区开发文档.docx
- 文档编号:30077671
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:43
- 大小:950.09KB
bbs国漫社区开发文档.docx
《bbs国漫社区开发文档.docx》由会员分享,可在线阅读,更多相关《bbs国漫社区开发文档.docx(43页珍藏版)》请在冰豆网上搜索。
bbs国漫社区开发文档
开发项目:
国产动漫论坛系统
学院:
计算机与信息科学学院
班级:
09计科一班
小队成员:
曾鑫郭晓波张杰杨建忠江文宇
西南大学
09计科一班软件工程设计
国漫论坛开发文档
目录
第1章概述2
1.1开发前讨论内容2
1.2总体概述2
1.3开发背景3
1.4开发目的与意义3
第2章可行性分析3
2.1技术可行性分析3
2.2经济可行性分析8
2.3操作可行性分析9
2.4法律可行性分析10
第3章需求分析10
3.1系统业务流程描述10
3.2用户需求10
3.3性能需求10
3.4数据分析11
3.5出错处理需求11
3.6接口需求12
第4章系统设计12
4.1数据库设计12
4.2系统概要设计17
第5章系统实现23
5.1系统框架实现23
5.2系统功能模块实现27
第6章系统的调试与测试33
6.1测试概述33
6.2单元测试34
第7章结论36
参考文献37
第1章概述
1.1开发前讨论内容
(1)第一次讨论内容:
1、确定开发项目:
bbs。
2、开发平台:
JavaEE。
3、开发工具:
Myeclipse+Tomcat+Mysql。
(2)第二次讨论内容:
1、确定主题:
国产动漫。
2、确定开发功能:
发帖+回帖+个人资料管理+好有管理+微博等。
3、开发文档:
可行性分析和需求分析。
(3)第三次讨论内容:
1、最终确定功能:
去除微博发布改成类似百科的百科式发布模式。
2、完成开发文档。
1.2总体概述
随着计算机技术迅速向着网络化、集成化方向发展。
传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。
而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。
如今,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛(bbs)扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。
各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。
1.3开发背景
国内自己开发的BBS基本上都是处于最原始的JSPMODEL1模式,这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展,于是在这种情况下,我们使用了目前比较流行的、基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛设计,本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合创建自己的中小型BBS论坛。
1.4开发目的与意义
当我们在网上搜索动漫论坛的时候,搜索到的论坛中大部分是外国的动漫,很少有关于我们的国产动漫的主题论坛。
所以我们想开发一个国产动漫的专题动漫论坛,在吸引国内动漫爱好者讨论和发帖的同时,发布我国国产动漫的相关情况,为促进国产动漫的发展尽一份力。
第2章可行性分析
2.1技术可行性分析
2.1.1开发语言综述
本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点:
1.简化结构:
J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。
另外,J2EE还支持异构环境。
基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。
J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。
2.提高开发效率:
由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。
例如:
图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。
3.可移植性强:
除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。
4.重用性好:
由于在EJB模型中,各个软件组件都是严格分离的,因此,可以从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。
5.易于维护:
基于组件的设计简化了应用程序的维护。
由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。
6.可伸缩性:
企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。
基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。
J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。
7.被广泛接受:
主要的IT供应用商都采纳EJB体系结构,不同供应商的产品只要符合EJB体系结构,就都是可互操作的。
2.1.2MySQL数据库的选用
MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任
MySQL具有以下优点:
1.首先是速度。
对于MySQL来说,速度是他们追求的主要目标之一,虽然从MySQL4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。
但是,仍然有理由相信,MySQL将有可能一直保持速度的优势。
2.MySQL更流行,流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。
3.MySQL更适宜在Windows环境下运行。
MySQL作为一个本地的Windows应用程序运行(在NT/Win2000/WinXP下,是一个服务),在Windows运行中,MySQL更加的稳定。
4.MySQL使用了线程,在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。
5.MySQL在权限系统上更为完善。
MySQL允许你定义一整套的不同的数据级、表级和列级的权限。
对于列级的权限。
MySQL还允许你指定基于主机的权限。
6.MySQL的MERGE表提供了一个独特管理多个表的方法。
2.1.3S.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和Customtaglibrary。
其基本构成如图2.1所示。
图2.1Struts框架工作流程
2.Spring框架
Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架(Applicationframework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。
Spring框架由以下7个部分组成:
图2.2Spring框架构成
3.Hibernate框架
Hibernate是一个开放源码的ORM持久层框架。
作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。
简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。
用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。
2.1.4系统层次设计
系统很据S.S.H框架的特点,决定使用四层结构,这样做的优点是:
(1)可以分层开发,访问数据库与业务逻辑实现能够分开。
(2)提高代码的复用
图2.4cmbbs系统的分层结构
综上所述,这些成熟的框架和优秀的设计思想,为系统建设提供了技术条件。
计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供了坚实基础。
2.2经济可行性分析
我们对此bbs其进行初步分析,如果将其投入运行,计算会带来的经济效应:
1.支出
(1)基本建设投资
包括采购、开发和安装下列各项所需的费用,如:
1)数据通讯设备:
2000元;
2)环境保护设备:
500元;
3)安全与保密设备:
500元;
4)收费应用的软件:
300元。
(2)其他一次性支出
下列各项所需的费用,如:
1)需求的研究、设计的研究以及实地调查的各项费用:
800元;
2)开发计划与测量基准的研究:
500元;
3)数据库的设计和建立:
700元;
4)检查费用和技术管理性费用:
2000元;
5)组员为开发本系统所培训费:
1000元
6)旅差费以及开发安装人员所需要的一次性支出:
500元;
7)人员的退休及调动费用:
3000元。
(3)非一次性支出
该系统生命期内按月或按季或按年支出的用于运行和维护的费用,包括:
1)设备的租金和维护费用:
500元;
2)软件的租金和维护费用:
300元;
3)数据通讯方面的租金和维护费用:
100元;
4)人员的工资、奖金:
3(月)×4(人)×2000=24000元,无奖金;
5)保密安全方面的开支:
1500元;
6)其他经常性的支出:
1000元。
2.收益
(1)一次性收益
能够用人民币数目表示的一次性收益,按数据处理、用户、管理和支持等项分类叙述,如:
1)开支的缩减包括:
A.改进了的系统的运行所引起的开支缩减:
500元;
B.资源要求的减少:
200元;
C.运行效率的改进,数据进入、存贮和恢复技术的改进共节约费用:
600元;
D.系统性能的可监控,软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化共节约费用:
500元。
2)由于一个应用系统的使用价值的增升所引起的收益包括:
A.资源利用的改进共节约费用:
200元;
B.管理和运行效率的改进以及出错率的减少共节约费用:
300元。
C.其他如从多余设备出售回收的收入共节约费用:
300元。
(2)非一次性收益
1)由于系统加强了数据的安全方面的考虑,为本系统以后的数据库安全方面的维护节约开支总计:
50元/月;
2)系统的设计比以前系统较规范,这样每月可为系统节约开支:
10元/月。
(3)不可定量的收益
1)服务的改进,由操作失误引起的风险的减少,信息掌握情况的改进等为系统节约支出大概为:
10000元/年;
2)组织机构给外界形象的改善节约支出:
3000元/年。
3.收益/投资比
整个系统生命期的收益为:
16320元,为开发本系统投资为:
35800元;收益/投资=0.45587。
4.投资回收周期
设系统需要运行N年就可以超过支出的时间:
16320*N-35800>0,N=2.19年。
2.3操作可行性分析
cmbbs系统尽量做到界面简洁、易于操作,模仿国内成功的bbs论坛系统,融入少量自己的元素,使其更加方面用户操作。
2.4法律可行性分析
本系统纯属于团队的开发所成,不会因为版权的问题造成纠纷。
不作为商业用途,只应用于学习交流。
第3章需求分析
3.1系统业务流程描述
(1)会员注册流程
会员填写个人信息—>信息合法性检验—>会员信息持久化
(2)会员登陆流程
输入用户凭证—>合法性检验—>基于角色授权
(3)会员管理流程
持有管理员角色—>角色调整或分配为版主或删除用户
(4)论坛版块管理流程
持有管理员角色—>添加、删除、调整、置顶、隐藏版块
(5)帖子发表
注册用户选择版块发表主题—>主题持久化
(6)帖子回复
用户—>针对主题发表回复—>回复持久化
(7)帖子管理
持有管理员或版主角色—>转移、置顶、删除等操作
(8)帖子检索
用户—>按检索条件返回帖子
(9)论坛板块划分
论坛板块管理员可根据用户使用群体划分板块(如:
普通论坛板块、团队活动板块)
3.2用户需求
论坛板块列表
浏览帖子
发帖回帖
搜索帖子
编辑帖子
删除帖子
精华帖
置顶帖子
转移帖子
用户注册
用户登录
控制用户权限
修改注册信息
设置论坛参数
管理板块
管理用户
3.3性能需求
1.会员管理员权限按级别区分
2.发帖延时审核保持无滞后
3.任何程序功能无编译错误
3.4数据分析
3.5出错处理需求
(1)正常使用时不应出错
若运行时遇到不可恢复的系统错误,系统也必须保证数据库完好无损。
(2)出错处理的方式
1.系统如果出现应用服务器关闭,数据库连接断开等软件异常,会给在log信息详细标示。
2.如果事务处理过程出现故障,事务回滚,保证数据的完整性。
3.如果多人同时访问一条记录,加锁该纪录避免脏数据。
4.数据库采用增量备份法,出现数据库故障时数据库恢复。
(3)错误日志的要求
应用程序应能提供易于查看的日志,便于系统的维护、调试、错误定位等,系统日志应该至少可以保存40000条程序运行记录。
同时,由于是在多线程环境下运行,每条日志中应该打印出打印该日志的线程ID。
3.6接口需求
1.硬件接口:
支持一般的PII或更高档微机,笔记本电脑。
2.软件接口:
运行于Windows95及更高版本具有WIN32API的
操作系统之上。
3.数据通信协议:
该软件同其他软件之间无明显接口,数据通信协议主要为TCP/IP协议。
第4章系统设计
在前期的系统结构分析的基础上,对系统进行概要设计。
4.1数据库设计
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
(1)数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
(2)数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。
(3)数据库设计是信息系统开发和建设的重要组成部分。
4.1.1概念模型设计(E-R图)
数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。
描述了数据结构、数据操作及数据约束。
E-R模型的基本概念:
ER图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图。
ER图的理念是:
项目所有参与者能理解ER图。
ER图由不同实体类型、关系、特性和类型构成。
实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。
特性用于描述实体,关系用于实体之间
(1)实体:
现实世界中的事物;
(2)属性:
事物的特性;
(3)联系:
现实世界中事物间的关系。
实体集的关系有一对一、一对多、多对多的联系。
图4.1本系统的E-R图
4.1.2数据库表
根据以上这些步骤就可以创建一个数据库,依次建立下列表结构.
1.用户基本资料表
2.用户详细信息表
3.论坛文章表
4.论坛版区表
5.论坛初始化信息表
(1)用户基本信息表和用户详细信息表是一对一的关系,一个用户只对应一个详细的信息表
(2)用户基本信息表和文章表是一对多的关系,即一个用户可以发表多篇文章和回复.
(3)论坛版区表和论坛文章表是一对多的关系,在一个论坛中可以含有多个文章和回复.
4.1.3详细数据库结构设计
(1)用户基本资料表:
用户基本资料表中存放的是用户登陆时所需要或者记录用户的基本信息,包含比如登陆名,密码,最后登陆时间等.用户基本信息表的建立主要是记录用户最常用的一些信息.
表3.1cmbbs_userinfo
字段名
数据类型
长度
主键
索引
外键
可空
说明
ID
bigint
20
是
否
否
代理主键
UserName
Varchar
20
否
是
否
用户名
NickName
Varchar
60
否
否
否
昵称
Passwd
Varchar
40
否
否
否
密码
varchar
255
否
否
否
电子邮件
Question
varchar
255
否
否
否
提示问题
Answer
varchar
255
否
否
否
提示答案
RegTime
datetime
否
否
否
注册时间
LoginTime
datetime
否
否
否
最后登陆时间
LoginIP
varchar
20
否
否
否
最后登陆IP
LoginTimes
int
11
否
否
否
登陆次数
StayTime
bigint
20
否
否
否
停留时间
SignDetail
text
否
否
是
用户签名
HavePic
tinyint
1
否
否
是
是否有头像
PicFileName
varchar
255
否
否
是
头像地址
TimeZone
varchar
20
否
否
是
地区
(2)用户详细信息表:
用户详细信息表中存放的是用户的身高,体重,联系方式等详细资料,建立此表的目的是把一些用户不经常用到的详细信息,单独存放到一张表中,可以节约系统的资源.
表3.2cmbbs_userdetai
字段
数据类
长度
主键
索引
外键
可空
说明
ID
bigint
20
是
是
否
代理主键
Height
varchar
20
否
否
是
身高
Weight
varchar
20
否
否
是
体重
FavourPeople
varchar
255
否
否
是
最喜欢的人
DreamJob
varchar
255
否
否
是
向往工作
FavourMusic
varchar
255
否
否
是
喜欢的音乐
FavourPlace
varchar
255
否
否
是
喜欢的地方
FavourMovie
varchar
255
否
否
是
喜欢的电影
HomePage
varchar
255
否
否
是
主页
OicqNo
varchar
255
否
否
是
QQ号码
IcqNo
varchar
255
否
否
是
ICQ号码
MSN
varchar
255
否
否
是
MSN号码
Sex
tinyint
1
否
否
是
性别
Brief
text
否
否
是
简介
(3)论坛文章表:
论坛文章表存放的是用户所发表的文章信息,也包括回复信息.而在数据库的设计中主要问题是鉴别帖子信息和回复信息.
表3.3cmbbs_forum
字段名
数据类型
长度
主键
索引
外键
可空
说明
ID
bigint
20
是
否
否
代理主键
ParentID
bigint
20
否
否
否
父帖ID
MainID
bigint
20
否
否
否
主帖ID
BoardID
bigint
20
否
否
否
版区ID
BoardName
varchar
60
否
否
否
版区名字
ReNum
int
11
否
否
否
回复数量
ClickNum
int
11
否
否
否
点击次数
UserID
bigint
20
否
否
否
发表者ID
UserName
varchar
20
否
否
否
发表者姓名
NickName
varchar
60
否
否
否
发表者昵称
Title
varchar
150
否
否
否
文章标题
Detail
text
否
否
否
文章内容
Sign
text
否
否
否
文章说明
ArtSize
int
11
否
否
否
文章字节数
postTime
bigint
20
否
否
否
发表时间
LastTime
bigint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- bbs 社区 开发 文档