基于J2EE S2SH架构的仿腾讯QQ的即时通讯系统项目——详细设计说明书(第1部分)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果用户连续 5 次使用同一个 IP 登录,软件将不要求用户在登录时输入验证码。 2)用户注册
Input
昵称 性别
生日
密码
邮箱地址
手机号
验证码
Processing Output
检验用户输入信息是否合法,若是,创建新用户记 录,将用户信息写入数据库,为用户分配 ID 号,并 将 ID 号返回给用户。 注册成共,获取 ID 号或注册失败。
1922processing根据用户选择的好友在数据库中删除聊天记录output删除好友聊天记录成功或失败3刷新聊天记录input选择要刷新的好友名字processing根据用户选择的好友在数据库中刷新聊天记录output刷新好友聊天记录成功或失败4回复信息input选择要回复的好友processing根据用户选择的好友在数据库中回复聊天记录output回复好友聊天记录成功或失败5导入聊天记录input选择要导入的好友聊天记录processing在数据库中导入好友的聊天记录output导入好友聊天记录成功或失败6导出聊天记录input选择要导出的好友聊天记录processing在数据库中导出好友的聊天记录output导出好友聊天记录成功或失败5相关接口模块名称消息管理模块子模块接收消息模块
就读取上一次传送时候保存的文件传输进度,并将该进度(已发送字节数)和整个
文件传输给服务器,当接收方上线时,服务器将进度发送给接收方,接收方据此设
置文件指针,并继续进行传输(提出问题:如果是发送方掉线的情况下应该如何处
理?)。如果 A 在第 10 次传输时发现 B 掉线(很可能 B 是在传输了 2KB 的时候掉线),
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
基于 J2EE S2SH 架构的仿腾讯 QQ 的即时通讯系统项目——详细设计说明 书(第 1 部分)
1.1.1 引言
1、编写目的 本详细设计说明书的编写目的是在概要设计的基础上,对蓝梦教育集团 IM(即时通讯)
系统的设计进行详细的规划和描述,以对以后的工作的进行提供依据,并为之后的功能实 现作准备。具体目的有: (1)为项目经理为开发人员分配任务和控制项目进度提供依据; (2)为开发人员接下来要进行的编码工作提供依据; (3)为测试人员编写测试计划和设计测试用例提供依据; 2、预期读者
2) 文字聊天记录保存时间:7 天
3) 群聊天记录保存时间:2ห้องสมุดไป่ตู้ 小时
(4)输入 - 处理 – 输出(IPO)流程
1)文字聊天
Input
选择的聊天对象,要发送的数据:文字,表情或屏闪
Processing
传送数据
Output
文字聊天状态
掉线判断。用户每隔一段时间(例如 5 秒钟),向服务器发送消息,告知服务器自
杨教授大学堂,版权所有,盗版必究。 6/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
关联的数据结构 补充说明
(6)流程逻辑设计 1)用户登录
User,userdao User 封装用户信息; Userdao 封装对用户信息的操作
用户通过客户端进行登录。填写 IM 号,邮箱或手机号与密码;登录时如果有错误(不 存在 IM 号,邮箱或手机号,密码错误)将返回错误信息;如果登陆成功将进入主页面。
杨少波 编著 清华大学出版社 2008 年 10 月
(5)《精通 Struts 设计与开发》
作者:孙卫琴
电子工业出版社
(6)《Spring 从入门到精通》
作者:郭锋
清华大学出版社
(7)《Hibernate 开发技术祥解》
作者:孙卫琴
电子工业出版社
(8)《J2EE 应用开发技术祥解》
作者:刘晓华
电子工业出版社
服务器进行系统广播,所有相关的用户都会得知该用户离线。例如:A 与 B 进行会
话的时候,如果 A 选择退出程序,并中止对话,则 A 会通知服务器自己下线。之
后服务器通过系统广播通知所有用户 A 已下线,B 与 A 的对话会中止,发送文件
也会失败。
杨教授大学堂,版权所有,盗版必究。 10/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
4)群聊天 Input Processing Output
选择的群,要发送的数据:文字,表情或屏闪 传送数据 群聊天状态
5)传送文件
Input
选择的聊天对象,文件传送请求,要传送的文件,
Processing
传送文件
Output
文件传输状态
在线传输(文件或文件夹)。用户 A 向用户 B 发起对话请求(包括传输文件的请求),
2)用户注册
杨教授大学堂,版权所有,盗版必究。 7/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
用户通过客户端打开网页进行注册。填写相应信息;提交时如果有错误(必填信息不 完整,非法邮箱地址等)将转到错误页面提示相应错误信息;如果提交无误将完成注册并 返回成功信息并返回 IM 号。 (7)相关的类图
操作权限
登录
用户登录
所有注册了改系统的用户
用户注册
所有用户
(3)系统性能
事务页面平均处理及响应时间:1—3 秒以内,最大不超过 5 秒。
(4)输入 - 处理 – 输出(IPO)流程
1)用户登录
Input
用户名(或邮箱或手机号);
杨教授大学堂,版权所有,盗版必究。 5/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
聊天群。群中发布的消息都需要通知所有在线以及不在线的用户。如果群用户在消
息发布 7 天之内没有上线,该用户就看不到这条记录。
2)视频聊天
Input
选择的视频对象,视频请求,数据流
Processing
传送数据
Output
视频聊天状态
3)语音聊天 Input Processing Output
选择的语音对象,语音请求,数据流 传送数据 语音聊天状态
(9)《设计模式》
作者:Erich Gamma 等
机械工业出版社
1.1.2 系统程序的结构
1、系统结构图
杨教授大学堂,版权所有,盗版必究。 2/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
2、体现系统架构的程序包图 (1)客户端程序包图
杨教授大学堂,版权所有,盗版必究。 3/22 页
己仍然在线。如果用户在规定时间内没有向服务器发消息,服务器就可以认为用户
掉线,服务器系统广播通知所有相关用户该用户离线。
会话结束。进行会话中的 A 与 B,以关闭对话窗口作为结束会话的标志,并通知服
务器,但是必须在会话双方都结束会话的时候,本次会话才会被结束,服务器删除
本次会话记录。
自动退出。如果会话中的用户主动选择退出程序,那么该用户会通知服务器,之后
本详细设计说明书的预期读者为项目开发小组全体人员,尤其是项目的编码人员,及 本项目的客户——蓝梦教育集团的工作人员。 3、定义 (1)IM
企业即时通讯(Instant Messenger),简称 IM 系统。 (2)客户
项目投资方,在此为蓝梦教育集团。 (3)用户
产品的最终使用者,在此为蓝梦教育集团的员工。 (4)系统管理员
那么 A 会读取第 9 次传输结束时保存的文件传输进度,并将整个需要发送的文件上
传给服务器。在 B 再次上线的时候,服务器会向 B 发出请求,B 接受请求,并接收
服务器发送的文件进度,以此来在已接受的文件中创建指针,并从指针所指的位置
开始继续接收文件(会覆盖 2KB 的数据)。(如果用户 B 的主机改变,则服务器将整
对本系统进行技术支持、维护管理的具有特定权限的用户,其工作内容包括对系统参 数配置、权限管理、系统软/硬件维护管理。 (5)功能权限
系统对各个功能进行了定义,用户只有具有相应功能的权限,才能使用该功能,目前 系统中展现的功能菜单受功能权限控制,即如果用户未被授予该项功能权限,相关的功能 菜单不可见。 (6)数据权限
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public SendStreamThread(String receiveIP, int port, TransTask transTask); 2)文件传输模块 public SendStreamThread(String receiveIP, int port, TransTask transTask); public ReceiveStreamThread(Socket socket); CheckLeisureTcpPort,ReceiveStreamThread,TransTask, TransFileStock,MyobjectInputStream,MyobjectOutputStream 不包括视频聊天模块的接口; 该模块的通信协议为 socket 连接;
杨教授大学堂,版权所有,盗版必究。 1/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
用户能够对哪些数据具有访问权限,即用户可访问的数据范围的定义。
4、参考资料
(1)J2EE 项目实训 Hibernate 框架技术(21 世纪高等学校实用软件工程教育规划教材)
杨少波 编著 清华大学出版社 2008 年 5 月
(5)相关的接口 模块名称
用户登陆模块
子模块
用户登录; 用户注册; 用户获取密码;
参数赋值和调用方式
public static boolean userLogin(); public void userRegister(user u); public void getPassword(int uid);
A 向服务器传送 B 的账号信息,服务器判断用户 B 是否在线(包括上线和隐身状态)
若用户 A(发送方)和用户 B(接收方)同时在线,服务器通知用户 A,并为 A 与 B
保存本次会话记录。用户 A 直接与用户 B 建立 TCP 连接,在正常进行会话的过程中
不再向服务器发消息。
离线传输。若接收方用户 B 不在线,则服务器会保存用户 A 发送的文件,并在 B 上
(5)相关接口 模块名称
用户聊天模块
子模块
文字图片聊天模块; 文件传输模块; 视频聊天模块;
参数赋值和调用方式 1)文字图片聊天模块 public ReceiveStreamThread(Socket socket);
杨教授大学堂,版权所有,盗版必究。 12/22 页
关联的数据结构 补充说明 (6)相关的类图
个离线文件都传给 B)
拖动本地文件(/夹)到聊天窗口进行传输(扩展)。将本地文件(/夹)拖动到聊
天窗口中进行传输。
6)远程协助
Input
请求远程协助
Processing
建立远程协助
Output
远程协助状态
7)通信链路建立
Input
IP, Port
Processing Output
1、 通信双方将 IP 地址发送到服务器; 2、 服务器建立双方的会话连接。 链路建立状态
线的时候向 B 发出通知。如果超出一定的时限(例如 7 天),B 未上线,则本次传
输默认终止。
关于断点续传的实现(扩展)。传送文件过程中,每传递一部分(比如 4KB)文件,
杨教授大学堂,版权所有,盗版必究。 11/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
发送方都会保存当前文件的传输进度,如果在某一次发送开始时发现接收方离线,
1)用户登录的类图
杨教授大学堂,版权所有,盗版必究。 8/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
2)用户注册的类图
(8)注释设计
1) 各模块及子模块首部应有本模块的功能说明;
2) 各功能函数的函数声明处应有参数含义、参数来源的说明;
3) 各功能函数内的变量声明处应有该变量的功能、范围、缺省条件等说明;
密码;
登陆状态。
Processing
根据用户填写的登录信息查询数据库相关数据,数 据匹配即登录成功。
Output
登录成功或重新登录。
用户 A 登录,通知服务器自己在线,服务器通过系统广播通知 A 的好友 A 已上线(例 如,B 的好友列表中的 A 的头像亮起)。如果 A 设置隐身,那么服务器仍然将其作为在线 处理,但是会告诉 A 的好友,A 现在处于离线状态(A 的头像变灰)。
4) 各功能函数的函数头部应有该函数的处理逻辑的说明;
5) 各功能函数的函数体内关键语句处应有说明;
(9)测试计划
详见测试文档。
(10)尚未解决的问题
暂无。
4、用户聊天模块设计说明
(1)程序功能描述
设计目的:用户可以进行文字聊天、视频聊天、语音聊天、短信聊天、群聊、文件传
送和远程协助。在线用户之间进行文字、语音、视频聊天、文件传送和远程协助需要建立
(2)J2EE 项目实训 Spring 框架技术(21 世纪高等学校实用软件工程教育规划教材)
杨少波 编著 清华大学出版社 2008 年 5 月
(3)J2EE 项目实训 UML 及设计模式(21 世纪高等学校实用软件工程教育规划教材)
杨少波 编著 清华大学出版社 2008 年 5 月
(4)J2EE 项目实训 Struts 框架技术(21 世纪高等学校实用软件工程教育规划教材)
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(2)服务器端程序包图
杨教授大学堂,版权所有,盗版必究。 4/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
3、用户登陆和注册模块设计说明
(1)程序功能描述
设计目的:实现用户注册系统、登陆系统的功能。
(2)功能模块
模块名称 子功能模块
点对点通信链路。
(2)功能模块
杨教授大学堂,版权所有,盗版必究。 9/22 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
模块名称 用户聊天
子功能模块 操作权限
文字聊天
注册且登录系统的用户
视频聊天
语音聊天
短信聊天
群聊天
传送文件
远程协助
通信链路建立
(3)系统性能
1) 传输时间:精确到秒。
相关文档
最新文档