仿QQ消息通讯毕业设计论文

更新时间:2024-06-07 21:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题 目:学 生:指导老师:院 别:专 业:班 级:学 号:

毕业设计(论文)QQ系统的设计与实现

尤仁柯 林芳 副教授 信息科学与工程学院 软件工程 软件工程0901 0309105103

2013年6月

i

福建工程学院本科毕业设计(论文)作者承诺保证书

本人郑重承诺: 本篇毕业设计(论文)的内容真实、可靠。如果存在弄虚作假、抄袭的情况,本人愿承担全部责任。

学生签名:

年 月 日

福建工程学院本科毕业设计(论文)指导教师承诺保证书

本人郑重承诺:我已按有关规定对本篇毕业设计(论文)的选题与内容进行了指导和审核,该同学的毕业设计(论文)中未发现弄虚作假、抄袭的现象,本人愿承担指导教师的相关责任。

指导教师签名:

年 月 日

目 录

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相关技术 ......................................................................................................................... 4

2.2.1 B/S模式 ................................................................................................................ 4 2.2.2 C/S 模式 ............................................................................................................... 5 2.2.3 界面技术 .............................................................................................................. 5 2.2.4 多线程技术 .......................................................................................................... 5 2.2.5 UDP数据传输技术 .............................................................................................. 6

3 系统需求分析 .......................................................................................................................... 6

3.1需求功能概述 ................................................................................................................. 6 3.2 用例图 ............................................................................................................................ 7

3.2.1未登入聊天系统用例 ........................................................................................... 7 3.2.2已登入聊天系统用例 ........................................................................................... 8

4系统功能设计 ......................................................................................................................... 19

4.1 概述 .............................................................................................................................. 19 4.2 系统结构 ...................................................................................................................... 20

4.2.1 消息管理结构图 ................................................................................................ 21 4.2.2 好友管理结构图 ................................................................................................ 21 4.2.3 群组管理结构图 ................................................................................................ 22 4.2.4 个人管理结构图 ................................................................................................ 22

4.2.5 分组管理结构图 ................................................................................................ 22 4.2.6 用户管理结构图 ................................................................................................ 23 4.3 系统架构包图 .............................................................................................................. 23 4.4 系统类图 ...................................................................................................................... 24

4.4.1 UI层包图 ............................................................................................................ 24 4.4.2 NetService层类图 .............................................................................................. 29 4.4.3 Objects层类图 .................................................................................................... 30 4.4.4 Action层类图 ..................................................................................................... 31

5 数据库的分析及设计 ............................................................................................................ 33

5.1 系统E-R图 .................................................................................................................. 33 5.2 数据库逻辑结构设计 .................................................................................................. 36 6 系统详细设计 ........................................................................................................................ 40

6.1 模块顺序图 .................................................................................................................. 40

6.1.1 注册模块顺序图 ................................................................................................ 40 6.1.2 登入模块顺序图 ................................................................................................ 41 6.1.3 基本聊天模块顺序图 ........................................................................................ 42 6.1.4 好友请求模块顺序图 ........................................................................................ 43 6.1.5 状态变更模块顺序图 ........................................................................................ 44 6.2 技术实现 ...................................................................................................................... 44

6.2.1系统运作机制 ..................................................................................................... 44 6.2.2 UI圆角的绘制 .................................................................................................... 45 6.2.3子线程下创建窗体 ............................................................................................. 45 6.2.4 C#绘图双缓冲 .................................................................................................... 46 6.2.5 实现C#和javascript互调 ................................................................................. 47 6.3 界面布局 ...................................................................................................................... 48

6.3.1 主界面布局 ........................................................................................................ 48 6.3.2 聊天界面布局 .................................................................................................... 49 6.4 界面设计 ...................................................................................................................... 50

6.4.1 登录界面 ............................................................................................................ 50 6.4.2注册界面 ............................................................................................................. 50

6.4.3系统主界面 ......................................................................................................... 51 6.4.4系统聊天界面 ..................................................................................................... 52 6.4.5好友查找界面 ..................................................................................................... 52

7 展望 ........................................................................................................................................ 53 8 总结 ........................................................................................................................................ 54 致谢语 ........................................................................................................................................ 55 参考文献 .................................................................................................................................... 56

QQ系统的设计与实现

摘要:本文论述的聊天系统具有好友聊天,群聊天,新用户注册,好友的添加备注,群的添加备注,

