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


即时 聊天 系统 即时 聊天 系统 即时 聊天 系统 即时 聊天 系统 详细 详细 详细 详细 详细 详细 详细 详细 设计 说明 书 设计 说明 书 设计 说明 书 设计 说明 书 设计 说明 书 设计 说明 书 设计 说明 书 设计 说明 书 文档编号:SDP-4 文档版本:3.0.0 linux 环境下的即时聊天系统开发项目小组 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 2 - 文档控制信息文档控制信息 基本信息 文档标题 linux 环境下的即时聊天系统项目概要设计书 文档编号 SDP-4 文档版本 3.0 关键词 Linux,即时聊天系统,详细设计 修订人 彭酉 修订时间 2010-04-25 版本历史 版本号 修订人 修订时间 修订内容 1.0 彭酉 2010-07-03 创建 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 3 - 目录 目录........................................................................................................................................ - 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 - linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 4 - 1.1.1.1. 任务概述 1.1 编写目的 在完成了“即时聊天系统”项目的可行性研究和需求分析的基础上,为了明确软件 需求、安排项目规划与进度、组织软件开发与测试,项目小组经过深入讨论和分析之后, 提出了这份概要设计说明书。 此概要设计说明书对《即时聊天系统》软件的解决方案、功能分配、模块划分、程 序的总体结构、输入输出和接口设计、运行设计等方面做了全面概括性说明,为该软件 的详细设计奠定基础。 此文档为系统分析员工作的阶段性总结,并提供项目组长、设计人员和开发人员参 考。 1.2 项目背景 即时聊天系统是目前 Internet上最为流行的通讯方式,而各种各样的即时通讯软 件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。随着互联网的发展, 即时通讯的运用将日益广泛。 所开发软件名称: 即时聊天系统 项目开发成员: 钱存峰、彭酉、付重阳、毕宏伟、吴斌 软件用户: 任意互联网用户 软件用途: 此项目为中国科学技术大学软件学院工程实践环节选题。目标是实现在linux 操作系统上即时聊天。 1.3 参考资料 1、linux 环境下即时聊天系统项目计划书 2、linux 环境下即时聊天系统需求说明书 3、linux 环境下即时聊天系统数据说明书 4、linux 环境下即时聊天系统概要说明书 5、《软件评测师教程》,柳纯录等,清华大学出版社 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 5 - 2.2.2.2. 框架设计 2.1整体框架 C/S 架构分为客户端(Client)和服务器端(Server)两部分。服务器端提供服务,客 户端实现用户显式实现用户需求。两部分通过互联网络进行通信。 2.2模块设计 2.2.1 客户端 由图 2.1-1,将客户端分为 GTK 窗口模块和客户端事务处理模块两部分,实现图形 界面代码与其它代码的分离。 1.1.1.1. GTK GTK GTK GTK 窗口模块包含一系列的基于 GTK 图形开发包的图形界面,如:登录窗口、 主窗口、聊天窗口、个人信息窗口等。用户对图形界面的操作,对应的 GTK 组件(Widget) 图 2.1-3服务器事务处理图 2.1-2客户端事务处 图 2.1-1整体框架 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 6 - 产生相应的信号与事件,传递给客户端事务处理模块。通过对信号与事件的定义,将使 程序完成相应的功能。 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 服务。它 们提供的服务内容并不相同,因而将其独立划分。 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 7 - 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 C/S结构图 由图 3.1-1,B/S 与C/S 之间是无关的,按照实现的功能,。 图中,将客户端(User Client)划分为 GTK 界面和事务处理模块。这样做是为了 尽量是界面的代码和功能的代码相分离,也便于进行调试。在程序运行过程中,回调函 数接口与 GTK 界面产生的信号或事件绑定,当用户进行特定操作时,将触发回调函数的 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 8 - 执行。 同时,在 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. 查找添加好友 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 9 - 3.1.2 C/S Server C/S Server 使用一种 Mongoose Web Server 提供服务。它是一种 C语言编写的易用 的轻量级 Web 服务器,能够嵌入到提供网络接口的已有的应用程序中。它具有轻量并且 快速、能够运行在多种平台上(Linux、Windows)、有多种配置方式(配置文件、命令 行、管理页面)、多并发等优点,并提供了 API。 在这里,用 mongoose 作为与客户端通信的服务器。Mongoose收到的从客户端发送 来的数据后,传递给事务处理模块(图 2.1-2),并由它来进行相应的处理。 3.1.2.1.3.1.2.1.3.1.2.1.3.1.2.1. 功能说明 1.处理客户端登录、离线 接收到客户端发送来的登录或离线请求,为该用户 ID 更改在线状态。如果是登录请求,则在返回登录请求成功消息后,为客户端更新好友列 表。离线请求,则只修改在线状态。 2.查询、添加、删除好友 接收客户端发送来的好友操作请求。查询,则返回查询 结果;添加,向要该用户要添加的好友发送添加消息,如通过,则将该好友列入用户好 友列表,更新数据库,否则返回失败消息;删除,直接将用户请求删除的好友 ID从其 列表中删除。 3.个人信息的维护 接收客户端发送来的个人信息更新请求,将有变化的部分更新 入数据库。 4.好友信息查看 接收客户端发送来的查看好友信息的请求,返回好友个人信息。 同时,服务器还要能实现并发处理,以及定时更新用户的登录状态。 3.2 Browser/Server 图3.2-1 B/S结构图 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 10 - 由图 4-3,Web 服务器主要提供三项服务:注册、找回密码、下载客户端,实现的 功能比较简单。 3.2.1 功能说明 1.注册 注册新账号,用户从申请账号页面填写必要的信息,申请账号。服务器收 到注册请求后,分配用户 ID,并将用户填写的信息保存至数据库中。 2.找回密码 用户从找回密码页面回答注册账号时设定的找回密码问题。如果全部 回答正确,则服务器将该用户的密码返回。 3.下载客户端 Web 服务器提供客户端安装程序的下载链接。 3.3 数据结构 3.3.1 账户注册信息 列名 类型 主键 外键 备注 账号 数字型 Yes No 唯一、不为空 用户密码 字符串 No No 不能为空 问题设置一 字符串 No No 问题回答一 字符串 No No 问题设置二 字符串 No No 问题回答二 字符串 No No 用户身份证 字符数组 No No 表3.3.1-1 账户注册信息 上表中记录了每个注册用户的账号信息,包括分配的登录账号、用户设置的密码、 找回密码要回答的问题及答案、身份证信息等。其中账号的要求为唯一且不为空。用户 密码也不能为空。因为用户身份证为 15 位或 18 位,所以我们用字符数组来表示。 3.3.2 用户个人信息 列名 类型 主键 外键 备注 账号 数字型 Yes Yes 唯一、不为空 用户昵称 字符串 No No 用户性别 枚举类型 No No 用户年龄 数字型 No No 生日-年 数字型 No No 生日-月 枚举型 No No 生日-日 枚举型 No No 用户血型 枚举型 No No linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 11 - 星座 枚举型 No No 用户生肖 枚举型 No No 用户电话 字符串 No No 用户邮箱 字符串 No No 国家名 字符串 No No 省份名 字符串 No No 城市名 字符串 No No 表3.3.2-1 用户个人信息表 上表中描述了用户个人信息的各数据项。每个账号只对应一个个人信息表结构。账 号是唯一的,那么个人信息表将不会出现冲突。 3.3.3 用户好友信息 列名 类型 主键 外键 备注 用户账号 数字型 Yes Yes 唯一,不为空 用户注册 ID 数字型 No Yes 好友 ID 数字型 No Yes 表3.3.3-1 用户好友信息 上表为用户好友的信息表,保存用户所添加的好友信息。表中只记录好友的账号, 因为表 3.3.1-1 中账号是唯一的,且表 3.3.2-1 中个人信息唯一对应一个账号,因而, 记录了好友账号,便可以保证获取足够的信息。 3.3.4 用户状态信息 列名 类型 主键 外键 备注 用户账号 数字型 Yes Yes 唯一,不为空 用户状态 字符串 No No 用户状态 用户 IP 字符串 No No IP地址保存在 定长字符串中 表3.3.4-1 用户状态信息 上表为用户的状态信息表,保存当前已登录服务器的用户状态信息,例如是否隐身、 忙碌、离开等。同时,用户可以自定义状态。用户自定义的状态将保存在用户状态数据 项中,保存类型为字符串。在其好友登录成功后,将会向服务器查询该用户的状态信息, 即获取用户状态项的内容,并根据内容显示在相应的位置上。 同时,用户的登录 IP地址也是保存项。一方面可以直观的向好友显示自己所在的 位置,另一方面,若有好友向其发送文件或者消息时,可以在与服务器联系后,获取该 IP地址,通过此直接端到端的联系,不需要经过服务器进行中转。 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 12 - 3.4 数据库 图3.4-1 数据库关系图 上图为各数据表的关系图。描述了各表主键与外键,以及与其他表的联系。 4.测试 对与上述设计的正确性要通过测试进行验证。对每项功能、每个组合模块、模块集 成后,进行相应的测试,确定功能是否得到正确的实现。其中,程序的功能测试由程序 员在开发过程中自行开展。模块测试和集成测试将在项目开发进行到某一阶段时定期开 展。 4.1 模块测试 4.1.1 模块表 名称 功能描述 备注 客户端 GUI图形界面 与用户的交互图形界面,包含多个窗口 回调函数 对图形界面信号进行响应的处理函数 数据封装解析 对网络传输数据按一定格式封装、解析 其它事务处理 与图形界面无关的处理函数功能 网络通信 负责网络通信的功能 C/S 服务器 mongoose 一个轻量的 Web服务器,但这里用来接受数据 数据封装解析 对网络传输数据按一定格式封装、解析 与客户端的相对应 数据库接口 对数据库进行的操作 其它事务处理 完成其它辅助功能的函数 B/S 服务器 Web 页面 动态网页 数据库接口 对数据库进行的操作 linux 环境下的即时聊天系统项目详细设计书/编号 SDP-4/版本 3.0 - 13 - 4.1.2 测试说明 根据需求分析文档以及详细设计中的功能描述,验证各模块功能实现。测试各模块 的输入输出的正确性。 4.2 集成测试 根据模块表,在完成模块测试后,进行集成测试。
还剩12页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 10 人已下载

下载pdf

pdf贡献者

ydytxj

贡献于2011-12-29

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf