完整版手机聊天室设计与开发说明书毕业设计论文.docx

上传人:b****5 文档编号:8525816 上传时间:2023-01-31 格式:DOCX 页数:14 大小:27.64KB
下载 相关 举报
完整版手机聊天室设计与开发说明书毕业设计论文.docx_第1页
第1页 / 共14页
完整版手机聊天室设计与开发说明书毕业设计论文.docx_第2页
第2页 / 共14页
完整版手机聊天室设计与开发说明书毕业设计论文.docx_第3页
第3页 / 共14页
完整版手机聊天室设计与开发说明书毕业设计论文.docx_第4页
第4页 / 共14页
完整版手机聊天室设计与开发说明书毕业设计论文.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

完整版手机聊天室设计与开发说明书毕业设计论文.docx

《完整版手机聊天室设计与开发说明书毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版手机聊天室设计与开发说明书毕业设计论文.docx(14页珍藏版)》请在冰豆网上搜索。

完整版手机聊天室设计与开发说明书毕业设计论文.docx

完整版手机聊天室设计与开发说明书毕业设计论文

优秀论文审核通过

未经允许切勿外传

 

毕业设计说明书

手机聊天室设计与开发

 

学生姓名:

学号:

学院:

专业:

指导教师:

2011年6月

手机聊天室设计与开发

摘要

网络聊天室是一种应用广泛网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想项目。

可以使用多种编程语言设计和开发出功能完善的网络聊天室。

本毕业设计论文介绍用JAVA语言设计和实现一个手机网络聊天室的过程,本系统采用CS架构设计,整个项目分为服务器端和客户端。

使用了最新的Java2标准Swing组件,开发出简洁美观和布局合理的用户和服务器界面;利用Socket网络开发技术实现客户端和服务器端的连接访问,实现网络功能;通过对数据流操作的合理设计,实现信息传递、接受和数据保存。

同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。

完整的实现系统的功能。

通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完成系统的完整开发。

关键词:

聊天室;Java;应用程序;Swing组件;Socket技术

Designanddevelopmentofmobilechatrooms

Abstract

Thenetworkchatroomisakindofappliedextensivenetworkchatmethod,operateineaseandthefunctionisabundant,ItcanbeusedasagoodcaseforlearningofjavadesignlanguageandtheObject-OrientedProgramminglanguage,Thereismanyprogramminglanguageofdesigntodevelopanetworkchatroomwithperfectfunction.

Thisgraduationthesisofdesignintroductionandcarryoutnetworkchatroom,ThesystemadoptiontheCSstructuredesign,thewholesystemisdividedintotheserverandclient.UsedstandardmodulesofSwingoflatestJava2,developasimpleanddirectbeautyuserinterface,WemakeuseoftheSockettechnologytointerconnecttheserverandclientbynet-work;organizethedatabygooddesignofdatastreamtosentoracceptthemessagebetweenusersandtorecordthemessageforever;wealsousethemulti-threadmulti-actiontomaketheprogramwithmanyfunction.

I;swingcomponent;socket

目录

1引言5

2需求分析5

2.1编写目的5

2.2研究背景5

2.3定义6

2.4任务概述6

2.4.1开发目标6

2.4.2应用目标6

2.5功能需求7

2.5.1功能描述7

2.6相关需求7

2.6.1硬件接口7

2.6.2软件接口8

2.7质量性能需求8

2.7.1容错性需求8

2.7.2稳定性需求8

2.7.3 软件设计可靠性8

2.7.4 安全性9

2.7.5扩展性9

2.7.6易用性9

3概要设计9

3.1编写目的9

3.2定义9

3.3总体设计10

3.4主要模块描述及流程图10

3.4.1模块描述10

3.4.2主流程图12

4详细设计12

4.1编写目的12

4.2聊天室服务器端设置13

4.2.1ServerSocketConnection接口的使用13

4.3聊天室客户端设置14

4.3.1SocketConnection接口的使用14

5编码打包15

6系统测试15

6.1测试举例15

6.1.1测试程序登陆界面15

6.1.2测试程序主界面15

6.1.3测试程序退出16

6.2测试项目16

6.2.1单元测试16

6.2.2组合测试17

6.2.3确认测试17

6.2.4系统测试17

6.2.5用户验收测试17

6.3测试方法18

7缺陷与完善18

7.1软件存在的问题18

7.2界面变得更加美观18

