您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页java聊天室详细设计文档

java聊天室详细设计文档

来源:爱go旅游网
目录

第一部分 项目概况

1.项目说

明„„„„„„„„„„„„„„„„„„„„„„„„„„„..4

2.项目背

景„„„„„„„„„„„„„„„„„„„„„„„„„„„..4

第二部分 项目计划

1. 项目目

标„„„„„„„„„„„„„„„„„„„„„„„„ „„„4

2. 项目范

围„„„„„„„„„„„„„„„„„„„„„„„„ „„„4

3. 项目策

略„„„„„„„„„„„„„„„„„„„„„„„„ „„„4

4. 项目开发周

期„„„„„„„„„„„„„„„„„„„„„„ „„„4

5. 每项任务所需技

能„„„„„„„„„„„„„„„„„„„„ „„. ..5

6. 所采用的工具和技术清

单„„„„„„„„„„„„„„„„„„„„.5

第三部分 项目设计

1 需求分

析„„„„„„„„„„„„„„„„„„„„„„„„„„„.5

2 软件功

能„„„„„„„„„„„„„„„„„„„„„„„„„„„.5

3 概要设

计„„„„„„„„„„„„„„„„„„„„„„„„„„„.6 4 详细设

计„„„„„„„„„„„„„„„„„„„„„„„„„„„.6

第四部分 项目测试

1. 测试阶段 2.程序界

面.„„„„„„„„„„„„„„„„„„„„„„„„„7 3.程序运行的条件 4.参考的资料

第五部分 活动总结

第一部分 项目概况

1.项目说明

项目名称:JAVA聊天室系统。 客 户:一般大众。

2、项目背景

软件学院两年多的办学历程中,采用了印度NIIT的先进教学法,学生从中极大地提高了专业知识能力,对于学生的动手能力也得到了明显的提高。为了进一步地考察学生的专业知识能力,让其能够明确自我专业知识水平,提高学习的兴趣,弄清专业发展方向,为以后的就业打好基础,现特向我院领导申请举办软件学院首届“软件科技月”活动。本次活动面向全校计算机爱好者,并且与成都多所高校及IT企业联合开展系列活动。活动以软件学院学生为主体对象,主张“接触IT企业,明确专业方向,苦修专业知识”。

第二部分 项目计划

1. 项目目标

(1),允许新用户注册,同时开设帐户。 (2),允许用户进行在线的公聊和私聊。 (3),可以创建留言版面并且留言。

(4),允许用户创建私人包间、查找包间并且在包间内聊天。 (5),可通过帐户ID号对用户资料进行查询。 (6),友好的欢迎界面并显示上次登陆时间。

2. 项目范围

本软件适用于一般大众。

3. 项目策略

通过可视化编程的JAVA程序和SQL数据库的方式进行实现。 通过增量开发的方法进行此项目的设计与开发。 使用套节字进行客户与服务端的通讯。

4.项目开发周期

第一周 第二周 第三周 第四周 需求分析及初步设计阶段(决定每个功能所需的类及数据类型) 根据相应功能设计出各类所用到的方法及数据类型 具体实现各个类中的各个方法 对各个界面和服务器进行调整及测试完善工作 5. 每项任务所需技能

数据库建立:熟练的SQL数据库编程。

服务端与客户端的连接:熟悉网络编程中的协议及数据流 程序界面设计:可视化编程技能。 代码实现:JAVA与数据库编程。

6. 所采用的工具

开发工具:Microsoft JAVALE(jdk1.3)+ Microsoft SQL Server 开发环境:windows2000+个人电脑

第三部分 项目设计

1.需求分析

随着经济的日益发展,网络的观念深入人心。人们越来越需要通过网络高效简捷的交流,聊天室就是其中的一个工具。

2.软件主要功能

(1),允许新用户注册,同时开设帐户。 (2),允许用户进行在线的公聊和私聊。 (3),可以创建留言版面并且留言。

(4),允许用户创建私人包间、查找包间并且在包间内聊天。 (5),可通过帐户ID号对用户资料进行查询。 (6),友好的欢迎界面并显示上次登陆时间。

程序中要用到的类