分组管理,聊天记录,好友管理,群管理,界面管理等功能。本系统采用B/S+C/S结构,系统的开发采用最新的C#平台作为客户端基础,使用ini文本作为本地端配置文件、JSP和java作为服务端的主要开发语言、使用SQL Server 2005数据库等技术及最新的分层界面开发技术作为数据层和UI层的基础。本次的聊天系统设计与开发,通过基本的聊天功能分析、数据分析和信息类型的处理的过程,运用数据库设计、维护与运用SQL 对数据库中的表进行查询的技术本系统是具有良好UI交换体验的局域网聊天系统,同时本系统中采用的新技术可作为其他信息系统构建时的参考。

关键字:聊天系统;C#;JSP;java;SQL Server 2005;INI;分层界面

The Design and Implementation of QQ System

Abstract:This paper discusses a chat system has friends to chat, group chat, new user registration, friends add notes, add notes group, group management, chats, buddy management, group management, user management, and other functions. The system uses B / SC / S architecture, the system has been developed using the latest C # platform as the client base, using ini text as the local configuration files, JSP and java as a service client's primary development language, using SQL Server 2005 database technology and the latest data stratified interface development technology as the foundation layer and the UI layer. The chat system design and development, through basic chat function analysis, data analysis, and the type of information processing in the process, the use of database design, maintenance and use of SQL tables in the database query technology This system is a good UI exchange experience LAN chat system, but this system uses a new technology can be built with other information systems as a reference.

Key words: Library management;JSP;SQL Server 2000;Flex;XML

1 项目来源

1.1 项目背景及目的

在聊天工具满天飞的当代,在腾讯QQ把握这广域网聊天工具的同时,却没有一款用于局域网的,UI交互可以达到腾讯QQ形式优越的体验的聊天工具,在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,但用户处于脱离广域网(比如个别公司办公环境,和校园环境)为求对网内信息的联通进行现在的时候,那些广域网聊天工具(QQ)就失去它的作用了,由此开发一款具有腾讯UI般用户交互体验的局域网聊天工具是很有必要的。

1.2 聊天系统的现状

对于聊天系统在国内外最具代表性两个聊天系统:MSN(国外微软公司)和QQ(国内腾讯公司),在做这个局域网聊天工具之前,就现今这两个聊天系统的运作很有必要进行一下研究,以作为新系统的开发做参考与准备:

对于我们孰知的QQ,在99年开发以来一直以非常高的用户增长率夺得了国内的大部分用户,并成为了一方霸主,QQ直开发以来一直秉承着已更好的用户体验为主不断的对QQ进行一代又一代的更新,从第一版的简陋的UI界面到2013版的华丽界面,这无不透露着QQ对用户UI交互体验的看重,就此新系统将采用QQ最新的2013版的用户界面作为参考界面进行开发。

对QQ现今的聊天服务构架进行的分析: 客户端QQ:

服务器TCPTCP客户端客户端UDP 图 1-1 QQ聊天服务构架

1

可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信

对MSN现今的聊天服务构架进行的分析:

服务器TCPTCP客户端客户端 图 1-2 MSN聊天服务构架

MSN客户端直接的通信则都是通过服务器作为中介进行转发的,相比之下腾讯QQ的更加优越,鉴于此,新系统采用类型QQ的通信模式进行开发。

1.3 项目研究的目的和方法

1.3.1 项目的研究目的

本次的聊天系统设计与开发,通过基本的聊天功能分析、数据分析和信息类型的处理的过程,运用数据库设计、维护与运用SQL 对数据库中的表进行查询的技术。开发一套在局域网中可以投入实际应用的来聊天系统。本系统是运行在Window 7 操作系统及以上,利用C#与java进行开发的;对于大量的数据信息,采用Microsoft SQL Server2005 数据库进行存储和处理,对于客户端局部信息使用缓存文件和配置文件进行管理。《局域网聊天系统》包括好友聊天,群聊天,新用户注册,好友的添加备注,群的添加备注,分组管理,界面管理等功能。本系统的操作使用方式保留用户使用腾讯QQ的习惯,具备操作灵活,使用方便等特点和强劲的UI交互能力,便于聊天用户使用。用Microsoft SQL Server2005 的作为数据库后台支持,可以方便的进行各种数据存储、查询和处理,所开发出的系统应安全可靠,用户本地使用缓存存储好友图片等信息,减少客户端数据获取量和加强处理效率,使用ini配置文件管理用户界面和其他操作信息,便于用户的配置保存和修改。