8结论19

参考文献20

致谢21

1引言

手机及其他无线设备在给人们带来便利的同时,自身的一些缺陷也影响了其发展:

出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。

Sun公司倡导的J2ME技术,在通信、娱乐等应用上产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。

随着J2ME技术的不断发展,它获得了手机制造商越来越广泛的支持。

利用J2ME平台可以为手机提供很好的扩展选择。

J2ME为Java技术的一部分,是专门为移动设备设计的Java平台,其应用程序可以运行在不同制造商的不同设备上,充分体现了Sun公司倡导的“一次编写,随处运行”的理念。

它以其不断发展的技术优势获得了手机制造商越来越广泛的支持。

J2ME平台被认为是当前移动开发领域中最杰出的手机程序开发平台之一,它已被开发者、设备制造商、网络通信公司和消费者广泛接受。

针对现有手机短信业务存在的无法提供多人之间交流的不足,本文利用J2ME提供的聊天通信功能,开发一套简单的手机网络聊天系统,实现多人聊天功能。

2需求分析

2.1编写目的

明确用户对手机聊天室的功能需求和性能需求,并将这些需求用规范化的语言和规范化的结构完整、准确地表达清楚,以此统一软件开发者和用户对该软件的理解和认识,并使用户了解工作流程。

需求分析是整个软件开发的依据,它对以后阶段的工作起指导作用。

本章也是项目完成后系统验收的依据。

2.2研究背景

随着手机的日益普及,短信业务的一些缺点也日益显现:

(1)不能实现一条短信发送到多个不同号码(一些手机上的群发功能只是将短信反复发送,实际仍需反复计费)。

(2)短信长度限制(一般为70个汉字或140个字母)限制了用户的使用。

本文针对上述短信业务的不足,利用手机能够方便接入无线网络的优势,设计了一套手机聊天系统。

这套系统通过GPRS网络发送信息(信息无长度限制),然后由服务器对消息进行转发(不再对发送方产生费用),实现了多人之间较为便捷的交流。

2.3定义

需求:

用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。

2.4任务概述

2.4.1开发目标

手机网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使用J2ME的技术,要求实现一个手机收发消息的应用软件,该软件采用J2ME技术实现软件的流程控制、逻辑处理和记录存储等功能。

基本功能包括:

服务器端开发,客户端开发,尽量添加一些辅助性的功能以使功能更完美。

使用Swing组件技术,实现网络的功能使用SocketServerSocket技术,实现数据的保存使用JDBC数据库连接和操作技术,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。

所以该项目可以使自己在JAVA技术方面得到全面应用,使自己项目开发能力的一个很好体现。

2.4.2应用目标

应用目标:

实现一个手机收发消息的应用软件,该软件采用J2ME技术实现软件的流程控制、逻辑处理和记录存储等功能。

2.5功能需求

2.5.1功能描述

基于J2ME的手机客户端程序支持建立网络连接、传送请求和远程访问服务器,是直接与用户交互的平台。

而服务器端用于接收客户端的请求,执行与数据库的通信,并完成后台逻辑的运算,最后将处理结果返回给手机客户端。

本系统是java基于cs模式的聊天室程序。

聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。

(1)服务器端的主要功能有:

a.在特定端口上进行侦听,等待客户端连接。

b.用户可以配置服务器的侦听端口,默认是8888。

c.可以向已经连接的客户端发送体统消息。

d.统计在线人数。

e.停止服务时,断开所有的用户连接。

(2)客户端的主要功能有:

a.连接到已经开启聊天服务的服务端。

b.用户可以配置要连接的服务器IP地址和端口号。

c.用户可以配置连接后的用户名。

d.服务器开启时,用户可以随时登录与注消。

c.用户可以想所有的人或者指定的个人发送消息。

2.6相关需求

2.6.1硬件接口

不需要特定的硬件或硬件接口进行支撑。

2.6.2软件接口

开发环境:

windows(XPvistawin7)+Eclipse+EclipseMe+WTK

开发语言:

java

CLDC:

1.0

MIDP:

1.0

应用程序类型:

jar打包文件

2.7质量性能需求

2.7.1容错性需求

当出现代码异常时,出现正确的提示,不会影响整个系统的运行。

用户之间信息传输不会因为数据封装问题出现丢失或乱码。

因用户的误操作产生的异常应做出及时的处理或信息提示。

2.7.2稳定性需求

