目录
1 系统概述... 1
2 需求分析... 2
2.1 ER图... 2
2.2 数据流图(分层)... 3
2.3 状态转换图... 4
2.4 数据字典... 5
3系统设计... 7
3.1总体设计... 7
3.2 详细设计... 8
3.3服务器模块的代码:... 9
4 测试报告... 11
5 总结... 15
6.参考文献... 15
1 系统概述
该网络聊天室程序支持局域网内以及本机的聊天,拥有客户端,服务器。用户通过客户端启动程序,使用需要先进行注册账号,接着用已注册的账号登陆到聊天室。聊天室中,用户可以选择对象进行私人聊天,同时用户也可以把自己的聊天信息保存下来。服务器负责接收用户的登陆与注册请求,并把用户的信息以及聊天的信息存储在Mysql数据库中。
2 需求分析
2.1 ER图
聊天系统E-R图
2.2 数据流图(分层)
首先,建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换.
根据聊天室系统与外部环境的关系确定顶级数据流图中的外部实体有两个,分别是:用户和服务器
------------0层-----------
聊天子功能的数据流图
---------------1层-------------
2.3 状态转换图
2.4 数据字典
3系统设计
3.1总体设计
聊天室系统的HIPO图如下:
3.2 详细设计
服务器模块的的PAD图
聊天系统使用mysql数据库,系统中新建chattingroom数据库,f拥有用户信息表users,该表格式如下
name: varchar(20)
password:varchar(20)
sex:varchar(2)
age:varchar(3)
mail:varchar(20)
如下图所示:
3.3服务器模块的代码:
主程序入口
public class ChatClient
{
public ChatClient()
{
}
public static void main(String args[])
{
new Login();
}
}
信息封装
import java.io.Serializable;
import java.util.Vector;
class Customer implements Serializable
{
private static final long serialVersionUID = 1L;
String custName;
String custPassword;
}
//封装注册信息
class Register_Customer extends Object implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
String custName;
String custPassword;
String age;
String sex;
String email;
}
@SuppressWarnings("serial")
//用于发送聊天和在线用户的信息
class Message implements Serializable
{
@SuppressWarnings("unchecked")
Vector userOnLine;
@SuppressWarnings("unchecked")
Vector chat;
}
//聊天信息序列化
@SuppressWarnings("serial")
class Chat implements Serializable
{
String chatUser;
String chatMessage;
String chatToUser;
boolean whisper;
}
//退出信息序列化
@SuppressWarnings("serial")
class Exit1 implements Serializable
{
String exitname;
}
4 测试报告
测试方法:考虑到各种因素和条件的限制,对聊天系统采用黑盒测试方案,即根据软件所需要的输入数据的格式以及应该完成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条件设计一些便捷测试用例,检查系统是否能正确地完成预期功能,得要希望的输出;或是对不合法的输入和操作能够正确地识别和防御。对个别重要的模块辅以白盒测试,以保证系统的正确性。
测试过程:
登陆模块测试:
(1)当用户名不存在时
(2)用户密码输入错误时
在1,2两种情况中用户无法登陆,系统提示登陆错误,结果如下图所示:
(3)在用户名或者密码为空时,结果如下图
注册模块测试:
(1) 用户名或者某一项为空值的时候,结果如下图
(2) 当注册的用户名已经存在时:
(3)当两次输入密码不一致的时候,结果如下图所示:
(3)当邮箱输入不规范时,结果如下图所示
聊天室模块测试
(1) 对所有人聊天,结果如下图所示
(2) 当有多用户在线时,测试私聊系统
5 总结
在这次聊天室的设计过程中,进行了界面的设计以及数据库的连接,界面方面基本能够满足需求,在数据库的选择上,选用了mysql数据库。通过这次课程设计,对一个完整软件的开发过程有了深刻的理解,并且对软件工程这门学科以及团队合作有了更好的认知。
6.参考文献