2

1.3.2 开发方法及步骤

1)可行性分析

通过不同方案的比较得出方案的可行性研究结论。 2) 需求分析

通过对国内外现行的聊天工具的深入分析和探讨,把握系统的边界和内容,确定出聊天系统该具备的目标、功能、性能。

3) 数据库设计与实现

根据业务需求、信息需求、和处理需求,确定信息系统的数据结构、数据操作。建立E—R 图,进行数据库设计,建立完备的数据库系统。

4) 系统实现

用C#进行客户端开发,以及使用Jsp进行部分客户端开发和使用java进行服务端的开发,并对设计好的系统模型进行编程,实现此系统。

5) 测试与维护

对系统每一个功能模块程序进行测试。

2 开发平台介绍

2.1 系统平台环境

2.1.1 硬件平台

硬件设备设计是根据信息系统的设计需求,确定信息系统物理设备方案,所设计的硬件设备方案在能够充分满足信息系统功能需求的前提下,还应满足系统的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比。根据前面的需求分析,我们得出本系统理想的环境当然是配置较高最好,实际操作中硬件平台如下:

硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。 硬件环境(开发者):AMD athlonX2处理器,2G内存,250G磁盘空间。

3

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#进行通信客户端搭建。

2.2相关技术

2.2.1 B/S模式

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。

4

浏览器通过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+双缓冲技术:

开发人员在开发界面的时候常常因为在一个界面上绘制了太多的界面元素,导致在每一次重绘时出现了大面积的闪烁,使得用户界面和交互体验恶劣化,为了解决这一问题,需在界面绘制上使用酸缓冲绘图机制:在绘图前在内存上建立一块虚拟画布,并获取这块画布的DC引用,进而在这画布上绘制图形等元素,待绘制完毕,再将这块画布绘制到界面上。

2.2.4 多线程技术

在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它

5

编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。

在客户端上使用多线程技术,在更新用户界面的同时进行用户数据的获取,两边同时进行,不会出现界面等待数据,或数据等待界面而导致的程序无响应。在网络收发时采用多线程技术使得客户端在处理网络数据的同时,兼顾网络数据的监听,不会出现数据遗漏等问题。 2.2.5 UDP数据传输技术

用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。

使用UDP点对点通信,减少客户端与服务器之前的通信,使用客户端与客户端直接的直接通信,进而降低服务器压力,和提高通信效率。

3 系统需求分析

3.1需求功能概述

.本系统主要通过客户端,服务器端来体现聊天系统的基本功能: A.客户端:

1)用户登入界面(包括用户和密码输入,状态选择) 2)好友列表,群列表展示 3)好友添加,删除,和备注修改等 4)群添加,删除,和备注修改等 5)好友分组管理 6)群分组管理 7)新建群组

6

8)信息管理(好友详细信息,群信息,群成员信息,用户信息) 9)好友,群查找 10)成员聊天 11)群聊天

12)消息盒子(消息提示:好友,群消息提示,好友/群请求提示,好友上线提示等) B.服务端:

1)用户注册

2)应对不同类型的客户端请求进行处理 3)可实时对客户端进行通知

3.2 用例图

3.2.1未登入聊天系统用例

uc Use Case Model 未登录聊天系统注册新用户聊天用户登录?include?登入状态设置 图3-1 未登入聊天系统用例图

7

用例名称 参与者 目的 过程描述 异常事件流 注册新用户 聊天用户 通过注册成为该系统的新用户进而可以登入系统聊天 1)进入注册页面 2)填写昵称,密码和基本的联系方式信息。 3)提交注册信息并提示注册成功的用户帐号。 用户的信息格式填写错误:提示错误格式,并拒绝提交。

用例名称 参与者 目的 过程描述 异常事件流 登录 聊天用户 通过登入进入聊天系统进行操作 1)进入用户登入窗口。 2)填写用户名和密码,登入状态[默认在线]。 3)点击登入进入系统,失败提供响应失败消息。 登入超时或网络质量差导致失败:窗口自动进行超时重连,超过3次失败提示用户。 3.2.2已登入聊天系统用例

uc Use Case Model 已登入聊天系统消息管理好友管理群组管理聊天用户个人管理分组管理 图3-2 已登入聊天系统用例图

8

1) 消息管理用例:

