仿QQ聊天程序

仿QQ聊天程序

转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907

一、设计内容及要求

1.1综述

A.系统概述

我们要做的就是类似QQ这样的面向企业内部的聊天软件,基本功能和QQ类似。首先,系统分为两大部分,第一部分是客户端,是用户使用的部分,第二部分就是服务器,所有的客户端都是通过服务器来进行用户身份验证及聊天转接的。客户端提供主要的界面及服务请求,如:登录界面、注册界面、找回密码界面、主窗体界面、聊天界面、信息查看界面等。客户端主要提供服务请求界面,核心的业务逻辑处理主要由服务器提供,并向客户端发送请求的结果。同时,服务器要能提供服务的开启、关闭功能及查看在线人数及客户端登录日志。

人员组成及分工

张XX(组长):负责整体的架构设计、后台数据库及通信部分。

房 X(组员):聊天界面、注册界面、登录界面、找回密码、及其业务逻辑。

高 X(组员):主窗体界面、信息查看及其业务逻辑。

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)服务器:监控登录信息及在线用户信息,接收客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。服务器负责处理核心的业务逻辑,并负责连接数据库,保存和读取数据。因此,服务器端设计的好坏也直接影响即时通信软件的质量。

 

用例描述

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)客户端:

  • 41
    点赞
  • 170
    收藏
    觉得还不错? 一键收藏
  • 46
    评论
表结构 数据库表结构设计方案,仅供参考 User用户表( User(--用户表 " " " " " "字段 "字段类型 "字段描述 "备注 " "U_ID "Int " "主键、自增 " "U_LoginID "Varchar(20 "(登陆账号) " " " ") " " " "U_NickName "Varchar(20 "(昵称) " " " ") " " " "U_PassWord "Varchar(20 "(密码) " " " ") " " " "U_SignaTure "Varchar(150"(个性签名) "Null " " ") " " " "U_Sex "Bit "(性别) "Null " "U_Birthday "Datetime "(生日) "Null " "U_Telephone "Varchar(30 "(电话) "Null " " ") " " " "U_Name "Varchar(30 "(真实姓名) "Null " " ") " " " "U_Email "Varchar(50 "(邮箱) "Null " " ") " " " "U_Intro "Varchar(300"(简介) "Null " " ") " " " "U_HeadPortrait "Varchar(100"(头像) " " " ") " " " "U_ShengXiao "Char(2) "生肖 "Null " "U_Age "Int "年龄 "Null " "U_Constellation "Char(6) "星座 "Null " "U_BloodType "Varchar(10 "血型 "Null " " ") " " " "U_SchoolTag "Varchar(50 "毕业学校 "Null " " ") " " " "U_Vocation "Varchar(30 "(职业) "Null " " ") " " " "U_NationID "Int "(国家ID) "外键 " "U_ProvinceID "Int "(省份ID) "外键 " "U_CityID "Int "(城市ID) "外键 " "U_FriendshipPolicy"Int "好友策略ID "外键 " "ID " " " " "U_UserStateID "Int "(用户状态ID) "外键 " "U_FriendPolicyQues"Varchar(30) "好友策略问题 "Null " "tion " " " " "U_FriendPolicyAnsw"Varchar(30 "好友策略答案 "Null " "er ") " " " "U_FriendPolicyPass"Varchar(30 "好友策略密码 "Null " "word ") " " " ) UserState(--用户状态表 "字段 "字段类型 "字段描述 "备注 " "US_ID "Int "(ID) "主键 " "US _Name "Varchar(10) "(状态名字) " " " " " " " ) Friends(--好友表 "字段 "字段类型 "字段描述 "备注 " "F_ID "Int "主键ID "主键 " "F_FirendID "Int "朋友的ID "外键 " "F_UserID "Int "自己的ID "外键 " "F_Name "Varchar(30) "备注昵称 "Null " "F_FriendTypeID "Int "(好友类型) "外键 " "F_FriendGroupsID"Int "(所属分组ID) "外键 " " " " " " ) User_FriendshipPolicy(--添加好友策略 "字段 "字段类型 "字段描述 "备注 " "U_FP_ID主键 "Int "策略ID "主键 " "U_FriendshipPol"varchar "好友添加方式 " " "icy " " " " ) FriendGroups(--好友分组表 "字段 "字段类型 "字段描述 "备注 " "FG_ID "Int "(分组ID) "主键 " "FG_Name "Varchar "(分组名字) " " "FG_UserID "Int "用户ID "外键 " ) FriendType (--好友类型 "字段 "字段类型 "字段描述 "备注 " "FT_ID "Int "(类型ID) "主键 " "FT_Name "Varchar(20) "(类型名称) " " ) Messages(--聊天记录表 "字段 "字段类型 "字段描述 "备注 " "M_ID "Int "(消息ID) "主键,自增 " "M_PostMessages "Text "(消息内容)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值