即时聊天系统详细设计说明书_第1页
即时聊天系统详细设计说明书_第2页
即时聊天系统详细设计说明书_第3页
即时聊天系统详细设计说明书_第4页
即时聊天系统详细设计说明书_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6/6即时聊天系统详细设计说明书

文档编号:SDP-4

文档版本:3.0.0

linux环境下的即时聊天系统开发项目小组

文档控制信息

目录

目录(3)

1.任务概述(3)

1.1编写目的(3)

1.2项目背景(4)

1.3参考资料(4)

2.框架设计(5)

2.1整体框架(5)

2.2模块设计(5)

2.2.1客户端(5)

2.2.2服务器端(6)

3.详细设计(6)

3.1Client/Server(7)

3.1.1UserClient(8)

3.1.1.1.功能说明(8)

3.1.1.2.界面设计(8)

3.1.2C/SServer(9)

3.1.2.1.功能说明(9)

3.2Browser/Server(9)

3.2.1功能说明(10)

3.3数据结构(10)

3.3.1账户注册信息(10)

3.3.2用户个人信息(10)

3.3.3用户好友信息(11)

3.3.4用户状态信息(11)

3.4数据库(11)

4.测试(12)

4.1模块测试(12)

4.1.1模块表(12)

4.1.2测试说明(12)

4.2集成测试(13)

1.任务概述

1.1编写目的

在完成了“即时聊天系统”项目的可行性研究和需求分析的基础上,为了明确软件需求、安排项目规划与进度、组织软件开发与测试,项目小组经过深入讨论和分析之后,提出了这份概要设计说明书。

此概要设计说明书对《即时聊天系统》软件的解决方案、功能分配、模块划分、程序的总体结构、输入输出和接口设计、运行设计等方面做了全面概括性说明,为该软件的详细设计奠定基础。

此文档为系统分析员工作的阶段性总结,并提供项目组长、设计人员和开发人员参考。

1.2项目背景

即时聊天系统是目前Internet上最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。随着互联网的发展,即时通讯的运用将日益广泛。

所开发软件名称:

即时聊天系统

项目开发成员:

钱存峰、彭酉、付重阳、毕宏伟、吴斌

软件用户:

任意互联网用户

软件用途:

此项目为中国科学技术大学软件学院工程实践环节选题。目标是实现在linux操作系统上即时聊天。

1.3参考资料

1、linux环境下即时聊天系统项目计划书

2、linux环境下即时聊天系统需求说明书

3、linux环境下即时聊天系统数据说明书

4、linux环境下即时聊天系统概要说明书

5、《软件评测师教程》,柳纯录等,清华大学出版社

2.框架设计

2.1整体框架

C/S架构分为客户端(Client)和服务器端(Server)两部分。服务器端提供服务,客户端实现用户显式实现用户需求。两部分通过互联网络进行通信。

2.2模块设计

2.2.1客户端

由图2.1-1,将客户端分为GTK窗口模块和客户端事务处理模块两部分,实现图形界面代码与其它代码的分离。