uc Use Case Model 消息管理发送图片发送离线消息发送普通消息?include??include?发送聊天消息?include?发送表情消息?include??include?消息记录本地保存?include?发送文件聊天用户状态请求?include?发送请求消息?include?关系请求 图3-3 消息管理用例图

用例名称 参与者 目的 过程描述 异常事件流 发送普通消息 聊天用户 向在线好友直接发送普通消息 1)进入聊天界面。 2)在聊天文本框内输入要向好友发送的消息。 3)单击发送按钮。 4)直接向好友发送消息 空消息发送:给用户相关提示。

9

用例名称 参与者 目的 过程描述 异常事件流 发送图片 聊天用户 向好友图片 1)进入聊天界面。 2)在聊天中单击发送图片按钮,判断聊天用户是否在线,如果用户不在线提示。 3)选择要发送的图片。 4)单击发送按钮。 网络不稳定,发送过程失败:给用户聊天界面显示图片传输失败的默认占位图片。 发送离线消息 聊天用户 但好友不在线时发送消息,在好友下次登入时接收。 1)进入不在线的好友聊天界面。 2)在聊天文本框内输入要向好友发送的消息。 3)选择要发送的图片。 4)单击发送按钮。 5)向服务器发送好友消息。 消息记录本地保存 聊天用户 用户好友查看好友聊天记录 1)用户接收好友消息记录。 2)对消息进行格式化和加密。 3)存入对应用户本地记录文件。 本地记录文件不存在或被删除

用例名称 参与者 目的 过程描述 异常事件流

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 异常事件流 发送表情 聊天用户 用户好友查看好友聊天记录 1)进入聊天界面。 2)在聊天中单击表情按钮弹出表情选择列表。 3)选择要发送的表情。 4)单击发送按钮。

10

用例名称 参与者 目的 过程描述 异常事件流 发送文件 聊天用户 用户好友查看好友聊天记录 1)进入聊天界面。 2)在聊天中单击发送图片按钮,判断聊天用户是否在线,如果用户不在线提示。 3)选择要发送的文件。 4)单击发送按钮。 1.文件发送部分后中断:重新发送。 2.文件正在被使用等:给予用户提示。

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 状态请求 聊天用户 更改好友的在线状态 1)获取端口的状态请求消息。 2)判断好友状态是否要更新,是则更新。 3)好友状态提示(仅在线和离线做提示)。 该好友不存在:不进行处理,进行丢弃。

异常事件流 关系请求 聊天用户 对好友请求群请求等进行回应。 1)获取端口的关系请求消息。 2)判断请求的对象类型。 3)做响应的界面结果显示。

11

2) 好友管理用例:

uc Use Case Model 好友管理查找好友添加好友修改好友聊天用户好友剔除好友信息查看 图3-4 好友管理用例图

用例名称 参与者 目的 过程描述 异常事件流 查找好友 聊天用户 对现有的用户进行查找,已确定对象进行好友的后续操作。 1)进入好友查找界面。 2)选择好友查找类型(帐号或昵称)。 3)输入查询条件,并作相关校验。 查询的好友不存在:给出界面提示。

12

用例名称 参与者 目的 过程描述 异常事件流 添加好友 聊天用户 对查找后的用户进行添加。 1)在查询的结果页输入对要添加好友的备注信息。 2)单击发送请求。 3)等待好友请求回复。 4)若被拒绝,给出界面提示。 5)若被接受,给出好友请求回应界面(包含好友分组归类和备注名等),并给服务端做出响应。 对方已经是好友:添加失败或给出界面表达。 服务端响应失败:界面给出响应失败提示。

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 修改好友 聊天用户 对好友的备注名和好友分组进行修改 1)在好友列表中选中要进行修改的好友。 2)右击该好友,显示项包含修改备注名和分组变更。 3)给出相应操作。 4)执行相应操作(给服务端做出响应)。 服务端响应失败:界面给出响应失败提示。

异常事件流 用例名称 参与者 目的 过程描述 好友剔除 聊天用户 对好友进行删除操作。 1)在好友列表中选中要进行修改的好友。 2)右击该好友,显示项包含删除该好友。 3)单击删除该好友,给服务端做出响应。 4)给好友发送删除提示。 5)删除本地好友的相关缓存信息。 服务端响应失败:界面给出响应失败提示。

