JAVA课程设计方案聊天室系统 .docx
《JAVA课程设计方案聊天室系统 .docx》由会员分享,可在线阅读,更多相关《JAVA课程设计方案聊天室系统 .docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结Java 课程设计指导书(同学版初稿)其次章 谈天室系统目标2.1背景介绍2.1.1业务背景2.1.2技术背景2.2需求分析2.2.1功能需求分析2.2.2业务对象分析2.2.3验收测试要求2.3系统设计2.3.1总体设计2.3.2详细设计2.4系统实现2.5小结2.6展望其次章谈天室系统学习目标:1、懂得基于网络的C/S 模式的软件系统结构,把握网络编程的基本概念。2 、 了 解 Java的 多 线 程 机 制 , 掌 握 Java多 线 程 技 术 的 应 用 。3、娴熟把握基于 TCP协议的 Socket 编程。 4、明白 Socket 编程的协议商定, 把握简洁应用协议
2、的开发。5、进一步巩固进展团队协作才能。学习寄语 :想必大家都用过 QQ,其主要功能就是谈天,是不是很想知道它是如何实现的?本工程就是帮你实现一个简洁的谈天系统,当然跟商业工程没法比,但从中你却可以明白这些系统是如何实现的,学到开发类似系统的基础知识和基本技能(基本并不意味不有用)。本章的内容有确定难度(多线程、基于 TCP 的应用协议编程),所以系统的开发接受了“增量迭代”的开发方式, 由简易到繁难,期望你能顺当前行。我们的信念照旧是:“不抛弃,不放弃”。你的转变和收成照旧是老师真诚的期望,期望你更踏实、更自信。Comeon.2.1 背景介绍2.1.1 业务背景随着网络社会的不断进展,具有相
3、同爱好的网民需要相互远程沟通,既要能省钱又要能即时交互,电话太贵、 email 又嫌慢,所以开发一个类似QQ 的准时通讯系统就变得特殊有意义了。“Happy Chat”谈天系统应运而生,它较之QQ 的唯独好处是自主开发,用的放心,更适合在局域网内使用。它供应的功能远不如 QQ 丰富,但应具有如下功能:( 1)与谈天室成员一起谈天。( 2)可以与谈天室成员私聊。( 3)用户注册、登录。( 4)服务器监控谈天内容。可编辑资料 - - - 欢迎下载精品名师归纳总结( 5)服务器发送通知。( 6)服务器踢人。( 7)储存服务器日志。( 8)储存用户谈天信息。2.1.2 技术背景本系统要求使用 java
4、技术开发,使用文件储存数据,集成开发环境使用eclipse 。开发者应有 java程序设计语言、 SWING基本 GUI 组件、多线程、文件使用、 socket编程、使用 eclipse的基本学问和技能。系统接受两层C/S 体系结构, C 端负责通过 GUI 与客户交互,实现注册、登陆、收发信息、退出等功能。 S 端是谈天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。 C 端和 S 端是通过网络交互的,其基本原理如图1 所示:图 1 C/S 通讯基本原理图第一服务器启动,它会建立一个特的用于接收客户端连接请求的“倾听 Socket ”(相当于总服务台,有固定的IP的
5、址和端口号) , 然后等待客户的连接请求。当用户想谈天时,从界面输入信息,然后与服务器建立Socket 连接(连接时应指定服务器的IP 的址和端口号,而客户端 socket的端口由本方操作系统从闲暇端口中确定),服务器端的“倾听Socket ”收到连接请求后,一般会接受连接请求,并生成一个服务端socket (其端口号由服务端操作系统从闲暇端口可编辑资料 - - - 欢迎下载精品名师归纳总结中确定),特的负责与此客户端socket 的通信。一旦连接请求成功,客户端将信息及请求通过本方socket 的输出流发送给服务器端相应的socket,服务端就通过服务器端Socket 的输入流接受客户端传输
6、过来的信息及请求,分析是何请求,然后依据请求类型,进行相应的处理(如登录、转发信息等)。服务方也可以依据需要,通过socket 的输出流发信息和请求给客户端(公告)。客户方和服务方都可以通过关闭本方的socket而终止一次通讯过程。不难发觉服务器需要能同时接受多个客户的请求,为了实现这一点,一般使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程特的负责处理(相当于一个服务员特的服务一个以IP 的址和端口号唯独标识的客户)。上述方式两个谈天者之间通信必需通过服务器进行转发,谈天者多时,明显服务器是个性能瓶颈。能不能谈天者之间直接通信?当然可以,这是所谓的P2P 谈天室,缺点是对谈
7、天者缺乏集中监管的手段。也有界于二者之间的,即有一服务器,接受注册和登录,实际谈天双方通信时,仍然是直接通信,此时服务器相当于一个婚姻介绍所,只管牵线搭桥,详细谈仍是谈天者自己的事。本文主要接受谈天信息通过服务器转发的方式,而且只支持一个谈天室。因为其他典型系统如电子邮件系统, FTP 系统均接受类似结构, WEB 服务系统本质上也是 C/S 系统,只不过其客户端是浏览器,接受了 HTTP 通信协议和HTML ,所以变成了 B/S 结构,可以认为是 C/S 的一个详细应用,其机理是相似的。2.2 需求分析2.2.1 功能需求分析系统的主要功能已在业务分析中有所介绍,在这里需要对每个功能从使用者
8、角度作较为详细的分析。很明显,整个系统的功能可以自然的分为客户端和服务器端。以下是主要用例描述一 客户端1 .注册(1) 客户启动程序,显示出登陆界面(2) 客户选择其中的注册按钮,系统显示注册界面( 3)客户填写用户名、密码、确认密码、性别、年龄、电子邮件,按确可编辑资料 - - - 欢迎下载精品名师归纳总结定按钮( 4)系统验证密码和确认密码是否相符、用户名(不能重复)、电子邮件格式、年龄(大于 10 小于 100)( 5)系统发送上述信息及“注册请求”到服务端,等待服务端返回“注册成功”消息(6) 系统提示注册成功(7) 系统返回登陆界面如验证失败,提示“重新输入”如服务端返回“注册失败
9、”,提示“注册失败”如服务端返回“注册失败用户名重名”,就提示“注册失败用户重名”。2. 登录(1) 客户启动程序,显示出登陆界面(2) 客户填写用户名、密码,服务器IP 的址,按登陆按钮(3) 系统验证用户名、密码,不能为空、密码字符长度为6-10( 4)系统发送用户名、密码及“登陆请求”到服务端,等待服务端返回“登录成功”消息(5)如成功系统显示客户端主界面(收发消息界面)如用户名、密码验证失败,系统提示。“用户名或密码错”,重复3 次如仍不能通过验证就客户端程序退出。如服务端返回“登录失败”,系统提示“用户名或密码错”。3. 发送信息( 1)在客户端主界面,用户输入消息,选择是群发仍是私
10、聊,如是私聊仍要选择对方用户名,按发送按钮(2)系统验证消息长度 ,私聊要求目的方用户名非空。( 3)系统发送信息及“接收消息请求”到服务器端,等待服务端返回“接收成功”消息(等待返回消息可省)。(4)系统提示信息已发送如发送不成功,就系统提示“发送失败”。4. 接收信息可编辑资料 - - - 欢迎下载精品名师归纳总结(1) 客户端系统启动,进入主界面后,会显示消息接收框(2) 其他客户或服务端系统本身发送消息过来,系统接收,分析确认是” 接收消息请求“,就分析提取出消息3 在消息接收框逐条显示发送者姓名、发送的消息。5 退出(1) 用户请求退出,按退出按钮(2) 系统确认用户退出(对话框)(
11、3) 系统发“退出请求”到服务端,等待服务端返回“退出成功”(等待返回消息可省)(4) 客户端系统关闭连接,程序退出二 服务器端1. 用户注册(1) 系统启动后,等待客户请求(2) 客户请求到,接受请求,分析确认是“注册请求”( 3)系统读取信息,分析并再次验证用户名、密码、确认密码、性别、年龄、电子邮件。(4) 系统依据用户名,在已有客户记录中查询,确认没有重名(5) 系统将用户名、密码、确认密码、性别、年龄、电子邮件信息储存(6) 系统向客户端发送“注册成功”消息(7) 系统在监控界面上写信息: xx 客户名 已注册 注册时间如重名,向客户端发“注册重名”消息如注册失败,向客户端发“注册失
12、败”消息2. 用户登录(1) 系统启动后,等待客户请求(2) 客户请求到,接受请求,分析确认是“登录请求”(3) 系统读取信息,验证用户名、密码是否存在(4) 系统验证是否已经登录(5) 系统验证用户是否已超过最大用户数(6) 系统将客户加入谈天室,通知其它客户“新用户加入”(7) 系统向客户端发送“登录成功”消息可编辑资料 - - - 欢迎下载精品名师归纳总结(8) 系统在监控界面上写信息:客户名:已登录登录时间如验证失败,向客户端发“验证失败”消息3. 发送信息(用于治理员向谈天者发送公告信息)(1)系统启动后,等待治理员请求( 2)治理员在监控界面输入消息,确定发送类型(群发仍是私聊),
13、如私聊仍需指定目的用户名,按发送按钮(3)系统读取信息,分析并确认是群发仍是私聊( 4)如是群发,就将信息发给谈天室内其它全部用户。如是私聊,就将消息发给指定的用户。(5)系统在监控界面上写信息:治理员 -消息如显现反常,提示“发送失败”。4 接收信息(1) 系统启动后,等待客户请求(2) 客户请求到,接受请求,分析确认是“接收信息请求”(3) 系统读取信息,分析并确认是群发仍是私聊(4) 如是群发,就将信息发给谈天室内其它全部用户(5) 系统向客户端发送“接收成功”消息 可省(6) 系统在监控界面上写信息: xx 客户名 -消息 群发/私聊如显现反常,向客户端发“接收失败”消息(可省)5 用
14、户退出(1) 系统启动后,等待客户请求(2) 客户请求到,接受请求,分析确认是“用户退出请求”(3) 系统从谈天室删除客户,并通知其它用户“客户退出”(4) 系统向客户端发“退出成功”(可省),关闭连接。谈天系统主要应用在局域网,在性能方面要求,客户到客户间消息传输时 间不大于 5s,传输牢靠性要求 95%的情形下,消息可以牢靠传到目的的,同时在线用户数量不小于 200。友情提示: 本需求分析只是分析了主要的用户使用情形,在对客户端进行分析时,谈天者是一个接口,服务方也是一个接口,在对服务端进行分析时,客户端是一个接口,服务方治理员是另一个接口。在接口处只关怀接口处的输入输出,并不关怀接口里面
15、是如何实现的。例如客户端登陆用例分析时,客户发 “登录请求”信息到服务端,此时只需关注服务方返回情形,所以只需等待猎取服务端返回信息,而无需知道服务方是如何处理的。服务方如何处理是在服可编辑资料 - - - 欢迎下载精品名师归纳总结务端登录用例中描述的。隐含需求的发觉。在登录用例中,客户和服务方都有登录用例,合作完成一个完整的登录过程,密码和用户名的验证一般都能想到,但限制用户数量, 同一用户不能重复登录就不太简洁想到,这里体会就会起作用,这是第一步, 想到了就要向客户提出(必要时说明),详细要不要做由客户准备,就是其次步。这里仍有一个度的把握,由于不行能任何情形都要向客户说明。体会如何来?学
16、习前人的体会并运用到自己的工程开发中,体会转化为自己的东西应当是个有效途径。优先级的划分。作为谈天系统,其主要功能就是谈天,客户间相互发送消息,所以优先级最高的是客户端的发送、接收、退出用例,服务器端的接收、退出用例。注册、登录用例次之。而公告、踢人、储存日志及谈天记录、个性化界面等又次之。优先级划分后,设计实现时,先做优先级高的,例如本系统,为了实现上述全部功能,可以分3 次迭代,第一次,实现高优先级的基本谈天功能,其次次实现注册和登录,第三次实现公告、踢人、储存日志及谈天 记录等。其核心是先实现最重要(用户观点)和最难的(开发者观点),这一 观点和日常思维相反,但却是有效防止风险和缺失的方
17、法,由于必需的和难度 大的一开头就实现不了的话,工程可以准时转变,否就等到最终才发觉了难以 解决而又必需解决的问题时,缺失就会更大。当然在攻克重难点时,又可以采 用由易到难的方法,逐步解决。一个是策略,一个是战术,思路相反,关键是 要运用得当。2.2.2 业务对象分析从上述的分析中,运用名词法,可以发觉出主要的业务对象:1 谈天者:属性:用户名、密码、确认密码、性别、年龄、电子邮件行为:登录、注册2 谈天客户端 :属性:消息、谈天者、界面行为:接收处理,发送处理、退出3 消息属性:消息类型、消息参数行为:创建消息、猎取消息类型、猎取消息参数4 服务器(相当于总服务台)属性: IP、端口、服务监
18、控、消息处理者行为:监听、创建消息处理者、创建服务监控5 服务监控属性:服务状态,消息,谈天者列表、界面行为:发送服务方消息、关闭服务器6 消息处理者(相当于服务员) 属性:连接( socket)、消息行为:处理消息 登录、注册、发送、接收、退出 ,收发消息友情提示: 业务对象是系统中对象的初步提炼,其属性和行为在后面仍会修可编辑资料 - - - 欢迎下载精品名师归纳总结改、变动,主要与业务相关,和详细的实现关系不大,是后面设计中业务类的基础,但实际类的数量或许会许多,由于在设计甚至在实现时都可能需要建立新的类以实现功能。不少讲分析设计的书并不提到这一步,而是在设计中直接给出类图,结果是一样的
19、,但反映不出这些类是如何来的,假如你留意过程,可以看一下本节,假如你留意结果,直接看设计实现中的相关内容。2.2.3 验收测试要求测试环境:客户及服务器机操作系统: Window XP,内存: 512M。客户端程序安装在客户机(至少2 台)上,通过以太网(网速至少10M)与服务器相连。前置条件:1 注册文件已创建但为空。2 客户及服务程序安装配置正确,能正常启动运行。3 客户程序与服务程序能通过网络互通。一 初始化数据1 客户端启动,进入注册界面,输入正确的注册数据,请求注册,查看服务端,看是否正确注册。2 重复 1,在另一客户端注册用户,留意不要重名。二 功能测试1 注册测试。( 1)测试重
20、名注册。进入注册界面输入重名用户名,其它正确, 请求注册。( 2)测试空输入,进入注册界面,直接按注册按钮。(3)测试口令的一样性,口令长度,年龄及邮箱的数据有效性(详细测试用例设计可参考需求分析及详细设计中的相关部分)。2 登录测试。( 1)输入正确的口令和密码,按登录按钮(2)空输入,直接按登录按钮。( 3)分别输入用户名不正确但密码正确,用户名正确但密码不正确,用户名和密码均不正确,应均不能正确登录。(4)以同一用户名重复登录一次测试( 1)( 3)时要查看服务端的显示3 发送接收测试。( 1)进入收发界面,群发一条消息,观看其它客户是否收到消息,观看服务器有无相应显示 (2)私聊一条消
21、息,观看指定用户是否收到消息( 3)无任何输入,直接按发送。( 4)退出系统,观看服务端显示,观看其它客户端是否已将该客户名删除。( 5)再启动客户端,登录进入收发界面,连续群发(至少 3 次),连续私聊(至少 3 次),再连续群发,观看其它客户及服务方的显示是否正确。三 牢靠性测试1切断一客户至服务器的网络连接,分别进行注册、登录消息,客户端应能给出提示,而不是死机或退出,在正常谈天过程中,切断一客户端网络连接,客户程序应能给出提示。再接通网路,连续发送信息,应能正常运行。至少关闭并重启程序后,应能正常收发。同时观看其它客户及服务器收发、客户列表是否正常。2在正常收发中,强行关闭服务器,观看
22、各客户端的反应。客户端应给动身可编辑资料 - - - 欢迎下载精品名师归纳总结送反常提示,不应退出或死机。四 性能测试(可选)编制一测试程序,作为客户端,登录进系统,向服务器按指定时间间隔群发消息。可同时启动多个发送线程(模拟多个客户),同时向服务器群发消息。看在 200 个模拟客户( 200 个发送线程),每 1s 一个消息的情形下,服务器能否中意客户到客户传输时间小于5s 的要求。也可以考虑使用JMeter 压力测试工具。2.3 系统设计2.3.1 总体设计一 系统总体结构总体设计阶段主要是确定系统的体系结构和主要模块,明显系统分客户端子系统和服务器子系统。系统体系结构如图2 所示:客户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA课程设计方案聊天室系统 JAVA 课程设计 方案 聊天室 系统
限制150内