软件应正常完成所有功能需求。

服务器端应长时间运行无故障,故障修复时间一般控制在3小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作系统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄露。

要求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象。

2.7.3 软件设计可靠性

要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可靠性和稳定性得到提高,并且便于系统维护,和新模块的添加。

2.7.4 安全性

安全性是防止网络方面的攻击。

2.7.5扩展性

系统建成后,应在现行系统上不需要做大的改动或不影响整个系统结构,就可以增加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。

2.7.6易用性

系统操作的界面必须简洁、操作方便易用、设计合理。

3概要设计

3.1编写目的

从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。

在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描述出软件的概貌。

本概要设计说明书的目的就是进一步细化软件阶段得出的软件的总体概貌,把它加工成灾程序细节上非常接近源程序的软件表示。

该阶段目的在于明确网络聊天室系统的数据结构和软件总体结构,各个软件模块的功能说明,数据结构的细节,系统运行配置与应用方式以及使用的关键技术。

3.2定义

概要设计:

是把需求分析得到的DFD转换为软件结构和数据结构。

设计软件结构的具体任务是:

将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。

数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。

3.3总体设计

Socket通信是网络通信的基本方式之一,通常由服务器端和客户端两部分组成。

服务器端Socket首先要处于等待连接的监听状态,实时监控指定端口,等待客户端Socket连接服务器端的Socket,连接时需要指定服务器的地址和连接端口。

当服务器端Socket监听到或者接收到客户端Socket的连接请求时,就对客户端Socket的请求进行响应,建立一个新的线程,并把服务器端Socket的描述发给客户端,这样就建立了一个Socket连接。

连接建立后,通过输入或者输出流发送或接收数据,而服务器端的Socket继续处于监听状态,等待其他客户端的连接。

在数据传输完毕后,客户端会断开连接,这样一个完整的数据传输过程就完成了。

基本Socket的数据传输的基本步骤:

1.服务器端打开并监听接口;

2.客户端进行连接;

3.连接确认并打开输入输出流;

4.传输数据;

5.关闭连接。

MIDP中提供了SocketConnection和ServerSocketConnection接口用来实现对Socket通信的支持,其中SocketConnection用于实现客户端的Socket连接,ServerSocketConnection用于服务器端的Socket连接。

3.4主要模块描述及流程图

3.4.1模块描述

本手机聊天室系统分为服务端和聊天室客户端,服务端与客户端之间通过套接口Socket(TCP)连接。

在java中使用套接口相当简单,JavaAPI为处理套接口的通信提供了一个类.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认IP地址为:

127.0.0.1默认端口为8888。

(1)聊天室服务端模块图:

端口服务:

输入要侦听的端口,默认为8888;

启动服务:

启动服务器,并开始在设置的端口中侦听,客户端用户可以登录并开始聊天;

停止服务:

关闭服务器,侦听结束。

客户端用户不能再聊天;

发送系统消息:

服务器端给所有人或者个别用户发送消息。

消息显示:

可以显示所有用户的聊天记录,和上线、下线信息。

退出服务器:

退出程序,并停止服务;

(2)聊天室客户端模块图:

用户设置:

用户可以设置自己的用户名进行聊天;

连接设置:

用户可以设置自己的服务器的IP地址和端口号,默认的连接地址为:

127.0.0.1:

8888;

用户登录:

只能在聊天室服务端已开启的情况下,用户才能登录,用户登录之后才能开始聊天,登录后不能再修改用户设置和连接设置;

用户注销:

退出聊天,可以继续修改用户设置和连接设置;

发送和接收聊天信息:

用户可以给所有人或者个别用户发送信息,并能看到其他用户发送给自己或所有人的消息;

退出:

关闭所有聊天并退出客户端。

3.4.2主流程图

设置侦听端口

默认端口:

8888

设置用户名

默认连接地址或用户名

设置IP地址和端口

4详细设计

4.1编写目的

详细设计说明书是对系统架构进行详细直观描述,从而完成详细设计,是软件实现的基础。

此文档主要是说明手机电话薄的功能范围,各个层次中的每个程序(每个模块或子程序)的设计考虑,为程序员编写程序提供依据,可以有针对性的进行系统开发、测试、验收等各方面的工作。

4.2聊天室服务器端设置

4.2.1ServerSocketConnection接口的使用