异常事件流 好友信息查看 聊天用户 对好友的扩展信息进行查看。 1)在好友列表中选中要进行修改的好友。 2)右击该好友,显示项包含查看好友详细信息。 3)单击该选项,拉取服务端该好友扩展信息数据。 4)给出信息的界面展示。 服务端响应失败:界面给出响应失败提示。

13

3) 群组管理用例:

uc Use Case Model 群组管理查找群组添加群组剔除群组非群主用户修改群组创建群删除群群主用户修改群信息 图3-5 群组管理用例图

14

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 查找好友 聊天用户 对现有的群进行查找,已确定对象进行群的后续操作。 1)进入群查找界面。 2)选择群查找类型(帐号或昵称)。 3)输入查询条件,并作相关校验。 查询的群不存在:给出界面提示。

异常事件流 用例名称 参与者 目的 过程描述 添加群组 聊天用户 对查找后的群进行添加。 1)在查询的结果页输入对要添加群的备注信息。 2)单击发送请求。 3)等待群主请求回复。 4)若被拒绝,给出界面提示。 5)若被接受,给出群组请求回应界面(包含群分组归类和备注名等)。 对方已经是所属群:添加失败或给出界面表达。

异常事件流 用例名称 参与者 目的 过程描述 修改群组 聊天用户 对群组的备注名和群组分组进行修改 1)在群组列表中选中要进行修改的群组。 2)右击该群组,显示项包含修改备注名和分组变更。 3)给出相应操作。 4)执行相应操作(给服务端做出响应)。 服务端响应失败:界面给出响应失败提示。

异常事件流 剔除群组 聊天用户 对群组进行删除操作即退群。 1)在群组列表中选中要进行删除的群组。 2)右击该群组,显示项包含退出该群组。 3)单击退出该群组,给服务端做出响应。 4)给群主发送退群提示。 5)删除本地群组的相关缓存信息。 服务端响应失败:界面给出响应失败提示。

15

用例名称 参与者 目的 过程描述 异常事件流

创建群 群主用户 添加新的群组。 1)在选择的分组中右击添加新的群组。 2)进入创建新群组界面。 3)填写群昵称,类型,公告等信息。 4)单击创建群组,给服务端做出响应。 服务端响应失败:界面给出响应失败提示。 删除群 群主用户 删除该群主所属的该群组。 1)在群组列表中选中要进行删除的群。 2)右击该群,显示项包含解散该群组。 3)单击解散该群组,给服务端做出响应。 4)给群成员发送解散群提示。 5)删除群主和群成员本地群组的相关缓存信息。 服务端响应失败:界面给出响应失败提示。 若用户由于网络因素未收到解散群消息:将在下一次登入生效。

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 异常事件流 修改群信息 群主用户 对群组的相关信息进行修改 1)在群组列表中选中要进行修改的群组。 2)右击该群组,显示项包含修改群信息。 3)给出相应操作(包括修改群类型,公告等)。 4)执行相应操作(给服务端做出响应)。 服务端响应失败:界面给出响应失败提示。

16

4) 个人管理用例:

uc Use Case Model 个人管理界面配置服务配置聊天用户个人信息修改 图3-6 群组管理用例图

用例名称 参与者 目的 过程描述 异常事件流

界面配置 聊天用户 对客户端的界面进行自定义调整。 1)在客户端选择皮肤选项。 2)进入皮肤调整。 3)调整皮肤参数(背景图片,界面透明度,aero特效是否开启等)。 4)结果写入本地界面配置文件。 界面配置文件读写出错:不严重的绕过,严重的重启客户端并给出错误提示。 服务配置 聊天用户 对客户端的服务配置进行调整,使得客户端可以进行正常的通信。 1)在客户端选择服务配置选项。 2)进入配置页面。 3)配置服务信息(服务地址,端口号,名称等)。 4)结果写入本地界面配置文件。 服务配置文件读写出错:重启客户端并给出错误提示。 17

用例名称 参与者 目的 过程描述 异常事件流

用例名称 参与者 目的 过程描述 异常事件流

个人信息修改 聊天用户 对个人的相关信息进行修改 1)在客户端中选择修改个人信息。 2)进入个人信息修改界面。 3)给出相应操作(包括修改个人头像,心情,血型,职业等一系列扩展信息),并执行基本校验。 4)执行相应操作(给服务端做出响应)。 服务端响应失败:界面给出响应失败提示。 5) 分组管理用例:

