基于SSH的新闻发布系统的设计与实现毕业论文(设计).doc
4 PINGDINGSHAN UNIVERSITY 毕业论文(设计)题 目: 基于SSH的新闻发布系统 的设计与实现 平顶山学院本科毕业设计基于SSH的新闻发布系统的设计与实现摘 要随着Internet的普及,越来越多的企业纷纷建立了自己的门户网站,来展示产品、与用户进行交流、与合作伙伴建立联系以及开展电子商务等。新闻发布系统是企业门户网站的重要组成部分,因此开发新闻发布系统是适应企业发展的一种需要。系统采用Java语言,浏览器/服务器(B/S)模式,Struts、Hibernate和Spring(SSH)三层架构进行开发,实现了新闻栏目的分类、新闻的添加、审核、发布、评论、回复等功能。在新闻管理模块中,将通过审核的新闻生成静态Html文件存放在服务器指定位置并发布,提高了用户的访问速度。论文首先对系统的功能、架构、数据库等进行了分析与设计,然后对系统的栏目管理、新闻管理、评论管理等模块进行了详细设计与实现。系统测试表明各项功能达到了预期效果,具有较好的安全性和容错性。下一步考虑增加在后台根据需要定制前台显示模板的功能,不断完善系统。关键词:新闻发布系统,B/S,SSHThe Design and Implementation of the News Released System Based on SSHAbstractWith the great popularity of network, an increasing number of enterprises are looking forward to establishing their own websites, through which they can display products, communicate with clients, establish partnership, as well as develop e-commerce. In a word, it has been a necessity for enterprises to establish their own news release system which is one of the most important parts for enterprises to keep pace with the social development.The system is designed and implemented based on SSH three-tier architecture using Java language and browser/server (B/S) mode. The functions of the news release system include news categories, adding, auditing, releasing, commenting, recovery and etc. It is worthwhile mentioning that it is through the generated static HTML files which have been examined and stored on the server specified location that news are released, thus being greatly helpful in speeding up the users browse rate. First of all, the essay analyses and designs the functions, the architecture ,the database of the system; then presents a detailed design and implementation aiming at column management, news management, comment management, system management and so on.At present, the system has realized the functions that are expected on the whole, which has better security, fault tolerance. Even so, it cant deny that the system hasnt accomplished the function of customizing background display template without any special requirements considering the workload and time permission. More study and improvement on the news release system will be implemented in the future.Keywords: news released system, B/S, SSH目录1 绪论11.1 开发背景及意义11.2 应用现状11.3 本文工作21.4 论文结构安排31.5 本章小结42 技术及工具介绍52.1 B/S模式52.2 UML52.3 相关技术62.3.1 SSH框架62.3.2 AJAX72.3.3 JSON-RPC框架72.4 开发工具72.4.1 Tomcat服务器72.4.2 MySQL数据库管理工具82.4.3 MyEclipse编程工具82.5 本章小结83 需求分析93.1 业务流程93.2 设计目标103.3 功能需求103.4 性能需求153.5 本章小结164 总体设计174.1 架构设计174.2 功能设计184.3 数据库设计与实现194.3.1 数据需求194.3.2 概念结构设计214.3.3 逻辑结构设计224.3.4 数据库实现234.4 接口设计244.5 本章小结265 详细设计与实现275.1 界面设计275.1.1 设计原则275.1.2 详细设计285.2 功能详细设计与实现295.2.1 栏目管理295.2.2 新闻管理315.2.3 评论管理335.2.4 系统管理345.2.5 前台交互365.3 关键问题解决方案405.3.1 无限级栏目树设计405.3.2 文本编辑器使用415.3.3 静态新闻文件生成415.4 本章小结426 测试436.1 测试计划436.1.1 测试目的436.1.2 测试环境436.1.3 功能测试计划446.2 功能测试446.3 用户界面测试456.4 问题严重程度描述456.5 测试结果466.6 本章小结467 结束语477.1 总结477.2 展望48附 录49参考文献53致 谢54551 绪论本章首先介绍新闻发布系统的开发背景及意义,然后介绍应用现状,接着介绍本文主要工作,最后是论文结构安排。1.1 开发背景及意义21世纪是信息的时代,是网络的时代。传统的报纸杂志已经远远满足不了人们的需求,人们更加希望能够在网上快速及时地浏览新闻,因此获取各种各样的网上信息,已成为人们日常生活的一部分。信息技术的发展使得整个世界越来越小,这也意味着企业的竞争环境由区域化向全球化发展,企业所处的宏观环境实际上已经不仅仅是通过信息技术员连接起来的狭义网络,而是将技术环境与经济环境结合在一起考虑,形成一种大网络的概念。企业对信息的掌握程度、信息获取是否及时、信息能否得到充分利用、对信息的反应是否敏感准确,已越来越成为衡量一个企业市场竞争能力的重要因素。因此企业纷纷建立起自己的门户网站,通过网站来展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。新闻发布系统是一个基于新闻和内容管理的全站管理系统,它是基于浏览器/服务器(Browser/Server,B/S)模式的Web系统,可以将杂乱无章的信息经过组织,合理有序地呈现在大家面前,主要实现对新闻的分类、添加、审核、发布、评论等,模拟一般新闻媒介发布新闻的整个过程。新闻发布系统是构成企业门户网站的重要组成部分,担负着双重作用,一方面,可以用来动态发布有关新产品或新开发项目;另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群1。所以建立新闻发布系统是适应企业发展的一种需要,其意义是巨大的。1.2 应用现状目前业内新闻发布系统主要分为两类,下面将分别介绍其特点和应用范围。1.前台动态显示的新闻发布系统该类系统大约占60%的份额,其主要特点为:前台采用Java语言动态读取数据库的内容,随时更新,该类系统设计简单,适合大多数中小企业建站需要。其通用性不强,一般需要量身定做,不适合大型新闻站点,当用户过多时,系统采用Java语言动态读取数据库就势必消耗大量的服务器资源,造成系统运行缓慢,甚至崩溃。2.前台静态显示的新闻发布系统该类系统大约占30%的市场份额,其主要特点为:前台新闻全部生成静态HTML文件,用户浏览新闻时无须从数据库中动态读取,只需要直接下载HTML文件即可,浏览速度得到提高,同时也大大减轻了数据库服务器的压力。该系统后台设计复杂,需要处理复杂的模板标签和各个模板之间的逻辑,一般采用三层模式实现,该类系统灵活性大,可以通过自定义模板实现界面复杂的前台页面,一般不需要为某一个企业而定做,该系统具有良好的通用性,适合各类新闻站点,同时,把前端用户和数据库分割开来,系统的安全性得到大大的提高2。本文将在现有新闻发布系统基础上作如下改进:开发一个前台静态浏览、动态查询的新闻发布系统,即在新闻审核通过时生成静态HTML文件存放在服务器指定的目录下,同时将该新闻标题及存放路径存入数据库。用户浏览新闻时,直接加载HTML文件;以特定关键字搜索新闻时,进行动态查询并将查询结果展示给用户。这样在一定程度上,不但解决了系统运行效率低及安全性差的问题,而且减轻了数据库服务器压力。1.3 本文工作本文针对目前大多数新闻发布系统运行速度慢、扩展性不强、管理不方便等问题,设计并实现了一个基于SSH(Struts、Spring和Hibernate)框架的新闻发布系统。主要工作如下:1.分析系统需求通过查阅相关资料及分析现有新闻发布系统具有的功能,同时在调研某公司新闻管理及发布工作流程基础上,认真分析、总结各类人员负责的相关工作,由此得出用户的功能需求和系统的性能需求。2.选择系统架构针对系统需求,采用模型-视图-控制器(Model-View-Controller,MVC)模式作为系统架构,不仅实现了系统的代码复用,而且便于日后的升级和维护。3.设计系统主要功能模块对各个模块的功能及任务进行了定义和划分。本系统有四类角色,即普通用户、信息编辑员、信息审核员和系统管理员。系统功能划分为五个模块:(1) 栏目管理模块:包括栏目信息的添加、修改、删除及栏目名称以栏目结构树形式显示,使得新闻可以分类管理。(2) 新闻管理模块:包括新闻的添加、修改、批量删除、审核、按条件查询、查看新闻评论等功能。(3) 评论管理模块:包括评论的查询、批量审核及批量删除等,其中设置评论审核可避免垃圾评论产生。(4) 系统管理模块:包括用户分类管理、用户权限划分、数据库备份与恢复及个人密码修改等功能。(5) 前台展示模板:包括浏览、搜索、评论新闻及评论回复、注册用户信息和找回密码等功能。4.实现新闻发布系统在完成系统功能需求和数据库设计的基础上,采用SSH作为总体开发框架,Java作为开发语言,异步JavaScript和XML(Asynchronous JavaScript and XML,AJAX)、JSON-RPC组件作为异步通信技术,实现了一个比较完整的新闻发布系统。5.进行系统测试从制定测试计划,到选择测试环境,再到针对某一功能编写测试用例,逐步进行测试,并分析测试结果。1.4 论文结构安排本文从软件开发生命周期的角度阐述了系统开发过程,首先介绍了项目开发背景、意义及应用现状,然后简单介绍了系统采用的技术及开发工具,接着重点论述系统需求分析、总体设计和详细设计与实现过程,最后做系统测试以及总结。共分为七部分,具体内容安排如下:第一部分:绪论。介绍项目背景及意义、应用现状和论文结构安排等。第二部分:技术及开发工具。介绍开发系统用到的相关技术及工具等。第三部分:需求分析。从实际业务流程、设计目标、功能需求和性能需求四个方面对系统进行需求分析。第四部分:总体设计。从系统架构设计、功能设计、数据库设计和接口设计四个方面对系统进行总体设计。第五部分:详细设计与实现。首先设计系统界面,然后按照SSH三层框架的整合思想,实现本系统主要模块。第六部分:测试。按照测试计划对系统进行测试。第七部分:结束语。总结系统功能和优点,并对系统后续工作进行展望。1.5 本章小结本章首先介绍了项目开发背景及意义,明确了开发本系统的重要性。然后介绍了应用现状,指出了现有新闻发布系统的优缺点,接着给出本文工作,对整个系统设计与实现过程做了一个系统性的说明,最后给出论文结构安排。2 技术及工具介绍本章主要从系统开发所用到的相关技术、方法及开发工具等方面进行简单介绍。2.1 B/S模式本系统面向的用户群体是中小型企业,企业在使用系统时,需要借助互联网来发布最新产品、最新动态及与客户在线交流等。基于此,需要采用B/S模式来设计系统。B/S模式又称B/S结构。它是随着Internet技术的兴起,对客户端/服务器(Client/Browse,C/S)模式的扩展。随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是出现了B/S模式。该模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音等信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。B/S模式的优点主要有:1.具有分布性特点,可以随时随地进行查询、浏览等业务处理;2.业务扩展简单方便,通过增加网页即可增加服务器功能;3.维护简单方便,只需要改变网页,即可实现所有用户的同步更新;4.开发简单,共享性强。2.2 UML统一建模语言(Unified Modeling Language,UML)被对象管理组织(Object Management Architecture,OMG)采纳为标准建模语言,成为业界的标准。UML作为一种定义良好、易于表达、功能强大且普遍适用的建模语言,融入了软件工程领域的新思想、新方法和新技术,成为面向对象技术学习中不可缺少的一部分。UML的作用不仅在于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程3。UML作为一种建模语言,在项目开发过程中的作用,总结起来主要有以下几个方面:1.UML作为一种建模语言,为用户提供了一种易用的、具有可视化建模能力的语言,能够使用户使用该语言进行系统的开发工作,并且能够进行有意义的建模互换;2.UML为面向对象建模语言的核心概念提供了可扩展性和规约机制;3.支持高级的开发概念;4.集成了优秀的开发实践成果和经验。2.3 相关技术2.3.1 SSH框架SSH是一个轻量级组合框架,能更好的实现MVC模式,充分发挥了各自的优势。其中通过Struts在表示层中处理页面请求和转发工作;通过Spring的依赖注入(Inversion of Control,IoC)技术降低了程序之间的耦合性,也使程序员养成用接口编程的好习惯;通过Hibernate完成在持久层与数据库的交互工作。三层框架的整合形成一个结构良好、功能强大,层次清晰的框架体系。1.StrutsStruts是一个独立的MVC模式框架,很好的实现了显示处理和业务处理逻辑之间的低耦合性4。但Struts主要是针对表示层设计的,对业务逻辑方面的支持不是很强,比如事务管理、安全检查等本属于系统层面的,实现代码也穿插在整个业务逻辑中,降低了代码的可维护性,而Spring则可以很好地解决这些问题。2.SpringSpring也是独立的MVC模式框架,通过IoC技术,降低各组件之间的依赖,而Spring提供的面向切面编程(Aspect Oriented Programming,AOP)技术,在事务管理上具有独特优势5。Spring框架不仅能有效地服务中间层对象,而且易于同其他层框架进行无缝集成,使各层之间相互独立,实现了在架构上各框架间的低耦合性。3.HibernateHibernate作为一个优秀的持久化工具,通过对象关系映射(Object Relational Mapping,ORM)架起了Java对象与关系数据库间的桥梁,很好的协调对象与数据库的交互,提供数据查询和恢复机制,实现了与底层数据库的分离。2.3.2 AJAXAJAX是一种运用JavaScript和可扩展标记语言(EXtensible Markup Language,XML),在网络浏览器和服务器之间传递或接收数据的技术。AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化。这样把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理,减轻服务器和宽带的负担。通过AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,JavaScript可在不重载页面的情况与Web服务器交换数据。2.3.3 JSON-RPC框架JSON-RPC是一个客户端远程调用服务器端方法的框架。JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架6。利用它内置的一个轻量级JSON-RPC JavaScript客户端,可以透明地在客户端JavaScript中调用服务器端的Java代码。在Web应用中,使用JSON-RPC组件的一般步骤如下:1.首先导入jsonrpc.jar包和jsonrpc.js文件到指定的位置;2.在web.xml中配置servlet和servlet-mapping;3.在JSP页面中引入jsonrpc.js文件和JSONRPCBridge类;4.将服务器端的JavaBean放置到要使用JSOM-RPC的JSP文件中。5.将服务器端的JavaBean注册到JSONRPCBridge对象中。6.在JavaScript脚本中创建一个JSONRpcClient对象,如:jsonrpc=new JSONRpcClient(“JSON-RPC”);7.利用创建的JSONRpcClient对象即可在JavaScript中直接调用服务器端的Java程序。2.4 开发工具2.4.1 Tomcat服务器Tomcat是一个便捷的小型Web服务器,耗费资源少,故采用Tomcat作为服务器。Tomcat是在SUN的JSWDK基础上发展起来的一个优秀的JSP服务器,是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。同样Tomcat也是一个开源软件,对系统开发成本的降低有很大帮助。Tomcat不但支持Servlet,而且还提供了Web服务器的基本功能,处理HTML页面,可以和目前大部分的主流服务器一起工作,有着相当高的运行效率。2.4.2 MySQL数据库管理工具从系统开发成本及数据量大小角度考虑,采用MySQL数据库管理系统来存储和管理系统数据。MySQL是一种关联数据库管理系统,其将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样不仅提高了速度而且提高了灵活性。MySQL的SQL“结构化查询语言”,是用于访问数据库的最常用标准化语言。MySQL软件采用了GNU通用公共许可证(General Public License,GPL)。其具有体积小、速度快、总体拥有成本低等特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.4.3 MyEclipse编程工具MyEclipse本身就集成了Struts、String和Hibernate这三种框架插件,不需要再下载安装,而本系统开发恰好是采用SSH三层框架进行整合开发,故选择MyEclipse编程工具开发本系统。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称My- Eclipse)是对Eclipse的扩展,利用它用户可以在数据库和J2EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、JavaScript、SQL以及Hibernate等。所以本系统的开发工具采用MyEclipse,提高开发效率。2.5 本章小结本章首先介绍了B/S开发模式,然后介绍了UML相关知识及其在项目开发中的作用,接着介绍了系统使用的相关技术,最后对系统开发工具做了简单介绍。3 需求分析在软件工程中,需求分析指的是在建立一个新的或修改一个现存的系统时描写系统的目的、范围、定义和功能所要做的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定用户的需要7。本章将从系统业务流程、设计目标、功能需求和性能需求四个方面进行描述。3.1 业务流程以一家企业为例,通过调研发现,参与到系统核心业务流程中的人员主要有信息编辑员、信息审核员、普通用户三类。核心业务流程如下:1.信息编辑员划分新闻栏目;2.信息编辑员在已存在的新闻栏目下撰写相应新闻;3.信息审核员审核编辑员撰写的新闻;4.审核通过就发布,反之打回重新修改;5.新闻审核通过后印刷成公司宣传册;6.信息编辑员发宣传册给客户,宣传公司以及产品,收集客户意见;7.客户针对新闻反馈意见;8.信息编辑员收集有用的意见归档。核心业务流程如图3-1所示。图3-1 核心业务流程图3.2 设计目标本系统主要面向的用户群体为中小型企业,需要实现的主要目标如下:1.通过本系统可以使企业很方便的对信息进行发布和管理。2.可以在本系统基础上进行二次开发,为其他企业定制门户网站。3.可以通过新闻评论及评论回复达到企业与客户的简单在线交互目的,注册用户具有此功能。4.用户浏览新闻时直接读取静态页面以提高访问速度。5.采用模块开发增加系统可维护性和可扩展性。6.栏目以目录结构树形式显示,结构清晰,便于用户获知栏目的上下级。7.具有高度的稳定性和安全性。3.3 功能需求功能需求是指系统必须提供的服务。通过需求分析来划分系统必须具备的功能,即要分清系统中的角色,并且要理清每个角色拥有的功能权限8。通过对系统进行分析,系统角色分为四类,分别为普通用户、系统管理员、信息编辑员、信息审核员,其中后三类角色是普通用户的泛化,拥有前台用户的所有功能。普通用户可以浏览、搜索、评论企业新闻,也可对浏览的新闻进行评论或对评论进行回复,其中只有注册过的用户才能对新闻进行评论或回复。普通用户用例图如图3-2所示。图3-2 普通用户用例图在普通用户用例图中,以评论新闻用例为例给出用例描述,如表3-1所示。表3-1 评论新闻用例描述用例编号UC_addComments用例名称评论新闻用例概述普通用户对新闻进行评论,审核通过的评论最终显示在评论页主参与者普通用户次要参与者无项目相关人利益说明项目相关人利益普通用户能够成功添加评论前置条件用户是注册用户后置条件成功添加评论成功保证新闻管理人员在后台能够看到普通用户添加的评论基本事件流步骤活动1普通用户点击新闻页面右下角的“评论”按钮,打开评论页面2普通用户输入用户名、密码、验证码以及评论内容3普通用户点击“提交”按钮,提示评论添加成功,待审核4用例终止扩展事件流3a普通用户输入用户名、密码或者验证码错误,提交时提示相应的错误提示3b普通用户输入评论内容为空,提交时提示评论不能为空子事件流无规则与约束1.用户登录成功才能评论2.评论内容不能为空信息编辑员在登录系统后,可以添加、删除、修改新闻所属栏目,可以添加、修改、删除、查找、审核新闻,也可查看、审核、批量删除评论等。信息编辑员用例图如图3-3所示。图3-3 信息编辑员用例图在信息编辑员用例图中,以添加新闻用例为例给出详细用例描述,如表3-2所示。表3-2 添加新闻用例描述用例编号UC_addNews用例名称添加新闻用例概述信息编辑员添加新闻信息,经信息审核员审核通过后才能发布到网站前台主参与者信息编辑员次要参与者无项目相关人利益说明项目相关人利益信息编辑员能够成功添加信息前置条件1.信息编辑员已经成功登录系统2.要添加的新闻所属的栏目已经创建后置条件成功添加新闻成功保证信息审核员在新闻管理模块能看到该条信息处于待审核状态基本事件流步骤活动1信息编辑员点击“添加新闻”菜单,打开添加新闻页面2信息编辑员输入标题、关键词,选择所属栏目,输入要发布的信息内容,设置新闻是否允许评论,并选择新闻展示模板3信息编辑员点击“提交”按钮,提示信息添加成功,待审核4用例终止扩展事件流3a若带*号的项为空,则提示不能为空子事件流无规则与约束1.带*号的项目为必填项目,不能为空2.搜索关键字要用逗号隔开信息审核员在登录系统后,可以查找、审核信息编辑员添加的新闻及修改个人密码,其中只有审核通过的新闻才能发布到网站前台。信息审核员用例图如图3-4所示。图3-4 信息审核员用例图在信息审核员用例图中,以审核新闻用例为例给出详细用例描述,如表3-3所示。表3-3 审核新闻用例描述用例编号UC_approveNews用例名称审核新闻用例概述信息审核员对信息编辑员添加的新闻进行审核,信息审核成功之后才能发布到网站前台,审核不通过可以提出修改意见,信息编辑员再进行修改主参与者信息审核员次要参与者无项目相关人利益说明项目相关人利益信息审核员能对信息编辑员添加的新闻进行审核,可提出修改意见,然后信息编辑员再做修改前置条件1.信息审核员已经成功登录系统2.有待审核的新闻信息后置条件信息审核通过,在网站新闻栏目成功发布成功保证1.信息审核通过,在网站新闻栏目成功展示2.审核不通过,信息编辑员在新闻管理模块可以看到审核不通过的新闻信息基本事件流步骤活动1新闻审核员点击“新闻审核”菜单,打开新闻审核主界面2新闻审核员对待审核状态的新闻进行审核,点击“审核”打开审核页面3新闻审核员添加审核意见,点击“提交”按钮,提示审核成功,返回新闻审核主界面4用例终止扩展事件流3a信息审核员审核通过,生成静态html文件,新闻成功发布3b信息审核员审核不通过,添加修改意见,然后信息编辑员再修改子事件流无规则与约束1.审核成功的新闻才能够发布到网站前台2.审核成功时要生成新闻静态HTML文件3.审核不通过要给出不通过缘由,并且能够展示给信息编辑员系统管理员在登录系统后,可以对用户、用户所属角色、新闻展示模板进行管理,也可对数据库进行备份、恢复及删除备份数据。其中角色管理包括添加角色、修改角色、删除角色、给角色分配权限和成员管理,成员管理包括批量删除、批量添加及查找成员等;用户管理包括添加、修改、注销、恢复用户及分配用户角色和查看用户所属角色等;模板管理包括增加、修改、删改新闻模板等操作。系统管理员用例图如图3-5所示。图3-5 系统管理员用例图在系统管理员用例图中,以管理角色用例为例给出用例描述,如表3-4所示。表3-4 管理角色用例描述用例编号UC_userGroup用例名称管理角色用例概述系统管理员对系统角色及权限进行管理,可以添加、修改、删除角色,可以对角色权限进行管理,也可对角色成员进行管理主参与者系统管理员次要参与者无项目相关人利益说明项目相关人利益系统管理员对系统角色及权限进行管理前置条件系统管理员成功登录系统后置条件成功对角色及权限进行管理成功保证添加的角色可以进行权限以及成员管理基本事件流步骤活动1系统管理员点击“角色管理”菜单,打开角色管理主界面2输入角色名称、角色说明,点击“添加”按钮,添加角色3点击“权限管理”按钮,打开权限管理页面,对角色进行权限管理4点击“修改”按钮,打开修改界面,对角色信息进行修改5点击“删除”按钮,删除角色6点击“成员管理”按钮,对角色成员进行管理7用例终止扩展事件流3a选择或者去掉相应的权限,点击“提交”按钮,权限管理成功,返回角色管理主界面4a修改角色名称或者角色说明,点击“提交”按钮,修改成功,返回角色管理主界面6a点击“批量添加”按钮,打开成员选择页面,选择要添加的成员,点击“提交”,添加成功,发挥角色成员管理页面6b点击“删除”按钮,删除相应成员6c选中要删除的成员,点击“删除”按钮,批量删除成员子事件流无规则与约束1.对用户进行分角色管理,不同角色拥有不同权限2.权限直接赋予角色,拥有该角色的用户即拥有该角色的所有权限3.4 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,新闻发布系统应该满足以下的性能需求:1.系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求9。在系统开发过程中,必须采用一定的方法保证系统运行的正确性。2.系统的易用性新闻发布系统是面向用户的,若用户对计算机并不是非常熟悉,这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用户熟悉的术语和中文信息的界面。3.系统的标准性在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。4.系统的安全性由功能性需求可知,系统管理员可对用户进行管理,这样一定程度上降低了数据的安全,因此要使用MD5对用户密码进行加密,这样即使是系统管理员也无法知道其他用户的密码,这样一定程度上提高系统的安全性。3.5 本章小结本章首先描述了系统实际的业务流程,然后阐述了系统所要达到的目标,接着从用户角度出发,进行了功能性分析,最后从系统准确性、易用性、安全性等角度进行了性能需求分析,为后续系统设计、实现打下了一个坚实的基础。4 总体设计总体设计主要指在系统需求分析基础上,将整个系统模块划分、机器设备(包括软、硬设备)配置和数据的存贮等进行合理的安排10。本章将从系统架构设计、功能模块设计、数据库设计和接口设计四个方面进行介绍。4.1 架构设计本系统采用轻量级SSH三层框架来实现MVC模式。MVC是一种设计模式,它的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性,可扩展性,可移植性和组件的可复用性。它的主要思想是将应用程序分成三个部分:模型(Model),视图(View),控制器(Controller)。三者之间的协作关系:视图即与用户交互的界面,接收用户输入的数据,并将数据传送给控制器,控制器接受视图的请求后,交给某一个模型来处理,模型在控制器的控制下,将处理的结果送给某个视图来显示,视图再将结果显示给用户11。采用MVC设计模式,可以减弱业务逻辑接口和数据接口之间的耦合性并让视图层更富于变化,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。SSH是一个成熟的轻量级组合框架,采用SSH来实现MVC模式,即JSP、HTML负责实现View层,Struts和Spring共同实现Control层,Spring和Hibernate来实现Model层。SSH三层框架的组合,充分发挥了各自的优势,进而形成一个结构良好、功能强大,层次清晰的框架体系。SSH三层框架在系统中的集成过程,即在表示层,首先通过JSP页面实现交互,负责传送请求(Request)和接收响应(Response),然后Struts将ActionServlet接收到的Request委派给Spring的DelegatingActionProxy托管,再转交给相应的Action处理。在业务层中,管理服务组件Spring的IoC负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(Data Access Object,DAO)组件完成业务逻辑。在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求数据,并返回处理结果。系统架构如图4-1所示。图4-1 系统架构4.2 功能设计新闻发布系统分为前台设计和后台设计两部分。1.前台设计前台设计包括栏目显示、新闻信息显示,浏览、搜索新闻信息,对新闻进行评论,对评论进行回复,注册用户,修改注册信息,根据注册邮箱找回密码等。系统前台功能结构如图4-2所示。图4-2 前台功能结构图2.后台设计系统后台功能划分为四大模块,即栏目管理、新闻管理、评论管理、系统管理。其中栏目管理模块包括添加、修改、删除栏目及栏目以目录结构树形式显示;新闻管理模块包括添加、修改、批量删除、移动新闻、审核、按条件查找新闻和查看新闻对应评论等,当新闻审核成功后,新闻标题便以超链接形