ServerSocketConnection接口实现了对服务器端Socket连接的支持,客户端的Socket可以连接由ServerSocketConnection创建的服务器Socket连接。

使用Connector类的open(Stringurl)方法返回一个ServerSocketConnection,其中参数与创建ServerSocketConnection时的参数基本一样,只是不需要指定主机地址。

获取IP地址和端口号的方法:

getLocalAddress()返回本地的IP号;

getLocalPort9()返回本地的端口号.

服务器端程序处于等待状态,一直到接收到客户端的Socket连接请求,然后创建Socket连接并返回表示该连接的SocketConnection实例。

建立服务器端Socket的代码基本结构如下:

获取服务器端的Socket

ServerSocketConnection

Server=(ServerSocketConnection)Connector.open(“socket:

:

1080”)

等待连接

SocketConnectionsc=(SocketConnection)server.acceptAndOpen();

设置服务器端Socket属性

Server.setSocketOption(SocketConnection.RCVBUF,128);

Server.setSocketOption(SocketConnection.SNDBUF,128);

得到Socket对象的输入流,用于读取数据

InputStreamis=server.openInputStream();

得到Socket对象的输出流,用于发送数据

OutputStreamos=server.openOutputStream();

4.3聊天室客户端设置

4.3.1SocketConnection接口的使用

SocketConnection接口实现了对客户端Socket连接的支持,是使用Connector类的open(Stringurl)方法,但返回的是SocketConnection,其中参数url的基本格式为:

socket:

<()方法设置连接选项:

publicvoidsetSocketOption(byteoption,intvalue)

建立客户端Socket的代码基本结构如下:

获得客户端的Socket

SocketConnection

sc=(SocketConnection)Connector.open(“socket:

localhost:

1080”);

设置客户端Socket属性

sc.setSocketOption(SocketConnection.LINGER,6);

得到Socket对象的输入流,用于读取数据

InputStreamis=server.openInputStream();

得到Socket对象的输出流,用于发送数据

OutputStreamos=server.openOutputStream();

5编码打包

先设置.jad文件夹里面的参数,Required中的参数一般都设计为最低,以配合真机更好的运用,在Midlets中添加上游戏的名字以及对应主函数名。

然后在工程右键→J2ME→CreatePackage就可以完成打包了,打完的包会存在工程目录下的deployed中。

然后发到支持Java的手机就可以了。

6系统测试

为了确保本系统能够正常运行,需要在发布之后做一次较全面的测试。

现将具体操作及过程举例说明如下:

6.1测试举例

6.1.1测试程序登陆界面

打开程序后,首先出现的是登录页面,在设置好网络IP和端口号之后,输入用户名和密码,如果连接服务器成功则提示用户输入的用户名和密码是否正确,否则提示连接不到服务器,并提示正确设置服务器IP和服务端口。

其中端口号只能设置1024之后的端口号,前面的地址为服务器作为保留地址用,否则程序会提示错误。

6.1.2测试程序主界面

进入主界面后,主页面会显示在线用户列表区、信息显示区、功能设置区、信息发送区、功能按钮区。

用户可以在用户列表中看到目前在线的其他用户,并在信息显示区内看到系统提示。

用户可以在信息发送区内输入自己的发送内容,在主界面的显示区中可以不断的查看到其他用户发送过来的信息,并可以通过点击查看记录按钮查看保存的聊天记录。

6.1.3测试程序退出

当单击退出按钮或窗体的关闭时,用户将发送退出信息,离开聊天室,其他用户可以得到系统提示用户下线并刷新用户列表。

当服务器出线异常或关闭时,客户端将提示服务中断并退出系统。

6.2测试项目

由于实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是软件开发过程中为保证软件质量必须进行的工作。

大量统计资料表明,系统测试的工作量往往占软件开发总工作量的30%以上。

因此,我们必须重视测试工作。

由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。

因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。

有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。

因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。

从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。

测试对象是随不同阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。

6.2.1单元测试

单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。

对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。

单元测试一般是由程序员完成,也称程序调试。

6.2.2组合测试

组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。

组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。

6.2.3确认测试

确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。

确认测试是按照这些要求定出的“确认测试计划”进行的。

测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。

6.2.4系统测试

系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。

系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。

系统测试与建构同时进行或略慢。

系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。

6.2.5用户验收测试

在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。

在具体的测试中,一般应遵循以下原则:

由程序设计者之外的人进行测试;测试用例应由两部分组成:

输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1