uc Use Case Model 分组管理添加分组修改分组聊天用户删除分组 图3-7 分组管理用例图

18

用例名称 参与者 目的 过程描述 异常事件流 用例名称 参与者 目的 过程描述 添加分组 聊天用户 添加新的好友/群分组。 1)在客户端好友列表/群列表中右击添加分组。 2)进入添加分组界面。 3)填写分组名称信息,并确定。 4)创建该分组,给服务端做出响应。 服务端响应失败:界面给出响应失败提示。

异常事件流 用例名称 参与者 目的 过程描述 修改分组 聊天用户 修改好友/群分组信息。 1)选中要修改的分组。 2)右击该分组,显示包含修改分组名称。 3)修改分组名称信息,并确定。 4)给服务端做出响应。 服务端响应失败:界面给出响应失败提示。

异常事件流

删除分组 聊天用户 删除好友/群分组信息。 1)选中要修改的分组。 2)右击该分组,显示包含删除该分组。 3)判断该分组下是否存在好友/群组,存在则提示不可删除该群组。 4)不存在则删除该群组,并给服务端做出响应。 服务端响应失败:界面给出响应失败提示。 4系统功能设计

4.1 概述

通过系统概要设计为后期将要构造的系统实体建立一个模型或表达式。在软件系统总体设计中,完成了数据和系统构建,并通过模块层次结构图来描绘软件结构。

19

通过对聊天系统基本业务流程的调查和了解以及前面对系统需求的分析后,接下来要做的就是本系统概要设计。

4.2 系统结构

此系统的模块功能主要是图书馆图书借阅管理的实现,围绕这个目标把系统划分成馆藏管理模块、读者管理模块、流通管理模块、报表统计模块、系统设置模块、用户管理模块。如图4-1所示。各个模块通过首页紧密相联发挥其各自功能。

消息管理好友管理聊天系统群组管理个人管理分组管理用户管理 图4-1系统功能总结构图

20

4.2.1 消息管理结构图

普通消息表情消息图片消息文件消息消息管理状态消息请求消息离线消息 图4-2消息管理结构图

4.2.2 好友管理结构图

好友添加好友修改好友管理好友剔除好友查找

好友信息查看 图4-3 好友管理结构图

21

4.2.3 群组管理结构图

群组创建群组添加群组管理群组修改群组剔除群组查找群组信息查看 图4-4 群组管理结构图

4.2.4 个人管理结构图

个人界面管理个人管理个人信息修改个人信息管理个人信息查看 图4-5 个人管理结构图

4.2.5 分组管理结构图

新建分组分组管理修改分组删除分组 图4-6 分组管理结构图

22

4.2.6 用户管理结构图

用户注册用户管理 图4-7 用户管理结构图

用户登入4.3 系统架构包图

pkg 聊天系统架构包图 UIActionNetServiceObjects 图4-8 系统架构包图

系统采用4层架构进行设计,分别为:行为层(Action),通信服务层(NetService),界面层(UI),对象层(Objects)。使用多层结构,尽量使得软件开发过程中的各个环节解耦。层与层之间的通信通过Objects层对象进行传递,行为层将服务与界面搭建桥梁通信。所有的用户操作都将在Action层反应关联服务。将视图层与服务层完全解耦。对服务的变更和界面的升级等提供了良好的框架结构,对都用户开发也提供了一个良好的框架。

23

4.4 系统类图

4.4.1 UI层包图

pkg UI层包图 CommonUnitCommonFormConfig ChatFormMainForm?use?LoginFormBaseFormWarnFormFinderFormCommonControl 图4-9 系统架构包图

1) 窗口基类(BaseForm)包中类:

pkg BaseForm包类图 BaseForm11BaseFormShadow

图4-10 BaseForm包中类图

2) 窗口配置(CommonFormConfig)包中类: pkg CommonFormConfig 包类图 FormConfig 图4-11 CommonFormConfig包中类图

24

3) 公共类(CommonUnit)包中类:

pkg CommonUnit包类图 GlassUnitGraphicsPathHelperImageEfficiencyFancyTextLayoutDrawUnitWin32LayeredWindowUnit 图4-12 CommonUnit包中类图

表 4-1 类名 FancyText GlassUnit GraphicsPathHelper ImageEfficiency LayoutDrawUnit Win32 LayeredWindowUnit

描述 文字特效类 Win7毛玻璃特效类 GDI+路径生成辅助类 图片特效类 界面布局辅助类 Windows API 接口类 分层窗口工作类 4) 登入窗口类(LoginForm)包中类:

pkg LoginForm包类图 loginMainForm11loginControlsForm11?interface?loginFormIntefaceloginFrameForm 图4-13 LoginForm包中类

25

表 4-2 类名 loginMainForm loginControlsForm loginFrameFrom loginFromInteface

描述 登入窗口主窗口 登入窗口控件层类 登入窗口边框层类 登入窗口对外接口 5) 主窗口(MainForm)包中类: pkg MainForm包类图 QQMainForm11QQSearchBar?interface?qqFormInterface111QQListEx1QQTabForm111ReNameAndNewCate*ChatListBox 图4-14 MainForm包中类

表 4-3 类名 QQMainForm QQSearchBar QQListEx QQTabForm ChatListBox qqFormInterfere

26

描述 系统主窗口类 好友查找框类 用户Tab列表类 Tab头控件类 好友/群/最近聊天列表类 系统主窗口对外接口 6) 查找请求窗口(FinderForm)包中类:

pkg FinderForm包类图 FinderFormFinderRequest?interface?FinderFormInterfaceFinderRespond 图4-15 FinderForm包中类

表 4-4 类名 FinderForm FinderRequest FinderRespond FinderFormInterface

描述 查找请求用户主窗口类 请求响应窗口类 请求回复窗口类 查找请求窗口对外接口 7) 聊天窗口(ChatForm)包中类:

pkg ChatForm包类图 ?interface?ChatFormInterface ChatMainForm 图4-16 ChatForm包中类

表 4-5 类名 ChatMainForm ChatFormInterface

27

描述 聊天主窗口类 聊天窗口对外接口 8) 提示窗口(WarnForm)包中类:

pkg WarnForm包类图 WarnMessageFormWarnStatusForm?interface?WarnFormInterface 图4-17 WarnForm包中类

表 4-6 类名 WarnMessageForm WarnStatusForm WarnFormInterface

描述 消息盒子类 用户状态提示窗口类 提示窗口对外接口 9) 公共控件(CommonControl)包中类: pkg CommonControl包类图 UserControlButtonMenuButtonMenuButtonExSysButton 图4-18 CommonControl包中类

表 4-7 类名 Button MenuButton MenuButtonEx SysButton

描述 用于窗口基本按钮 用于窗口菜单按钮 用于窗口菜单多级扩展按钮 系统按钮:关闭,最大化,最小化 28

4.4.2 NetService层类图

pkg Service层类图 UnitUrlConfigChatServiceHttpLoginServiceFinderServicePort 图4-19 NetService类图

表 4-8 Http数据传输(Http)类的属性和操作 名称 可见性 类型 userAgent 私有 String accept 私有 String contentType 私有 String refer 私有 String cookies getHtml() getStream() 描述 UserAgent-HTTP标头值 Accept-HTTP标头值 ContentType-HTTP标头值 Refer-HTTP标头值 cookies信息 公有 公有 公有 CookieContainer 发送http请求并获取返回报文 发送http请求并获取返回数据流 表 4-9 请求路径配置(UrlConfig)类的属性和操作 名称 可见性 类型 描述 config 私有 Dictionary Url配置字典 url 公有 String 成功配置后的URL UrlConfigInit() 私有 URL配置初始化 表 4-10 端口配置(Port)类的属性和操作 名称 可见性 描述 GetFirstAvaila公有 获取第一个可用的端口号 blePort() PortIsUsed() 私有 获取操作系统已用的端口号 PortIsAvailable私有 检查指定端口是否已用 ()

29

表 4-11 登入服务(LoginService)类的属性和操作 名称 可见性 描述 login() 公有 用户登入 getUserGroup() 公有 获取好友列表 getGroups() 公有 获取群列表 getCategories() 公有 获取分组信息 表 4-12 聊天服务(ChatService)类的属性和操作 名称 可见性 描述 listenStart() 公有 消息监听开启 listenEnd() 公有 消息监听关闭 listen() 公有 消息监听 sendMsg() 公有 消息发送 changeStatus() 公有 修改用户状态

表 4-13 查询请求服务(FinderService)类的属性和操作 名称 可见性 描述 addFriend() 公有 添加好友/群请求接受 addFriend2() 公有 添加好友/群请求回复接受 addFriendRefus公有 添加好友/群请求拒绝 e() getGroupInfo() 公有 获取群组信息

