p2p聊天论文

更新时间:2024-05-28 23:12:01 阅读量: 综合文库 文档下载

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

项目报告书

即时聊天软件设计

单位: 国际软件学院

专业: 空间信息与数字技术 时间: 2010年6月10日

编写人: 张书芳(20083026600060) 芮晋华(2008302660005)

李先珠(2008302660064)

目录

第1章 项目背景 .............................................................. 3 1.1 研究背景和现状分析 ....................................................... 3 1.2 目标 ..................................................................... 3 1.3 开发环境 ................................................................. 3

第2章 需求分析 .............................................................. 4 2.1 系统功能描述 ............................................................. 4 2.2 系统流程分析 ............................................................. 4 2.3 系统功能分析 ............................................................. 5 2.4 系统用例图 .............................................................. 6 2.5 用例描述 ................................................................. 6 2.6系统交互图 ............................................................... 7

第3章 数据需求分析 .......................................................... 8 3.1 数据E-R图 ............................................................... 8 3.2 数据库设计 ............................................................... 8

第4章 系统分析与设计 ........................................................ 9 4.1 类图 ..................................................................... 9 4.2 组件图 .................................................................. 10 4.3 部署图 .................................................................. 11 4.4 服务器端工作流程图 ...................................................... 12 4.5 客户端界面导航图 ........................................................ 12 4.6 界面设计图 .............................................................. 13

第5章 小组成员分工安排 ................................................... 14

第6章 总结 ............................................................... 14

2

第1章 项目背景

1.1 研究背景和现状分析

近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的扩大,企业内部的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交流,避免企业内部机密通过Internet泄露到外部。人们提出开发局域网聊天软件的构想,通过局域网聊天软件,企业员工可以随时的进行即时消息传递,召开网络会议等,有利于提高工作消息效率,同时又保护了企业内部信息的安全性。

1.2 目标

本需求规格说明书编写的目的是为了清晰地说明开发聊天软件要实现的所有功能。同时也为软件使用者和软件开发者之间建立共同的需求目标,进行一定程度的交流沟通。同时对软件所需实现的功能模块做了全面的描述。它是后续开发工作和验收工作的依据文件。软件使用者和软件开发者以此为共同的基础。

1.3 开发环境

1.3.1 Eclipse

本系统将采用Eclipse作为开发环境。Eclipse提供了在设计、开发、调试和部署应用程序时所需的工具。Eclipse集成开发环境现在包括开发智能设备应用程序的工具。通过使用这些工具和 .NET Framework 精简版可以在个人数字助理、移动电话和其他资源受约束的设备中,创建、生成、调试和部署在.NET Framework 精简版上运行的应用程序。

1.3.2 数据库

SQL Server 2005是一款重要的 Microsoft 产品版本,因为该产品专用于非专业开发人员、ISV 和爱好者。它免费、易用、具有强大的功能,并且可以无缝升级到其他 SQL Server 版本。有一些功能是此 SQL Server 版本的专有功能,并且默认情况下,安装和部署都是安全的。

3

第2章 需求分析

2.1 系统功能描述

聊天交流是目前互联网提供的主要内容。聊天系统有多种实现方式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登陆统一的聊天服务器。在基于Socket的聊天系统中,主要有两种角色:服务器和客户端,不同的客户端登陆集中式的服务器,通过服务器将一个客户端发出的信息推送到其他所有客户端。聊天系统在客户端和服务器之间主要传送的是文字信息,服务器端只需要把最近的文字信息推送到客户端,这样减少了网络传输内容,节省了网络传输的时间,无疑提高了聊天速度。

在基于Socket的聊天系统,客户端和服务器必须保持随时随地的连接。这有别于普通Web浏览的连接方式。在使用浏览器访问服务器时,先由客户端发出HTTP协议,然后服务器响应处理这个客户端的响应,再返回处理结果;请求(Request)和响应(Response)是一种一对一的前后因果关系。系统是局域网聊天工具,设计能实现局域网内聊天服务端与客户端的功能。主要实现如下功能:

聊天服务端:实现与客户端的连接,接收来自客户端的聊天消息,并且根据客户端的要求把这些信息转发到另外一个或多个聊天客户中。并实现对客户端登录用户的管理与控制;实现客户端聊天信息的监控与保存。

聊天客户端:实现与服务端的连接,建立和维护与服务器端的连接,向服务器发送本客户的聊天内容,同时从服务器接受对方的响应。实现与其他用户的文本的发送,并实现聊天的功能。

2.2 系统流程分析

只有充分地了解了聊天程序的工作流程,才能对整个系统的理解更加深刻。所以对该流程进行分析。如下图:

4

加载套接字库 初始化套接字 绑定本地机到套接字 创建线程用于接受数据 向指定IP地址发送数据 关闭套接字库结束聊天 图2.1系统流程分析图

2.3 系统功能分析

图2.2系统功能图

2.3.1 登陆以及身份确认(密码验证)功能的实现

