任务书
一 课题题目: 在线客服系统的设计与实现
二 选题描述:
1.在线客服系统是为了方便客户无插件在线沟通的一种基于网页形式的即时沟通工具。它的实现和网站的更完美的结合,为网站提供主动和访客对话的平台;网站访客无需安装任何软件,即可通过网页进行对话。 2.使用J2EE 5以及SSH2框架作为开发环境和并结合MYSQL作为后台数据库完成本系统的开发。 三 内容提要:
1.系统开发环境:J2EE+ssh2+mysql 2.系统开发工具:eclipse 3.系统要紧功能:
(1) 实现系统治理员登录系统、治理系统的角色、用户及权限;
(2) 实现客户经理登录系统,爱护客户信息、进行游客数据分析、客服知识点治理、个人信息治理、客户的留言和评判治理。
(3) 实现客服人员登录系统,查看网站游客、与游客沟通、知识点治理。 (4) 实现网站游客查看客服人员列表,进行交流相关信息咨询、并留言和评判。
三.各时期任务和进度安排:
第1时期:要求应用软件工程的方法与数据库设计技术完成系统需求分析与系统设计;
第2时期:要求应用题目所要求的软件开发技术与数据库设计等技术完成系统实现与测试;
第3时期:要求依照毕业设计论文的格式要求完成毕业设计论文的撰写。
指导教师签字: 年 月 日
毕业设计(论文)评语表(一)
指导教师对毕业设计(论文)的评语: 指导教师(签字): 年 月 日 评阅人对毕业设计(论文)的评语: 评阅人(签字): 年 月 日 答辩委员会(小组)成员 姓名 职务 工作单位 备注 答辩中提出的要紧问题及回答的简要情形: 答辩委员会代表(签字): 年 月 日 毕业设计(论文)评语表(二)
答辩委员会的评语: 答辩委员会代表(签字): 年 月 日 答辩委员会给定的成绩: 答辩委员会代表(签字): 年 月 日 毕业设计(论文)起止日期: 年 月 日 至 年 月 日 毕业设计(论文)答辩日期: 年 月 日 摘 要
本论文的研究课题《在线客服系统的设计与实现》是基于Eclipse 3.3开发工具和Mysql 5.0后台数据库进行开发的,本系统的开发依照任务书的要求通过系统需求分析、设计、实现与测试等过程,完成了系统功能模块的设计与实现。
本论文前言论述了课题背景及意义;第一章论述了系统运用的相关技术及开发环境;第二章需求分析与概要设计论述了在线客服系统的功能分析;第三章系统设计与实现详细阐述了系统功能设计和数据库设计,列出了要紧的程序流程图,并附带了一些要紧的窗口界面和程序代码;第四章系统测试要紧阐述了系统测试方法和测试用例及测试结果。
本论文重点阐述了在线客服系统的设计方案,详细设计了系统中的各治理模块,实现了在线客服系统的差不多功能,达到了系统设计的预期目标,提高了网站客服人员的工作效率。
[关键词]:在线客服;客服字典;在线留言;在线评判;系统设计;
Abstract
The research topic “the research and implement of on-line customer service system ” is bases on eclipse 3.3development tools and mysql 5.0 as development background database, this system development according to the requirements of the mission statement through a systematic needs analysis, design, implementation and testing process completed the system design and implementation of functional modules.
Introduction This paper discusses the background and significance of the subject; In Chapter I mainly on the use of the system and related technology development environment; Chapter II demand analysis and summary of the detailed design of on-line customer service systems analysis; Chapter III System Design and Implementation of the detailed design and function of the system database design; the procedures set out the main flow chart, and the fringe of the main window and some code; Chapter IV system testing mainly on system testing and measurement methodologies and Test Case Test results.
The system focuses on the on-line customer service design and implementation, detailed design of the system in the management module enables the management of personnel and the daily work of the basic functions of the system design to achieve the desired objective to improve the personnel and the daily work management efficiency.
[Keywords]: On-line Customer Service; Customer-service dictionary; online memo; online comment; System design;
目 录
1. 概 述 ....................................................... 1
1.1. 相关技术概述 ................................... 1
1.1.1. 软件工程方法 ....................................... 1
1.1.1. 数据库系统设计 ..................................... 2
1.2. 开发环境与开发工具 ............................. 3
1.2.1. J2EE ............................................... 3 1.2.2. Tomcat ............................................. 5 1.2.3. SSH2框架 ........................................... 5 1.2.4. DWR ................................................ 6 1.2.5. MySQL .............................................. 7
2. 系统需求分析与概要设计 ...................................... 8
2.1. 系统业务流程分析与设计 ......................... 8
2.2. 系统功能结构分析与设计 ........................ 10 2.3. 数据库概念模型设计 ............................ 11
2.3.1. 系统用户实体 ...................................... 11
2.3.2. 系统角色实体 ...................................... 11 2.3.3. 谈天记录实体 ...................................... 12 2.3.4. 游客评判实体 ...................................... 12 2.3.5. 游客留言实体 ...................................... 13 2.3.6. 客服字典实体 ...................................... 13 2.3.7. 在线用户实体 ...................................... 13 2.3.8. 本系统的实体关系图 ................................ 14
2.4. 系统数据流程分析与设计 ........................ 15
2.4.1. 数据流设计概述 .................................... 15 2.4.2. 本系统数据流程设计 ................................ 16
2.5. 数据字典 ...................................... 19
2.5.1. 定义数据储备 ...................................... 19 2.5.2. 定义数据流 ........................................ 20 2.5.3. 定义数据处理 ...................................... 23
3. 系统设计与实现 ............................................. 28
3.1. 软件流程设计 .................................. 28
3.1.1. 软件总体设计 ...................................... 28
3.1.2. 各模块流程设计 .................................... 29
3.2. 数据库详细设计 ................................ 32 3.3. 系统设计 ...................................... 34
3.3.1. 系统的架构设计 .................................... 34
3.3.2. 系统菜单设计 ...................................... 35
3.3.3. 登录模块设计 ...................................... 36 3.3.4. 系统治理员模块设计 ................................ 37 3.3.5. 客服经理模块设计 .................................. 39 3.3.6. 客服人员模块设计 .................................. 40 3.3.7. 网站客户模块设计 .................................. 42
4. 要紧功能模块测试 ........................................... 45
4.1. 软件测试概述 .................................. 45
4.2. 软件测试的目标 ................................ 45 4.3. 软件测试的方法 ................................ 45
4.3.1. 静态测试 .......................................... 45
4.3.2. 动态测试 .......................................... 46 4.3.3. 黑盒测试与白盒测试 ................................ 46
4.4. 要紧功能模块的测试 ............................ 48
4.4.1. 登陆模块的测试 .................................... 48 4.4.2. 系统治理模块的测试 ................................ 49 4.4.3. 客服经理模块的测试 ................................ 50 4.4.4. 客服人员模块的测试 ................................ 51 4.4.5. 游客模块的测试 .................................... 52
结 论 .......................................................... 54 致 谢 .......................................................... 55 参考文献 ....................................................... 56
前 言
随着互联网技术的迅速进展,Internet技术差不多成为运算机产业的一个热点技术。它遍及全球几乎所有的国家和地区。www系统是一个大型的分布式超媒体信息数据库,它极大的推动了Internet的进展,己经成为Internet中最流行、最要紧的信息服务方式。
越来越多的企业建立了自己的网站,作为公司形象和产品的展现窗口,同时不惜重金通过搜索引擎来提高网站的知名度和流量,如何抓住来访的过客,让网站从单一的信息公布窗口变成信息交流窗口,却是一个摆在企业眼前的迫切需要解决的问题。
在线客服系统,作为传统 不可替代的辅助手段,充分利用互联网的优势,实现网站访客与企业的即时互动,关心企业抓住一切可能存在的机会,将给企业与客户的沟通带来革命性的变化。
1. 概 述
1.1. 相关技术概述 1.1.1. 软件工程方法
软件工程以运算机理论及其他相关学科的理论为指导,采纳工程化的概念、原理、技术和方法进行软件的开发和爱护,把经实践证明的科学的治理措施与最先进的技术方法结合起来。软件工程研究的目标是:“以较少的投资获得高质量的软件”。
软件工程研究的要紧内容有四个方面:
1、软件开发方法,要紧讨论软件开发的各种方法及其工作模型,它包括多方面的任务,如软件系统需求分析、总体设计,以及如何构建良好的软件结构、数据结构及算法设计等,同时讨论具体实现的技术。
2、软件工具为软件工程方法提供支持,研究运算机辅助软件工程,建立软件工程环境。
3、软件工程治理,是指对软件工程全过程的操纵和治理,包括打算安排、成本估算、项目治理、软件质量治理。
4、软件工程标准化与规范化,使得各项工作有章可循,以保证软件生产效率和软件质量的提高。
软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件差不多结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程要紧包括开发过程、运作过程、爱护过程。它们覆盖了需求、设计、实现、确认以及爱护等活动。需求活动包括问题分析和需求分析。问题分析猎取需求定义,又称软件需求规约,它生成功能规约。设计活动一样包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。爱护活动包括使用过程中的扩充、修改与完善。
相伴以上过程,还有治理过程、支持过程、培训过程等。
软件工程的原则是指围绕工程设计、工程支持以及工程治理在软件开发过程中必须遵循的原则。
软件生命周期是软件工程最差不多的重要概念。通常把软件从开始研制(形成概念)到最终软件被废弃不用这整个时期称为软件的生命期。为了能对软件进行有条不紊、有步骤的开发和治理。而软件工程采纳的生命周期法学确实是从时刻的角度对软件开发和爱护的复杂问题进行分解,我们把软件生命周期依次划分为若干个时期,每个时期都有相对独立的任务,然后逐步完成。应该遵循的差不多原则是:各时期的任务彼此间尽可能相对独立,同一时期各项任务的性质尽可能相同,从而降低每个时期任务的复杂程度,简化各时期之间的联系,有利于软件开发工程的治理。在完成各时期的任务时,应该采纳适合时期任务特点的系统化的技术方法即结构分析或结构设计技术。
1.1.1. 数据库系统设计
数据库是MIS(治理信息系统)、DDS(决策支持系统)、OAS(办公室自动化系统)、ECS(电子商务系统)的基础和重要组成部分,数据库设计是指对一个给定的应用环境构造(设计)最优的数据模型,然后据此建立数据库及其应用系统,使之能够有效地储备数据,满足各种用户的应用需求。
需求分析是数据库设计的最基础工作,充分了解用户的组织机构、业务规则、数据需求、完整性约束条件、事务处理和安全性要求等,画出组织机构图、业务流程图,详细描述用户应用环境的业务流程、数据需求。进一步完成概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和爱护。
这一设计时期是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。
那个时期不用考虑所采取的数据库治理系统、操作系统类型和机器类型等问题。本系统使用的是E-R图进行数据库概念结构设计。
1.2. 开发环境与开发工具
本系统基于以下软件设备和硬件设备环境:
1. 硬件设备:Intel(R) Pentium(R) 4 CPU 3.00GHz,2.0GB内存,80G硬盘,显示器辨论率为1280x1024。
2. 软件设备:操作系统采纳Windows XP作为系统软件。
本系统基于SUN公司的J2EE标准进行设计,采纳目前比较流行的开源框架SSH2,也确实是Struts2,Spring2.5,Hibernate三个框架的技术来完成整个系统的实现,WEB服务器彩Tomcat应用服务器来完成,数据库亦采纳免费的MySQL。
1.2.1. J2EE
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和治理相关的复杂问题的体系结构。J2EE技术的基础确实是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如\"编写一次、随处运行\"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中爱护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。
J2EE的优势在于J2EE为搭建具有可伸缩性、灵活性、易爱护性的商务系统提供了良好的机制:
1. 保留现存的IT资产: 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得专门重要。如此,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构能够充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之因此成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业运算'领域供应商的参与。每一个供应商都对现
有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
2.高效的开发: J2EE承诺公司把一些通用的、专门繁琐的服务端任务交给中间件供应商去完成。如此开发人员能够集中精力在如何创建商业逻辑上,相应地缩短了开发时刻。高级中间件供应商提供以下这些复杂的中间件服务:
3.状态治理服务 -- 让开发人员写更少的代码,不用关怀如何治理状态,如此能够更快地完成程序开发。
4.连续性服务 -- 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与爱护。
5.分布式共享数据对象CACHE服务 -- 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
6.支持异构环境: J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依靠任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业运算环境中是十分关键的。J2EE标准也承诺客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节约了由自己制订整个方案所需的费用。
7.可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平稳策略。能排除系统中的瓶颈,承诺多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足以后商业应用的需要。
8.稳固的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按打算停机也可能造成严峻缺失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最
健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时刻。这是实时性专门强商业系统理想的选择。
1.2.2. Tomcat
Tomcat能够运行Servlet和JSP,是一个小型的轻量级应用服务器,它性能稳固、扩展性好、源码开放,是开发中小型Web应用系统的首选。
Tomcat既是一个开放源码、免费支持JSP和Servlet技术的容器,同时又是一个Web服务器软件,受到了Sun公司的大力举荐和支持。因此,Servlet和JSP的最新规范都能够在Tomcat的新版本中得到实现。
1. 容易架设。下载Tomcat,设定一些配置,就完成了。不需要花费时刻将Web服务器的连接器整合至其它的Web服务器中。
2.不需要担忧连接器。永久不需要排除在其它Web服务器与Tomcat之间的任何性能或联机方面的问题。
3.有较佳的安全防护。相关于其它以C、C++所编写的Web服务器,Tomcat比较能忍耐远程缓冲区溢位的攻击。因为Tomcat的Java虚拟机是位于 网络及操作系统之间,它能够防止几乎所有类型的缓冲区溢位攻击。使用Tomcat的安全防护领域,能够指定对各个资源的访问。
4.容易移植。能够将Tomcat服务器(以及应用程序)移植到不同的服务器、操作系统甚至架构上。因为Tomcat是以Java编写的,因此能够将其整个名目结构的内容复制到其它运算机上运行,而完全不需要任何改变,甚至于新的运算机的架构与原先的不同也一样。
1.2.3. SSH2框架
用J2EE 来建立一个在线客服系统不是一个简单的任务。在架构那个应用时要考虑专门多的因素和问题。从更高的层次来看,要面临着关于如何构建用户接口,如何接收参数,何处驻留业务逻辑,以及如何实现数据持久性这些问题。这几层都有各自的问题需要回答。而每一层又需要实现那些技术?应用如何设计来进行松散耦
合并能进行灵活变更?应用架构是否承诺某一层变更而不阻碍到其它的层次?应用应该如何处理容器一级的服务比如事务?一个良好的框架能够减轻重新建立解决复杂问题方案的负担和精力;它能够被扩展以进行内部的定制化;同时有强大的用户社区来支持它。框架通常能专门好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI 问题并不意味着你能够专门好的将业务逻辑和持久性逻辑和UI 组件专门好的耦合。例如,你不应该使具有JDBC 代码的业务逻辑放入操纵器之中,这不是操纵器应该提供的功能。一个UI 操纵器应该是轻量化的组件,由它代表对UI 范畴之外的其它应用层的服务调用。良好的框架自然地势成代码分离的原则。更为重要的是,框架减轻了开发人员从头构建持久层代码的精力,从而集中精力来应用逻辑上,这对客户端来说更为重要。
我整合了Struts,Spring,Hibernate这三个目前最为流行的框架,分别提供表现层,业务逻辑层,持久层框架支持,并使各层之间松散耦合的结合在一起,互相松散的暴露接口。
1.2.4. DWR
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,能够关心开发人员开发包含AJAX技术的网站.它能够承诺在扫瞄器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在扫瞄器里一样.
它包含两个要紧的部分:承诺JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中猎取数据.另外一方面一个JavaScript库能够关心网站开发人员轻松地利用猎取的数据来动态改变网页的内容.
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.如此WEB开发人员就能够在JavaScript里使用Java代码就像它们是扫瞄器的本地代码(客户端代码)一样;然而Java代码运行在WEB服务器端而且能够自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类能够安全的被外部使用.
那个从JAVA到JavaScript的远程功能方法给DWR的用户带来专门像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上然而不需要扫瞄器插件的好处.
DWR不认为扫瞄器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战确实是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时刻之后才能够被异步访问猎取到.DWR承诺WEB开发人员传递一个回调函数,来异步处理Java函数调用过程. 1.2.5. MySQL
MySQL是一个免费的开源的,也是目前最为流行的数据库。MySQL名字的来历MySQL是一个小型关系型数据库治理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL 被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,专门是开放源码这一特点,许多中小型网站为了降低网站总体拥有 成本而选择了MySQL作为网站数据库。MySQL的特性:
1. 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2. 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3. 为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4. 支持多线程,充分利用CPU资源
5. 优化的SQL查询算法,有效地提高查询速度
6. 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都能够用作数据表名和数据列名
7. 提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8. 提供用于治理、检查、优化数据库操作的治理工具 9. 能够处理拥有上千万条记录的大型数据库
2. 系统需求分析与概要设计
需求分析是软件定义时期的最后一个时期,也是设计数据库的一个起点,它确定了系统必须完成哪些工作,提出完整、准确、清晰和具体的要求,直截了当阻碍到后面各个时期的设计,以及设计结果是否合理和有用。
2.1. 系统业务流程分析与设计
本系统所要完成的功能如下:
登录模块:系统依照不同身份的用户登录,显示不同的菜单项,进行各项功能的操作,本系统一共有四种用户身份:治理员、客服经理、客服人员以及前端用户。
客服系统治理员:系统治理员模块要完成系统的用户及角色治理,其中系统用户要紧包括客服经理和客服人员的治理。
网站客服经理模块要完成的功能包括:在线用户查询、客服谈天记录治理 、游客留言治理 、客服评判治理
网站客服人员模块要完成的功能包括:与网站客户谈天、查看网站游客的留言、爱护客服字典。
网站用户模块要完成的功能包括:查看在线客服列表、与客服人员沟通、给客服人员留言、对客服人员进行评判
依照以上业务需求分析可得出要紧业务流程如下图所示:
管理员登录系统管理员审核管理员信息系统管理员信息用户经理登录客服经理审核客服经理信息系统管理员信息客服登录客服人员审核客服信息系统管理员信息
图 2-1登陆模块业务流程图
在线聊天在线聊天聊天记录客服人员管理和查询字典维护字典字典信息查看客户的留言查看留言留言信息 图 2-2 客服模块业务流程图
查询在线游客游客列表信息状态信息客服人员信息评价信息客服人员状态维护客服人员查看评价客户经理查询聊天记录聊天记录查看字典字典信息数据统计统计信息查询留言记录留言记录 图 2-3 客服经理模块业务流程图
评价客服评价评价信息游客查询在线客服在线客服人员列表聊天聊天聊天记录客服不在线时留言留言信息图 2-4 网站用户模块业务流程图 角色管理角色信息系统管理员客服经理管理客服经理信息客服人员管理客服人员信息 图 2-5 治理员模块业务流程图
2.2. 系统功能结构分析与设计
依据需求分析结果结合业务流程图可知,系统需要治理以下相关实体及操作: 1、实体:系统用户、系统角色、系统权限、谈天记录、网站用户评判、网站用户留言、客服字典、在线用户;
2、操作:实体的检索功能;实体的数据爱护功能。 本系统功能模块设计如下图所示:
在线客服系统1000登录模块1100客服人员模块1200客服经理模块1300游客模块1400系统管理模块1500管理员登录客服人员员登录客服经理员登录字典维护留言查看在线聊天查看所有聊天记录客服人员维护查询所有留言查询所有评价查询所有在线用户在线聊天在线留言在线评价角色管理客服经理管理客服人员管理 图 2-6 系统功能模块图
2.3. 数据库概念模型设计
本时期是在需求分析的基础上,把用户需求抽象为信息结构,建立出一个面向问题的概念模型,此模型采纳实体-联系方法(Entity-Relationship Approach)。它用E-R图描述现实世界中的实体。用这种方法表示的概念模型又称为E-R模型。E-R模型中包含“实体”、“联系”、和“属性”等三个差不多成分,其中:
1、实体:是指客观世界中存在的并能够相互区分的事物。用方框表示,方框内为实体的名称;
2、联系:是指客观世界中的事物彼此间的联系。用菱形表示,菱形内为联系的名称。
3、属性:是指实体或联系所具有的性质。用椭圆表示,椭圆内为属性名称。使用线段将其和相应的实体连接起来;
系统中包含的实体描述如下: 2.3.1. 系统用户实体
PK 编号名称FK 角色系统用户用户名状态密码
图 2-7 系统用户实体属性图
2.3.2. 系统角色实体
PK 编号名称系统角色状态角色类型
图 2-8 系统角色实体属性图
2.3.3. 谈天记录实体
PK 编号发送时间聊天记录发送方聊天消息接收方
图 2-9谈天记录实体属性图
2.3.4. 网站用户评判实体
PK 编号评价等级FK用户编号游客评价评价人评价时间评价内容 图 2-10 网站用户评判实体属性图
2.3.5. 网站用户留言实体
PK 编号留言时间FK用户编号游客留言留言人电话留言客户留言内容 图 2-11 网站用户留言实体属性图
2.3.6. 客服字典实体
PK 编号客服字典字典标题字典内容
图 2-12 网站用户留言实体属性图
2.3.7. 在线用户实体
FK用户编号PK 编号名称在线用户登录时间登录IP 图 2-13 在线用户实体属性图
2.3.8. 本系统的实体关系图
PK编号客服字典FK用户编号拥有PK编号FK角色编号1用户1拥有拥有PK编号mmFK游客编号聊天记录n系统角色PK编号FK用户编号拥有1在线游客11拥有PK编号n拥有nPK编号FK用户编号评价信息客服留言FK用户编号FK游客编号FK游客编号 图 2-14 系统实体关系E-R图
2.4. 系统数据流程分析与设计
2.4.1. 数据流设计概述
数据流图(Data Flow Diagram, DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换成逻辑输出所需的加工处理:
1. 数据流:它是数据在系统内传播的途径,由一组固定的数据项组成。除了与数据储备(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。数据流能够从加工流向加工,也能够从加工流向文件或从文件流向加工,还能够从源点流向加工或从加工流向终点。
2.加工:也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。
3.数据储备:指临时储存的数据,它能够使数据库文件或任何形式的数据组织。流向数据储备的数据流可明白得为写入文件,或查询文件,从数据储备流出的数据能够明白得为从文件读数据或得到查询结果。
4.数据源点和终点:是软件系统外部环境中的实体(包括人员、组织、或其他软件系统),统称为外部实体。一样只显现在数据流图的顶层中。
数据流图由4种差不多图形符号构成。剪头表示数据流,圆或椭圆表示加工,双杠或者单杠表示数据储备,矩形框标识数据的原点或终点,即外部实体。
2.4.2. 本系统数据流程设计
D1110.1系统管理员信息P1110.1系统管理员D1110.2管理员信息系统人员信息表用户D1120.1客服经理信息P1120.1客服经理身份审核D1120.2客服经理信息客服经理信息表客服人员信息P1130.1客服人员身份审核D1130.2客服人员信息客服人员信息表
图 2-15 登陆模块数据流程图
D1210.1游客信息P1210.1查询在线游客D1210.2游客信息在线用户信息表D1220.1客服人员信息P1220.1客服人员状态D1220.2客服人员状态用户信息表D1230.1客服人员信息P1230.1维护客服人员D1230.2客服人员信息客服人员信息用户信息表D1240.1评价信息P1240.1查看客服人员2P1240.1查看维护评价D1240.2评价信息客服经理D1250.1聊天记录信息评价信息表P1250.1查询聊天记录D1250.2聊天信息聊天记录表D1260.1字典信息P1260.1查看字典D1260.2字典信息客服字典表D1280.1留言信息P1270.1查询留言记录D1270.2留言信息P1270.2维护留言信息D1270.3留言信息留言信息表留言信息表 图 2-16 客服经理模块数据流程图
D1310.1聊天信息P1310.1在线聊天D1310.2聊天记录聊天记录信息表客服人员D1320.1字典信息P1320.1维护字典信息D1320.1字典信息维护客服字典信息表D1330.1留言信息P1330.1查看留言D1330.1留言信息查询留言信息表
图 2-17 客服人员模块数据流程图
D1410.1客服经理信息P1410.1维护客服经理信息D1410.2客服经理信息管理员用户信息表D1420.1客服人员信息P1420.1维护客服人员信息D1420.2客服人员信息
图 2-18 系统治理模块数据流程图
D1510.1在线客服信息P1510.1查询在线客服D1510.2在线客服信息在线客服信息在线人员信息表P1520.1在线聊天D1520.2聊天信息D1520.1聊天信息在线聊天记录游客D1530.1客服人员信息聊天信息表P1530.1在线客服人员D1530.2评价信息P1530.2在线评价D1530.3评价信息在线评价信息客服人员信息评价信息表D1540.1客服人员信息P1540.1客服人员列表D1540.2留言信息2P1540.1在线留言D1540.2留言信息在线留言信息留言信息表客服人员信息 图 2-19 网站用户模块数据流程图
2.5. 数据字典
2.5.1. 定义数据储备
表1 系统用户表 字段名称 id Role_id Name Username Password Status Usertype displayorder Remark 数据类型 Int Int Varchar Varchar Varchar Int Int Int varchar 字段大小 11 11 20 20 10 11 11 11 200 索引 Primary Foreign 是否可为空 NO NO YES YES YES YES YES YES YES 说明 流水号 角色编号 用户姓名 登录名 密码 用户状态 用户类型 显示顺序 备注 表2 系统角色表 字段名称 id Role_name Role_type Role_status 数据类型 int Varchar Int Int 字段大小 11 20 11 11 索引 Primary 是否可为空 NO YES YES YES 说明 编号 角色名称 角色类型 角色状态 表3角色权限关系表 字段名称 Role_id Permission_id 数据类型 字段大小 索引 是否可为空 说明 int 11 Primary NO 角色编号 int 11 Primary NO 权限编号 表4 谈天记录表 字段名称 id Senduser Recieveuser content Sendat 数据类型 int varchar varchar varchar Date 字段大小 11 32 32 2000 索引 Primary 是否可为空 NO YES YES YES YES 说明 编号 发送人 接收人 内容 发送时刻 表5 在线用户信息表
字段名称 id User_id Name Loginat loginip 数据类型 int int varchar date varchar 字段大小 11 11 32 50 索引 Primary 是否可为空 NO YES YES YES YES 说明 编号 用户编号 名字 登录时刻 登录IP 表6 网站用户评判表 字段名称 id level User_id Comuser comat comcontent 数据类型 int varchar varchar varchar varchar varchar 字段大小 11 32 32 32 32 32 索引 Primary 是否可为空 NO YES YES YES YES YES 说明 编号 姓名 密码 评判人 评判时刻 评判内容 表7 网站用户留言表 字段名称 id User_id Memoat Memo_user content 数据类型 int int date varchar varchar 字段大小 11 11 32 2000 索引 Primary 是否可为空 NO NO NO YES YES 说明 流水号 用户编号 留言时刻 留言人 留言内容 表8 客服字典表 字段名称 id Title content 2.5.2. 定义数据流 编号 名称 D1110.1 系统治理员信息 D1110.2 系统治理员信息 去向 P1110.1 系统治理员 用户编号+治理员姓名+身P1110.1 治理员功能 份 系统治理员 D1120.1 客服经理信息 客服经理用户+密码+身份 用户 P1120.1 客服经理身份 组成 来源 治理员用户名+密码+身份 用户 数据类型 int varchar varchar 字段大小 索引 是否可为空 说明 4 Primary NO 流水号 100 Foreign NO 字典标题 1000 Foreign NO 字典内容 D1120.2 客服经理信息 用户编号+用户名+身份 D1130.1 客服人员信息 D1130.2 客服人员信息 D1210.1 网站用户信息 D1210.2 网站用户信息 D1220.1 客服人员信息 D1220.2 客服人员信息 D1230.1 客服人员信息 D1230.2 客服人员信息 D1240.1 评判信息 D1240.2 评判信息 D1250.1 谈天记录信息 D1250.2 谈天记录信息 D1260.1 字典信息 P1120.1 客服经理功客服经能 理身份 客服人员名+密码+身份 用户 P1130.1 客服人员身份 用户编号+用户名+身份 P1130.1 客服人员功客服人能 员身份 网站用户编号 客服经P1210.1 理首页 查询在线网站用户 网站用户编号 P1210.1 在线网站用查询在户信息 线网站用户 客服人员编号 客服经P1220.1 理首页 客服人员状态 客服人员编号 P1220.1 客服人员状客服人态 员状态 客服人员姓名+密码+其它客服经P1230.1 信息 理首页 爱护客服人员 客服人员信息 P1230.1 客服人员信爱护客息 服人员 评判信息 客服经P1240.1 理首页 查看客服人员 评判信息 P1240.1 评判信息 查看客服人员 谈天记录信息 客服经P1250.1 理首页 查询谈天记录 谈天记录信息 P1250.1 谈天记录 查询谈天记录 字典信息 客服经P1260.1 理首页 查看字典 D1260.2 字典信息 字典信息 D1270.1 留言信息 留言信息 D1270.2 留言信息 留言信息 P1260.1 字典信息 查看字典 客服经P1270.1 理首页 查询留言记录 P1270.2 P1270.1 查询留爱护留言信言记录 息 P1270.2 留言信息 爱护留言信息 客户人员首页 P1310.1 在线谈天 客户人员首页 P1310.1 在线谈天 谈天窗口 D1270.3 留言信息 留言信息 D1310.1 谈天信息 D1310.2 谈天信息 谈天信息 谈天信息 D1320.1 字典信息 字典信息 D1320.2 字典信息 字典信息 D1330.1 留言信息 D1330.2 留言信息 留言信息 留言信息 D1410.1 客服经理信息 客服经理信息 D1410.2 客服经理信息 客服经理信息 D1420.1 客服人员信息 客服人员信息 D1420.2 客服人员信息 客服人员信息 P1320.1 爱护字典信息 P1320.1 字典信息列爱护字表 典信息 客户人P1330.1 员首页 查看留言 P1330.1 留言信息列查看留表 言 治理员P1410.1 首页 爱护客服经理信息 P1410.1 客服经理信爱护客息列表 服经理信息 治理员P1420.1 首页 爱护客服人员信息 P1420.1 客服人员列爱护客表 服人员D1510.1 在线客服信息 在线客服信息 D1510.2 在线客服信息 在线客服信息 D1520.1 谈天信息 D1520.2 谈天信息 谈天信息 谈天信息 D1530.1 客服人员信息 客服人员信息 D1530.2 客服人员信息 客服人员信息 D1530.3 评判信息 评判信息 D1540.1 客服人员信息 客服人员信息 D1540.2 客服人员信息 客服人员信息 D1540.3 留言信息 2.5.3. 定义数据处理 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 留言信息 信息 网站用P1510.1 户首页 查询在线客服 P1510.1 在线客服列查询在表 线客服 网站用P1520.1 户首页 在线谈天 P1520.1 谈天窗口 在线谈天 网站用P1530.1 户首页 在线客服人员 P1530.1 客服人员列在线客表 服人员 客服人评判信息 员列表 网站用P1540.1 户首页 客服人员列表 P1540.1 客服人员列客服人表 员列表 客服人留言信息 员列表 P1110.1 D1110.1 用户信息表 D1110.2 输入数据和数据表中信息进行对比,完成审核功能 发觉错误及时更正 P1120.1 D1110.1 用户信息表 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: D1110.2 输入数据和数据表中信息进行对比,完成审核功能 发觉错误及时更正 P1130.1 D1110.1 用户信息表 D1110.2 输入数据和数据表中信息进行对比,完成审核功能 发觉错误及时更正 P1210.1 D1210.1 在线用户信息表 D1210.2 依照输入数据查询在线网站用户信息 发觉错误及时更正 P1220.1 D1220.1 用户信息表 D1220.2 输入数据查询客服人员在线状态 发觉错误及时更正 P1230.1 D1230.1 用户信息表 D1230.2 储存输入数据为一条客服人员信息 发觉错误及时更正 P1240.1 D1240.1 用户信息表 D1240.2 依照输入数据查询客服人员列表 发觉错误及时更正 P1250.1 D1250.1 谈天记录表 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: D1250.2 输入数据查询谈天记录表 发觉错误及时更正 P1260.1 D1260.1 客服字典表 D1260.2 输入数据查询客服字典信息 发觉错误及时更正 P1270.1 D1270.1 留言信息表 D1270.2 输入数据查询留言信息记录 发觉错误及时更正 P1270.2 D1270.2 留言信息表 D1270.3 输入数据查询留言信息记录 发觉错误及时更正 P1310.1 D1310.1 谈天信息表 D1310.2 输入数据在线谈天 发觉错误及时更正 P1320.1 D1320.1 字典信息表 D1320.2 输入数据储存字典信息 发觉错误及时更正 P1330.1 D1330.1 留言信息表 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: D1330.2 输入数据查看留言信息 发觉错误及时更正 P1410.1 D1410.1 用户信息表 D1410.2 输入数据储存客服经理信息 发觉错误及时更正 P1420.1 D1420.1 用户信息表 D1420.2 输入数据储存为客户人员信息 发觉错误及时更正 P1510.1 D1510.1 用户信息表 D1510.2 输入数据查询在线客户服务人员 发觉错误及时更正 P1520.1 D1520.1 谈天记录表 D1520.2 输入数据进行谈天 发觉错误及时更正 P1530.1 D1530.1 用户信息表 D1530.2 输入数据查询客服信息列表 发觉错误及时更正 P1530.2 D1530.2 评判信息表 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息: 编号: 输入数据流: 文件信息: 输出数据流: 功能说明: 出错信息:
D1530.3 输入数据储存为评判信息 发觉错误及时更正 P1540.1 D1540.1 用户信息表 D1540.2 输入数据查询客服信息列表 发觉错误及时更正 P1540.2 D1540.2 留言信息表 D1540.3 输入数据储存为留言信息 发觉错误及时更正 3. 系统设计与实现
3.1. 软件流程设计 3.1.1. 软件总体设计
系统设计要回答的中心问题是系统“如何做”,即如何实现需求分析说明书中规定的系统功能。在这一时期,要依照实际的技术条件、经济条件和社会条件,确定系统的实施方案,即系统的物理模型。 系统总流程图参见图3-1:
开始网站客户在线注册否是否注册是咨询、评价、留言是否有权限是查询和维护网站工作人员登录否否信息和查询条件有效性是对数据库的信息进行操作及显示结果否结束
图 3-1系统总流程图
3.1.2. 各模块流程设计
3.1.2.1. 用户登录模块
功能:用户在登录界面登录后,可进入相应权限的工作界面。用户登录流程图参见图3-2:
开始用户登录界面输入用户名和密码N用户名是否存在Y密码是否正确Y登录成功N结束
图 3-2用户登录流程图
3.1.2.2. 系统治理员模块
功能:系统治理员登录成功后,能够对客服经理和客服人员进行增、删、改和查询操作,也能够对系统的角色进行增删改和查询的操作。系统治理员模块的流程图请参见图3-3
开始用户信息的维护N查询维护有效性YY对信息进行操作并显示结果角色信息的维护N查询维护有效性结束
图 3-3 系统治理员模块流程图
3.1.2.3. 客服经理模块
功能:客户经理登录成功后,能够查看在线客服人员的情形,以及网站客户对客服人员的评判和留言。在线客服经理模块的流程图请参见图3-4
开始查询信息N查询维护有效性Y对信息进行操作并显示结果结束
图 3-4客服经理模块流程图
3.1.2.4. 客服人员模块
功能:客服人员登录成功后,能够对客服字典进行治理,包括增删改和查询操作,同时能够和网站客户进行谈天,为客户解答疑问。客服人员模块的流程图请参见图3-4
开始在线聊天N查询维护信息N信息有效性Y查询维护有效性Y对信息进行操作并显示结果结束
图 3-5客服人员模块流程图
3.1.2.5. 网站客户模块
功能:网站客户进入网站后,先要注册一个用户名,然后再从在线客服人员列表中选择一个客服人员,之后就能够对此客服人员进行评判、留言以及向此客服人员咨询问题了。网站客户模块的流程图请参见图3-5
开始在线聊天N在线评价和留言N信息有效性Y查询维护有效性Y对信息进行操作并显示结果结束
图 3-6网站客户模块流程图
3.2. 数据库详细设计
数据库详细设计即为数据库逻辑设计。依照数据库的概念模型来设计数据模型。
kf_messageidcontentrecieversend_atsendertypeuser_idint(11) 以下是系统数据库、数据表的创建过程: DROP DATABASE onlinekf; CREATE DATABASE onlinekf character set=utf8; SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for kf_comment -- ---------------------------- CREATE TABLE `kf_comment` ( `id` int(11) NOT NULL auto_increment, `comment_level` int(11) default NULL, `content` varchar(255) default NULL, `customer` varchar(255) default NULL, `record_at` datetime default NULL, `user_id` int(11) default NULL, PRIMARY KEY (`id`), KEY `FKF32C177BB2B29A96` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_dictionary -- ---------------------------- CREATE TABLE `kf_dictionary` ( `id` int(11) NOT NULL auto_increment, `content` varchar(255) default NULL, `create_at` datetime default NULL, `title` varchar(255) default NULL, `user_name` varchar(255) default NULL, `user_id` int(11) default NULL, PRIMARY KEY (`id`), KEY `FK1D0F61FAB2B29A96` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_memo -- ---------------------------- CREATE TABLE `kf_memo` ( `id` int(11) NOT NULL auto_increment, `content` varchar(255) default NULL, `if_read` int(11) default NULL, `memo_at` datetime default NULL, `telphone` varchar(255) default NULL, `user_name` varchar(255) default NULL, `user_id` int(11) default NULL, PRIMARY KEY (`id`), KEY `FKCFB6E19EB2B29A96` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_message -- ---------------------------- CREATE TABLE `kf_message` ( `id` int(11) NOT NULL auto_increment, `content` varchar(255) default NULL, `reciever` varchar(255) default NULL, `send_at` datetime default NULL, `sender` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_online -- ---------------------------- CREATE TABLE `kf_online` ( `id` int(11) NOT NULL auto_increment, `ip_address` varchar(255) default NULL, `login_at` datetime default NULL, `type` int(11) default NULL, `user_name` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_role -- ---------------------------- CREATE TABLE `kf_role` ( `id` int(11) NOT NULL auto_increment, `remark` text, `role_name` varchar(100) default NULL, `type` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for kf_user -- ---------------------------- CREATE TABLE `kf_user` ( `id` int(11) NOT NULL auto_increment, `display_order` int(11) default NULL, `name` varchar(200) default NULL, `password` varchar(255) default NULL, `remark` text, `status` int(11) default NULL, `user_name` varchar(200) default NULL, `role_id` int(11) default NULL, PRIMARY KEY (`id`), KEY `FKCFBAB82FD87D6B6` (`role_id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 3.3. 系统设计 本系统基于B/S结构采纳MVC模式进行设计。 3.3.1. 系统的架构设计 系统的开发架构以SSH框架为基础,通过Spring配置文件对系统中用到的bean进行治理,同时也通过AOP的理念来治理系统中的事务,通过Struts配置文件对Action及页面跳转进行配置。 软件系统的开发分Repository、Service、Facade、Action四层: Action用于收集页面参数,调用Facade,依照调用结果和相应的业务专门跳转到相应的结果页面 Action中只能注入一个Facade,父类prepare方法除外,因为那个方法需要处理整体的登录用户需要处理的一些内容。 Facade用于调用Service,Facade中能够注入多个Service,但不能够注入Repository,Facade做必要的数据校验,比如id值是否为整数,假如校验失败,抛出业务专门。 Service用于调用Repository,做业务校验,逻辑校验,比如id所对应的对象是否存在,校验失败的时候也抛出业务专门,Service中能够注入多个Repository。 Repository用于处理数据持久化的相关操作,现在系统数据持久化使用Hibernate,因此在现行代码中Hibernate相关的接口不能够跑到这层之外,包括Session、Criteria、Query、SQLQuery,假如需要做一些必要的SQL、HQL、Criteria组装,也在这层处理。 3.3.2. 系统菜单设计 本系统的菜单采纳在扫瞄器主窗体中的顶部设置菜单栏,分别为系统治理员、客服经理、客服人员及网站客户出现相应操作权限的菜单项,通过选择菜单中的菜单项来执行对应功能模块的操作。菜单的界面参见图3-7: 图 3-8 系统治理员登录菜单 重要代码: 3.3.3. 登录模块设计 3.3.3.1. 界面功能描述: 登录用户输入正确的用户名和密码即可登录系统,本系统的登录用户分为三类:系统治理员,客服经理,客服人员。假如用户输入的用户名和密码不正确,在登录框下面会提示红色的错误信息。 3.3.3.2. 界面设计 图 3-9系统登录窗口 3.3.3.3. 重要代码 采纳过滤器来判定用户是否登录 ServletRequest request = ( ServletRequest) req; ServletResponse response = ( ServletResponse) res; // where to get name Session session = request.getSession(true); String errorLocation = request.getContextPath() + \"/logout.action\"; SessionUser sessionUser = (SessionUser)session.getAttribute(OnlinekfConstants.SESSION_KEY); if(sessionUser != null){ chain.doFilter(req, res); }else{ response.sendRedirect(errorLocation); return; } 3.3.4. 系统治理员模块设计 3.3.4.1. 界面功能描述: 系统治理员登录系统后,能够对用户和角色进行治理,通过菜单选择用户,页面的下面会显示出用户的列表,同时会在列表上面显示一个增加按钮,在每条记录的最后都有一个编辑和删除的操作按钮,通过这几个按钮能够对用户的数据进行爱护;角色治理是同样的。 3.3.4.2. 界面设计 图 3-10 用户列表窗口 3.3.4.3. 重要代码 用户治理的action层的代码如下,通过struts框架来接收前台传过来的参数,如userId,然后通过façade层来处理参数,并调用service层的业务逻辑方法处理具体需求,其它模块的action层的处理类似: …… public class UserAction extends BaseAction{ private static final long serialVersionUID = -8092064458600772305L; private List * 查询用户列表 * */ public String listUser(){ Result 3.3.5. 客服经理模块设计 3.3.5.1. 界面功能描述: 客服经理登录成功后,系统会显示出相关的功能菜单,客服经理通过此功能菜单能够查看客服人员与网站客户之间的谈天记录,能够查看客户对客服人员的评判,能够查看客户给客服人员的留言,能够查看在线用户列表。 3.3.5.2. 界面设计 图 3-11 谈天记录查看窗口 3.3.5.3. 重要代码 客服经理查看谈天记录的repository层代码:利用hibernate框架的Criteria语法来查询相关信息,如统计总数,查询列表等,其它功能模块的repository层代码都一样,差不多上采纳了hibernate技术来实现的: public int getCount() { Criteria ca = this.createCriteria(); ca.setProjection(Projections.countDistinct(\"id\")); return (Integer) ca.uniqueResult(); } public List } ca.setMaxResults(pageSize); } ca.addOrder(Order.desc(\"id\")); return (List 3.3.6. 客服人员模块设计 3.3.6.1. 界面功能描述: 客服人员成功登录系统后,能够和网站客户进行谈天,能够查看客户给自己的留言,能够对客服字典进行治理。 3.3.6.2. 界面设计 图 3-12客服字典治理 图 3-13客服人员与网站客户之间的谈天窗口 3.3.6.3. 重要代码 客服人员与网站客户之间的沟通采纳的时AJAX技术实现的,通过定时刷新页面来显示谈天记录,在刷新页面时,会通过DWR框架调用到MessageMgr接口的实现从数据库中取数据的功能,客服人员与客户之间谈天窗口的区别在于客服人员还要定时刷新在线用户,假如有变化时要及时更新在线用户列表: …… 3.3.7. 网站客户模块设计 3.3.7.1. 界面功能描述: 网站客户进入系统后,第一注册一个用户名,然后能够选择一个在线客服人员,与他进行网上咨询服务,也能够对选定的客服人员进行评判,或者给他留言。客户在线谈天的功能实现与客服人员在线谈天的功能实现是一样的,因此那个地点就不多说了。 3.3.7.2. 界面设计 图 3-14 网站客户在线评判窗口 图 3-15 网站客户在线留言窗口 3.3.7.3. 重要代码 public class OnlineAction extends BaseAction implements JsonAction{ public void prepare() throws Exception{ super.prepare(); if(username == null){ ServletRequest request = ( ServletRequest) ActionContext.getContext().get(StrutsStatics. _REQUEST); Session session = request.getSession(true); this.username = (String)session.getAttribute(OnlinekfConstants.SESSION_CHAT_USER); if(StringUtil.isNullOrBlank(this.username)){ this.username = \"all\"; } } } public String listOnline(){ Result onlineMgr.listOnline(1,this.getCurrentPage(), this.getPageSize()); onlineList = (List ActionContext.getContext().get(StrutsStatics. _REQUEST); Session session = request.getSession(true); session.removeAttribute(OnlinekfConstants.SESSION_CHAT_USER); return SUCCESS; } 4. 要紧功能模块测试 4.1. 软件测试概述 软件测试是软件开发过程中最关键的时期。当测试成功时能够尽早发觉产品中存在的问题并及时解决。尽早解决能够使软件公布后爱护的费用降低。测试的目的是为了保证软件的质量,满足设计的要求和客户的要求:因此软件测试是保证质量的关键步骤,也是对软件的规格说明、设计和编码的最后复审。 4.2. 软件测试的目标 测试是指“用意在于发觉错误而执行一个程序的过程”,一个成功的测试是指它成功地发觉了一个尚未发觉的错误。软件进行测试,能够分为单元测试、编码测试和综合测试,单元测试能够测试单一模块的功能并确定其功效;编码测试能够测试各模块之间的连接是否有效;综合测试是对软件最后的审定软件的各项功能是否齐全有效,是否能顺利完成设计的目的。 4.3. 软件测试的方法 软件测试方法一样分为动态测试方法与静态测试方法。动态测试方法中又依照测试用例的设计方法不同,分为黑盒测试与白盒测试两类。 4.3.1. 静态测试 静态测试是采纳人工检测和运算机辅助静态分析的手段对程序进行检测,方法如下: 1、人工检测:是指不依靠运算机运行程序,而靠人工审查和评审软件。 2、运算机辅助静态分析:指利用静态分析软件工具对被测试程序进行特性分析,从程序中提取一些信息,来检查可能出错的变量、参数与代码等。 4.3.2. 动态测试 动态测试与静态测试相反,要紧是设计一组输入数据,然后通过运行程序来发觉错误。一样有两种方法:黒盒测试和白盒测试。 4.3.3. 黑盒测试与白盒测试 1. 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情形下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,同时保持外部信息的完整性。 在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法: (1) 等价类划分 所谓等价类,确实是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这确实是等价类划分方法。它是功能测试的差不多方法。 (2) 因果图法 因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是关心人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。 (3) 边值分析 实践证明,软件在输入、输出域的边界邻近容易显现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相关于输入和输出等价类直截了当在其边缘上,稍高于和稍低于其边界的这些状态条 件。边值分析是对等价类划分的有效补充。 黑盒测试要紧是为了发觉以下几类错误: ① 是否有不正确或遗漏的功能? ② 在接口上,输入是否能正确的同意?能否输出正确的结果? ③ 是否有数据结构错误或外部信息(例如数据文件)访问错误? 2. 白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是明白产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其要紧方法有逻辑驱动、基路测试等,要紧用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍旧可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发觉不了一些与数据相关的错误。 与功能测试不同的是,结构测试涉及程序内部结构。尽管用户更倾向于基于程序规格说明的功能测试,然而结构测试能发觉潜在的逻辑错误,而这种错误往往是功能测试发觉不了的。它们各有利弊,常常结合使用。 白盒测试要紧是想对程序模块进行如下检查: (1) 对程序模块的所有独立的执行路径至少测试一遍。 (2) 对所有的逻辑判定,取“真”与取“假”的两种情形都能至少测一遍。 (3) 在循环的边界和运行的界限内执行循环体。 (4) 测试内部数据结构的有效性,等等。 本系统要紧采纳黑盒测试。 4.4. 要紧功能模块的测试 4.4.1. 登陆模块的测试 当用户输入正确的用户名和密码的测试参见图4-1 图 4-1 登录成功后的提示页面 当用户输入错误的用户名和密码的测试参见图4-1 图 4-2登录失败后提示页面 4.4.2. 系统治理模块的测试 增加用户信息的测试参考图4-3至图4-5: 当必填项为空时,会有红色提示: 图 4-3 必填项为空的错误提示 增加用户信息窗口,增加成功,则直截了当跳转到用户列表页面。 图 4-4 增加用户信息窗口 图 4-5 增加用户成功窗口 4.4.3. 客服经理模块的测试 查看网站客户留言:客服经理能够查看到所有的留言内容。那个能够和客服人员查看留言时作对比,客服人员只能查看到客户对自己的留言。 图 4-6 查看网站客户留言 4.4.4. 客服人员模块的测试 客服人员查看留言时,只能查看到客户对自己的留言,比如下图中的客服人员“张一”就只能查看到客户给“张一”的留言。 图 4-7 客服人员查看留言窗口 客服字典的查询功能,依照标题和内容能够查询对应的客服字典,如下图所示,查询标题中包含“支付”的字典: 图 4-8客服字典查询窗口 4.4.5. 网站用户模块的测试 网站客户进入系统后,进行注册,假如不注册,则不显示任何可操作按钮,如下图: 图 4-9网站客户初始页面 当客户注册成功后,窗口中会显示用户注册的用户名,同时在客服人员列表的下方显示了几个按钮,表示客户能够对选择的客服人员进行评判,能够对其留言,也可与之沟通咨询: 图 4-10 注册成功后的窗口 当用户选择了与所选择的客服人员进行咨询时,会弹出谈天窗口,这时客户就能够与客服人员进行沟通咨询了: 图 4-11 在线谈天功能 结 论 本课题《在线客服系统的设计与实现》运用软件工程的概念进行系统分析和设计,应用数据库原理的差不多知识进行概念结构设计,以MySql为后台数据库,采纳功能强大并易于开发复杂数据库应用系统的前端开发工具Eclipse 3.3,完成了系统的设计和实现。在测试时期采纳黑盒测试的方法,对各个功能实现进行了测试。 整个研究过程通过需求分析、系统设计、系统实现和系统测试等四个时期的工作, 开发出来的软件具有良好的用户界面,要紧实现了以下几个功能: 1. 登录模块:实现了不同人员登录系统时,能够看到不同的功能菜单,并进行不同的操作。 2. 系统治理员模块:实现了系统治理员对用户及角色信息的爱护。 3. 客服经理模块:实现了客服经理对客户与客服人员的谈天记录的查询,以及客户对客服人员的评判和留言。 4. 客服人员模块:实现了客服人员爱护客服字典,客服人员通过在线谈天的方式为客户解答问题等功能。 5. 网站客户模块:实现了网站客户在线咨询的功能,同时还实现了客户对指定的客服人员进行评判或给客服人员留言的功能。 本系统应用Java技术SSH2框架和MySql技术解决了网站传统的客服方式无法方便的达到与客户互动的成效,使客户网上咨询更加便利合理,能够即时的了解到网站的相关信息,达到了系统设计的预期目标。本系统的开发完成明显增强了网站与客户之间的互动环节,更加吸引客户,为网站的更好的进展作出了奉献。 致 谢 在这次毕业设计中,我得到了许多人真心的关心,让我少走了许多的弯路。第一应该感谢我的指导老师宋晔,从选题,下达任务书,中期检查,到后期开发设计以及功能测试等整个过程中都给予了我尽心的指导。宋老师牺牲了自己宝贵的时刻与我安排时刻与我们面对面的交流,给予我们各方面的指导,给了我们专门多有益的建议。使我在完成设计的同时,对学习的专业知识做了一次系统的复习总结,同时对目前所从事的项目以及相关的学科有了一定的了解和认识,获益非浅。 其次,要感谢这几年中我所有的恩师。是他们在学习上的不断指导和关心,增加了我聪慧的力量,更加明白得了为人处事的道理;是他们用渊博的知识和精心的授课深深吸引了我,使我感到了学习的欢乐,较好地把握了每门功课的内容,为毕业论文的顺利完成打下了良好的基础。 再次,要感谢我友爱的同学们,尽管我们是远程教育学习,然而在学习期间依旧结实了专门多同学伴我度过了这段专升本的美好学习时刻,和他们日常相处的点点滴滴让我印象深刻。我会永永久记住可爱的战友们的。 最后,谨向我的父母和妻子表示诚挚的谢意。你们是我永久的依靠和支持。你们无微不至的关怀,是我前进的动力。你们的殷殷期望,激发我不断前行。我的点滴成功都源自你们对家庭、对我的爱。专门在宝宝刚一周岁的时候,我无法在周围照管小孩,是你们在解决了我的后顾之忧,我才能够拿出更多的时刻来顺利完成毕业设计。 参考文献 [1]宋晔,张弘. 《PowerBuilder有用教程》(第2版)[M]. 北京:北京理工大学出版社,2008. 11-17. [2]许家珆. 《软件工程——方法与实践》[M]. 北京:电子工业出版社,2007. 24-33. [3]张迎新. 《数据库原理、方法与应用》[M]. 北京:高等教育出版社,2004. 20-139. [4](美)埃克尔.《Java编程思想》.北京:机械工业出版社,2001.1 [5](美)Craig A.Berry. John Carnell. Matjaz B.Juric等 《有用J2EE设计模式编程指南》 北京:电子工业出版社,2003. [6](美)Kevin Duffey. Vikram Goyal. Ted Husted等 《JSP站点设计编程指南》 北京:电子工业出版社,2002. [7](希)Diomidis Spinellis. 《代码质量》 北京:机械工业出版社 2007 [8]柯自聪 Ajax开发精要 北京:电子工业出版社 2006 [9](美)Joshua Bloch.著 潘爱民译 《Effective者Java中文版》 北京:机械工业出版社 2003 [10]李刚编著 《整合Struts+Hibernate+Spring应用开发详解》 北京:清华大学出版 2007 [11] Rod Johnson 《Expert One-on-One J2EE Design and Development》 Wrox October 2002 [12] Rod Johnson, Juergen Hoeller, Alef Arendsen, Thomas Risberq, Colin Sampaleanu 《Professional Java Development with the Spring Framework》 Wrox,1 edition July 2005 因篇幅问题不能全部显示,请点此查看更多更全内容