1、客户端 BaojianNew >>创建包间 BaoJianFind >>查找包间加入包间 BaoJianEnter >>进入包间 BaoJianQu >>包间区聊天 NewPanel >>界面背景图处理 PrivateMessage >>私聊功能 UserFind >> 查找用户功能 Register >> 注册功能 EnterGUI >> 登陆功能 ChatRoom >> 公共聊天功能 LiuYan >>留言板 SocketConstants>>接口(包含服务端IP地址,以及自定义端口号#6655)

2、服务端 Server >>处理聊天内容

三、设计细节与构造

(一) 编写服务端程序

(1) 问题陈述

需要在JAVA中开发一个中间层服务器应用程序,其功能如下:

a.接受用户注册信息并保存在一个表中(需连接数据库). b.执行用户的设定的查找功能.

c.能够允许注册过的用户登陆聊天界面并可以聊天. d.能够接受私聊信息并发送给特定的用户

e.能够接受用户创建的包间信息并保存到一张表中BaoJian f.能够允许用户查找,登陆,加入包间并进行聊天 g.能够接受用户的留言,并保存到以用户名为文件名的文件内

h.服务器运行在自定义的端口上#1001.

(2) 计划解答

a. 选择创建网络服务器应用程序所需引用的类和方法。 b、确定用户自定义的类、他们的目的、方法。 c、确定用户自定义的类中的数据类型和变量。

d、确定服务器的IP地址和端口号。 e、确定何时连接到数据库中。 f、确定查询参数。 g、确定要处理的例外。 h、确定例外的出错信息。

任务a. 选择创建网络服务器应用程序所需引用的类和方法。 任务 解答结果 来源 类 方法 选Serversocket accept () 择创建Thread Start(),run() 网络服Socket getInputStream(),getOutputstream() 务器应ObjectInputStream readObject() 用程序ObjectOutputStream writeObject() 所需引BufferedReader readLine() 用的类Vector addElement(),removeElement() 和方法。

任务b、确定用户自定义的类、他们的目的、方法。 任务 解结果 答来源 确 类 目的 方法 定用户Serversocket 监听run(), ServerSocket() 自定义客户的类、请求 他们的Connect 处理Connect(),enter(),register(),find() 目的、客户send(), enter(), time() 方法。 端的各种操作 Members 保留 申请人信息 BaoJian Applicant 保留包间信息 保留留言信息

任务c、确定用户自定义的类中的数据类型和变量。 任务 解结果 答来源 确 类 数据类型 变量 定用Serversocket ServerSocket Server 户自Socket FromClient 定义Thread serverThread 的类Connect Members data 中的ObjectInputStream ObjIn 数据ObjectOutputStream streamFromClient 类型PrintStream out 和变BufferedReader in 量。 String user StringBuffer Vector Vector Vector Vector Result String String String String String String String String String String String String vmessage vprivate,vprivatemessage vbaojian,vbaojianmessage vbaojianClient vpeople result2 memberID; memberName; memberPassword; memberSex; memberAddress; memberPosition; memberAge; memberInterest; BaoJianID BaoJianName; BaoJianMiaoShu; utxt Members BaoJian Applicant

任务d、确定服务器的IP地址和端口号。 任务 解答来源 结果 确定服务器的 IP地址:本机IP地址 IP地址和端口号。 端口:1001

任务e、确定何时连接到数据库中。 任务 解答来源 结果 确 (1) 当用户注册时,插入注册信息 定何时连接到数据(2) 当用户登陆时,检验是否存在ID 库中。 (3) 当用户查找时,选出有关信息 (4) 当用户创建,查找,加入,进入包间时 任务f、确定查询参数。 任务 解答来源 确定查询参数。 结果 vMemberPassword,vMemberName,vBaoJianID 任务g、确定要处理的例外。 任务 解答结果 来源 确定要 例外 处理的Exception 例外。 IOException InvalidClassException NotSerializableException 任务h、确定例外的出错信息。 任务 解答结果 来源 确定 例外 发生场合 创建Thread对象时, 当调用accept()方法时, 当调用getInputStream() 以及getOutputStream()方法时, 当调用writeObject(),println (),readLine()方法时当连接数据库时 当调用readObject()方法时 当调用readObject()方法时 当调用readObject()方法时 出错信息 例外的出错信息。 Exception IOException InvalidClassException NotSerializableException \"Cannot start the Thread\" \"not listen to the client\" \"the wrong is this :\"+e \"the wrong is here :\"+e \"the wrong is here2 :\"+e \"the wrong is here3 :\"+e \"the wrong .......... :\"+e \"cannot read from client :\"+e \"cannot write the vmessage\"+e \"cannot serialize Members class\"+e \"Object is not serializable\"+e

(3) 实施解答

a. 编写服务器程序 b. 保存程序 c. 编译程序 d. 运行程序

(4)验证解答: 在创建好客户端后进行验证.

(二) 编写客户端程序

1、编写注册界面程序

(1) 问题陈述:

编写一个客户端程序将用户注册的信息发送给服务端.

(2) 计划解答

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

任务a.选择创建该程序所需要引用的类和方法 任解结果 务 答来源 选 类 择创Socket 建ObjectOutputStream 该PrintStream 程BufferedReader 序ObjectInputStream 所 PrintStream 需out=null; 要 BufferedReader 引in=null; 用 ObjectInputStream 的objIn; O类bjectOutputStream 和objOut=n Print方Stream 法 out=null; BufferedReader in=null; ObjectInputStream objIn; ObjectOutputStream objOut=n PrintStream out=nu BufferedReader 任务b.确定用户自定义的包、类、它们的目的及方法 任务 解答来结果 源 .确定用户 类 目的 自定义的Members 保留申请人信包、类、它息 们的目的及Register 实现界面及功方法 能 方法 getOutputStream() writeObject() println(); readLine(); readObject(); 方法 openRegister() main() register() actionPerformed() 任务c.确定用户定义类中的数据类型和变量 任务 解答来结果 确定用户定义类中的数据类型和变量 源 类 Members 数据类型 String String String String String String String String Socket ObjectOutputStream 以及其中的许多空控件 变量 memberID; memberName; memberPassword; memberSex; memberAddress; memberPosition; memberAge; memberInterest; ClientSocket objOut Register 任务d.确定建立连接时服务器的IP地址和端口号 任务 解答来源 结果 d.确定建立连接时服务 IP地址:本机IP地址 器的IP地址和端口号 端口号:1001 任务e.确定提交到服务器上的数据 任务 解答来源 e.确定提交到服务器上的 数据 任务f.确定何时提交数据 任务 解答来源 确定何时提交数据 结果 Members类中的一个对象 结果 点击buttonHandIn按钮时 任务g.确定要处理的例外 任务 解答来结果 源 .确定要处理 例外 的例外 InvalidClassException NotSerializableException IOException 发生场合 当调用writeObject()方法时 当调用writeObject()方法时 当调用writeObject()方法时 任务h.确定例外的出错信息 任务 解答结果 来源 确定 例外 出错信息 例外的出错信息

InvalidClassException \"The RegisterApply class is NotSerializableException invalid :\"+e1 IOException \"The object is not serializable :\"+e2 \"Cannot write to the server :\"+e3 (3) 实施解答 (4) 验证解答 2、编写查找界面程序

(1) 问题陈述

编写一个查找界面的程序,将信息显示在文本框内. (2) 计划解答(略) (3) 实施解答

a. 编写注册界面程序 b. 保存程序 c. 编译程序 d. 运行程序

(4) 验证解答:输入一个已经注册的ID执行后看有关信息是否

显示;

输入一个没有注册的ID执行后看其效果;

3、编写登陆界面程序

(1) 问题陈述 (2)计划解答(略)

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

(2) 实施解答

a. 编写注册界面程序

b. 保存程序 c. 编译程序 d. 运行程序 (4)验证解答 4、编写聊天界面程序

(1)问题陈述 (2)计划解答

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

任务a.选择创建该程序所需要引用的类和方法 任务 解答结果 来源 选择创建该 类 程序所需要Thread 引用的类和Socket 方法 PrintStream BufferedReader ObjectInputStream ObjectOutputStream Vector Timer 方法 run() getInputStream(),get„„.. println() readLine(); readObject(); writeObject() elementAt(),size() .start(),actionPerformed 任务b.确定用户自定义的包、类、它们的目的及方法 任务 解答结果 来源 确定 包 类 目的 方法 用户自定义的包、类、它们的目的及方法

ChartingRoom.Room Room TimeAction 处理消息的 发送定时地接受消息并显示在文本区内 main() OpenRoom() actionPerformed() run() actionPerformed() 任务c.确定用户定义类中的数据类型和变量 任务 解答来结果 源 确定用户定 数据类型 义类中的数据类型和变Socket 量 PrintStream BufferedReader ObjectInputStream Vector String Int 变量 clientSocket,time clientSocket out, timeout in, timein; objIn,timeobjIn; vmessage,vpeople sDate,sTime,sStatus; countmessage,countpeople 任务d.确定建立连接时服务器的IP地址和端口号 任务 解答来源 结果 确定建立连接时服务器 IP地址:本机IP地址 的 端口号:6655 IP地址和端口号 任务e.确定提交到服务器上的数据 任务 解答来源 确定提交到服务器上的 数据 任务f.确定何时提交数据 任务 解答来源 确定何时提交数据 任务g.确定要处理的例外 任务 解答来结果 结果 发送区内地消息 结果 当点击按钮 ”send” 确定要处理的例外

源 例外 InvalidClassException NotSerializableException IOException Exception InterruptedException 发生场合 接受消息时 接受消息时 接受消息时 Timer 启动时 时间线程启动时 任务h.确定例外的出错信息 任务 解答来源 确定InvalidClassException 例外NotSerializableException 的出IOException 错信Exception 息 InterruptedException (3)实施解答

结果 \"The RegisterApply class is invalid :\"+e \"The object is not serializable :\"+e \"Cannot write to the server :\"+e \"Timer has wrong \"+ e6 Timer println(e) a. 编写注册界面程序 b. 保存程序 c. 编译程序 d. 运行程序 (4)验证解答

5.编写登陆界面程序

( 1 ) 问题陈述 (2)计划解答(略)

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

(3) 实施解答

a. 编写包间界面程序 b. 保存程序 c. 编译程序

d. 运行程序

6. 编写创建包间界面程序

( 1 ) 问题陈述 (2)计划解答(略)

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

(4) 实施解答

a. 编写注册界面程序 b. 保存程序 c. 编译程序 d. 运行程序

7.编写查找包间界面程序

i. 问题陈述

(2)计划解答(略)

a.选择创建该程序所需要引用的类和方法 b.确定用户自定义的包、类、它们的目的及方法 c.确定用户定义类中的数据类型和变量 d.确定建立连接时服务器的IP地址和端口号 e.确定提交到服务器上的数据 f.确定何时提交数据 g.确定要处理的例外 h.确定例外的出错信息

ii. 实施解答

a. 编写注册界面程序 b. 保存程序 c. 编译程序 d. 运行程序

8. 入包间以及在包间内聊天(略)

9. 私聊界面(略) 10.留言界面(略)

控制 条件 按钮"发送" None 按钮"查找" None 按钮"退出" None TimeAction None 值 预期结果 实际结果 被点击 消息显示 YES 被点击 打开查找YES 界面 被点击 退出 在用户列表中清除了用户名 自动执不断更新YES 行 消息 被点击 被点击 被点击 被点击 被点击 被双击 按下Enter键 YES YES YES YES 结论 OK OK OK 整理 OK OK OK OK OK OK OK OK OK 菜单“留言” None 菜单“界面 None 菜单项“创建” None 菜单项“查找” None 菜单项“进入” None 用户列表 发送区 None None 打开包间界面 打开私聊界面 发送信息 OK OKOK----- ----- OK---- OK--- OK---- OK--- OK OK OK

2、注册界面 控制 条件 按钮“Register” 按钮“ReWrite” 按钮“GoOut”

3、登陆界面 控制 条件 值 预期结果 实际结果 结论 整值 预期结果 实际结果 结论 插入表中 YES 清除内容 YES 退出 YES OK OK OK 整理 OK OK OK 表中没有被点击 同一ID None 被点击 None 被点击 按钮”Enter” 表中存在ID并且Password正确 按None 钮”Register” 按None 钮”ReWrite” 按钮”GoOut” None 4、查找界面 控制 条件 按钮“Find” 表中存在ID 按钮”GoOut” None 被点击 进入聊天室,并且 名字显示在标题上 被点击 进入注册界面 被点击 清除所填内容 被点击 退出 YES OK 理 OK YES YES YES OK OK OK OK OK OK 整理 OK OK 值 被点击 预期结果 实际结果 结论 显示出查找用户的信息 退出 YES OK 被点击 YES OK 5.私聊界面

控制 按钮 “回复 按钮”返回“ 发送区 Timer对象 条件 值 发送信息 被点击 None 被点击 预期结果 退出 实际结果 结论 整理 YES OK OK YES OK OK Enter键 发送 定时接受 自动 接受信+显示 6.包间聊界面(与私聊界面相似) 控制 条件 值 预期结果 按钮 “回复 发送信息 被点击 按钮”返回None 被点击 退出 “ 发送区 Enter键 发送 Timer对象 定时接受 自动 接受信+显示 7.包间查找创建界面(略) 8.留言界面 控制 条件 值 被点击 实际结果 结论 整理 YES OK OK YES OK OK 预期结果 实际结果 结论 提交信息 YES OK 按钮“提交” None 整理 OK 按钮”返回” None 被点击 退出 YES OK OK

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务