1、中文题目:文思海辉即时通讯系统外文题目:PACTERA INSTANT MESSAGING SYSTEM 毕业设计(论文)共 71 页(其中:外文文献及译文 10 页)图纸共 0 张完成日期 2014 年 6 月 答辩日期 2014 年 6 月I摘 要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的 ICQ、国内腾讯公司开发的 OICQ。基于Java 网络编程的强大功能,本次毕业设计使用 Java 编写一个聊天系统。一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构
2、模式通过 Java 提供的 Socket 类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而 Java 提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用 SQL Server2008 完成并通过 JDBC-ODBC 桥访问数据库。本系统建立在 JAVA 平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用 C/S 结构,客户端与客户端以及客户端与服务器端之间通过 Socket 传送消息。使用 JAVA 语言编写,开发工具采用MyEclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同
3、的任务。大大增强了程序对服务器资源的利用。主要实现的功能有注册、登录、信息查询、信息维护、删除注册用户、授予管理员权限、聊天、在线用显示、以及聊天记录查询等功能。通过运行、测试与分析,该多功能聊天软件运行稳定、可靠,具有一定的实用价值。关键字:多线程;客户机/服务器;JAVA;Socket;Eclipse;TCP/IP全套源代码加 153893706文思海辉即时通讯系统IIIIAbstractas the network become more and more developed, people become more and more lean to the network, and ca
4、n not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ. Java network programming based on the power, the use of Java designed to prepare gra
5、duates a chat system.In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database, the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the
6、 client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2008 the completion and adoption of JDBC-ODBC Bridge acc
7、ess the database.The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C/S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools
8、 using MyEclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources.It realized some
9、 useful functions such as register, login, information search, information maintenance, Delete registered users, Grants the administrator permissions,chat, Online user display, Chat queryand so on. Through the operation, analysis and testing, the chat software operation is stable,reliable and has a
10、certain practical value.Keywords : Multithreading ; C/S ;JAVA ;Socket ;Eclipse ;TCP/IP目 录1 项目概述 11.1 文思海辉即时通讯系统概述 .11.2 文思海辉公司组织机构 .11.3 系统业务流程 .21.4 系统功能模块 .32 系统需求分析 52.1 需求陈述 .52.1.1 用户管理 52.1.2 即时通讯 52.2 可行性分析 .62.2.1 经济可行性分析 62.2.2 人力可行性分析 62.2.3 技术可行性分析 62.3 USE CASE 建模 .72.3.1 定义活动者 72.3.2 Us
11、e Case 图 73 系统架构设计 123.1 架构设计目标 .123.2 系统架构设计 .133.3 系统架构类图 .194 系统详细设计 204.1 系统交互图 .204.1.1 系统顺序图 204.1.2 系统协作图 224.1.3 系统状态图 234.1.4 系统活动图 244.2 业务逻辑对象类设计 .254.2.1 发现业务逻辑类 .254.2.2 业务逻辑对象类图 .254.3 数据库设计 .264.3.1 ER 图 .274.3.2 关系模型设计 274.3.3 物理表结构图 274.4 开发环境的选择 .284.4.1 系统开发工具 284.4.2 数据库的选择 304.4
12、.3 系统网络架构设计 315 编码 335.1 概述开发工具及编程脚本 .335.2 脚本习惯说明 .355.3 脚本 .376 测试 386.1 测试原则及测试方法概述 .386.2 测试项目测试用例 .406.3 软件测试结论 .436.3.1 软件能力 436.3.2 缺陷和限制 436.3.3 建议 .436.3.4 测试结论 43结 论 46致 谢 47参考文献 48附录 A 中文译文 49附录 B 英文原文 54附录 程序清单 59辽宁工程技术大学毕业设计(论文)11 项目概述1.1 文思海辉即时通讯系统概述即时通讯是当今流行的一种以 Internet 网络及其它有线、无线网络为
13、基础的实时通讯方式,是一种便捷的网络通讯技术,是基于互联网的新型通讯方式,它通过通讯系统建立网络虚拟环境,通过计算机键盘或无线设备在网络上进行实时交谈,是提供公共通讯、商务通讯及商务合作的新媒介,可以弥补传统通讯形式的不足,尤其是电子邮件及语音的不足,为用户提供实时有效的沟通手段。21 世纪是信息的时代,随着互联网技术的发展,信息在传递方面也有了崭新的一面。现今聊天软件成为信息传递最为广泛的应用工具,它发挥了即时性通信的特点,可以让用户在第一时间内得到信息的交流。Internet 的出现连通了整个世界,而聊天软件的出现则连通了每一位网上的用户。随着网络应用的发展,聊天软件已经成为最热门的网络应
14、用之一。经历了近几年突飞猛进的发展之后,即时通讯工具早已不再是简单的互联网通讯工具,它已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。文思海辉是中国最大的软件和 IT 服务外包企业,为进一步扩大企业规模,增强员工间的沟通,提高协作效率,提升企业知名度,公司决定上一套文思海辉即时通讯系统,以便于进一步加快企业信息化建设的步伐。1.2 文思海辉公司组织机构文思海辉技术有限公司的前身分别是文思信息技术有限公司和海辉软件(国际)集团公司,这两家公司都是软件外包服务提供商。2012 年 8 月 11 日文思信息与海辉软件宣布合并,根据双方签订的合并协议,双方股票将以 1 比 1
15、的方式进行合并,两家公司的股东将各自持有合并后的新公司约 50%的股份,原海辉股票将保留在纳斯达克全球精选市场上市。合并以后的公司中文名称为“ 文思海辉技术有限公司” ,英文名称为“Pactera”,纳斯达克股票代码:PACT。海辉软件(国际)集团公司成立于 1996 年,是一家一流的全球服务外包提供商,在中国内地、香港、日本、美国、新加坡等国家和地区均设有办公机构。海辉拥有超过 6000 名专业人士的人力资源和成熟、可靠的全球交付平台,为财富500 强客户文思海辉即时通讯系统2提供高质、安全的 IT 服务。文思信息技术有限公司成立于 1995 年,是一家信息技术服务提供商及离岸软件开发公司。
16、文思是第一家在纽约股票交易所上市的中国软件服务外包企业。据国际数据公司(IDC)的统计 , 以 2007 年销售额衡量, 文思信息技术在为欧美市场提供离岸软件开发行业中位居中国第一。文思信息技术有限公司(下称“文思”) 宣布在 2012 年 11 月 6 日召开的特别股东大会上,公司股东批准了文思与海辉软件(国际)集团公司(下称“海辉” )的对等合并计划。这标志着文思海辉技术有限公司(下称“文思海辉” )正式诞生。合并以后的新公司的规模达 2.3 万人,将成为中国最大的软件和 IT 服务外包企业。目前公司组织机构如下图 1-1 所示:总经理技术副总经理 行政副总经理 技术总监 总经理助理CMM
17、I 开发部 市场部 测试部 UI 设计部开发一组 开发二组 开发三组图 1-1 公司组织机构图Fig 1-1 Diagram of the Companys Organizational Structure1.3 系统业务流程经过前期调研分析和综合其它各方面相关理论知识,给出整个文思海辉即时通讯系统的业务流程图如下图 1-2 所示:整个文思海辉即时通讯系统的开发主要围绕上述业务流程进行开发,开发过程采辽宁工程技术大学毕业设计(论文)3用面向对象的开发技术,具体开发过程见下面的章节。1.4 系统功能模块根据上述业务流程,整个文思海辉系统主要分为以下两个功能模块,如图 1-3 所示。下面模块划分只
18、是抽象意义上的划分,各模块之间需要共享数据,相互协作,完成整个系统流程,单一事物功能模块间是相互独立的。用 户 注 册 登 录聊 天信息查询信息维护查询聊天记录图 1-2 即时通讯系统流程Fig 1-2 the Workflow of instant messaging System文思海辉即时通讯系统4用户管理模块即时通讯模块文思海辉即时通讯系统注册登录注册查询信息信息维护删除注册用户授予管理员权限显示在线用户聊天短信群发查询聊天记录图 1-3 系统功能模块Fig 1-3 Function Models of System辽宁工程技术大学毕业设计(论文)52 系统需求分析2.1 需求陈述根据
19、调研分析得知,文思海辉即时通讯系统整体采用 C/S 结构(客户端/浏览器)模式,C/S 功能强大,可以减轻服务器端压力,用于面对用户将来提出更加复杂的需求。同时 C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。整个系统模块共需要完成 2 项中心任务,即:用户管理、即时通讯。每项任务具体描述如下:2.1.1 用户管理(1) 、用户注册由用户进行注册,包括用户名、密码、昵称、邮箱和性别。(2) 、用户登录判断登录的用户是否存在。(3) 、用户信息查询普通用户:可以查询出本用户信息。管理员:可以查询出所有注册用户信息。(4) 、用户信息维护普通用户:可自行修改个人信息。包括用户名、密码
20、、昵称、邮箱和性别。管理员:可修改任何人信息,包括用户名、密码、昵称、邮箱和性别。(5) 、删除注册用户普通用户:无权限删除。管理员:可删除已注册任何账号。(6) 、授予管理员权限普通用户:无权限授予。管理员:可授予任意普通用户管理员权限。2.1.2 即时通讯(1) 、在线用户显示普通用户和管理员登录后,会显示出其他在线用户。(2) 、短信发送普通用户和管理员通过系统界面进行聊天。(3) 、短信群送普通用户和管理员可短信群送。 (4) 、聊天记录查询普通用户:可查询用户自身聊天记录。文思海辉即时通讯系统6管理员:可查询全部用户聊天记录。2.2 可行性分析2.2.1 经济可行性分析基于局域网、C
21、/S 架构的即时通讯系统在很多资料上都能找到,包括书本和网络上都有很多类似的系统,开发这样一个系统所需要的花费不是很大,需要的开发工具、需要的软件等都可以在网上找到试用版,不需要购买,所以不需要花费太多金钱,在经济上完全能够完成本系统的设计。2.2.2 人力可行性分析完成本系统不需要太多的人力资源,有老师、公司同事和同学的帮助,也可以在网上找到与本系统相关的很多资源,在人力资源上能够完成本系统的设计。2.2.3 技术可行性分析基于 MyEclipse 的即时通讯软件,实现一般通讯软件的基本功能(登录,聊天,退出) ,没有十分复杂的其他功能,如:好友分组、建群、截图等,只是一些简单的通讯功能,如
22、:登录、注册、与好友聊天等基本的功能,这些都能够运用所学的知识实现。本系统使用的编程语言是 JAVA 语言,所使用的平台是 MyEclipse 平台,对于MyEclipse 的使用还是比较熟悉。虽然没有系统的学习过 JAVA 编程。对于 JAVA 的一些知识有所欠缺,但是,学校开设了 JAVA 课程,使自己对于 JAVA 编程语言有一定了解,能够在短时间之内掌握一些基本的 JAVA 知识。完成这个通讯软件的基础知识大都已经具备,同时,在网络上有许多开源社区,有很多开源爱好者,能够查到许多开源源代码,自己能够充分运用这些网络资源,完成这个毕业设计。辽宁工程技术大学毕业设计(论文)72.3 Use
23、 Case建模2.3.1 定义活动者根据文思海辉即时通讯系统模块的需求可以确定 2 个活动者,用户管理模块和即时通讯模块。用户管理模块的功能包括:用户注册、用户登录、用户信息查询、用户信息维护、删除注册用户、授予已注册的用户管理员权限。即时通讯模块的功能包括:显示在线用户、聊天、短信群发、查询聊天记录。2.3.2 Use Case 图根据系统需求分析,结合上节系统活动者的定义分析,得到文思海辉即时通讯系统模块的两个用例如下:(1)用户管理管理用例(2)即时通讯用例文思海辉即时通讯系统8结合活动者和用例得到用户管理模块的用例图如下图 2-1 所示。、图 2-1 用户管理 Use Case 图Fi
24、g2-1 Use Case for User Management辽宁工程技术大学毕业设计(论文)9根据如上用例图得到用户管理用例描述如下表 2-1 所示:表 2-1 用户管理用例描述Table2-1 User management of the use case descriptions用例名称 用户管理用例描述 当用户在系统中注册之后,用户可进行用户信息查询、信息维护操作,管理员还可以进行删除注册用户、授予普通用户管理员权限操作。参与者 普通用户、管理员优先级 1前置条件 用户已经注册后置条件 进行用户管理相关操作基本操作流程 1. 普通用户在系统中注册2. 系统验证注册信息是否符合要求3
25、. 符合要求的信息,系统将信息保存到数据库中4. 普通用户或管理员登录到系统5. 系统验证用户身份6. 登录到系统的所有已注册用户可进行查询用户信息、用户信息维护操作,管理员还可进行删除注册用户、授予管理员权限操作。7. 系统保存用户更改的信息8. 用户退出系统可选操作流程 无被泛化的用例 普通用户和管理员被包含的用例 无被扩展的用例 无文思海辉即时通讯系统10结合活动者和用例得到即时通讯模块的用例图如下图 2-2 所示。、图 2-2 即时通讯 Use Case 图Fig2-2 Use Case for Instant Messaging辽宁工程技术大学毕业设计(论文)11表 2-2 即时通讯
26、用例描述Table2-2 Instant messaging of the use case descriptions用例名称 即时通讯用例描述 当用户登录到系统后,可以看到在线用户、与在线用户聊天、查询自身聊天记录等操作,管理员还可查询所有用户的聊天记录参与者 普通用户、管理员优先级 2前置条件 用户登录到系统后置条件 进行即时通讯相关操作基本操作流程 1. 用户登录到系统中2. 系统判断用户身份3. 普通用户可查看在线用户、与在线用户聊天、查询自身聊天记录,管理员还可以查看所有用户的聊天记录4. 系统自动保存用户的聊天记录5. 用户退出系统可选操作流程 无被泛化的用例 普通用户和管理员被包
27、含的用例 无被扩展的用例 无文思海辉即时通讯系统123 系统架构设计软件的系统架构是指通过某种特定的技术平台,完成软件系统整体功能的开发过程。也可以通俗地理解为:总体设计和总体结构布局。一般而言,软件系统架构有两个要素:(1)它是一个软件系统从整体到部分的最高层次的划分。(2)建造一个系统所做出的最高层次的,以后难以更改的,商业和技术的决定。3.1 架构设计目标软件架构设计要达到如下的目标:(1)可行性(Feasible )。架构具有可行性是架构设计的基石。(2)可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。(3)安全行(Secure )。
28、软件系统所承担的交易的商业价值极高,系统的安全性非常重要。(4)可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。(5)可扩展性(Extensible )。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。(6)可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。(7)可升级性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户
29、的市场扩展得可能性。(8)客户体验(Customer Experience)。软件系统必须易于使用。软件的最终用户很可能是不具有计算机专业技术的人员。辽宁工程技术大学毕业设计(论文)133.2 系统架构设计下面我们将根据架构设计原则和信息系统原理来建立系统的架构设计模型。将信息系统中比较关心的对象分层,可分为三层:用户层、业务层、数据访问层(如下图3-1所示),再把各层中的一些公共部分提出来:客户端、服务器端等,这样得到包图如图3-2 所示:业务数据访问层UI(User Interface )UI 控制逻辑层业务层DAO 层 系统服务层数据访问层抽象数据访问接口Database provide
30、rXML providerOther provider图3-1 系统体系架构图Fig3-1 The Diagram of System Architecture文思海辉即时通讯系统14、 、 、图3-2 即时通讯系统模块包图Fig3-2 Package Diagram of Instant Messaging Model1. 用户界面包用户界面包的职责是:(1)与用户的交互,显示用户需要的各部分功能按钮。(2)对于输入的数据进行数据校验,输出结果。(3)向业务处理对象发送处理请求。(4)显示用户信息、系统当前时间用户界面包图展开如图 3-3 所示:、 、图 3-3 用户界面包展开图Fig3-3
31、 Package Diagram of Users Interface用户界面包包含的类见图 3-4:辽宁工程技术大学毕业设计(论文)15图 3-4 用户界面类图Fig3-4 Class Diagram of Users Interface2. 客户端包客户端包的职责是:(1)对客户的业务进行处理(2)启动监听线程客户端包图展开如图 3-5 所示:、 、图 3-5 客户端包图展开Fig3-5 Package Diagram of client客户端包包含的类见图 3-6:图 3-6 客户端类图Fig3-6 Class Diagram of client3. 服务器包服务器包的职责是:(1)用户
32、上线、下线的处理(2)建立服务器(3)监听客户端请求服务器包图展开如图 3-7 所示:文思海辉即时通讯系统16、 、图 3-7 服务器包图展开Fig3-7 Package Diagram of Server 服务器包包含的类见图 3-8:图 3-8 服务器类图Fig3-8 Class Diagram of Server 4. 数据访问包数据访问层的职责是:(1)实现数据的持久化操作。(2)实现事务处理。数据访问包图展开如图 3-9 所示:、 、图 3-9 数据访问包图展开Fig3-9 Package Diagram of Data Access数据访问包包含的类见图 3-10:图 3-10 数
33、据访问类图Fig3-10 Class Diagram of Data Access5. 业务逻辑包业务逻辑包的职责是:辽宁工程技术大学毕业设计(论文)17(1)实现各种业务的处理。(2)判断用户的权限。(3)向数据访问对象发送数据持久化操作的请求。(4)向用户界面层返回处理结果。业务逻辑包图展开如图 3-11 所示:、 、图 3-11 业务逻辑包图展开Fig3-11 Package Diagram of Business logic 业务逻辑包包含的类见图 3-12:图 3-12 业务逻辑类图Fig3-12 Class Diagram of Business logic 对于每一个业务处理中需
34、要持久化操作的对象都可以对应为一个数据库访问对象,在很多业务处理中需要请求多个数据库访问对象来进行数据的读写操作,而这些操作又必须在同一个事务中,这时需要用同一个数据库连接对象来进行统一的事务处理。6. 实体包实体包的主要职责是:(1)作为数据容器用来持久化储存数据。实体类包图展开如图 3-13 所示:、图 3-13 实体类包图展开Fig3-13 Package Diagram of Entity 实体类包包含的类见图 3-14:文思海辉即时通讯系统18图 3-14 实体类类图Fig3-14 Class Diagram of Entity 7. 工具包工具包的主要职责是:(1)选择数据库类型,
35、连接数据库。(2)对线程的一些控制。(3)提供当前系统时间。工具包图展开如图 3-15 所示:、 、图 3-15 工具包图展开Fig3-15 Package Diagram of Tool 工具包包含的类见图 3-16:图 3-16 工具类图Fig3-16 Class Diagram of Tool 辽宁工程技术大学毕业设计(论文)193.3 系统架构类图将包图展开,得到类图,它是架构的静态结构图,表达了各个类之间的静态联系。文思海辉即时通讯系统架构类图如下图3-13所示。图 3-13 系统架构类图Fig3-13 Class Diagram of System Architecture文思海辉即时通讯系统204 系统详细设计本部分设计主要涉及软件系统的动态建模和系统类图的详细设计。软件系统的动态模型分为交互模型和活动状态模型,其中的交互模型主要由顺序图和协作图构成,活动状态模型主要包括活动图和状态图。通过为软件系统项目建立动态模型,从而产生体现系统动态行为的可视化分析结果包括对象的时间特性和对象为完成目标任务而相互进行通信的机制、对象行为的改变和状态变化情况,以及对象可能出现的各种活动状况等信息。4.1 系统交互图4.1.1 系统顺序图与用户管理模块、即时通讯模块进行交互的活动者(角色) ,都是用户。用户与用户管理模块和即时通讯模块的顺序图如下图 4-1 和图 4-2 所示: