《软件开发案例分析》课程大作业基于JAVA的BBS论坛系统成员列表课序号学号姓名班级任务分工组长03201392116田硕软1302模型层开发组员03201392327穆振家软1302架构设计、数据库设计03201392443唐超旭软1302需求分析03201392002操磊磊软1302视图层开发大连理工大学DalianUniversityofTechnology目录1需求概述11.1系统开发背景11.2系统概述12需求分析22.1可行性分析22.1.1实用性和先进性22.1.2技术可行性22.1.3兼容性和经济性22.2用例图及用例分析22.3.1用户模块用例分析32.3.2帖子模块用例分析52.3.3管理员模块用例分析62.3E-R图63概要设计73.1架构设计73.2数据库设计9基于JAVA的BBS论坛系统–1–1需求概述1.1系统开发背景近年来,随着社会经济的飞速发展和计算机科学的不断进步,人民群众的生活越来越信息化。人们通过网络与自己的亲朋好友甚至是陌生人交流、在网上进行购物、浏览新闻、网上学习等。在这个过程中,BBS论坛的出现同样给网民带来了巨大的便利。BBS论坛是Internet的重要应用之一,是Internet上一种主要的信息交流和发布平台,为Internet用户提供了一个在线交流的平台。BBS即论坛,英文全称是BulletinBoardSystem,中文被译为“电子公告板”,是一款网络版应用软件,也是一种在Internet上得到广泛使用的信息服务WEB系统。BBS起源于上世纪80年代初,最初论坛只是用于发布公告信息、讨论问题的在线交流平台,给计算机爱好者一个互相交流的平台。后来,随着网络的普及,BBS论坛的功能愈加丰富,受到广大网民的欢迎。BBS已经成为网络上主要的信息发布、交流和共享的平台,而且这种交流不受地域的限制,它提供了一个相互交流、学习的平台,它能够把复杂的事情简单化,搭建了人们交流和了解世界的平台。1.2系统概述对于BBS系统来讲,主要有三种参与者:游客、会员、及管理员。游客可以浏览主题、浏览回复、注册成为会员,会员可以进行发帖、回帖、以及管理自己的帖子(删除帖子、删除回复等),版主是特殊的会员,除会员的功能还可以管理自己板块内的帖子(删除水贴、包含不良信息的帖子等),管理员可以管理用户、管理板块。表1.2.1用户权限表用户名称用户权限游客浏览帖子、浏览回复、注册成为会员会员发帖、回复帖子、管理自己的帖子、修改密码、修改个人信息版主管理自己版块内的帖子(删帖、删回复、置顶等)管理员管理会员、管理板块基于JAVA的BBS论坛系统–2–2需求分析2.1可行性分析2.1.1实用性和先进性随着Internet的不断发展,BBS论坛已成为人们彼此沟通的主要方式,通过论坛的交流,不仅能够进行只是传播,同时也能够进行人与人之间的交流,这是BBS不断成长的动力之一。同时这种论坛的交流模式,也改变了以往的交流模式,使得交流可以不受时空的限制,形成了一种更加快捷和超越时空的交流方式,并且这种形式的反馈更加的便捷,因此成为了现在社会交流的主要形式。2.1.2技术可行性开发BBS论坛系统的技术已经相当成熟。从硬件上讲,计算机硬件速度现在已经不是问题,大容量高速度的硬盘十分普遍。同时网络速度的提高,这些为系统运行打下了坚实的基础。从软件上讲,数据库技术同样相当成熟。同时基于struts2框架进行开发,将视图、模型、控制很好的分割开来,减少了耦合,提高了代码的重用性。2.1.3兼容性和经济性开发BBS论坛的技术已经相当成熟。相关技术的资料均可通过查阅书籍及网上搜索获得。同时,开发所需的软硬件也易于获得,并且不需要花费很多的经济资源,开发成本较低。2.2用例图及用例分析根据参与者及功能的不同,将该系统分为三个模块:用户模块(游客注册、会员登录、会员修改密码、会员进入个人中心、会员修改个人信息等)、帖子模块(浏览帖子,发帖、回复帖子、删除帖子等)及管理者模块(管理会员、管理板块等)。用例分析图如下图3.1所示:基于JAVA的BBS论坛系统–3–图3.1系统用例分析图2.3.1用户模块用例分析用户模块主要是游客的注册、会员的登录、修改密码、进入个人中心、查看我的帖子、查看我的回复、修改个人资料。用户模块的参与者是游客及会员,其用例图如下图3.2所示:图3.2用户模块用例图基于JAVA的BBS论坛系统–4–会员注册的主要参与者是游客,其用例规约表如下表所示:表3-1会员注册用例规约表会员登录的主要参与者是会员,其用例规约表如下表所示:表3-2会员登录用例规约表用例名称会员登录参与者会员简要说明会员用自己的账号密码进行登录前置条件会员进入BBS论坛登录界面基本事件流1.会员填写账号密码并提交2.验证输入信息是否完整及合乎规范3.提交到数据库进行验证4.验证账号是否存在及账号密码是否匹配5.验证成功则跳转至原来界面其他事件流1.所填信息不完整或不合乎规范2.用户名未注册3.密码错误异常事件流用户多次输错密码,用户名绑定后置条件登陆成功,跳转至原来界面注释已注册的会员用户进行登录用例名称会员注册参与者游客简要说明游客注册成为BBS论坛会员前置条件游客进入BBS论坛注册界面基本事件流1.游客填写所需信息并提交2.验证输入信息是否完整及合乎规范3.提交到数据库进行验证4.验证用户名是否已被注册5.验证都成功则保存至数据库并显示注册成功6.跳转至登录界面其他事件流1.所填信息不完整或不合乎规范2.用户名已被注册异常事件流注册过程中退出,则注册失败后置条件注册成功,保存至数据库注释游客注册成为BBS论坛会员基于JAVA的BBS论坛系统–5–2.3.2帖子模块用例分析帖子模块的参与者是会员和版主,其用例分析图如下:图3.3帖子模块用例分析发帖的参与者是会员,其用例规约表如下表所示:表3-3发帖用例规约表用例名称发帖参与者会员简要说明会员进行发帖前置条件会员登录且进入版块界面基本事件流1.会员填写主题、内容后提交2.验证是否登录及输入信息的合理性3.提交到数据库并保存4.刷新版块页面其他事件流1.所填信息不完整或不合乎规范2.用户未登录异常事件流无后置条件发帖成功,该版块中加入该贴注释帖子主题不超过25字,内容不超过200字基于JAVA的BBS论坛系统–6–2.3.3管理员模块用例分析管理员模块的参与者只有管理员,其用例分析图如下:图3.4管理员模块用例分析图2.3E-R图E-R方法是“实体-联系方法”(Entity-RelationshipApproach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。大部分数据库设计产品使用实体-联系模型(ER模型)帮助用户进行数据库设计。ER数据库设计工具提供了一个“方框与箭头”的绘图工具,帮助用户建立ER图来描绘数据。该系统E-R图如下图3.5所示:基于JAVA的BBS论坛系统–7–图3.5E-R图3概要设计3.1架构设计系统采用了B/S体系结构(即Browser/Server体系结构),采用整合了Struts2框架技术的J2EE架构进行论坛系统的开发。B/S体系结构是C/S体系结构的继承与发展,它是Internet技术与数据库技术相结合过程中形成的数据库体系结构。B/S体系结构具有许多优点,比如维护和升级方式简单。现如今,软件系统的改进与升级十分频繁,对于C/S结构来说,软件系统的改进需要在所有的客户端进行部署,但对于B/S结构来讲,只需要管理服务器即可,所有的客户端都是浏览器,根本不需要做任何维护。除此之外,B/S体系结构还具有分布式的特点,可以随时随地进行查询、浏览等业务处理。B/S结构开发简单,共享性强。B/S结构图如图3.1所示:基于JAVA的BBS论坛系统–8–图3.1B/S结构图Struts框架实现了视图层、业务层和控制层的分离,使得应用程序易于维护、低耦合且可扩充。Struts是由Apache软件基金会资助的一个开源框架,它也是基于MVC模式的WEB应用最经典的框架。模型(Model):在Struts框架中,模型分为两个部分:1.系统的内部状态2.可以改变状态的操作(事物逻辑)。内部状态通常由一组ActionFormJavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。视图(View):由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。控制器(Controller):Struts中,基本的控制器组件是ActionServlet类中的实例servlet,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。Struts框架图如下图3.2所示:基于JAVA的BBS论坛系统–9–图3.2Struts框架图3.2数据库设计数据库设计是系统设计中极为重要的一环。下图为数据库主要表的关系图:图3.1数据库主要表关系图基于JAVA的BBS论坛系统–10–下面四张表是论坛主要的数据库表,分别为用户信息表,主题帖信息表,回复贴信息表及版块信息表:表3-1用户信息表字段名注释类型备注adminUserName用户名nvarchar(13)主键adminPassword密码varchar(20)不为空emailAddress邮箱varchar(20)不为空sex性别int0为男,1为女phoneNumber手机号varchar(20)location所在地varchar(20)personalIntroduction个人介绍varchar(100)channelId管辖版块Idnumeric(3,0)外键表3-2主题帖信息表表3-3回复贴信息表表3-4版块信息表字段名注释类型备注postId帖子编号numeric(18,0)主键postTitle帖子题目nvarchar(20)不为空postContent帖子内容nvarchar(400)不为空userName发帖人nvarchar(13)外键addTime发帖时间datetimealterTime最后修改时间datetimechannelId版块编号numeric(3,0)外键字段名注释类型备注replayId回复编号numeric(18,0)主键replayContent回复内容nvarchar(200)不为空userName回帖人nvarchar(13)外键replayTime回帖时间datetime不为空postId帖子编号numeric(18,0)外键字段名注释类型备注channelId版块IDnumeric(3,0)主键channelName版块名nvarchar(50)