1.GTK窗口模块包含一系列的基于GTK图形开发包的图形界面,如:登录窗口、主窗口、聊天窗口、个人信息窗口等。用户对图形界面的操作,对应的GTK组件(Widget

图2.1-3服务器事务处理

图2.1-2客户端事务处图2.1-1整体框架

产生相应的信号与事件,传递给客户端事务处理模块。通过对信号与事件的定义,将使程序完成相应的功能。

2.客户端事务处理模块包含除GTK窗口外,客户端程序上所有功能的集合。在客户端事务处理模块中,按照不同的功能将其划分为三个部分(见图2.1-2),分别为:

2.1回调函数接口,对GTK图形界面signal信号和event事件的处理。

2.2中间处理,包含除了网络通信和回调函数之外的其他与图形界面和网络通信无关的功能函数。由于数据的封装与解析有独立的功能包,因此在图2.1-2中,将中间处理部分划分为了两块。

2.3网络通信,负责与指定网络地址连接,可以选择UDP或TCP方式连结。

2.2.2服务器端

服务器端只包括两部分(图2.1-1),数据库(DB)和服务器端数据处理模块。

服务器端事务处理模块(图2.1-3)是与客户端事务处理模块相对应的部分,与之相对应的也分为三个主要功能部分,数据库接口、中间处理、服务器Server。

DB数据库记录用户的各类信息,包括账号信息、个人信息、好友信息及群组信息等。

在逻辑上,客户端与服务器端是对称的,那么对数据的处理顺序也是相同的。通过网络通信部分收取客户端发送来的请求数据;对数据包进行解析,获得数据结构,或经过其它函数处理;调用数据接口,查询数据库;返回结果。

3.详细设计

图3-1整体结构图

按照需求分析,对概要设计进一步细化;按照功能及事务逻辑,对每一部分进行了模块划分。在服务器端,同时提供面向用户(UserClient)服务,以及Web服务。它们提供的服务内容并不相同,因而将其独立划分。

M1-1为B/S事务处理模块,包含Java接口、数据库接口、网络通信接口。Java接口处理Web请求,生成Web界面,与用户进行交互;数据库接口处理数据事务,并处理与数据库相关的操作;网络通信接口负责网络数据传输。

M1-2为C/S事务处理模块,包含C接口、数据库接口、数据封装解析、网络通信接口。C接口处理由C/SServer接受的用户请求;数据库接口处理数据事务,并处理与数据库相关的操作;数据封装解析对网络中传输的数据进行相应格式的封装解析;网络通信接口处理网络通信方式(TCP/UDP)的处理。

M2为客户端事务处理模块,包含GTK图形界面所需的回调函数接口、C接口、数据封装解析、网络通信接口。回调函数接口将图形界面的生成与其他功能函数相分离,方便函数调用与界面代码的修改,完成某些功能时,将调用C接口进行处理;C接口是与图形界面无关的功能函数,由回调函数进行调用,完成具体功能;数据封装解析与C/S服务器端的相对应,将用户信息等内容按照一定格式进行封装,然后由网络接口进行传输,对接受到的特定信息则进行解析;网络通信接口处理网络通信方式(TCP/UDP)的处理。

从图中,在UserClient与C/SServer之间,行程简单的分层对应。

3.1Client/Server

图3.1-1C/S结构图

由图3.1-1,B/S与C/S之间是无关的,按照实现的功能,。

图中,将客户端(UserClient)划分为GTK界面和事务处理模块。这样做是为了尽量是界面的代码和功能的代码相分离,也便于进行调试。在程序运行过程中,回调函数接口与GTK界面产生的信号或事件绑定,当用户进行特定操作时,将触发回调函数的

执行。

同时,在C/S服务器端,采用三层架构:服务器、事务处理模块与数据库系统。由MongooseServer作为并发服务器,负责与客户端的通信,并将接受的到的消息向下传递。

3.1.1UserClient

UserClient是用户进行即时聊天所用到的程序。安装文件将可以通过提供的Web页面进行下载。

3.1.1.1.功能说明

在用户端,除了有与用户进行交互的图形界面,同时完成以下主要功能:

1.登录用户输入个人ID和登录密码完成登录操作,如果服务器认证错误,提示错误信息,如果认证通过,则显示主面板,更新下载好友列表。

2.查询添加好友用户通过点击主面板查询好友按钮,在弹出的查找添加好友界面进行该操作。客户端将把用户输入的要查询或添加的好友ID等必要信息发送到服务器,并接受返回的消息,判断时候查找或添加成功。

3.删除好友用户选择想要删除的好友,在右键功能列表中点击删除好友。客户端将把用户要删除好友的ID等必要信息发送到服务器进行删除操作。

4.个人信息的修改用户通过点击自己的头像,在弹出的个人资料界面修改。客户端将有变化的部分进行封装,发送到服务器进行更新,并接受返回的消息,判断是否修改成功。

5.查看好友信息用户通过查看好友信息功能,查看好友的个人资料设置。客户端将好友ID等必要信息发送到服务器,并接受返回的好友资料信息,在个人资料界面进行显示。

6.聊天用户双击好友头像,弹出聊天窗口。聊天窗口可以显示接受到的信息和用户发送的信息。

7.发送文件用户可以向好友发送文件。

此外,客户端还要实现好友列表动态更新、多用户同时聊天等功能。

3.1.1.2.界面设计

1.登录界面

2.主面板

3.个人资料

4.聊天窗口

5.查找添加好友

3.1.2C/SServer

C/SServer使用一种MongooseWebServer提供服务。它是一种C语言编写的易用的轻量级Web服务器,能够嵌入到提供网络接口的已有的应用程序中。它具有轻量并且快速、能够运行在多种平台上(Linux、Windows)、有多种配置方式(配置文件、命令行、管理页面)、多并发等优点,并提供了API。

在这里,用mongoose作为与客户端通信的服务器。Mongoose收到的从客户端发送来的数据后,传递给事务处理模块(图2.1-2),并由它来进行相应的处理。

3.1.2.1.功能说明

1.处理客户端登录、离线接收到客户端发送来的登录或离线请求,为该用户ID更改在线状态。如果是登录请求,则在返回登录请求成功消息后,为客户端更新好友列表。离线请求,则只修改在线状态。

2.查询、添加、删除好友接收客户端发送来的好友操作请求。查询,则返回查询结果;添加,向要该用户要添加的好友发送添加消息,如通过,则将该好友列入用户好友列表,更新数据库,否则返回失败消息;删除,直接将用户请求删除的好友ID从其列表中删除。

3.个人信息的维护接收客户端发送来的个人信息更新请求,将有变化的部分更新入数据库。

4.好友信息查看接收客户端发送来的查看好友信息的请求,返回好友个人信息。

同时,服务器还要能实现并发处理,以及定时更新用户的登录状态。

3.2Browser/Server

图3.2-1B/S结构图

由图4-3,Web服务器主要提供三项服务:注册、找回密码、下载客户端,实现的功能比较简单。

3.2.1功能说明

1.注册注册新账号,用户从申请账号页面填写必要的信息,申请账号。服务器收到注册请求后,分配用户ID,并将用户填写的信息保存至数据库中。

2.找回密码用户从找回密码页面回答注册账号时设定的找回密码问题。如果全部回答正确,则服务器将该用户的密码返回。

3.下载客户端Web服务器提供客户端安装程序的下载链接。

3.3数据结构

3.3.1账户注册信息

表3.3.1-1账户注册信息

上表中记录了每个注册用户的账号信息,包括分配的登录账号、用户设置的密码、找回密码要回答的问题及答案、身份证信息等。其中账号的要求为唯一且不为空。用户密码也不能为空。因为用户身份证为15位或18位,所以我们用字符数组来表示。3.3.2

表3.3.2-1用户个人信息表

上表中描述了用户个人信息的各数据项。每个账号只对应一个个人信息表结构。账号是唯一的,那么个人信息表将不会出现冲突。

3.3.3

表3.3.3-1用户好友信息

上表为用户好友的信息表,保存用户所添加的好友信息。表中只记录好友的账号,因为表3.3.1-1中账号是唯一的,且表3.3.2-1中个人信息唯一对应一个账号,因而,记录了好友账号,便可以保证获取足够的信息。

3.3.4用户状态信息

表3.3.4-1用户状态信息

上表为用户的状态信息表,保存当前已登录服务器的用户状态信息,例如是否隐身、忙碌、离开等。同时,用户可以自定义状态。用户自定义的状态将保存在用户状态数据项中,保存类型为字符串。在其好友登录成功后,将会向服务器查询该用户的状态信息,即获取用户状态项的内容,并根据内容显示在相应的位置上。

同时,用户的登录IP地址也是保存项。一方面可以直观的向好友显示自己所在的位置,另一方面,若有好友向其发送文件或者消息时,可以在与服务器联系后,获取该IP地址,通过此直接端到端的联系,不需要经过服务器进行中转。

3.4数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论