即时聊天系统
即时聊天系统
即时聊天系统
即时聊天系统
详细详细详细详细详细详细详细详细设计说明书
设计说明书
设计说明书
设计说明书
设计说明书
设计说明书
设计说明书
设计说明书
文档编号:SDP-4
文档版本:3.0.0
linux 环境下的即时聊天系统开发项目小组
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
文档控制信息
文档控制信息
基本信息
文档标题
文档编号
文档版本
关键词
修订人
修订时间
版本历史
版本号
1.0
linux 环境下的即时聊天系统项目概要设计书
SDP-4
3.0
Linux,即时聊天系统,详细设计
彭酉
2010-04-25
修订人
彭酉
修订时间
2010-07-03
修订内容
创建
- 2 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
目录
目录........................................................................................................................................ - 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.1 Client/Server..............................................................................................................- 7 -
3.1.1 User Client.......................................................................................................- 8 -
3.1.1.1. 功能说明............................................................................................. - 8 -
3.1.1.2. 界面设计............................................................................................. - 8 -
3.1.2 C/S Server........................................................................................................- 9 -
3.1.2.1. 功能说明............................................................................................. - 9 -
3.2 Browser/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 -
- 3 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
1.1.1.1. 任务概述
1.1 编写目的
在完成了“即时聊天系统”项目的可行性研究和需求分析的基础上,为了明确软件
需求、安排项目规划与进度、组织软件开发与测试,项目小组经过深入讨论和分析之后,
提出了这份概要设计说明书。
此概要设计说明书对《即时聊天系统》软件的解决方案、功能分配、模块划分、程
序的总体结构、输入输出和接口设计、运行设计等方面做了全面概括性说明,为该软件
的详细设计奠定基础。
此文档为系统分析员工作的阶段性总结,并提供项目组长、设计人员和开发人员参
考。
1.2 项目背景
即时聊天系统是目前 Internet 上最为流行的通讯方式,而各种各样的即时通讯软
件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。随着互联网的发展,
即时通讯的运用将日益广泛。
所开发软件名称:
即时聊天系统
项目开发成员:
钱存峰、彭酉、付重阳、毕宏伟、吴斌
软件用户:
任意互联网用户
软件用途:
此项目为中国科学技术大学软件学院工程实践环节选题。目标是实现在linux
操作系统上即时聊天。
1.3 参考资料
1、linux 环境下即时聊天系统项目计划书
2、linux 环境下即时聊天系统需求说明书
3、linux 环境下即时聊天系统数据说明书
4、linux 环境下即时聊天系统概要说明书
5、《软件评测师教程》,柳纯录等,清华大学出版社
- 4 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
2.2.2.2. 框架设计
2.1整体框架
图 2.1-1 整体框架
C/S 架构分为客户端(Client)和服务器端(Server)两部分。服务器端提供服务,客
户端实现用户显式实现用户需求。两部分通过互联网络进行通信。
图 2.1-2 客户端事务处
图 2.1-3 服务器事务处理
2.2模块设计
2.2.1 客户端
由图 2.1-1,将客户端分为 GTK 窗口模块和客户端事务处理模块两部分,实现图形
界面代码与其它代码的分离。
1.1.1.1. GTKGTKGTKGTK 窗口模块包含一系列的基于 GTK 图形开发包的图形界面,如:登录窗口、
主窗口、聊天窗口、个人信息窗口等。用户对图形界面的操作,对应的 GTK 组件(Widget)
- 5 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
产生相应的信号与事件,传递给客户端事务处理模块。通过对信号与事件的定义,将使
程序完成相应的功能。
2.2.2.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.3.3. 详细设计
图 3-1 整体结构图
按照需求分析,对概要设计进一步细化;按照功能及事务逻辑,对每一部分进行了
模块划分。在服务器端,同时提供面向用户(User Client)服务,以及 Web 服务。它
们提供的服务内容并不相同,因而将其独立划分。
- 6 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
M1-1 为 B/S 事务处理模块,包含 Java 接口、数据库接口、网络通信接口。Java 接
口处理 Web 请求,生成 Web 界面,与用户进行交互;数据库接口处理数据事务,并处理
与数据库相关的操作;网络通信接口负责网络数据传输。
M1-2 为 C/S 事务处理模块,包含 C 接口、数据库接口、数据封装解析、网络通信接
口。C 接口处理由 C/S Server 接受的用户请求;数据库接口处理数据事务,并处理与数
据库相关的操作;数据封装解析对网络中传输的数据进行相应格式的封装解析;网络通
信接口处理网络通信方式(TCP/UDP)的处理。
M2 为客户端事务处理模块,包含 GTK 图形界面所需的回调函数接口、C 接口、数据
封装解析、网络通信接口。回调函数接口将图形界面的生成与其他功能函数相分离,方
便函数调用与界面代码的修改,完成某些功能时,将调用 C 接口进行处理;C 接口是与
图形界面无关的功能函数,由回调函数进行调用,完成具体功能;数据封装解析与 C/S
服务器端的相对应,将用户信息等内容按照一定格式进行封装,然后由网络接口进行传
输,对接受到的特定信息则进行解析;网络通信接口处理网络通信方式(TCP/UDP)的
处理。
从图中,在 User Client 与 C/S Server 之间,行程简单的分层对应。
3.1 Client/Server
由图 3.1-1,B/S 与 C/S 之间是无关的,按照实现的功能,。
图 3.1-1 C/S 结构图
图中,将客户端(User Client)划分为 GTK 界面和事务处理模块。这样做是为了
尽量是界面的代码和功能的代码相分离,也便于进行调试。在程序运行过程中,回调函
数接口与 GTK 界面产生的信号或事件绑定,当用户进行特定操作时,将触发回调函数的
- 7 -
linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0
执行。
同时,在 C/S 服务器端,采用三层架构:服务器、事务处理模块与数据库系统。由
Mongoose Server 作为并发服务器,负责与客户端的通信,并将接受的到的消息向下传
递。
3.1.1 User Client
User Client 是用户进行即时聊天所用到的程序。安装文件将可以通过提供的 Web
页面进行下载。
3.1.1.1.
3.1.1.1.
3.1.1.1.
3.1.1.1. 功能说明
在用户端,除了有与用户进行交互的图形界面,同时完成以下主要功能:
1. 登录 用户输入个人 ID 和登录密码完成登录操作,如果服务器认证错误,提示
错误信息,如果认证通过,则显示主面板,更新下载好友列表。
2. 查询添加好友 用户通过点击主面板查询好友按钮,在弹出的查找添加好友界
面进行该操作。客户端将把用户输入的要查询或添加的好友 ID 等必要信息发送到服务
器,并接受返回的消息,判断时候查找或添加成功。
3. 删除好友 用户选择想要删除的好友,在右键功能列表中点击删除好友。客户
端将把用户要删除好友的 ID 等必要信息发送到服务器进行删除操作。
4. 个人信息的修改 用户通过点击自己的头像,在弹出的个人资料界面修改。客
户端将有变化的部分进行封装,发送到服务器进行更新,并接受返回的消息,判断是否
修改成功。
5. 查看好友信息 用户通过查看好友信息功能,查看好友的个人资料设置。客户
端将好友 ID 等必要信息发送到服务器,并接受返回的好友资料信息,在个人资料界面
进行显示。
6. 聊天 用户双击好友头像,弹出聊天窗口。聊天窗口可以显示接受到的信息和
用户发送的信息。
7. 发送文件 用户可以向好友发送文件。
此外,客户端还要实现好友列表动态更新、多用户同时聊天等功能。
3.1.1.2.
3.1.1.2.
3.1.1.2.
3.1.1.2. 界面设计
1. 登录界面
2. 主面板
3. 个人资料
4. 聊天窗口
5. 查找添加好友
- 8 -