新用户注册,好友的添加备注,群的添加备注,分组管理,界面管理等功能。本系统的操作使用方式保留用户使用腾讯QQ的习惯,具备操作灵活,使用方便等特点和强劲的UI交互能力,便于聊天用户使用。用Microsoft SQL Server2005 的作为数据库后台支持,可以方便的进行各种数据存储、查询和处理,所开发出的系统应安全可靠,用户本地使用缓存存储好友图片等信息,减少客户端数据获取量和加强处理效率,使用ini配置文件管理用户界面和其他操作信息,便于用户的配置保存和修改。 1.3.2 开发方法及步骤
1)可行性分析
通过不同方案的比较得出方案的可行性研究结论。 2) 需求分析
通过对国内外现行的聊天工具的深入分析和探讨,把握系统的边界和内容,确定出聊天系统该具备的目标、功能、性能。
3) 数据库设计与实现
根据业务需求、信息需求、和处理需求,确定信息系统的数据结构、数据操作。建立E—R 图,进行数据库设计,建立完备的数据库系统。
4) 系统实现
用C#进行客户端开发,以及使用Jsp进行部分客户端开发和使用java进行服务端的开发,并对设计好的系统模型进行编程,实现此系统。
5) 测试与维护
对系统每一个功能模块程序进行测试。
2 开发平台介绍
2.1 系统平台环境
2.1.1 硬件平台
硬件设备设计是根据信息系统的设计需求,确定信息系统物理设备方案,所
3
设计的硬件设备方案在能够充分满足信息系统功能需求的前提下,还应满足系统的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比。根据前面的需求分析,我们得出本系统理想的环境当然是配置较高最好,实际操作中硬件平台如下:
硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。 硬件环境(开发者):AMD athlonX2处理器,2G内存,250G磁盘空间。 2.1.2 软件平台
软件平台是信息系统开发和运行所需的集成软件环境,设计和选择高效、实用、方便、功能齐全的软件平台,对信息系统的开发具有十分重要的意义。在结合实际开发的需要并充分考虑各种软件平台的性能及适用范围和对软件平台的使用能力,本系统的软件平台选择如下:
(1) 操作系统
操作系统是计算机系统中最重要的系统软件,目前在微机上使用的桌面操作系统有Windows 95/98/2000/me/xp/2003server 等,本系统在Windows 7 操作系统下进行开发,
由于软件开发中使用到部分win7系统特性(如win7的aero玻璃界面特效),使得系统要求在win7或win7系统以上。 (2) 支撑软件
支撑软件是协助人们开发和维护软件的工具和环境软件,包括编辑程序,数据库系统,集成开发环境等,本系统的支撑软件如下:
1、数据库管理系统(DBMS):为了对数据库实施集中管理,同时并发的处理多个客户机发来的数据处理要求,我们选用SQL Server 2005 数据库管理系统。
2、动态网页技术:在这里我们使用java以及JSP(Java Server Pages)来建立系统。
3. 客户端技术:在这里我们使用C#进行通信客户端搭建。
4
2.2相关技术
2.2.1 B/S模式
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。(注:内容来自百度百科) 2.2.2 C/S 模式
C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。(注:内容来自百度百科) 2.2.3 界面技术
A.分层窗口技术【LayeredWindow】:
分层窗口主要作用以及特点如下:分层窗口采取\合成\的方式来绘制,系统占用资源低,支持窗口平滑
变化,分层窗口可以是半透明或
者透明的,分层窗口可以是任意形状,支持变形操作,这为绘制一个类似于腾讯QQ的界面打好了基础,因为腾讯QQUI也使用了大量的分层窗口。
B.GDI+双缓冲技术:
开发人员在开发界面的时候常常因为在一个界面上绘制了太多的界面元
5
素,导致在每一次重绘时出现了大面积的闪烁,使得用户界面和交互体验恶劣化,为了解决这一问题,需在界面绘制上使用酸缓冲绘图机制:在绘图前在内存上建立一块虚拟画布,并获取这块画布的DC引用,进而在这画布上绘制图形等元素,待绘制完毕,再将这块画布绘制到界面上。
2.2.4 多线程技术
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。
在客户端上使用多线程技术,在更新用户界面的同时进行用户数据的获取,两边同时进行,不会出现界面等待数据,或数据等待界面而导致的程序无响应。在网络收发时采用多线程技术使得客户端在处理网络数据的同时,兼顾网络数据的监听,不会出现数据遗漏等问题。 2.2.5 UDP数据传输技术
用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。
使用UDP点对点通信,减少客户端与服务器之前的通信,使用客户端与客户端直接的直接通信,进而降低服务器压力,和提高通信效率。
6
3 系统需求分析
3.1需求功能概述
.本系统主要通过客户端,服务器端来体现聊天系统的基本功能: A.客户端:
1)用户登入界面(包括用户和密码输入,状态选择) 2)好友列表,群列表展示 3)好友添加,删除,和备注修改等 4)群添加,删除,和备注修改等 5)好友分组管理 6)群分组管理 7)新建群组
8)信息管理(好友详细信息,群信息,群成员信息,用户信息) 9)好友,群查找 10)成员聊天 11)群聊天
12)消息盒子(消息提示:好友,群消息提示,好友/群请求提示,好友上线提示等) B.服务端:
1)用户注册
2)应对不同类型的客户端请求进行处理 3)可实时对客户端进行通知
3.2 用例图
3.2.1未登入聊天系统用例
7
仿QQ消息通讯的设计毕业论文
目 录
1 项目来源 .................................................................................................................................. 1
1.1 项目背景及目的 ............................................................................................................ 1 1.2 聊天系统的现状 ............................................................................................................ 1 1.3 项目研究的目的和方法 ................................................................................................ 2
1.3.1 项目的研究目的 .................................................................................................. 2 1.3.2 开发方法及步骤 .................................................................................................. 3
2 开发平台介绍 .......................................................................................................................... 3
2.1 系统平台环境 ................................................................................................................ 3
2.1.1 硬件平台 .............................................................................................................. 3 2.1.2 软件平台 .............................................................................................................. 4 2.2相关技术 ......................................................................................................................... 5
2.2.1 B/S模式 ................................................................................................................ 5 2.2.2 C/S 模式 ............................................................................................................... 5 2.2.3 界面技术 .............................................................................................................. 5 2.2.4 多线程技术 .......................................................................................................... 6 2.2.5 UDP数据传输技术 .............................................................................................. 6
3 系统需求分析 .......................................................................................................................... 7
3.1需求功能概述 ................................................................................................................. 7 3.2 用例图 ............................................................................................................................ 7
3.2.1未登入聊天系统用例 ........................................................................................... 7 3.2.2已登入聊天系统用例 ........................................................................................... 9
4系统功能设计 ......................................................................................................................... 20
4.1 概述 .............................................................................................................................. 20 4.2 系统结构 ...................................................................................................................... 21
4.2.1 消息管理结构图 ................................................................................................ 21 4.2.2 好友管理结构图 ................................................................................................ 22
i
4.2.3 群组管理结构图 ................................................................................................ 22 4.2.4 个人管理结构图 ................................................................................................ 23
ii
4.2.5 分组管理结构图 ................................................................................................ 23 4.2.6 用户管理结构图 ................................................................................................ 23 4.3 系统架构包图 .............................................................................................................. 24 4.4 系统类图 ...................................................................................................................... 24
4.4.1 UI层包图 ............................................................................................................ 24 4.4.2 NetService层类图 .............................................................................................. 29 4.4.3 Objects层类图 .................................................................................................... 31 4.4.4 Action层类图 ..................................................................................................... 32
5 数据库的分析及设计 ............................................................................................................ 34
5.1 系统E-R图 .................................................................................................................. 34 5.2 数据库逻辑结构设计 .................................................................................................. 37 6 系统详细设计 ........................................................................................................................ 41
6.1 模块顺序图 .................................................................................................................. 41
6.1.1 注册模块顺序图 ................................................................................................ 41 6.1.2 登入模块顺序图 ................................................................................................ 42 6.1.3 基本聊天模块顺序图 ........................................................................................ 43 6.1.4 好友请求模块顺序图 ........................................................................................ 44 6.1.5 状态变更模块顺序图 ........................................................................................ 45 6.2 技术实现 ...................................................................................................................... 45
6.2.1系统运作机制 ..................................................................................................... 45 6.2.2 UI圆角的绘制 .................................................................................................... 46 6.2.3子线程下创建窗体 ............................................................................................. 46 6.2.4 C#绘图双缓冲 .................................................................................................... 47 6.2.5 实现C#和javascript互调 ................................................................................. 48 6.3 界面布局 ...................................................................................................................... 49
6.3.1 主界面布局 ........................................................................................................ 49 6.3.2 聊天界面布局 .................................................................................................... 50 6.4 界面设计 ...................................................................................................................... 51
6.4.1 登录界面 ............................................................................................................ 51 6.4.2注册界面 ............................................................................................................. 51
6.4.3系统主界面.......................................................................................................... 52 6.4.4系统聊天界面...................................................................................................... 53 6.4.5好友查找界面...................................................................................................... 53
7 展望......................................................................................................................................... 54 8 总结......................................................................................................................................... 55 致谢语......................................................................................................................................... 56 参考文献..................................................................................................................................... 57
1 项目来源
1.1 项目背景及目的
在聊天工具满天飞的当代,在腾讯QQ把握这广域网聊天工具的同时,却没有一款用于局域网的,UI交互可以达到腾讯QQ形式优越的体验的聊天工具,在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,但用户处于脱离广域网(比如个别公司办公环境,和校园环境)为求对网内信息的联通进行现在的时候,那些广域网聊天工具(QQ)就失去它的作用了,由此开发一款具有腾讯UI般用户交互体验的局域网聊天工具是很有必要的。
1.2 聊天系统的现状
对于聊天系统在国内外最具代表性两个聊天系统:MSN(国外微软公司)和QQ(国内腾讯公司),在做这个局域网聊天工具之前,就现今这两个聊天系统的运作很有必要进行一下研究,以作为新系统的开发做参考与准备:
对于我们孰知的QQ,在99年开发以来一直以非常高的用户增长率夺得了国内的大部分用户,并成为了一方霸主,QQ直开发以来一直秉承着已更好的用户体验为主不断的对QQ进行一代又一代的更新,从第一版的简陋的UI界面到2013版的华丽界面,这无不透露着QQ对用户UI交互体验的看重,就此新系统将采用QQ最新的2013版的用户界面作为参考界面进行开发。
对QQ现今的聊天服务构架进行的分析: 客户端QQ:
1
服务器TCPTCP客户端客户端UDP 图 1-1 QQ聊天服务构架
可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信
对MSN现今的聊天服务构架进行的分析:
服务器TCPTCP客户端客户端 图 1-2 MSN聊天服务构架
MSN客户端直接的通信则都是通过服务器作为中介进行转发的,相比之下腾讯QQ的更加优越,鉴于此,新系统采用类型QQ的通信模式进行开发。
1.3 项目研究的目的和方法
1.3.1 项目的研究目的
本次的聊天系统设计与开发,通过基本的聊天功能分析、数据分析和信息类型的处理的过程,运用数据库设计、维护与运用SQL 对数据库中的表进行查询的技术。开发一套在局域网中可以投入实际应用的来聊天系统。本系统是运行在Window 7 操作系统及以上,利用C#与java进行开发的;对于大量的数据信息,采用Microsoft SQL Server2005 数据库进行存储和处理,对于客户端局部信息使用缓存文件和配置文件进行管理。《局域网聊天系统》包括好友聊天,群聊天,
2
uc Use Case Model 未登录聊天系统注册新用户聊天用户登录?include?登入状态设置 图3-1 未登入聊天系统用例图 用例名称 参与者 目的 过程描述 异常事件流 注册新用户 聊天用户 通过注册成为该系统的新用户进而可以登入系统聊天 1)进入注册页面 2)填写昵称,密码和基本的联系方式信息。 3)提交注册信息并提示注册成功的用户帐号。 用户的信息格式填写错误:提示错误格式,并拒绝提交。
用例名称 参与者 目的 过程描述 异常事件流 登录 聊天用户 通过登入进入聊天系统进行操作 1)进入用户登入窗口。 2)填写用户名和密码,登入状态[默认在线]。 3)点击登入进入系统,失败提供响应失败消息。 登入超时或网络质量差导致失败:窗口自动进行超时重连,超过3次失败提示用户。 8
3.2.2已登入聊天系统用例
uc Use Case Model 已登入聊天系统消息管理好友管理群组管理聊天用户个人管理分组管理 图3-2 已登入聊天系统用例图
1) 消息管理用例:
9