用户在登录界面输入用户ID和密码,系统进行用户身份验证,如果通过用户身份验证则转入相应的工作界面,如果没有通过用户身份验证则显示下列信息:用户名与密码不符 用户可以重新输入正确的ID和密码。

2.3.2 点对点即时通讯/文件传输功能

选择通讯对象后,如果是聊天则用户发送信息实时在交流对象的客户端显示。待有客户端反馈信息时,将会显示在用户相应工作界面中。如果是传输文件则再弹出对话框让用户选择需要传输的文件,并发送传输文件的请求信息,对方接受到请求信息,同意后建立文件传输的连接进行文件传输。

5

2.4 系统用例图

图 2.3 系统用例图

2.5 用例描述

表2.1 用户注册

用例号: 参与者(Actor):系统用户 目标:注册一个聊天账号 前置条件:能够打开注册界面 主要场景:注册一个聊天的账号 后置条件:申请账号成功 用例名称:用户注册 表2.2 用户登录

用例号: 参与者(Actor):系统用户 用例名称:用户登录 目标:登录已经申请的账号进行聊天 前置条件:注册一个聊天账号 主要场景:成功登录账号 后置条件:登录账号成功 表2.3 用户聊天

6

2.6系统交互图

图2.3 系统交互图

用户在客户端填入必要的信息后,向服务器提交自己的信息。服务器将按照一定的规则给用户生成一个可用的用户账号,并把此账号返回给用户,用户以后便可以用此账号登录本系统,来和网络上的其它本系统的用户进行及时的收发信息来聊天。在以后的每一次登录中系统都将对用户进行身份验证,以确定该用户是否为合法的用户。

7

第3章 数据需求分析

3.1 数据E-R图

图3.1 用户基本信息

3.2 数据库设计

表3.1 用户基本信息

1 序号 1 2 3 4 5 6 7 8 10 字段名 表名 数据类型 char(24) nvarchar(50) char (4) image nvarchar(60) datetime nvarchar(25) nvarchar(10) nvarchar(4000) 缺省值 用户基本信息表 NULL 否 是 是 是 是 是 是 是 是 键值 主键 以“,”分开 备注 用户编号 用户昵称 用户性别 网络头像 个性签名 最后登录时间 IP地址 用户密码 好友列表

8

第4章 系统分析与设计

4.1 类图

图4.1.1 系统数据库连接关系图

IConnection是从系统的IDisposable接口继承过来的一个接口,给接口中定义了对某个数据库连接执行的最基本的操作,以后的数据库连接类,都需要从此接口继承,并实现接口中的基本的方法,在实现该接口的类中也可以添加自己需要的方法,来完成必要的功能。而对其它要用数据库连接的类,可以不管系统的后台的关系数据库管理系统的区别,只需要运用此接口就可以操作单个的数据库连接类了

9

图4.1.2 数据库执行器继承关系图

接口ICommand是从IDisposable继承而来的,其中声明了数据库执行器的最基本的常用的方法的签名,类BaseDBCommand继承接口ICommand并实现了其中的方法,其它的具体的数据库执行器将根据后台数据库的不同类型,将重写基类的某些方法,以完成操作。

图4.1.3 类关系图

Message类是实现点对点聊天功能的信息的载体,发送方将此对象序列化成二进制的流后发送到接收信息的一方,接收方接收到二进制的对象的流时,将其反序列化成该对象,然后从对象中获取对象中携带的信息.

4.2 组件图

组件图提供系统的物理视图,它的用途是显示系统中的软件与其他软件组件(例如,库函数)的依赖关系,组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组建包层次上显示。

10

图4.2 组件图

4.3 部署图

部署图表示该软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。

图4.3 部署图

11

4.4 服务器端工作流程图

服务器端的工作主要是配置服务器并开启服务,其工作流程如图3.1所示。

图4.4 服务器端工作流程

4.5 客户端界面导航图

图4.5 界面关系图

12

4.6 界面设计图

服务端 客户端

正在聊天中

13

第5章 小组成员分工安排

小组成员:

组长:张书芳 负责服务器的代码设计和绘制UML关系图

成员:芮晋华 负责登陆的代码和界面设计和 javadoc文档和以及完成该设计

成员:李先珠 负责客户端的代码设计和需求分析

第6章 总结

通过这些时间的开发设计,开发点对点的聊天系统已经可以按照预定要求实现功能,完全实现了点对点的聊天、文件传输等功能。随着科技的发展和社会的进步,点对点的聊天系统将需要得到进一步改善,相应的功能模块也应相应的增加,比如多媒体方面的内容,以满足用户需求。

通过此次的论文,我们学到了很多知识,跨越了传统方式下的教与学的体制束缚,在论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。

在论文的写作过程中也学到了做任何事情所要有的态度和心态,首先做学问要一丝不苟,对于发展过程中出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就达退堂鼓,只要坚持下去就可以找到思路去解决问题的。而且要学会与人合作,这样做起事情来就可以事倍功半。

总之,此次论文的写作过程,我们收获了很多,为将来的人生之路做好了一个很好的铺垫,与此同时,感谢本组各位同学的大力支持以及熊老师的倾囊相助。

14

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

Top