4.4.3 Objects层类图

pkg Obj ects层类图CategoriesMessagesAllGroupsInfoAllFriendsInfoUserInfo 图4-20 Objects层类图

类图中对象的属性将与数据库设计后对应的表字段属性相匹配。

30

4.4.4 Action层类图

pkg Action层类图 ?interface?ChatFormInterface?interface?qqFormInterface ?interface?loginFormIntefacechatServicechartMainFormActionloginFormActionqqMainFormActionCommonDataLoginService?import?ObjectsWarnFormAction?interface?WarnFormInterfaceFinderFormActionfinderService?interface?FinderFormInterface 图4-21 Action层类图

表 4-14 公共数据(CommonData)类的属性和操作 名称 可见性 类型 isLogin 公有 bool userInfo 公有 AllFriendsInfo userInfoEx 公有 UserInfo friends 公有 Dictionary categories 公有 List groupCategories groups 公有 公有 List Dictionary

31

描述 用户是否登入标识 用户基本信息 用户扩展信息 好友信息 好友分组信息 群分组信息 群信息 表 4-15 登入行为(loginFormAction)类的属性和操作 名称 可见性 类型 描述 loginservice 私有 loginService 登入服务 dataPath 私有 String 缓存数据存放地址 loginClick() 保护 实现UI层的loginFormInterfere接口方法:单击登入后的执行内容 closing() 保护 实现UI层的loginFormInterfere接口方法:登录窗口关闭后的执行内容 clickRegister() 保护 实现UI层的loginFormInterfere接口方法:用户单击注册后的执行内容 表 4-16 主窗口行为(qqMainFormAction)类的属性和操作 名称 可见性 类型 描述 chatservice 私有 chatService 聊天服务 ListItemClick() 保护 实现UI层的qqFormInterfere接口方法:双击击好友列表后的执行内容 ListItemGroup保护 实现UI层的qqFormInterfere接口方法:双击击群列表后的执Click() 行内容 chatservice_Me保护 对Service层收到消息后的处理方法 ssagesReceive() skinButtonClic保护 实现UI层的qqFormInterfere接口方法:右击皮肤按钮后的执k() 行内容 formLoad() 保护 实现UI层的qqFormInterfere接口方法:主窗体加载后的执行内容 statusCallBack私有 用户状态变更操作 () ReNameAndNe保护 实现UI层的qqFormInterfere接口方法:用户重命名或新建分wCateClickOk(组的执行内容 ) chatListBox_Ri保护 实现UI层的qqFormInterfere接口方法:用户右击列表的执行ghtClickOnSub内容 ItemCateInit() deleteFriendOr保护 实现UI层的qqFormInterfere接口方法:用户删除好友或群组Group() 的执行内容

32

表 4-17 聊天窗口行为(chatMainFormAction)类的属性和操作 名称 可见性 类型 描述 chatservice 私有 chatService 聊天服务 sendMessage() 保护 实现UI层的ChatFormInterfere接口方法:用户单击发送后的执行内容 表 4-18 提醒窗口行为(warnFormAction)类的属性和操作 名称 可见性 类型 描述 chatservice 私有 chatService 聊天服务 showMgs() 保护 实现UI层的WarnFormInterfere接口重载方法:显示好友提示时的执行内容 showMgs() 保护 实现UI层的WarnFormInterfere接口重载方法:显示群提示时的执行内容 showMgs() 保护 实现UI层的WarnFormInterfere接口重载方法:显示请求提示时的执行内容

表 4-19 好友/群请求窗口行为(FinderFormAction)类的属性和操作 名称 可见性 类型 描述 finderservice 私有 finderService 请求服务 acceptClick() 保护 实现UI层的FinderFormInterfere接口方法:接受请求时的执行内容 refuseClick() 保护 实现UI层的FinderFormInterfere接口方法:拒绝请求时的执行内容 rspOKClick() 保护 实现UI层的FinderFormInterfere接口方法:回复请求时的执行内容 5 数据库的分析及设计

5.1 系统E-R图

概念模型的设计是为了将现实世界信息进行抽象,实现信息世界的建模,是进行数据库设计的有力工具。数据库概念模型设计可通过E-R图来描述现实世界的概念模型。本系统的E-R图表现了系统中各个实体之间的联系,具体的如下图5-1所示:

33

本文来源:https://www.bwwdw.com/article/oct6.html

Top