CRM 客户关系管理系统毕业论文.docx
CRM 客户关系管理系统毕业论文SHANDONG 毕业设计说明书CRM客户关系管理系统 学 院: 计算机科学与技术学院 专 业: 计算机科学与技术专业 学生姓名: 学 号: 指导教师: 2012 年 06 月 摘要 摘 要 客户资源是企业的重要资源,而对于客户资源的合理管理,关乎着企业的生存与发展。客户关系管理系统简称CRM的引入,就是改善这一问题的重要措施。CRM作为管理企业和客户关系的主要管理平台,不仅可以对客户的关系进行管理,还可以记录企业同客户之间的业务活动。 该系统用JSP和MySQL实现了客户信息的管理、统计、分析、查询以及管理员对系统维护等功能。客户管理系统有着很好的应用前景,随着计算机技术和网络技术的发展,它的功能将会得到不断的发展和完善。本系统可以根据实际应用的具体情况,适当加以修改,以便更好应用。本系统操作简单,灵活性好,系统安全性高,运行稳定。 本文详细介绍了客户关系管理系统开发和设计的全过程。 关键词:客户关系,管理系统,客户,JSP ,MySQL 英文摘要 Abstract Customer resources is an important enterprise resources, and to the customer resource to rational management, for the enterprise's survival and development. Customer relationship management system as the introduction of CRM, is to improve the problem of the important measures. CRM as a management enterprise and customer relationship management of the main platform, can not only to the customer relationship management, can also record enterprise with the customers, business between activities. This system USES JSP and MySQL realize customer information management, statistics, analysis, inquires the and administrators to system maintenance etc. Function. Customers management system has a good application prospect, along with the computer technology and network technology development, its function will be constant development and improvement. This system can according to the specific circumstances of practical application, proper, in order to better be amended application. This system operation simple, flexibility is good, the system has high security, steady operation. Key words: CRM,Management System, corporate customer,JSP ,MySQL III 目录 目录 摘 要 .I Abstract . III 目录 . IV 第一章 引言 . - 1 - 1.1 系统的开发背景 . - 1 - 1.1.1客户管理系统的发展 . - 1 - 1.1.2 客户管理的现状 . - 1 - 1.2 系统实现的目标 . - 2 - 1.3 系统开发的意义 . - 3 - 第二章 客户管理系统分析 . - 4 - 2.1 系统的设计目标 . - 4 - 2.2 系统的可行性分析 . - 4 - 2.2.1 用户群体与市场分析 . - 4 - 2.2.2 技术能力分析 . - 4 - 2.2.3 可行性分析总结 . - 5 - 2.3 系统设计的特点 . - 5 - 第三章 系统的开发技术及主要构架 . - 6 - 3.1 开发技术的选择 . - 6 - 3.1.1 JSP编程技术. - 6 - 3.1.2 MYSQL开源数据库的开发 . - 8 - 3.1.3 JAVA语言概述. - 8 - 3.2 系统的主要架构及开发模式 . - 9 - 3.3 开发工具和开发技术选择 . - 11 - 第四章 系统功能和流程分析 . - 12 - 4.1 系统功能模块设计 . - 12 - 4.2 整体分析 . - 12 - 4.3 数据流分析 . - 13 - 4.4 系统E-R图 . - 14 - 4.4.1 系统总体E-R图 . - 14 - 4.4.2 系统管理员实体图 . - 15 - 4.4.3 营销信息实体图 . - 16 - 4.4.4 客户信息实体图 . - 16 - 4.4.5 服务信息实体图 . - 17 - 4.4.6 邮件信息实体图 . - 17 - 4.5 数据库设计 . - 18 - 第五章 系统实现 . - 21 - 5.1 数据库连接 . - 21 - 5.2 用户登录管理 . - 21 - 5.3 销售管理 . - 22 - 5.4客户管理 . - 22 - 5.5服务管理 . - 23 - IV 目录 5.6 5.7 5.8 5.9 第六章 6.1 6.2 统计报表 . - 23 - 库存管理 . - 24 - 邮件管理 . - 24 - 系统数据管理 . - 25 - 系统测试与难点分析 . - 26 - 系统运行环境的搭建 . - 26 - 系统的测试 . - 27 - 6.2.1系统关键部分测试分析 . - 27 - 6.2.2 测试结果分析与说明 . - 27 - 6.2.3 系统安全与性能 . - 27 - 6.3 开发技巧和难点分析 . - 27 - 结束语 . - 30 - 参考文献 . - 31 - 致谢及声明 . - 32 - V 第一章 引言 第一章 引言 1.1 系统的开发背景 1.1.1客户管理系统的发展 随着市场的开放,各个企业之间的竞争逐渐加剧,并且也从独立的企业与企业之间的竞争发展成为了一个个群集之间的竞争。在这些群集中,不同的企业扮演着不同的角色,比如有原料供应商、制造商、分销机构、零售商等。在企业与企业之间需要进行大量的信息交互、流程管理和对各种异常情况的处理,前者主要是针对一些动态的数据信息即供应链管理,后者则是更多的是一些静态资料的管理即合作伙伴信息管理。对于普通的中小企业来说,资金和人力都很有限,因此对于定制比较复杂的供应链管理来说是不现实的。中小企业更倾向于首先把散乱的资料、协议有效的管理起来,在一定程度上有效的提高工作效率和企业信息化建设的进程。因此,在这样一种市场需求下,一款通用性强、功能实用、易于上手,面向全行业中小企业的企业管理系统就产生了。 企业的客户资源才会是最重要的资源。在21世纪,客户管理得到了网络技术的充分支持。此时客户也有条件要求企业尊重他们,并对服务的质量和及时性等方面提出更高要求。网络时代到来,使得顾客可以有更大的选择权,市场由原来的供方主导转变为顾客主导。企业在处理与客户的关系时,被动地处理顾客的抱怨、解答顾客的问题,顾客服务并未成为整体服务产品的核心。在这种情况下,企业越来越感觉到没有信息技术支持的客户关系管理系统转换成一个Servlet,即将”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。 - 6 - 第三章 系统的开发技术及主要架构 在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit方法的执行,并对此Servlet初始化。JspInit方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的jspService方法,执行回复操作。由于Servlet始终驻于内存,所以响应是非常快的。JSP页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。 JSP页面的组成: JSP页面看上去像标准的HTML和XML页面,并附带有JSP引擎能够处理和解析执行的代码与组件。通常,JSP代码和组件用于创建在最终页面上显示的文本。通常来说,JSP页面包括编译指令,声明,表达式等内容。 (1)编译指令:使用JSP编译指令来指定所使用的脚本语言,Servlet实现的接口,Servlet扩展的类,Servlet导入的软件包。JSP指令的一般语法形式为:<% 指令名=“值”%>。 (2)声明:用于声明合法的变量和方法。与任何语言相同,JSP语言使用变量来保存数据。这些变量用declaration元素声明,声明的语法为<%! declaration(s) %>。当页面被初始化的时候,JSP页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。 (3)表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:<%=expression>。表达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。 JSP运行环境: 要运行JSP,需要有支持Jsp的服务器。这里分2种情况:一种是自身就支持JSP的服务器,如Jrun,Weblogic,JSWDK等;而另一种则是在不支持JSP的服务器上安装JSP引擎的插件,如在IIS,Apache等服务器上安装WebSphere,tomcat,Resin等插件。其中主流服务器是Weblogic和tomcat. Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是- 7 - 第三章 系统的开发技术及主要架构 Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。 3.1.2 MySQL开源数据库的开发 MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MYSQL是MySQL AB的注册商标。 它的主要特点和优势主要有以下几个: MySQL是一个快速、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。 MySQL是一个关系数据库管理系统。它将数据存放在独立的表格中,以增加存取的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。 MySQL是开源的。开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。 3.1.3 JAVA语言概述 JAVA语言是由Sun公司开发的一种很新的计算机语言,它的历史很短。JAVA语言的发展史是简短而曲折的。由于它与网络的良好结合,使得它在刚发布时就引起了轰动。因为JAVA语言没有兼容低版本计算机语言的负担,所以它在采用计算机新技术方面比传统的计算机语言显得更为纯粹,JAVA语言的特点也更为鲜明。它的特点与其历史发展是相关的。 JAVA语言的特点: 1. 简单性。JAVA语言是在C和C+计算机语言的基础上进行简化和改进的一种新型计算机语言。它去掉了C和C+种最难正确应用的指针和最难理解的多继承技术等内容,通过垃圾自动回收机制简化了程序内存管理,统一了各种数据类型在不同操作系统平台上所占用的内存大小。 2. 网络特性。JAVA语言是目前对网络支持最全面,与网络关系最密切的计算机语言之一。其对互联网络有着良好的支持。 3. 面向对象。JAVA语言在面向对象特性上比C+语言更为彻底的一种语言。- 8 - 第三章 系统的开发技术及主要架构 面向对象模型是一种模拟人类社会和人解决实际问题的模型,因此更符合人们的思维习惯,而且容易扩充和维护。它的缺点是程序在开发的过程中往往会变得越来越庞大。 4. 平台无关性。平台无关性又称为可移植性。JAVA语言的设计目标是让其程序不用修改就可以在任何一种计算机平台上运行。解决异构操作系统兼容性问题是一个很艰巨的任务。虽然JAVA语言并没有完全实现最初的设计目标,但在这方面确实是同类语言中做的最好的。 5. 鲁棒性。鲁棒性指的是程序执行的稳定性,常常也称为健壮性。JAVA语言的垃圾自动回收机制和异常处理机制以及它的简单性在很大程度上保证了程序的鲁棒性。 6. 安全性。在网络上运行的JAVA语言是符合网络安全协议的。在执行JAVA程序的过程中,JAVA虚拟机对程序的安全性进行检测。一般说来,JAVA程序是安全的,它不会访问或修改不允许访问的内存或文件。 7. 多线程性。多线程性主要用来处理复杂事务或需要并行的事务。组成JAVA虚拟机的各个程序本身一般也采用多线程机制。采用多线程机制是提高程序运行效率的一种方法,但同时也增加了程序的设计难度。 8. 解释性。JAVA语言是一种解释执行的语言。这是JAVA语言的一个缺点,因为解释执行的语言一般会比编译执行的语言的执行效率要低。 3.2 系统的主要架构及开发模式 该客户管理系统采用B/S模式,服务器采用轻量级应用服务器Tomcat,该服务器运行时所占用的系统资源小,支持负载平衡与邮件服务等开发应用系统常用的功能。有着良好的跨平台性和安全性,可以运行在包括windows、linux、mac等操作系统上。用户客户端使用各种浏览器都能够进行正常的浏览和操作。需要注意的是在程序的开发过程中,程序和路径相关的要考虑到不同的操作系统的文件目录结构。 B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript等)和ActiveX技术,是一种全新的软件系统构造技术。 B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将- 9 - 第三章 系统的开发技术及主要架构 应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。B/S结构的三层体系结构图如图3-1所示。 图3-1 B/S三层体系结构 在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。 B/S三层体系结构的主要优点: B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流 可共享性。单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入; 较好的安全性。在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式 。 三层模式成为真正意义上的“瘦客户端”,客户端计算机不需要很高的硬件配置,也无需特殊的软件配置要求,只要有web浏览器就可以使用系统。 B/S模式提供了一致的用户界面:B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。 在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。 B/S模式的结构易于扩展:由于Web 的平台无关性,B/S模式结构可以任- 10 - 第三章 系统的开发技术及主要架构 意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。 B/S模式具有更强的信息系统集成性:在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。 3.3 开发工具和开发技术选择 系统开发平台:MyEclipse7.0 数据库管理系统软件:MySQL5.0 运行平台:Windows 2000/Windows XP/Windows 2003/Win7 Java开发包:JDK5.0以上 Web服务器:Tomcat 6.0 本系统采用的MVC架构模式开发技术的具体技术: AJAX框架:使用ExtJS 技术开发 显示层:使用JSP技术开发 数据访问层:使用DAO模式开发 持久层:使用Hibernate 框架开发 - 11 - 第四章 系统功能分析和流程设计 第四章 系统功能和流程分析 4.1 系统功能模块设计 系统功能结构层次图主要是介绍系统功能的大体层次结构,使读者能够对系统功能有一个更加直观的把握。系统的软件结构如图4-1所示。 客户关系管理系统客户管理营销管理库存管理服务管理权限管理邮件管理 图 4-1 客户管理系统功能能模块图 4.2 整体分析 系统整体主要流程图,系统由登录页面开始,首先实现身份的识别,若和数据库中的数据匹配,则实现登录,根据系统的权限设置,允许登录者对系统进行权限内操作。进入管理员界面后,系统包括了营销管理、服务管理、客户管理、库存管理和邮件管理等功能模块。系统整体流程示意图如图4-2所示。 - 12 - 第四章 系统功能分析和流程设计 开始重试登录管理员成功登陆进入管理员界面营销管理服务管理客户管理库存管理邮件管理信息配置信息处理审核添加修改删除信息处理信息删除退出图4-2 系统整体主流程示意图 4.3 数据流分析 数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向等项目。 - 13 - 第四章 系统功能分析和流程设计 客户基本信息客户信息管理基本信息基本信息信息编辑营销信息信息删除信息信息编辑信息基本信息信息营销管理信息删除管理员个人信息登录系统信息权限管理服务信息信息信息信息服务管理信息信息信息编辑统计报表邮件管理信息删除图4-2 系统数据流图 4.4 系统E-R图 4.4.1 系统总体E-R图 描述各个实体之间的相互关系,例如多个管理员都可以管理客户信息,同样多个客户信息也可以被多个管理员管理,1个管理员可以管理多条服务信息,具体描述如图4-3所示。 - 14 - 第四章 系统功能分析和流程设计 管理员管理管理管理管理服务信息营销信息客户管理处理处理注册用户处理图4-3 系统总体E-R图 4.4.2 系统管理员实体图 管理员信息包括了管理员密码和用户名以及编号,方便管理员登录和操作设置。管理员拥有最高权限。系统管理员实体图如图4-4所示。 密码用户名管理员信息编号图4-4系统管理员实体图 - 15 - 第四章 系统功能分析和流程设计 4.4.3 营销信息实体图 营销信息包括了创建人、客户名称、编号、客户成功几率、联系人等重要信息,这些信息的管理关系着公司营销的业绩,是一项非常重要的模块。营销信息实体图如图4-5所示。 营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营营图4-5 营销信息实体图 4.4.4 客户信息实体图 为了对客户的信息进行有效地管理,用户需要清楚客户的名称、状态、等级、地区以及客户经理。客户信息实体图如图4-6所示。 状态客户编号客户等级客户信息客户名称客户经理地区图4-6 客户信息实体图 - 16 - 第四章 系统功能分析和流程设计 4.4.5 服务信息实体图 为了对服务进行更有效的管理,提高工作效率和工作质量,必须包括客户服务信息管理。对于客户信息的管理,需要了解服务创建人、服务创建时间、服务请求、服务类型等。服务信息实体图如图4-7所示。 创建时间编号创建人概要服务信息状态客户服务请求服务类型图4-7 服务信息实体图 4.4.6 邮件信息实体图 为了方便与客户之间的联系,能够及时了解客户的状态和接受客户的反馈信息,需要加入邮件功能。邮件信息实体图如图4-8所示。 时间标题邮件信息收件人图4-8 邮件信息实体图发件人- 17 - 第四章 系统功能分析和流程设计 4.5 数据库设计 根据需求分析以及系统功能的需要,系统信息数据存放在MySQL数据表中。下面给出重要数据表的简单描述。 1customer 该表存储了客户的基本信息,主要用于客户信息记录。字段属性描述如表4-1所示。 表4-1 客户信息表 字段名 cust_no cust_na