当前位置:文档之家› 软件工程课程设计报告 之 详细设计报告

软件工程课程设计报告 之 详细设计报告

详细设计说明书1、引言:1、1编写目的:在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。

包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。

在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。

在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。

主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)在以下的各个阶段中,《用户操作手册》将与本阶段的工作紧密结合,努力作到让用户易懂易学。

《测试报告》和《维护报告》也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中。

1、2项目背景:在本即时聊天工具项目的前一阶段,也就是需求分析阶段,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对不同用户所提出的不同功能,实现的各种效果做了调研工作,并在需求规格说明书中得到详尽得叙述及阐明。

本飞Q即时聊天系统项目主要由两部分形成:1、客户端;2、数据库服务器端;1、3文中特殊的定义和缩写:1.3.1定义SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。

SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。

主键:数据库表中的关键域。

值互不相同。

外部主键:数据库表中与其他表主键关联的域。

ROLLBACK: 数据库的错误恢复机制。

1.3.2 缩写系统:若未特别指出,统指本机票预定系统。

SQL: Structured Query Language(结构化查询语言)。

ATM: Asynchronous Transfer Mode (异步传输模式)。

1、4参考资料:1.以下列出在概要设计过程中所使用到的有关资料:2.需求规格说明书飞Q软件开发小组3.概要设计说明书飞Q软件开发小组4.用户操作手册(初稿)飞Q软件开发小组5.软件工程及其应用周苏、王文等天津科学技术出版社6.软件工程张海藩清华大学出版社7. Computer Network A.S.Tanenbaun Prentice Hall8.网络上的资料文档所采用的标准是参照《软件工程导论》沈美明著的“计算机软件开发文档编写指南”。

2.总体设计:2、1需求概要:应广大用户的要求,要求做一个性能更高更人性化的即使聊天工具,我飞Q 软件设计小组努力为大家写一个更好的即时聊天工具。

飞Q2012聊天系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的飞Q2012聊天系统,实现添加好友,删除好友,相互聊天系统,为人们聊天提供准确、精细、迅速的信息。

根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server 结构,将飞Q2012聊天系统划分为两个子系统:客户端子系统,服务器端子系统。

要求系统能有效、快速、安全、可靠和无误的完成上述操作。

并要求客户机的界面要单明了,易于操作,服务器程序利于维护。

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 (账号为空){请输入账号再登陆}else if (账号长度小于6或对于20){请输入正确的账号,账号可以位数字或Email地址。

}else if (密码为空){请输入密码后再登陆}else{通知服务器账号为:xxx 密码为:xxx的请求登陆}2申请过程对之前没有申请飞Q的用户,不能登录飞Q,而必须点击申请,成为飞Q大家庭的一员。

点击之后转入申请界面3 寻找忘记密码过程对之前申请飞Q的用户,如果忘记密码,请不要担心,点击界面上的“忘记密码”,点击之后转入寻找密码界面2申请模块对在飞Q申请信息界面中输入的各项信息进行账号申请。

若发现错误,输入数据全部清空,以让用户重新输入一次。

若未发现错误,转入账号申请成功界面。

if (昵称为空){请输入昵称}else if (密码格式错误(小于6或大于20)){密码必须6-20个字符!密码框清空,重新输入}else if (两次密码输入不匹配){两次密码输入不一致密码框清空,重新输入}else{获取注册信息点击新用户注册,向服务器传输注册信息}3 增删改查模块3.1 查找好友模块对在飞Q查找好友界面中选择查找类型(精确查找或条件查找),输入各项查找信息进行好友查找。

若发现错误,输入数据全部清空,以让用户重新输入一次。

若未发现错误,转入查找结果界面。

在查找结果界面中选择要添加的好友,双击,查看该好友的详细资料,点击添加,转入好友信息验证界面。

在好友信息界面,输入验证信息,完成好友的添加。

