




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仿QQ消息通讯的设计毕业论文目 录1 项目来源11.1 项目背景及目的11.2 聊天系统的现状11.3 项目研究的目的和方法21.3.1 项目的研究目的21.3.2 开发方法及步骤32 开发平台介绍32.1 系统平台环境32.1.1 硬件平台32.1.2 软件平台42.2相关技术42.2.1 B/S模式42.2.2 C/S 模式52.2.3 界面技术52.2.4 多线程技术52.2.5 UDP数据传输技术63 系统需求分析63.1需求功能概述63.2 用例图73.2.1未登入聊天系统用例73.2.2已登入聊天系统用例84系统功能设计194.1 概述194.2 系统结构204.2.1 消息管理结构图214.2.2 好友管理结构图214.2.3 群组管理结构图224.2.4 个人管理结构图224.2.5 分组管理结构图224.2.6 用户管理结构图234.3 系统架构包图234.4 系统类图244.4.1 UI层包图244.4.2 NetService层类图294.4.3 Objects层类图304.4.4 Action层类图315 数据库的分析及设计335.1 系统E-R图335.2 数据库逻辑结构设计366 系统详细设计406.1 模块顺序图406.1.1 注册模块顺序图406.1.2 登入模块顺序图416.1.3 基本聊天模块顺序图426.1.4 好友请求模块顺序图436.1.5 状态变更模块顺序图446.2 技术实现446.2.1系统运作机制446.2.2 UI圆角的绘制456.2.3子线程下创建窗体456.2.4 C#绘图双缓冲466.2.5 实现C#和javascript互调476.3 界面布局486.3.1 主界面布局486.3.2 聊天界面布局496.4 界面设计506.4.1 登录界面506.4.2注册界面506.4.3系统主界面516.4.4系统聊天界面526.4.5好友查找界面527 展望538 总结54致谢语55参考文献561 项目来源1.1 项目背景及目的在聊天工具满天飞的当代,在腾讯QQ把握这广域网聊天工具的同时,却没有一款用于局域网的,UI交互可以达到腾讯QQ形式优越的体验的聊天工具,在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,但用户处于脱离广域网(比如个别公司办公环境,和校园环境)为求对网内信息的联通进行现在的时候,那些广域网聊天工具(QQ)就失去它的作用了,由此开发一款具有腾讯UI般用户交互体验的局域网聊天工具是很有必要的。1.2 聊天系统的现状对于聊天系统在国内外最具代表性两个聊天系统:MSN(国外微软公司)和QQ(国内腾讯公司),在做这个局域网聊天工具之前,就现今这两个聊天系统的运作很有必要进行一下研究,以作为新系统的开发做参考与准备:对于我们孰知的QQ,在99年开发以来一直以非常高的用户增长率夺得了国内的大部分用户,并成为了一方霸主,QQ直开发以来一直秉承着已更好的用户体验为主不断的对QQ进行一代又一代的更新,从第一版的简陋的UI界面到2013版的华丽界面,这无不透露着QQ对用户UI交互体验的看重,就此新系统将采用QQ最新的2013版的用户界面作为参考界面进行开发。对QQ现今的聊天服务构架进行的分析:客户端QQ:图 1-1 QQ聊天服务构架可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信对MSN现今的聊天服务构架进行的分析:图 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配置文件管理用户界面和其他操作信息,便于用户的配置保存和修改。1.3.2 开发方法及步骤1)可行性分析通过不同方案的比较得出方案的可行性研究结论。2) 需求分析通过对国内外现行的聊天工具的深入分析和探讨,把握系统的边界和内容,确定出聊天系统该具备的目标、功能、性能。3) 数据库设计与实现根据业务需求、信息需求、和处理需求,确定信息系统的数据结构、数据操作。建立ER 图,进行数据库设计,建立完备的数据库系统。4) 系统实现用C#进行客户端开发,以及使用Jsp进行部分客户端开发和使用java进行服务端的开发,并对设计好的系统模型进行编程,实现此系统。5) 测试与维护对系统每一个功能模块程序进行测试。2 开发平台介绍2.1 系统平台环境2.1.1 硬件平台硬件设备设计是根据信息系统的设计需求,确定信息系统物理设备方案,所设计的硬件设备方案在能够充分满足信息系统功能需求的前提下,还应满足系统的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比。根据前面的需求分析,我们得出本系统理想的环境当然是配置较高最好,实际操作中硬件平台如下:硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。硬件环境(开发者):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#进行通信客户端搭建。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】:分层窗口主要作用以及特点如下:分层窗口采取合成(compose)的方式来绘制,系统占用资源低,支持窗口平滑变化,分层窗口可以是半透明或者透明的,分层窗口可以是任意形状,支持变形操作,这为绘制一个类似于腾讯QQ的界面打好了基础,因为腾讯QQUI也使用了大量的分层窗口。B.GDI+双缓冲技术:开发人员在开发界面的时候常常因为在一个界面上绘制了太多的界面元素,导致在每一次重绘时出现了大面积的闪烁,使得用户界面和交互体验恶劣化,为了解决这一问题,需在界面绘制上使用酸缓冲绘图机制:在绘图前在内存上建立一块虚拟画布,并获取这块画布的DC引用,进而在这画布上绘制图形等元素,待绘制完毕,再将这块画布绘制到界面上。2.2.4 多线程技术在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。在客户端上使用多线程技术,在更新用户界面的同时进行用户数据的获取,两边同时进行,不会出现界面等待数据,或数据等待界面而导致的程序无响应。在网络收发时采用多线程技术使得客户端在处理网络数据的同时,兼顾网络数据的监听,不会出现数据遗漏等问题。2.2.5 UDP数据传输技术用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。 使用UDP点对点通信,减少客户端与服务器之前的通信,使用客户端与客户端直接的直接通信,进而降低服务器压力,和提高通信效率。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未登入聊天系统用例 图3-1 未登入聊天系统用例图用例名称注册新用户参与者聊天用户目的通过注册成为该系统的新用户进而可以登入系统聊天过程描述1) 进入注册页面2) 填写昵称,密码和基本的联系方式信息。3) 提交注册信息并提示注册成功的用户帐号。异常事件流用户的信息格式填写错误:提示错误格式,并拒绝提交。用例名称登录参与者聊天用户目的通过登入进入聊天系统进行操作过程描述1)进入用户登入窗口。2)填写用户名和密码,登入状态默认在线。3)点击登入进入系统,失败提供响应失败消息。异常事件流登入超时或网络质量差导致失败:窗口自动进行超时重连,超过3次失败提示用户。3.2.2已登入聊天系统用例 图3-2 已登入聊天系统用例图1) 消息管理用例:图3-3 消息管理用例图用例名称发送普通消息参与者聊天用户目的向在线好友直接发送普通消息过程描述1)进入聊天界面。2)在聊天文本框内输入要向好友发送的消息。3)单击发送按钮。4)直接向好友发送消息异常事件流空消息发送:给用户相关提示。用例名称发送图片参与者聊天用户目的向好友图片过程描述1)进入聊天界面。2)在聊天中单击发送图片按钮,判断聊天用户是否在线,如果用户不在线提示。3)选择要发送的图片。4)单击发送按钮。异常事件流网络不稳定,发送过程失败:给用户聊天界面显示图片传输失败的默认占位图片。用例名称发送离线消息参与者聊天用户目的但好友不在线时发送消息,在好友下次登入时接收。过程描述1)进入不在线的好友聊天界面。2)在聊天文本框内输入要向好友发送的消息。3)选择要发送的图片。4)单击发送按钮。5)向服务器发送好友消息。异常事件流用例名称消息记录本地保存参与者聊天用户目的用户好友查看好友聊天记录过程描述1)用户接收好友消息记录。2)对消息进行格式化和加密。3)存入对应用户本地记录文件。异常事件流本地记录文件不存在或被删除用例名称发送表情参与者聊天用户目的用户好友查看好友聊天记录过程描述1)进入聊天界面。2)在聊天中单击表情按钮弹出表情选择列表。3)选择要发送的表情。4)单击发送按钮。异常事件流用例名称发送文件参与者聊天用户目的用户好友查看好友聊天记录过程描述1)进入聊天界面。2)在聊天中单击发送图片按钮,判断聊天用户是否在线,如果用户不在线提示。3)选择要发送的文件。4)单击发送按钮。异常事件流1. 文件发送部分后中断:重新发送。2. 文件正在被使用等:给予用户提示。用例名称状态请求参与者聊天用户目的更改好友的在线状态过程描述1)获取端口的状态请求消息。2)判断好友状态是否要更新,是则更新。3)好友状态提示(仅在线和离线做提示)。异常事件流该好友不存在:不进行处理,进行丢弃。用例名称关系请求参与者聊天用户目的对好友请求群请求等进行回应。过程描述1)获取端口的关系请求消息。2)判断请求的对象类型。3)做响应的界面结果显示。异常事件流2) 好友管理用例:图3-4 好友管理用例图用例名称查找好友参与者聊天用户目的对现有的用户进行查找,已确定对象进行好友的后续操作。过程描述1)进入好友查找界面。2)选择好友查找类型(帐号或昵称)。3)输入查询条件,并作相关校验。异常事件流查询的好友不存在:给出界面提示。用例名称添加好友参与者聊天用户目的对查找后的用户进行添加。过程描述1)在查询的结果页输入对要添加好友的备注信息。2)单击发送请求。3)等待好友请求回复。4)若被拒绝,给出界面提示。5)若被接受,给出好友请求回应界面(包含好友分组归类和备注名等),并给服务端做出响应。异常事件流对方已经是好友:添加失败或给出界面表达。服务端响应失败:界面给出响应失败提示。用例名称修改好友参与者聊天用户目的对好友的备注名和好友分组进行修改过程描述1)在好友列表中选中要进行修改的好友。2)右击该好友,显示项包含修改备注名和分组变更。3)给出相应操作。4)执行相应操作(给服务端做出响应)。异常事件流服务端响应失败:界面给出响应失败提示。用例名称好友剔除参与者聊天用户目的对好友进行删除操作。过程描述1)在好友列表中选中要进行修改的好友。2)右击该好友,显示项包含删除该好友。3)单击删除该好友,给服务端做出响应。4)给好友发送删除提示。5)删除本地好友的相关缓存信息。异常事件流服务端响应失败:界面给出响应失败提示。用例名称好友信息查看参与者聊天用户目的对好友的扩展信息进行查看。过程描述1)在好友列表中选中要进行修改的好友。2)右击该好友,显示项包含查看好友详细信息。3)单击该选项,拉取服务端该好友扩展信息数据。4)给出信息的界面展示。异常事件流服务端响应失败:界面给出响应失败提示。3) 群组管理用例:图3-5 群组管理用例图用例名称查找好友参与者聊天用户目的对现有的群进行查找,已确定对象进行群的后续操作。过程描述1)进入群查找界面。2)选择群查找类型(帐号或昵称)。3)输入查询条件,并作相关校验。异常事件流查询的群不存在:给出界面提示。用例名称添加群组参与者聊天用户目的对查找后的群进行添加。过程描述1)在查询的结果页输入对要添加群的备注信息。2)单击发送请求。3)等待群主请求回复。4)若被拒绝,给出界面提示。5)若被接受,给出群组请求回应界面(包含群分组归类和备注名等)。异常事件流对方已经是所属群:添加失败或给出界面表达。用例名称修改群组参与者聊天用户目的对群组的备注名和群组分组进行修改过程描述1)在群组列表中选中要进行修改的群组。2)右击该群组,显示项包含修改备注名和分组变更。3)给出相应操作。4)执行相应操作(给服务端做出响应)。异常事件流服务端响应失败:界面给出响应失败提示。用例名称剔除群组参与者聊天用户目的对群组进行删除操作即退群。过程描述1)在群组列表中选中要进行删除的群组。2)右击该群组,显示项包含退出该群组。3)单击退出该群组,给服务端做出响应。4)给群主发送退群提示。5)删除本地群组的相关缓存信息。异常事件流服务端响应失败:界面给出响应失败提示。用例名称创建群参与者群主用户目的添加新的群组。过程描述1)在选择的分组中右击添加新的群组。2)进入创建新群组界面。3)填写群昵称,类型,公告等信息。4)单击创建群组,给服务端做出响应。异常事件流服务端响应失败:界面给出响应失败提示。用例名称删除群参与者群主用户目的删除该群主所属的该群组。过程描述1)在群组列表中选中要进行删除的群。2)右击该群,显示项包含解散该群组。3)单击解散该群组,给服务端做出响应。4)给群成员发送解散群提示。5)删除群主和群成员本地群组的相关缓存信息。异常事件流服务端响应失败:界面给出响应失败提示。若用户由于网络因素未收到解散群消息:将在下一次登入生效。用例名称修改群信息参与者群主用户目的对群组的相关信息进行修改过程描述1)在群组列表中选中要进行修改的群组。2)右击该群组,显示项包含修改群信息。3)给出相应操作(包括修改群类型,公告等)。4)执行相应操作(给服务端做出响应)。异常事件流服务端响应失败:界面给出响应失败提示。4) 个人管理用例:图3-6 群组管理用例图用例名称界面配置参与者聊天用户目的对客户端的界面进行自定义调整。过程描述1)在客户端选择皮肤选项。2)进入皮肤调整。3)调整皮肤参数(背景图片,界面透明度,aero特效是否开启等)。4)结果写入本地界面配置文件。异常事件流界面配置文件读写出错:不严重的绕过,严重的重启客户端并给出错误提示。用例名称服务配置参与者聊天用户目的对客户端的服务配置进行调整,使得客户端可以进行正常的通信。过程描述1)在客户端选择服务配置选项。2)进入配置页面。3)配置服务信息(服务地址,端口号,名称等)。4)结果写入本地界面配置文件。异常事件流服务配置文件读写出错:重启客户端并给出错误提示。用例名称个人信息修改参与者聊天用户目的对个人的相关信息进行修改过程描述1) 在客户端中选择修改个人信息。2) 进入个人信息修改界面。3)给出相应操作(包括修改个人头像,心情,血型,职业等一系列扩展信息),并执行基本校验。4)执行相应操作(给服务端做出响应)。异常事件流服务端响应失败:界面给出响应失败提示。5) 分组管理用例:图3-7 分组管理用例图用例名称添加分组参与者聊天用户目的添加新的好友/群分组。过程描述1)在客户端好友列表/群列表中右击添加分组。2)进入添加分组界面。3)填写分组名称信息,并确定。4)创建该分组,给服务端做出响应。异常事件流服务端响应失败:界面给出响应失败提示。用例名称修改分组参与者聊天用户目的修改好友/群分组信息。过程描述1)选中要修改的分组。2)右击该分组,显示包含修改分组名称。3)修改分组名称信息,并确定。4)给服务端做出响应。异常事件流服务端响应失败:界面给出响应失败提示。用例名称删除分组参与者聊天用户目的删除好友/群分组信息。过程描述1)选中要修改的分组。2)右击该分组,显示包含删除该分组。3)判断该分组下是否存在好友/群组,存在则提示不可删除该群组。4)不存在则删除该群组,并给服务端做出响应。异常事件流服务端响应失败:界面给出响应失败提示。4系统功能设计4.1 概述通过系统概要设计为后期将要构造的系统实体建立一个模型或表达式。在软件系统总体设计中,完成了数据和系统构建,并通过模块层次结构图来描绘软件结构。通过对聊天系统基本业务流程的调查和了解以及前面对系统需求的分析后,接下来要做的就是本系统概要设计。4.2 系统结构此系统的模块功能主要是图书馆图书借阅管理的实现,围绕这个目标把系统划分成馆藏管理模块、读者管理模块、流通管理模块、报表统计模块、系统设置模块、用户管理模块。如图4-1所示。各个模块通过首页紧密相联发挥其各自功能。图4-1系统功能总结构图4.2.1 消息管理结构图图4-2消息管理结构图4.2.2 好友管理结构图 图4-3 好友管理结构图4.2.3 群组管理结构图 图4-4 群组管理结构图4.2.4 个人管理结构图 图4-5 个人管理结构图4.2.5 分组管理结构图 图4-6 分组管理结构图4.2.6 用户管理结构图 图4-7 用户管理结构图4.3 系统架构包图图4-8 系统架构包图系统采用4层架构进行设计,分别为:行为层(Action),通信服务层(NetService),界面层(UI),对象层(Objects)。使用多层结构,尽量使得软件开发过程中的各个环节解耦。层与层之间的通信通过Objects层对象进行传递,行为层将服务与界面搭建桥梁通信。所有的用户操作都将在Action层反应关联服务。将视图层与服务层完全解耦。对服务的变更和界面的升级等提供了良好的框架结构,对都用户开发也提供了一个良好的框架。4.4 系统类图4.4.1 UI层包图图4-9 系统架构包图1) 窗口基类(BaseForm)包中类:图4-10 BaseForm包中类图2) 窗口配置(CommonFormConfig)包中类:图4-11 CommonFormConfig包中类图3) 公共类(CommonUnit)包中类:图4-12 CommonUnit包中类图表 4-1类名描述FancyText文字特效类GlassUnitWin7毛玻璃特效类GraphicsPathHelperGDI+路径生成辅助类ImageEfficiency图片特效类LayoutDrawUnit界面布局辅助类Win32Windows API 接口类LayeredWindowUnit分层窗口工作类4) 登入窗口类(LoginForm)包中类:图4-13 LoginForm包中类表 4-2类名描述loginMainForm登入窗口主窗口loginControlsForm登入窗口控件层类loginFrameFrom登入窗口边框层类loginFromInteface登入窗口对外接口5) 主窗口(MainForm)包中类:图4-14 MainForm包中类表 4-3类名描述QQMainForm系统主窗口类QQSearchBar好友查找框类QQListEx用户Tab列表类QQTabFormTab头控件类ChatListBox好友/群/最近聊天列表类qqFormInterfere系统主窗口对外接口6) 查找请求窗口(FinderForm)包中类:图4-15 FinderForm包中类表 4-4类名描述FinderForm查找请求用户主窗口类FinderRequest请求响应窗口类FinderRespond请求回复窗口类FinderFormInterface查找请求窗口对外接口7) 聊天窗口(ChatForm)包中类:图4-16 ChatForm包中类表 4-5类名描述ChatMainForm聊天主窗口类ChatFormInterface聊天窗口对外接口8) 提示窗口(WarnForm)包中类:图4-17 WarnForm包中类表 4-6类名描述WarnMessageForm消息盒子类WarnStatusForm用户状态提示窗口类WarnFormInterface提示窗口对外接口9) 公共控件(CommonControl)包中类:图4-18 CommonControl包中类表 4-7类名描述Button用于窗口基本按钮MenuButton用于窗口菜单按钮MenuButtonEx用于窗口菜单多级扩展按钮SysButton系统按钮:关闭,最大化,最小化4.4.2 NetService层类图图4-19 NetService类图表 4-8 Http数据传输(Http)类的属性和操作名称可见性类型描述userAgent私有String UserAgent-HTTP标头值accept私有StringAccept-HTTP标头值contentType私有StringContentType-HTTP标头值refer私有StringRefer-HTTP标头值cookies公有CookieContainercookies信息getHtml()公有发送http请求并获取返回报文getStream()公有发送http请求并获取返回数据流表 4-9 请求路径配置(UrlConfig)类的属性和操作名称可见性类型描述config私有Dictionary Url配置字典url公有String成功配置后的URLUrlConfigInit()私有URL配置初始化表 4-10 端口配置(Port)类的属性和操作名称可见性描述GetFirstAvailablePort()公有 获取第一个可用的端口号PortIsUsed()私有获取操作系统已用的端口号PortIsAvailable()私有检查指定端口是否已用表 4-11 登入服务(LoginService)类的属性和操作名称可见性描述login()公有用户登入getUserGroup()公有 获取好友列表getGroups()公有获取群列表getCategories()公有获取分组信息表 4-12 聊天服务(ChatService)类的属性和操作名称可见性描述listenStart()公有消息监听开启listenEnd()公有消息监听关闭listen()公有消息监听sendMsg()公有消息发送changeStatus()公有修改用户状态表 4-13 查询请求服务(FinderService)类的属性和操作名称可见性描述addFriend()公有添加好友/群请求接受addFriend2()公有添加好友/群请求回复接受addFriendRefuse()公有添加好友/群请求拒绝getGroupInfo()公有获取群组信息4.4.3 Objects层类图图4-20 Objects层类图 类图中对象的属性将与数据库设计后对应的表字段属性相匹配。4.4.4 Action层类图图4-21 Action层类图表 4-14 公共数据(CommonData)类的属性和操作名称可见性类型描述isLogin公有bool用户是否登入标识userInfo公有AllFriendsInfo用户基本信息userInfoEx公有UserInfo用户扩展信息friends公有Dictionary好友信息categories公有List好友分组信息groupCategories公有List群分组信息groups公有Dictionary群信息表 4-15 登入行为(loginFormAction)类的属性和操作名称可见性类型描述loginservice私有loginService登入服务dataPath私有String缓存数据存放地址loginClick()保护实现UI层的loginFormInterfere接口方法:单击登入后的执行内容closing()保护实现UI层的loginFormInterfere接口方法:登录窗口关闭后的执行内容clickRegister()保护实现UI层的loginFormInterfere接口方法:用户单击注册后的执行内容表 4-16 主窗口行为(qqMainFormAction)类的属性和操作名称可见性类型描述chatservice私有chatService聊天服务ListItemClick()保护实现UI层的qqFormInterfere接口方法:双击击好友列表后的执行内容ListItemGroupClick()保护实现UI层的qqFormInterfere接口方法:双击击群列表后的执行内容chatservice_MessagesReceive()保护对Service层收到消息后的处理方法skinButtonClick()保护实现UI层的qqFormInterfere接口方法:右击皮肤按钮后的执行内容formLoad()保护实现UI层的qqFormInterfere接口方法:主窗体加载后的执行内容statusCallBack()私有用户状态变更操作ReNameAndNewCateClickOk()保护实现UI层的qqFormInterfere接口方法:用户重命名或新建分组的执行内容chatListBox_RightClickOnSubItemCateInit()保护实现UI层的qqFormInterfere接口方法:用户右击列表的执行内容deleteFriendOrGroup()保护实现UI层的qqFormInterfere接口方法:用户删除好友或群组的执行内容表 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所示:图5-1系统E-R图实体属性图:图5-2用户实体属性图图5-3 扩展用户实体属性图图5-4 群实体属性图图5-5 消息实体属性图图5-6 分组实体属性图5.2 数据库逻辑结构设计表5-1 用户基础信息表序号字段名数据类型是否主键是否外键描述1uinint是否用户帐号2pwdvarchar(20)否否用户密码3nicknvarchar(20)否否用户昵称5long_nicknvarchar(50)否否用户心情6facevarchar(50)否否用户头像7statustinyint否否用户状态:0:QMe, 1:Online, 2:Away, 3:Busy,4:DontDisturb,5:Invisible,6:OffLine 8ipvarchar(30)否否用户IP地址9portint否否用户端口号表5-2 用户扩展信息表序号字段名数据类型是否主键是否外键描述1uinint是是关联用户基础信息表2birthdayvarchar(15)否否用户生日:1991-07-06格式字符串3occupationvarchar(15)否否用户职业4shengxiaonvarchar(5)否否用户生肖5phonevarchar(15)否否用户联系电话6collegenvarchar(25)否否用户就读学校7bloodvarchar(2)否否用户血型8homepagevarchar(50)否否用户主页9statnvarchar(8)否否用户星座10emailvarchar(50)否否用户Email地址11sexvarchar(2)否否用户性别12provincenvarchar(10)否否用户所在省份13citynvarchar(10)否否用户所在城市表5-3 群信息表序号字段名数据类型是否主键是否外键描述1gidint是否群号2facevarchar(50)否否群头像3kindnvarchar(20)否否群类型4notifynvarchar(50)否否群公告5nicknvarchar(20)否否群昵称6admin_uinint否是关联用户基本信息表uin表5-4 分组信息表序号字段名数据类型是否主键是否外键描述1categories_idint是否分组编号2host_uinint否是关联基本用户信息表uin3categories_namenvarchar(20)否否分组名称4categories_indexint否否分组顺序5categories_typetinyint否否分组类型:0:好友分组,1:群分组表5-5 好友关系信息表序号字段名数据类型是否主键是否外键描述1idint否否编号2host_uinint否是关联基本用户信息表uin3friend_uinint否是关联基本用户信息表uin4categories_idint否是关联分组信息表categories_id5marknamenvarchar(30)否否好友备注名(组合主键:host_uin,friend_uin)表5-6 群成员表序号字段名数据类型是否主键是否外键描述1gidint否是关联群信息表gid2uinint否是关联基本用户信息表uin3marknamenvarchar(25)否否群名片:备注名4phonevarchar(20)否否群名片:联系电话5emailnvarchar(30)否否群名片:邮箱6sexvarchar(2)否否群名片:性别7remarksnvarchar(100)否否群名片:备注(组合主键:gid,uin)表5-7 群关系表序号字段名数据类型是否主键是否外键描述1idint否否编号2gidint否是关联群信息表gid3host_uinint否是关联基本用户信息表uin4categories_idint否是关联分组信息表categories_id5marknamenvarchar(50)否否群备注名(组合主键:gid,host_uin)表5-8 消息表序号字段名数据类型是否主键是否外键描述1idint是否消息编号2from_uinint否否消息发送方3to_uinint否否消息达到方4from_uin_namenvarchar(20)否否消息发送方名称5msg_typetinyin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025社会工作员考试:社会工作实务强化训练试题及答案
- 1073号法律文书试题
- 2025-2030中国环境友好包装市场发展现状调研与竞争优势分析报告
- 2025-2030中国海洋钻井平台经济环境分析及发展预测分析报告
- 企业装修合同(标准版)
- 生鲜商品供货合同(标准版)
- 保管合同书新5篇
- 城中村改造项目土地使用与管理方案
- 城市污水管网污水处理设施优化方案
- 2025山东潍坊市司法局所属春鸢学校招聘工作人员3人备考练习题库及答案解析
- DL∕T 2582.1-2022 水电站公用辅助设备运行规程 第1部分:油系统
- 【幼儿园园长论文:我将成为一名合格的园长4000字】
- 清廉经营声明函-餐饮服务
- 2024年长沙航空职业技术学院单招职业技能测试题库附答案
- 2022年黑龙江统招专升本艺术概论真题
- 人工智能数据标注 课件
- 初中历史新课标课程标准2022年版考试题库及答案
- 广告法理论与实务
- 法学研究中的案例比较与对比研究方法
- 学校食堂落实食品安全主体责任
- 砂石料供应、运输、售后服务方案-1
评论
0/150
提交评论