基于SSM和MySQL的新闻管理系统设计与实现
1 开发背景
1.1 系统开发背景与意义
个人博客是当今网络的热点,个人博客技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化,Blog技术缔造了博客文化。
随着网络出版、发表和张贴文章等网络活动的急速增长,博客已经成为了一个指称这种网络出版和发表文章的专有名词。博客通常是由简短且经常更新的张贴构成,这些张贴的文章都按照年份和日期排列。博客的内容和目的有很大的不同,从对其他网站的超级链接和评论,到有关公司的新闻或构想,或者是个人的日记、照片、诗歌、散文,甚至科幻小说的发表或张贴。许多博客是个人将自己的想法表达出来,或者是一群人根据某个特定主题或共同目标进行合作,每个人都可以随时把自己的思想火花和灵感更新到博客站点之上。简言之,博客就是以网络作为载体,简单迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。
1.2 研究内容
新闻博客管理系统通过简洁、一目了然的方法进行界面设计,主界面上可以查询最新的新闻博客和其他操作,方便的查看各模块的详细明细等信息。
研究的内容主要包括以下方面:
该系统的开发主要包括后台数据库的建立、连接和维护以及前台网络页面的开发两大方面。由于Java的跨平台性、安全性等诸多优势,本论文采用Jsp+SSM+MYSQL的技术途径和规范全局设计开发流程,在Eclipse的开发环境下设计、编写新闻博客管理系统。
该系统主要模块有用户管理、博客文章管理、日志管理、权限管理、查询统计管理、登录等六大功能模块,管理员主要是进行登陆后,对所有新闻博客信息进行管理编辑,可以上传新闻博客,按条件查询新闻博客信息,修改新闻博客信息,删除新闻博客信息,权限设置等等。
1.3 文档的组织结构
文档的组织结果安排如下:
-
第一章绪论介绍了系统开发的背景与意义,对主要研究内容进行了说明,对文档的组织结构进行了阐述
-
第二章主要讨论了系统的需求以及实现相关功能的关键技术和方法
-
第三章对系统进行了业务建设与设计,对系统的用户角色和功能需求作了初步设计
-
第四章主要对系统相关实现作了更详细的阐述,阐述了系统开发过程中所设计的代码、接口等
-
第五章性能测试与分析
-
第六章主要阐述了对系统的总结和展望
-
最后为致谢与参考文献
2 系统需求分析
2.1 系统需求分析
需求是软件开发的基础,也是研发团队进行系统开发的凭据。有资料指出在软件开发周期中,如果软件项目越新颖、所涉及的应用领域越偏僻,需求分析所占用的时间可以达到整个开发周期的一半以上,而如果是迭代式的开发模型,需求时间也不应该少于1/3。可见,软件需求的重要性不言而喻。然而在软件开发中,需求不明确,客户的参与度不高,沟通不及时,获取客户的信息不完整;无法理解某些领域的技术指标和概念;客户想法的多变性都会造成需求的变更,而一旦变更就会对软件的开发进度和整体结构产生影响,甚至是灾害性的重新设计。
2.2 可行性分析
2.2.1 经济可行性
现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,基本无需任何特殊的硬件配置,仅需一台普通的电脑。此系统可以为博客主提供很多便利,主要表现有以下几个方面:
-
第一,本系统的运行更加轻量化,相比于WordPress更加简洁高效,节省更多资源
-
第二,本系统的操作界面简洁,可以显著提高博客主的效率
-
第三,本系统博客主可以完全掌控,可以使敏感文档更加安全
本系统的开发所需的设备在现有条件下,只需要少量的投入资金就可以实现,并且借助云的弹性计算和分时租赁可以最大化降低成本开支,因此在经济上是可行的。
2.2.2 技术可行性
本系统采用的是JSP、ssm和MySQL开发,Windows 7操作系统,采用JDBC方式与后台数据库进行连接,完成数据的添加、修改、删除、查询等功能。由于JSP、ssm功能强大,而MySQL灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用JSP、ssm、MySQL是开发轻平台的最佳组合从而说明本系统在技术方面可行。
硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
2.2.3 操作可行性
操作可行性是指对开发出来的系统的界面是否美观、简洁易操作,是否有操作步骤提示、相关信息能否自动生成或更新等进行分析。操作是否顺畅很大程度上决定了系统的可行性和受欢迎度,总的来说,用户操作必须简便,系统需要有较好的人机交互,改善用户体验。本新闻博客管理系统采用的是目前较为流行的前端开发技术,界面简单美观,用户操作起来应该十分简单,因此,本新闻博客管理系统在界面操作方面也完全可行。
2.3 功能分析
-
系统管理 :该模块主要是对系统的菜单信息、用户信息、用户权限信息进行有效管理,并实现按不同条件对这些数据进行查询的功能
-
用户管理 :该模块主要是对博客系统的多用户进行管理,允许用户自注册,允许不同的用户不同的角色和权限
-
系统日志 :该模块主要是管理员及其其他用户的所有操作进行日志记录,便于后期查看及排障
-
新闻管理 :该模块是整个新闻博客管理系统的核心,包含新闻编辑、新闻管理、分类管理、评论管理、阅读统计等多个功能
2.5 信息需求分析
通过对几个想要搭建自己博客网站的同学的调查分析,已经了解了一般的博客主对系统的一些要求,接下来将对博客主的使用情况进行系统分析,考虑到与计算机管理系统的交互性、复杂性和计算机本身的一些特点,在开发新闻博客管理系统时不能简单的对现有的博客系统进行模仿,而应根据一般博客主的真实需求和常用需求进行分类和汇总,通过逐步确认各主要功能的范围,先对主要功能系统分析解决,然后构建出系统的业务流程图和系统结构图。
2.5 性能需求分析
-
系统界面友好美观,操作简单易行,查询灵活方便
-
新闻博客文章管理信息化,可随时掌握当前博客文章访问的情况
-
系统维护方便可靠,有较高的安全性,满足实用性、先进性的要求
-
提供多用户并发访问的能力,支持高并发
3 系统设计
3.1 系统概述
新闻博客管理系统分为前台模块和后台模块两大部分。前台模块主要是用来浏览新闻博客信息的。后台模块是管理人员用来管理新闻博客信息的。
新闻博客管理系统采用JAVA的三层架构开发,发布版本的运行环境包括:
- 客户端:
- 操作系统:Win7
-
浏览器:谷歌浏览器
-
服务器端:
- 操作系统:windows server 2003
-
应用服务器:Tomcat
-
数据库服务器端:
- 操作系统:windows server 2003
- 数据库系统:MYSQL5.1
3.2 系统功能
3.3 数据库设计
3.3.1 数据库概念设计
本新闻博客管理系统包含多个数据库表项,根据每个数据表项分析得到如下E-R 图。
用户表
新闻表
日志表
评论表
角色权限管理表
3.3.2数据库逻辑设计
本系统数据库名称为db_news_sys,一共有七张数据表,分别为用户表(如表3-6所示)、新闻博客分类表(如表3-7所示)、新闻博客文章表(如表3-8所示)、菜单管理信息表(如表3-9所示)、评论管理表(如表3-10所示)、系统日志信息表(如表3-11所示)、用户权限管理表(如表3-12所示)。
用户表(tb_user)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int | Y | N | 主键,用户ID |
username | varchar(50) | N | N | 用户登录名 |
password | varchar(50) | N | N | 用户登录密码 |
roleId | int | N | N | 用户类别,是否为管理员 |
photo | varchar(128) | Y | N | 用户头像 |
sex | int(1) | N | N | 性别 |
age | int(3) | N | N | 年龄 |
address | varchar(128) | Y | N | 住址 |
新闻博客分类表(tb_news_category)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | Int | Y | N | 主键,供应商ID |
name | varchar(128) | N | N | 分类名称 |
sort | int | N | N | 分类排序,默认值0 |
新闻博客文章表(tb_news)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int | Y | N | 主键,文章ID |
categoryId | int(11) | N | N | 文章分类ID |
title | int(8) | N | N | 文章标题 |
abstrs | int(8) | N | N | 文章摘要 |
tags | datetime | N | N | 文章标签 |
photo | varchar | N | N | 文章需要的图片 |
author | Varchar | N | N | 文章作者 |
content | longtext | N | N | 文章内容 |
viewNumber | Int | N | N | 浏览次数 |
commentNumber | Int | N | N | 评论次数 |
createTime | Datetime | N | N | 创建时间 |
菜单管理信息表(tb_menu)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int | Y | N | 主键 |
parentId | int | N | N | 本菜单的父菜单的ID |
name | int | N | N | 菜单名称 |
url | int | N | N | 菜单连接 |
icon | int | N | N | 菜单的图片 |
评论关系表(tb_comment)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int(11) | Y | N | 主键 |
newsId | int(11) | N | N | 用户类别ID |
nickname | int(11) | N | N | 用户可以访问的菜单ID |
content | varchar | N | N | 评论内容 |
createTime | datetime | N | N | 创建时间 |
系统日志信息表(tb_log)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int(11) | Y | N | 主键 |
content | varchar(255) | N | Y | 日志内容 |
createTime | datetime | N | Y | 销售时间 |
用户权限管理表(tb_authority)表结构
字段名称 | 数据类型 | 主键 | 是否空 | 说明 |
---|---|---|---|---|
id | int(11) | Y | N | 主键 |
roleId | int(11) | N | N | 用户类别ID |
menuId | int(11) | N | N | 用户可以访问的菜单ID |
4 系统实现
4.1 系统开发规划
新闻博客管理系统采用JAVA标准分层的基于组件模型设计。将处理过程拆分到不同的层级、不同服务、不同应用服务器中分别处理,使服务器资源得到更好的利用,解决网络传输时高并发的问题。
新闻博客管理系统采用经典的三层结构,面向对象的JAVA语言和MYSQL数据库存储数据。三层框架包括了界面层、逻辑层和数据层。
-
表现层 :是系统数据来源和UI部分,承担用户操作与逻辑层之间的交互。在本层中实现前台页面的信息显示。后台登录和基本信息的管理操作。用户通过界面操作和业务逻辑层传输数据。 逻辑层是整个系统的核心,它与这个系统的业务紧密相关
-
数据层 :其功能主要是负责数据库的访问。简单的说就是实现对数据表的Select, Insert, Update, Delete的操作。数据库的设计是在这一套开发系统中十分重要的,好的数据库建立可以让其更快的完成项目。整个数据库的创建是新闻交流系统开发和创立的核心技术,概括的说,就是根据用户的需求创立起满足用户的需要的数据库。数据库的整体设计是在软件开发是其最主要的问题
4.2 开发语言简介
4.2.1 JSP语言
JSP本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
4.2.2 EasyUI
jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。
4.2.3 SSM框架
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。
Sping
Spring是一个开源框架,是于2003年兴起的一个轻量级的Java开发框架由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。但是,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。pring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
Mybatis
MyBatis是一个基于Java的持久层框架,mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据
4.2.4 JSP
JSP本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
4.2.5 MYSQL数据库
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
自从Oracle公司收购了MySQL后不久,就发行了MySQL的企业版(不再免费)。
4.2.6 JavaScript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
Javascript语言与Java语言在语法上比较相似,但随着对Javascript的深入了解后你会发现,它们说到底是两种语言。
4.3 开发页面简介
4.3.1 首页
本界面是新闻博客管理系统的首页设计,其功能主要具体如图4-1所示。
用户可以在首页进行新闻博客浏览、搜索功能,关键代码如下:
java
@RequestMapping(value="/index",method=RequestMethod.GET)
public ModelAndView index(ModelAndView model){
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", 0);
queryMap.put("pageSize", 10);
model.addObject("newsCategoryList", newsCategoryService.findAll());
model.addObject("newsList", newsService.findList(queryMap));
model.setViewName("home/index/index");
return model;
}
4.3.2 新闻内容页面
本界面是新闻博客管理系统的新闻内容页面设计,其功能主要具体如图4-2所示。
用户可以在新闻内容页进行内容浏览、搜索、评论等功能,关键代码如下:
java
@RequestMapping(value="/detail",method=RequestMethod.GET)
public ModelAndView detail(ModelAndView model,Long id){
model.addObject("newsCategoryList", newsCategoryService.findAll());
News news = newsService.find(id);
model.addObject("news", news);
model.addObject("title", news.getTitle());
model.addObject("tags", news.getTags().split(","));
model.setViewName("home/news/detail");
//查看数加1
newsService.updateViewNumber(id);
return model;
}
@RequestMapping(value="/search_list",method=RequestMethod.GET)
public ModelAndView searchList(ModelAndView model,
@RequestParam(name="keyword",required=false,defaultValue="") String keyword,
Page page
){
Map<String, Object> queryMap = new HashMap<String, Object>();
try {
keyword= new String(keyword.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
queryMap.put("offset", 0);
queryMap.put("pageSize", 10);
queryMap.put("title", keyword);
model.addObject("newsCategoryList", newsCategoryService.findAll());
model.addObject("newsList", newsService.findList(queryMap));
model.addObject("title", keyword + "关键字下的新闻信息");
model.addObject("keyword", keyword);
model.setViewName("home/news/search_list");
return model;
}
4.3.3 登陆
本界面是新闻博客管理系统的后台登陆页面设计,其功能主要具体如图4-3所示。
登录页面以简明的形式提供给用户一个登录界面。用户登录后会显示当前系统的基本信息。在本系统中实现了用户角色管理、基于角色的权限管理、用户基本信息录入修改、用户管理等功能;关键代码如下:
java
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> loginAct(User user,String cpacha,HttpServletRequest request){
Map<String, String> ret = new HashMap<String, String>();
if(user == null){
ret.put("type", "error");
ret.put("msg", "请填写用户信息!");
return ret;
}
if(StringUtils.isEmpty(cpacha)){
ret.put("type", "error");
ret.put("msg", "请填写验证码!");
return ret;
}
if(StringUtils.isEmpty(user.getUsername())){
ret.put("type", "error");
ret.put("msg", "请填写用户名!");
return ret;
}
if(StringUtils.isEmpty(user.getPassword())){
ret.put("type", "error");
ret.put("msg", "请填写密码!");
return ret;
}
Object loginCpacha = request.getSession().getAttribute("loginCpacha");
if(loginCpacha == null){
ret.put("type", "error");
ret.put("msg", "会话超时,请刷新页面!");
return ret;
}
if(!cpacha.toUpperCase().equals(loginCpacha.toString().toUpperCase())){
ret.put("type", "error");
ret.put("msg", "验证码错误!");
logService.add("用户名为"+user.getUsername()+"的用户登录时输入验证码错误!");
return ret;
}
User findByUsername = userService.findByUsername(user.getUsername());
if(findByUsername == null){
ret.put("type", "error");
ret.put("msg", "该用户名不存在!");
logService.add("登录时,用户名为"+user.getUsername()+"的用户不存在!");
return ret;
}
if(!user.getPassword().equals(findByUsername.getPassword())){
ret.put("type", "error");
ret.put("msg", "密码错误!");
logService.add("用户名为"+user.getUsername()+"的用户登录时输入密码错误!");
return ret;
}
//说明用户名密码及验证码都正确
//此时需要查询用户的角色权限
Role role = roleService.find(findByUsername.getRoleId());
List<Authority> authorityList = authorityService.findListByRoleId(role.getId());//根据角色获取权限列表
String menuIds = "";
for(Authority authority:authorityList){
menuIds += authority.getMenuId() + ",";
}
if(!StringUtils.isEmpty(menuIds)){
menuIds = menuIds.substring(0,menuIds.length()-1);
}
List<Menu> userMenus = menuService.findListByIds(menuIds);
//把角色信息、菜单信息放到session中
request.getSession().setAttribute("admin", findByUsername);
request.getSession().setAttribute("role", role);
request.getSession().setAttribute("userMenus", userMenus);
ret.put("type", "success");
ret.put("msg", "登录成功!");
logService.add("用户名为{"+user.getUsername()+"},角色为{"+role.getName()+"}的用户登录成功!");
return ret;
}
4.3.4 菜单管理
本界面是新闻博客管理系统的菜单管理设计,其功能主要具体如图4-4所示。
本系统具备菜单管理的能力,可以添加删除菜单,也可给用户设置每个菜单的权限,每个菜单具有自己的icon,更加美观直观。关键代码如下:
```java
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map
/**
* 获取指定目录下的系统icon集合
* @param request
* @return
*/
@RequestMapping(value="/get_icons",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getIconList(HttpServletRequest request){
Map<String, Object> ret = new HashMap<String, Object>();
String realPath = request.getServletContext().getRealPath("/");
File file = new File(realPath + "\\resources\\admin\\easyui\\css\\icons");
List<String> icons = new ArrayList<String>();
if(!file.exists()){
ret.put("type", "error");
ret.put("msg", "文件目录不存在!");
return ret;
}
File[] listFiles = file.listFiles();
for(File f:listFiles){
if(f!= null && f.getName().contains("png")){
icons.add("icon-" + f.getName().substring(0, f.getName().indexOf(".")).replace("_", "-"));
}
}
ret.put("type", "success");
ret.put("content", icons);
return ret;
}
```
4.3.5 系统日志记录
本界面是新闻博客管理系统的系统日志记录设计,其功能主要具体如图4-5所示。
管理员可以记录平台的基本日志、操作日志、用户登录日志等,可用于排障、记录等功能,关键代码如下:
```java
/*
* 获取日志列表
* @param page
* @param content
* @param roleId
* @param sex
* @return
/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map
/**
* 添加日志
* @param user
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(Log log){
Map<String, String> ret = new HashMap<String, String>();
if(log == null){
ret.put("type", "error");
ret.put("msg", "请填写正确的日志信息!");
return ret;
}
if(StringUtils.isEmpty(log.getContent())){
ret.put("type", "error");
ret.put("msg", "请填写日志内容!");
return ret;
}
log.setCreateTime(new Date());
if(logService.add(log) <= 0){
ret.put("type", "error");
ret.put("msg", "日志添加失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "日志添加成功!");
return ret;
}
```
5 性能测试与分析
测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是"探测",在"探测"中发现软件的毛病。
5.1 系统测试的目的与目标
在此系统进行初步实现之后,开始进行对系统进行测试,找出系统中存在的Bug和不足,通过测试,用提交的Bug报告来为以后软件的改进提供标准和参考,能够在以后的系统改进中找到依据。
测试后的软件各模块基本功能可以顺利进行,尽可能的提高软件的健壮性。
5.2 系统测试方法
-
从是否关心软件内部结构和具体实现的角度划分:黑盒测试和白盒测试
-
从是否执行程序的角度:静态测试和动态测试
-
从软件开发的过程按阶段划分有:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试、Alpha测试、Beta测试
单元测试 又称模块测试,是针对软件设计的最小单位 ─ 程序模块(这里所说的程序模块在Java中一个模块就是一个方法),进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
集成测试 (组装测试、联合测试),通常在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:
-
在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失
-
一个模块的功能是否会对另一个模块的功能产生不利的影响
-
各个子功能组合起来,能否达到预期要求的父功能
-
全局数据结构是否有问题
-
单个模块的误差累积起来,是否会放大,从而达到不能接受的程度
确认测试 (Validation Testing),确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。
系统测试 (System Testing),是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。
验收测试 (Acceptance Testing),在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。
5.3 系统测试用例
新闻博客管理系统包括了多个功能,下面对各主要功能进行测试用例说明。由于测试过程具有一定的相似性,所以本系统选取一部分功能进行测试,其余相似功能模块不再一一展示。
5.4 系统测试结论
通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。
6 总结与展望
设计开发基于 JSP 的企业新闻博客管理系统是集业务管理与软件技术为一身的工作,只有在理解业务的基础上,才能对业务操作流程进行提炼优化,并通过软件设计与开发技术实现。本文设计的企业新闻博客管理系统角色多样、功能丰富,能适应大部分环境下的企业进销存管理工作。本系统在设计采用了 SSM 框架,设计上实现了高内聚、低耦合的要求,在设计上做到了可扩张和维护。本文在论文撰写、系统开发时实地到一家企业进行调研,与企业的仓库管理工作人员沟通,做需求分析,设计了系统管理员登录、新闻管理、用户管理等模块。
通过开发《新闻博客管理系统》,我较为全面的掌握了JAVA的基本知识和编程技巧,并在开发过程中我的JAVA开发能力得到了进一步的提高。如:更进一步的深入了解MVC设计模式,软件三层框架;SQL语言的使用。
-
对新闻博客管理系统进行用户需求调研,将现有业务与传统技术进行对比总结,完成本系统的用户需求分析。通过对用户需求分析和技术背景研究,分析了系统的业务流程,并采用UML工具对用户需求进行统一建模,导出系统的软件需求分析说明
-
新闻博客管理系统使用MYECLIPSE和MYSQL数据库开发
-
根据系统业务需求对系统数据库进行详细设计,主要采用了数据库3NF标准对数据库内部各种关系进行抽象分析,建立数据库E-R模型图,最大程度上避免数据冗余,保证数据的一致性
系统不免有错误和待改进之处,真诚欢迎各位师长、同行提出宝贵意见。
参考文献
[1] 刘慧杰,舒大兴,陆斌,吴欢.双翻斗与JSP-01A型智能雨量计比较实验分析[J].中国新技术新产品,2019(18):69-71.
[2] 张雅棋.SQL Sever、MySQL、Oracle数据库在水务系统中的应用比较[J].天津科技,2019,46(09):52-54.
[3] 罗永权.HTML语言的网页制作技巧与方法研究[J].计算机产品与流通,2019(10):151.
[4] 郑茹琼,刘杨.基于SSM的母婴购物网站的设计与实现[J].电脑知识与技术,2019,15(26):264-265.
[5] 赵硕,范俊甫,孙永进,王开放.基于MySQL的矢量数据访问引擎设计与实现[J].测绘与空间地理信息,2019,42(09):138-141.
[6] 董珊,周德阳,罗荣良.基于SSM的实验室管理系统设计[J].电脑知识与技术,2019,15(27):45-46+49.
[7] 杨嘉诚,柯海丰.基于HTML5和JavaScript的信息学学习网站的设计与实现[J].计算机时代,2019(11):32-34+37.
[8] 张丛丛.基于HTML语言的网页制作方法[J].电子技术与软件工程,2019(20):20-21.
[9] 赵晓丹.网页开发中的JSP技术分析[J].南方农机,2019,50(20):247-248.
[10] 许佩迪,王海燕,李闯.基于JSP的网上在线图书借阅系统开发与设计[J].智能计算机与应用,2019,9(05):310-311+319.
[11] 甘启宏,崔亚强,王皓,余淇,冯鸟东.基于SSM框架的高校教学设备管理系统设计与实现[J/OL].软件导刊:1-4[2019-11-16].http://kns.cnki.net/kcms/detail/42.1671.TP.20190906.1321.002.html.
[12] Juan C. Roldán,Patricia Jiménez,Rafael Corchuelo. On extracting data from tables that are encoded using HTML[J]. Knowledge-Based Systems,2019.
[13] 赵雪娇,李明伟,靳大伟,孙达明.基于MVC4+EasyUI框架下数字校园接待管理系统的设计与实现[J].工业技术与职业教育,2018,16(02):16-19.
参考文献
- 基于J2EE新闻门户网站的设计与研究(吉林大学·刘振明)
- 报社新闻管理系统的设计与实现(西安电子科技大学·韩莉)
- 基于B/S结构的新闻发布系统(吉林大学·郭蕊)
- 移动新闻客户端后台的设计与实现(北京交通大学·李化)
- 承压设备泄漏事故应急决策与救援指挥系统的建设(北京邮电大学·宋丹杰)
- 基于ASP.NET的校园新闻发布管理系统的设计与实现(中国海洋大学·郑忠霞)
- 移动新闻客户端后台的设计与实现(北京交通大学·李化)
- 基于SSH框架的电子新闻系统的设计与实现(电子科技大学·颜健)
- 基于SSH2的新闻信息管理平台的设计与开发(青岛大学·张明瑛)
- 某公司新闻信息发布系统的设计与实现(厦门大学·林淳淳)
- 智能新闻采集处理系统的设计与实现(山东大学·张建林)
- 南洋学院网络新闻发布系统(电子科技大学·诸国华)
- 基于SSH2的新闻信息管理平台的设计与开发(青岛大学·张明瑛)
- 基于J2EE的新闻发布系统设计与实现(电子科技大学·梁淑珍)
- 石油新闻管理系统的设计与实现(西安电子科技大学·仉允苇)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://bishedaima.com/yuanma/35356.html