仿QQ聊天软件2.0版
转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907
上次课设做了Java版的仿QQ聊天程序,这次软件实训,我们继续完善了仿QQ聊天程序,将上次未完成及不完善的地方进行完善和改进,还新加了部分功能:表情输入、气泡模式、文件传输、截屏、语音聊天。逐步向QQ的基本功能靠齐。通过这次软件实训,又有了很多收获。
一、设计内容及要求
1.1综述
A.系统概述
我们要做的就是类似QQ这样的面向企业内部的聊天软件,基本功能和QQ类似。首先,系统分为两大部分,第一部分是客户端,是用户使用的部分,第二部分就是服务器,所有的客户端都是通过服务器来进行用户身份验证及聊天转接的。客户端提供主要的界面及服务请求,如:登录界面、注册界面、找回密码界面、主窗体界面、聊天界面、信息查看界面等。客户端主要提供服务请求界面,核心的业务逻辑处理主要由服务器提供,并向客户端发送请求的结果。同时,服务器要能提供服务的开启、关闭功能及查看在线人数及客户端登录日志。
人员组成及分工
张亚超(组长):负责整体的架构设计、后台数据库及通信部分。
房 鑫(组员):聊天界面、注册界面、登录界面、找回密码、表情输入及字体设置。
高 明(组员):主窗体界面、信息查看及文件传输。
苟周平(组员):截屏传输、语音聊天
B.要求
1).小组成员必须按时完成各自的任务。
2).设计上与技术上有问题的先自行解决(看书、上网查),如不能解决的集体讨论解决。有其它的问题及时提出来!
3).必须写文档(写把各自模块的整体设计用UML图或Viso画的图(尽量不要只是简单的语言叙述)表达出来),学会用面向对象的思想来来设计,采用模块化的思想分解模块。(设计原则与设计模式能用的用)
4).每个类必须有类说明,每个函数也必须有函数说明,函数的具体设计也必须有必要的注释。
5).如果不能遵守规定或要求的可以提前退出,不强留。
(注:即使不会写代码,也没关系,只要一能用UML图或其他的图等表达出自己的设计思想及具体的实现设计也行)
C.开发环境
运行环境:Myeclipse集成开发环境,jdk 1.6版本。
使用语言:Java语言。
使用数据库:Oracle数据库。
1.2需求分析
需求背景
即时通信软件为我们提供了诸多的方便,使我们逐步享受信息时代的便捷。大家最熟悉的即时通信软件就是QQ了,因为它几乎已经融入了我们每个人的日常生活。没有了QQ,没有了手机,我们或许真的“活不了了”。由此可见,生活在信息时代的人们对即时通信、聊天软件有巨大的需求,这样的软件也将为我们节省大量的时间和金钱,或许还能成为我们发家致富的工具,比如:产品的推介、售后服务及技术交流等。
然而,既然已经有了QQ如此强大的即时通信软件,我们再去做这样的软件还有什么竞争力吗?QQ已经深入人心,要想再去做可能没有任何竞争力。此时,我们可以换一个角度,调整用户对象。如今,企业内部信息在这个信息时代就是金钱,尤其是一些大企业的内部信息,如果这些信息泄露,可能会造成巨大的经济损失,甚至将导致企业破产。但是,为了便捷企业员工之间的交流,做这样的一个企业内部即时通信、聊天软件还是很有市场的。我们的目标就是做的像QQ,但面向企业内部使用。
企业内部为了方便员工之间便捷的交流,需要开发一款适合企业内部员工进行即时通信的软件,这样的软件既满足了企业内部员工之间便捷的交流,同时,也防止企业内部信息的外流,开发这样一块面向企业内部的即时通信软件,对于企业来说获益良多。
在开发这款软件时,为了使习惯了使用QQ的用户,更加方便的使用本软件,我们将很大程度上,模仿QQ的用户界面设计,以适应用户的使用习惯,方便用户使用。
功能需求
1)客户端:提供登录、主窗体及聊天等界面及对应的业务逻辑,向服务器发送相应的服务请求,并接受相应的处理结果。客户端是轻量级的软件,只负责链接远程服务器,并发出相应的服务请求,并不进行核心业务逻辑的处理。具体的处理交给服务器,而客户端只接收服务器处理的结果并显示给用户。
2)服务器:监控登录信息及在线用户信息,接收客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。服务器负责处理核心的业务逻辑,并负责连接数据库,保存和读取数据。因此,服务器端设计的好坏也直接影响即时通信软件的质量。
3)各项功能需求:
1.登陆:用户通过QQ号和密码登录。
2.注册账号:用户要先注册账户才能登录聊天。
3.好友聊天:这是最基本也是最主要的功能,可以发送文字、表情等。
4.找回密码:为了避免用户忘记密码而无法登录。
5.查看个人和好友信息:可以查看用户的个人信息。
6.查找添加删除好友:查找好友可以添加,删除好友用于剔除用户。
7.截屏并传输:截取用户屏幕截图并传输。
8.发送文件:可以发送用户文件。
9.语音聊天:可以实时进行语音聊天。
用例描述
1)客户端:
图 1-1 客户端用例图
2)服务器:
图 1-2 服务器端用例图
二、设计原理及方案
2.1总体设计
系统架构设计
1)采用MVC架构模式
客户端:
A. 包view(视图、界面层):只负责界面的显示。
B. 包business(业务逻辑层):核心业务的处理。
C. 包data (数据访问层):读写数据、接收发送数据。
服务器:
A. 包view(视图、界面层):只负责界面的显示。
B. 包business(业务逻辑层):核心业务的处理。
C. 包data (数据访问层):读写数据、接收发送数据。
2) 文件组织
A. 客户端:
图2-1 客户端文件组织结构
B. 服务器:
图2-2 服务器文件组织结构
3) 采用基于网路的三层C/S模式
图2-3 基于C/S的模式图
功能模块设计
1)客户端:
图2-4 客户端功能模块图
2)服务器:
图3-5 服务器功能模块图
数据库设计
1)概念结构设计