




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
详细设计说明书引言: 1、1编写目的: 在前一阶段〔概要设计说明书〕中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成假设干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据构造、模块构造的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进展说明。 在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。主要的工作有:根据在需求分析说明书中所描述的数据、功能、运行、性能需求,并依照概要设计说明书所确定的处理流程、总体构造和模块外部设计,设计软件系统的构造设计、逐个模块的程序描述〔包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等〕 在以下的各个阶段中,用户操作手册将与本阶段的工作严密结合,努力作到让用户易懂易学。测试报告和维护报告也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中。1、2工程背景: 在本即时聊天工具工程的前一阶段,也就是需求分析阶段,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对不同用户所提出的不同功能,实现的各种效果做了调研工作,并在需求规格说明书中得到详尽得表达及说明。 本飞Q即时聊天系统工程主要由两局部形成: 1、客户端; 2、数据库效劳器端;1、3文中特殊的定义和缩写:1.3.1定义SQLSERVER:系统效劳器所使用的数据库管理系统〔DBMS〕。SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进展处理。主键:数据库表中的关键域。值互不一样。外部主键:数据库表中与其他表主键关联的域。ROLLBACK:数据库的错误恢复机制。1.3.2缩写系统:假设未特别指出,统指本机票预定系统。SQL:StructuredQueryLanguage〔构造化查询语言〕。ATM:AsynchronousTransferMode(异步传输模式)。1、4参考资料:以以下出在概要设计过程中所使用到的有关资料:2.需求规格说明书 飞Q软件开发小组 3.概要设计说明书飞Q软件开发小组4.用户操作手册〔初稿〕 飞Q软件开发小组5.软件工程及其应用 周苏、王文等 天津科学技术出版社6.软件工程 张海藩 清华大学出版社 7.ComputerNetworkA.S.Tanenbaun PrenticeHall 8.网络上的资料文档所采用的标准是参照软件工程导论沈美明著的“计算机软件开发文档编写指南〞。2.总体设计:2、1需求概要: 应广阔用户的要求,要求做一个性能更高更人性化的即使聊天工具,我飞Q软件设计小组努力为大家写一个更好的即时聊天工具。 飞Q2021聊天系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系构造的、易扩大的、易维护的、具有良好人机交互界面的飞Q2021聊天系统,实现添加好友,删除好友,相互聊天系统,为人们聊天提供准确、精细、迅速的信息。根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server构造,将飞Q2021聊天系统划分为两个子系统:客户端子系统,效劳器端子系统。 要求系统能有效、快速、平安、可靠和无误的完成上述操作。并要求客户机的界面要单明了,易于操作,效劳器程序利于维护。2、2软件构造:各模块之间的关系已由概要设计给出 下面介绍详细的设计1登陆模块2申请模块3平安模块4聊天模块效劳器端:1、申请模块c2、登录模块3、添加好友模块4、删除好友模块5修改好友昵称模块6、查找用户模块7、平安模块7.1、设置密保模块7.2、判断是否设置密保模块7.3、判断密保答案是否正确模块7.4、修改密保模块7.5、修改密码模块7.6、找回密码8、移动好友模块9、组操作模块10、发送系统消息模块11、更新个人信息模块12、请求ipPort模块13、心跳模块13.1、用户心跳接收处理模块13.2、效劳器定时检测超时模块13.3、效劳器推拉检测在线模块14、添加可利用飞Q号3、程序描述:客户端总模块:1登陆模块1登录过程对在飞Q登录信息界面中输入的各项信息进展初步检验。假设发现错误,输入数据全部清空,以让用户重新输入一次。假设未发现错误,转入主界面。其中的错误种类有:1.输入数据不匹配帐号数据库没有该帐号密码与对应账号的密码不匹配2输入数据不能为空if(账号为空)请输入账号再登陆elseif(账号长度小于6或对于20)请输入正确的账号,账号可以位数字或Email地址。 elseif(密码为空)请输入密码后再登陆else通知效劳器账号为:xxx密码为:xxx的请求登陆2申请过程对之前没有申请飞Q的用户,不能登录飞Q,而必须点击申请,成为飞Q大家庭的一员。点击之后转入申请界面3寻找忘记密码过程对之前申请飞Q的用户,如果忘记密码,请不要担忧,点击界面上的“忘记密码〞,点击之后转入寻找密码界面2申请模块对在飞Q申请信息界面中输入的各项信息进展账号申请。假设发现错误,输入数据全部清空,以让用户重新输入一次。假设未发现错误,转入账号申请成功界面。if(昵称为空) 请输入昵称elseif(密码格式错误〔小于6或大于20〕) 密码必须6-20个字符! 密码框清空,重新输入elseif(两次密码输入不匹配) 两次密码输入不一致密码框清空,重新输入else获取注册信息点击新用户注册,向效劳器传输注册信息3增删改查模块3.1查找好友模块对在飞Q查找好友界面中选择查找类型〔准确查找或条件查找〕,输入各项查找信息进展好友查找。假设发现错误,输入数据全部清空,以让用户重新输入一次。假设未发现错误,转入查找结果界面。在查找结果界面中选择要添加的好友,双击,查看该好友的详细资料,点击添加,转入好友信息验证界面。在好友信息界面,输入验证信息,完成好友的添加。Search类if(查找联系人) if(准确查找) if(查询条件为空) 请至少填一个查询条件 else获取查找信息点击查找把查找信息传递给效劳器elseif(条件查找)获取查找信息点击查找把查找信息传递给效劳器Search_rasult类if(点击添加好友) if(添加好友选择的是自己) 对不起,自己不能加自己为好友!重新选择 else把选择的好友发送给效劳器elseif(关闭) 放弃添加为好友 Addfriends类if(确定添加为好友) 把选择的好友信息发送给效劳器elseif(取消)放弃添加为好友3.2删除好友模块找到你要删除的对象所在的用户组,展开,找到该用户,右击,点击好友删除,然后刷新好友列表;3.3.3修改个人资料模块点击自己头像,转入个人资料界面,更新你所需要的信息选项;确定更新点击确定,如果不想更新,点击取消即可;更改头像:点击更换头像,即可转入更换头像界面,界面中陈列了各种头像,点击你想要的头像,即可显示该头像的不同样式,一供你参考。思考之后确实想更换,点击确定,立刻刷新所有界面,确保头像更换。如果不想更换,点击取消即可。3.4好友移动模块找到你要移动的对象所在的用户组,展开,找到该用户,右击,点击移动,在弹出框中选择移动的组对象,向效劳器发送相应的数据,然后刷新好友列表;3.5组操作模块<1>修改找到你要修改的用户组,右击点击重命名,向效劳器发送该账号的修改组信息,刷新好友列表,即可看见修改成果.<2>删除找到你要删除用户组,展开,右击,点击删除分组,向效劳器发送该账号的删除组信息,然后刷新好友列表;如果,要删除的是默认分组“我的好友〞,系统不提供删除权限。<3>添加在好友列表中右击,点击添加分组,输入分组名,点击确定,向效劳器发送该账号的组信息,不想添加,点击取消。4平安模块对在飞Q平安界面中,分为“平安概述〞,“常见欺诈〞,“修改密码〞,“修改密保〞;<1>平安概述平安概述概述了你当前飞Q的平安状况if(设置密保并且密码等级为良好以上) 平安状况良好请继续保持良好的习惯可立即完成设置密码elseif(设置密保并且密码等级为中等以下) 平安状况存在隐患请定期修改密码 立即完成设置密码else平安状况危险请立刻设置密保问题立即完成设置密保<2>常见欺诈常见的集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充好友欺诈;<3>修改密码修改密码之前请确保设置密保;如果没有设置密保问题,请先设置密保问题,以确保该账户的平安性。如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密码。if(三个密保问题有空)对不起,密保问题答复不能为空!没填写的须不完整 else向效劳器获取对应密保问题的答案 If(答复错误)提示:对不起,密保问题答复不能正确全部清空,重新输入else修改密码输入旧密码if(输入的旧密码正确) if(新密码为空) 提示:密码不能为空 elseif(两次密码输入不一致) 提示:两次密码输入不一致 elseif(两次密码输入一致并且不空)向效劳器发送该账号的新密码 else提示:密码有误,请重新输入 <4>修改密保 如果没有设置密保问题,设置密保问题。如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密保。if(没有设置密保)选择密保问题答复If(选择的密保问题重复)提示:选择的密保问题重复重新选择密保问题Elseif(修改密保时验证密保问题为空)提示:修改密保时验证密保问题为空Else效劳器发送该账号的新密保问题和新密保问题对应的答案else已经设置设置密保向效劳器获取对应密保问题的答案 输入密保问题答案〔用户〕If(答复错误)提示:对不起,密保问题答复不能正确全部清空,重新输入else修改密保选择密保问题答复If(选择的密保问题重复)提示:选择的密保问题重复重新选择密保问题Elseif(修改密保时验证密保问题为空)提示:修改密保时验证密保问题为空Else效劳器发送该账号的新密保问题和新密保问题对应的答案5聊天模块所有的聊天窗口的即时聊天信息只要点击发送,聊天信息会发送到效劳器中信息中转站中;在信息中转站中判断该发送的对象,再由效劳器发送给对。效劳器模块:1、申请模块将用户发送过来的申请信息写入临时变量对象中并存入数据库中在数据库中建立如下信息在main数据库的各表中插入申请的号码在users数据库中建立该帐号的档案,包括好友列表、添加好友验证表、历史记录表等等2、登录模块接收数据并存入loginpot中判断接收的密码和效劳器中的密码是否一样,一样则返回登录成功,并发送一系列信息〔见下〕,不一样则返回登录失败,3、添加好友模块1、发送添加好友请求:用户发送添加好友请求包,效劳器解析出要添加的好友,然后从数据库中查找出该用户的添加好友权限jugde然后进展一下判断:switch(judge) case1://假设统一任何人参加 在双方数据库中分别添加对方,并且向被添加的的用户发送的界面刷新命令break; case2: 对方需要验证信息,通知客户端 break; case0: 对方不允许任何人参加,通知客户端break; 2、发送验证信息:用户发送验证信息包,效劳器解析出数据,判断要发送验证信息的用户是否在线If(在线) 在线的话,就把验证信息发送到该用户客户端上并显示Else不在线的话,就把验证信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友验证信息3、发送同意以否信息用户发送同意与否信息包,效劳器解析出数据,判断要发送同意与否信息的用户是否在线,判断同意与否信息是否If(同意) 写入数据库相应的信息。Else 不对数据库进展操作。If(在线)在线的话,就把同意与否信息发送到该用户客户端,同时把此人的根本信息发送到客户端Else不在线的话,就把同意与否信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友成功与否信息4、删除好友模块删除好友模块设计思路比拟简单,如下用户发送删除好友信息包,效劳器解析出根本数据,删除发送请求用户的数据库中要删除的好友的信息,同时在对方的数据库中也相应的删除此人信息,并且将删除成功与否信息发送回去,同时给要删除的用户发送刷新界面命令,当然得先判断该用户是否在线If(在线)在线的话,给要删除的用户发送刷新界面命令,删除点发送请求的用户的信息Else不在线的话,不用再进展任何操作5修改好友昵称模块同样,修改好友昵称模块,也很简单明了,不需要进展复杂的逻辑判断,详细过程如下:用户发送修改好友昵称信息包,效劳器解析成根本数据,在数据库中找到该好友的好友列表,修改该用户要修改的好友的昵称,然后子线程就可以终止了6、查找用户模块用户发送修改好友昵称信息包,效劳器解析成根本数据,首先判断该用户用的是什么搜索模式,If〔搜索模式是准确查找模式〕根据内容构造出SQL语句,在数据库中查找出相应的用户,构造出列表发回客户端Elseif〔搜索模式是按条件查找模式〕根据内容构造出SQL语句,在数据库中查找出相应的用户,构造出列表发回客户端7.1、设置密保模块用户发送修改好友昵称信息包,效劳器解析成根本数据,在数据库中找到该用户的的信息,将密保问题和答案写入该用户的数据库中,假设已有密保问题则转到重设密保模块7.2、判断是否设置密保模块用户发送请求后,效劳器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,If〔设置了密保〕 返回密保问题Elseif〔没有设置密保〕 发送回去没有设置密保的标识7.3、判断密保答案是否正确模块用户发送给效劳器密保答案信息,效劳器解析出相应的数据,从数据库中查找该用户的信息,得到密保问题和答案,进展判断三个问题是否全部答复对If〔三个密保问题全答复对〕 向该用户客户端发送验证成功的消息Else〔三个问题不全对或全不对〕 向该用户客户端发送验证失败信息7.4、修改密保模块这里说明一下,修改密保的模块是在验证密保答案正确的前提下才能进入的,所以此模块仅仅是覆盖掉该用户的,特此声明,呵呵,声明有点晚了。。没有复杂逻辑判断,思路如下:用户发送给效劳器新密保信息,效劳器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密保问题和答案,然后子线程接收。7.5、修改密码模块声明如7.4所示,不再重复思路如下:用户发送给效劳器新密码信息,效劳器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密码,同时将新设置的密码参加内存中用户密码hashmap中,然后子线程接收。7.6、找回密码找回密码其实和重设密保有什么相识的地方,都是先验证信息密保信息是否正确,然后根据正确与否做出相应的处理用户发送请求后,效劳器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,If〔设置了密保〕 返回密保问题 判断承受的密保答案是否正确 If(三个问题都答复正确) 返回验证成功信息,通知客户端转入重设密码模块 Else 返回验证失败信息Elseif〔没有设置密保〕 发送回去没有设置密保的标识,通知该用户由于没有设置密码,通过此方法不能找回密码。8、移动好友模块移动好友模块设计思路比拟简单,如下用户发送移动好友信息包,效劳器解析出根本数据,在数据库中查到该用户的用户列表信息,更新列表信息,在数据库中做相应的修改9、组操作模块由于根本的几个组操作有很多相似之处,所以将几个组操作划为一个模块,设计思路如下:用户发送组操作信息包,效劳器解析出根本数据和命令,判断要进展的组操作是什么操作,然后进展相应的操作,具体设计思路如下:If(组操作命令为增加组)在users数据库中找到此用户的groupsList表,在此表中添加相应的组Elseif(组操作为删除组) 1、在users数据库中找到此用户的friendsList表,把相应组的 好友的组属性改为我的好友,即将要删除组中的好友放到我的好友 中,而不是直接将他们删除, 2、在users数据库中找到此用户的groupsList表,在此表中删 除相应的组Elseif(组操作为修改组的名称) 1、在users数据库中找到此用户的friendsList表,把相应组的 好友的组属性改为要修改的组名 2、在users数据库中找到此用户的groupsList表,在此表中删 找到相应的组,修改此组的名称为要修改的名称10、发送系统消息模块 发送系统消息模块是由效劳器直接调用的,来完成一些必须的用户响应,此模块发送消息的不同是由器构造函数决定的,其构造函数共有7种,如下:publicsendSystemMessageThread(Stringqq,intstatus)throwsSQLException 1、发送改变状态 publicsendSystemMessageThread(Stringtext)throwsSQLException 2、发送系统消息〔全部人〕 publicsendSystemMessageThread(Stringqq,intsign,Stringip_od,Stringt)throwsSQLException 3、发送上次登录信息〔登陆者〕 publicsendSystemMessageThread(Stringqq,Stringtext)throwsSQLException 4、发送系统消息〔对登录者〕 publicsendSystemMessageThread(Stringqq,systemMessagesys)throwsSQLException 5、发送添加好友请求信息 publicsendSystemMessageThread(intsign,Stringqq)throwsSQLException 6、当在其他地方登录时给另一个QQ发送下线通知 publicsendSystemMessageThread(Stringqq,systemMessagesys,intagree) 7、给该用户发送好友状态改变由效劳器根据不同的需要构造不同的发送系统消息线程,实现相应的响应11、更新个人信息模块用户发送给效劳器新个人信息信息,效劳器解析出相应的数据,从数据库中查找该用户,在数据库中重写已经更改了的此人的信息12、请求ipPort模块此模块是效劳器中唯一和聊天相关的监听线程,此种设计方法极大的降低了效劳器的压力,获取ip和聊天port是聊天中很重要的一个环节,设计思路如下:用户发送给效劳器请求另一个人的port的信息包,效劳器解析出相应的数据,从内存中查找另一个用户的ip和聊天port,判断是否得到此人信息If(查询到此人的在线信息) 给客户端返回找到的在线信息Else 给客户端返回没有找到此人信息,也就是此人不在线,客户端 然后做出相应地相应13、心跳模块心跳相互协作的工作组及即时聊天领域发挥着详单重要的角色,通过发送心跳报,来判断各个局部工作是否正常,以防某个局部运作异常发现不了,造成严重错误。 心跳包就是在客户端和效劳器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。用来判断对方〔设备,进程或其它网元〕是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。根本原因是效劳器端不能有效的判断客户端是否在线,也就是说,效劳器无法区分客户端是长时间在空闲,还是已经掉线的情况。所谓的心跳包就是客户端定时发送简单的信息给效劳器端告诉它我还在而已。代码就是每隔几分钟发送一个固定信息给效劳端,效劳端收到后回复一个固定信息如果效劳端几分钟内没有收到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高端矿泉水品牌区域独家代理销售合作协议
- 民宿旅游区综合物业服务与管理合同样本
- 旅游企业离职员工客户信息保密及服务质量协议
- 大数据分析在皮鞋定制中的应用-洞察及研究
- 社交媒体对消费者满意度影响-洞察及研究
- 2025-2030复合金属电子材料在智能门锁中的防电磁干扰解决方案研究
- 2025-2030土壤修复技术产业化进程与环保政策导向分析
- 2025-2030固态电解质材料研发突破与量产工艺攻关进展
- 情感分析在新闻播报中的应用-洞察及研究
- 2025-2030固态电池界面稳定性问题与材料创新突破方向
- 全套课件-食品营养学-王莉
- htri手册HTRIExchanger使用手册
- 四年级数学上册试题 一课一练2.3《平移与平行》习题1-北师大版(含答案)
- 小学英语外研版5A Unit2 They sell many different things Module 2部优课件
- 中国文学史概述
- 9.10.11有机、酸碱一般排-盛剑
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 毕业设计-太平哨水利枢纽引水式水电站设计
- 陈氏太极56式拳谱
- 机电技术应用专业岗位任务分析表
- 2019法考主观题考前聚焦2小时商法曹新川案例题参考答案
评论
0/150
提交评论