Search类if (查找联系人){if (精确查找){if (查询条件为空){请至少填一个查询条件}else{获取查找信息点击查找把查找信息传递给服务器}}else if (条件查找){获取查找信息点击查找把查找信息传递给服务器}Search_rasult类if(点击添加好友){if(添加好友选择的是自己){对不起,自己不能加自己为好友!重新选择}else{把选择的好友发送给服务器}}else if(关闭){放弃添加为好友}Addfriends类if (确定添加为好友){把选择的好友信息发送给服务器}else if (取消){放弃添加为好友}3.2 删除好友模块找到你要删除的对象所在的用户组,展开,找到该用户,右击,点击好友删除,然后刷新好友列表;3.3.3 修改个人资料模块点击自己头像,转入个人资料界面,更新你所需要的信息选项;确定更新点击确定,如果不想更新,点击取消即可;更改头像:点击更换头像,即可转入更换头像界面,界面中陈列了各种头像,点击你想要的头像,即可显示该头像的不同样式,一供你参考。

思考之后确实想更换,点击确定,立刻刷新所有界面,确保头像更换。

如果不想更换,点击取消即可。

3.4 好友移动模块找到你要移动的对象所在的用户组,展开,找到该用户,右击,点击移动,在弹出框中选择移动的组对象,向服务器发送相应的数据,然后刷新好友列表;3.5 组操作模块<1> 修改找到你要修改的用户组,右击点击重命名,向服务器发送该账号的修改组信息,刷新好友列表,即可看见修改成果.<2> 删除找到你要删除用户组,展开,右击,点击删除分组,向服务器发送该账号的删除组信息,然后刷新好友列表;如果,要删除的是默认分组“我的好友”,系统不提供删除权限。

<3> 添加在好友列表中右击,点击添加分组,输入分组名,点击确定,向服务器发送该账号的组信息,不想添加,点击取消。

4 安全模块对在飞Q安全界面中,分为“安全概述”,“常见欺诈”,“修改密码”,“修改密保”;<1> 安全概述安全概述概述了你当前飞Q的安全状况if (设置密保并且密码等级为良好以上){安全状况良好请继续保持良好的习惯可立即完成设置密码}else if (设置密保并且密码等级为中等以下){安全状况存在隐患请定期修改密码立即完成设置密码}else{安全状况危险请立刻设置密保问题立即完成设置密保}<2> 常见欺诈常见的集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充好友欺诈;<3> 修改密码修改密码之前请确保设置密保;如果没有设置密保问题,请先设置密保问题,以确保该账户的安全性。

如果设置了密保问题,请先输入原密保问题,核对用户身份。

密保正确才可以修改,如果错误,对不起,不能修改密码。

if(三个密保问题有空){对不起,密保问题回答不能为空!没填写的须不完整}else{向服务器获取对应密保问题的答案If(回答错误){提示:对不起,密保问题回答不能正确全部清空,重新输入}else{修改密码输入旧密码if (输入的旧密码正确){if (新密码为空){提示:密码不能为空}else if (两次密码输入不一致){提示:两次密码输入不一致}else if (两次密码输入一致并且不空){向服务器发送该账号的新密码}}else{提示:密码有误,请重新输入}}}<4> 修改密保如果没有设置密保问题,设置密保问题。

如果设置了密保问题,请先输入原密保问题,核对用户身份。

密保正确才可以修改,如果错误,对不起,不能修改密保。

if(没有设置密保){选择密保问题回答If(选择的密保问题重复){提示:选择的密保问题重复重新选择密保问题}Else i f(修改密保时验证密保问题为空){提示:修改密保时验证密保问题为空}Else{服务器发送该账号的新密保问题和新密保问题对应的答案}}else{已经设置设置密保向服务器获取对应密保问题的答案输入密保问题答案(用户)If(回答错误){提示:对不起,密保问题回答不能正确全部清空,重新输入}else{修改密保选择密保问题回答If(选择的密保问题重复){提示:选择的密保问题重复重新选择密保问题}Else i f(修改密保时验证密保问题为空){提示:修改密保时验证密保问题为空}Else{服务器发送该账号的新密保问题和新密保问题对应的答案}}}5 聊天模块所有的聊天窗口的即时聊天信息只要点击发送,聊天信息会发送到服务器中信息中转站中;在信息中转站中判断该发送的对象,再由服务器发送给对。

服务器模块:1、申请模块将用户发送过来的申请信息写入临时变量对象中并存入数据库中在数据库中建立如下信息在main数据库的各表中插入申请的号码在users 数据库中建立该帐号的档案,包括好友列表、添加好友验证表、历史记录表等等2、登录模块接收数据并存入loginpot中判断接收的密码和服务器中的密码是否相同,相同则返回登录成功,并发送一系列信息(见下),不相同则返回登录失败,3、添加好友模块1、发送添加好友请求:用户发送添加好友请求包,服务器解析出要添加的好友,然后从数据库中查找出该用户的添加好友权限jugde 然后进行一下判断:switch (judge){case 1://假如统一任何人加入在双方数据库中分别添加对方,并且向被添加的的用户发送的界面刷新命令break;case 2:对方需要验证信息,通知客户端break;case 0:对方不允许任何人加入,通知客户端break;}2、发送验证信息:用户发送验证信息包,服务器解析出数据,判断要发送验证信息的用户是否在线If(在线){在线的话,就把验证信息发送到该用户客户端上并显示}Else{不在线的话,就把验证信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友验证信息}3、发送同意以否信息用户发送同意与否信息包,服务器解析出数据,判断要发送同意与否信息的用户是否在线,判断同意与否信息是否If(同意){写入数据库相应的信息。

相关主题