[计算机软件及应用]6 论文 基于java的即时通讯软件的设计_第1页
[计算机软件及应用]6 论文 基于java的即时通讯软件的设计_第2页
[计算机软件及应用]6 论文 基于java的即时通讯软件的设计_第3页
[计算机软件及应用]6 论文 基于java的即时通讯软件的设计_第4页
[计算机软件及应用]6 论文 基于java的即时通讯软件的设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕 业 设 计(论 文) 设计(论文)题目: 基于java的即时通讯软件 客户端设计与实现 学生姓名: 赵潇 指导教师: 陈圣国 二级学院: 龙盘学院 专业: 计算机科学与技术 班级: M08计 学号: 0821113826 提交日期: 2012 年 4 月 21日 答辩日期:2012年 5月12 日 目 录摘要1Abstract21、引言32、应用需求分析与可行性分析62.1 应用需求分析62.2 运行需求分析62.3 其他需求分析62.4 可行性分析7经济可行性7技术可行性72.4.3 运行可行性82.4.4 时间可行性82.4.5 法律可行性:82.5 系统开发步骤83、相关技术简介1

2、03.1 MYEclipse10 3.2java语言.10 3.3 Jar命令.103.4 SQL Server 关系数据库简介113.4.1 SQL Server 特点123.5 JDBC123.6 编程运行环境134、系统分析14系统功能要求144.1.1 在线聊天室的要求144.1.2 在线聊天室的管理子系统要求14系统性能要求155、数据库设计16数据库需求分析16内容16处理16数据项17数据结构17数据流17数据库逻辑结构设计175.3 数据库表的创建176、系统实现19模块实现.19 功能实现.217、系统调试与测试237.1 程序调试237.2 程序的测试237.2.1 测试的

3、重要性及目的237.2.2 测试的步骤257.2.3 测试的主要内容25结束语27致谢29参考文献30基于java的即时通讯软件客户端设计与实现摘 要本文从理论和实际案例分析了类QQ聊天系统,比较的分析了当今网络上编程的几种语言,及其优缺点。以及聊天系统所选用的数据库。当今社会,计算机网络已经成为人们生活中不可缺少的一部分,人们从互连网上获取信息与朋友交流,即时通讯的应用也越来越广泛,要建设一个聊天室,首先,这个聊天系统的整体概况要在我们脑海中要有一个初步的影像,在众多的聊天程序中,其核心无非是:1、聊天者把语句写入文本或数据库;2、服务器不断的对文本或数据库进行刷新、读取;3、实时更新在线的

4、客户;4、用户之间的文件传送。本聊天室系统由java技术与SQLSERVER2005数据库相结合基于C/S模式开发完成。关键词:java、数据库、聊天Instant Messaging for EnterpriseAbstractThis article analyzed from the theory and the actual case on-line chatted the system, compared with the analysis in the network has established the dynamic homepage now several language

5、s, and good and bad points. As well as on-line chats the database which the system selects. Now the society, the computer network already becomes the people to live an essential part, the people exchange from the interconnection on-line gain information and the friend, the network application is get

6、ting more and more widespread, but website like mushroom growth then braves, because provides the static information the HTML homepage not to have the means to achieve with the user interactive goal, therefore only then presented each kind of interactive homepage technology. must construct a chatroo

7、m, first, this chatroom's overall survey must have a preliminary phantom in our mind, in the numerous public chatrooms, its core nothing but is:1st, chat reads in the sentence the text or the database; 2, the browser unceasing carry on refurbishing, the read to the text or the database; 3, real-

8、time renewal online customer; 4, the manager carry on to chat kick or the IP except operation. the this chatroom system unifies by the JSP technology and the SQLSERVER2000 database based on the C/S pattern development completes.Key word java Database to chat1、引言随着互联网技术的发展,互联网应用越来越丰富。互联网以其独特的传播方式吸引了大

9、量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互交流、信息传递等。聊天工具作为互联网中运用最为广泛的通信工具之一,它可以让用户之间进行即时的交流和信息的传递。聊天工具的出现可以说是基于互联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、易用的信息平台,成为现今应用最为广泛的即时通信工具之一。随着相关技术的日益发展,用户对功能的需求不断提高。为了更好地服务于用户,聊天工具的功能也在不断地完善。在未来的网络时代中,聊天工具将以即时通信为其基本特点,并与各种网络应用整合,同时随着无线网络的广泛应用

10、,它将成为未来不可缺少的一种通信软件。1.2 国内外发展状况中国的大部分网络用户都拥有自己的QQ号码。腾讯计算机系统成立于1998年11月。1999年2月,腾讯自主开发了基于Internet的即时通信网络工具腾讯即时通信Tencent Instant Messenger,简称TIM或腾讯QQ。腾讯QQ经过三年时间的发展,到2002年,其用户群成为中国最大的互联网注册用户群,注册用户达到1亿6000万,其中活跃用户总数超过5000万。自此腾讯QQ成为中国最大的即时通信服务提供商。腾讯公司是中国最早也是目前中国市场上最大的本土互联网即时通信软件开发商。公司成立7年多以来,一直以追求卓越的技术为导向

11、,始终处于稳健、高速发展的状态。腾讯QQ超过4.3亿的注册用户群体现了网络用户对腾讯QQ这一聊天工具的广泛应用。在当今市场经济高速发展的前提下,腾讯QQ也在不断自我完善,渐渐地演变为一个人性化、市场化的多功能的聊天工具软件,它可以给网络聊天用户带来越来越多的人性化服务:从原来单一的文字聊天过渡到集语音、视频、文件传输等多功能于一身的聊天软件。ICQ和MSN是在国外比较盛行的即时聊天工具,腾讯QQ的开发对MSN和ICQ都进行了借鉴。ICQ是I Seek You(我找你)的缩写,最初是一家以色列公司开发出来的免费软件,中文名称目前可以称之为“网络呼叫器”,它在全球拥有超过4000万的用户。事实上这

12、种软件最主要的功能就是让用户知道网络上的朋友现在有没有上线(前提是对方也有安装ICQ),然后可以互送Messages(消息)交谈或是交换档案等等,比电子邮件更具即时性。正如一位ICQ软件的最初程序设计员所说:“当你登录因特网之后,你周围都是些自己熟悉的人,而且,你还可以和他们分享这种体验,这的确是一件令人激动的事情。”MSN是微软推出的聊天软件,是一套类似ICQ的网上即时通讯软件,它以最简单的方式为用户提供强有力的即时消息支持,同时能使Microsoft Outlook Express(R) 和MSN Hotmail(R)变得更简单易用。MSN Messenger Service 还可使用户间

13、的联机交谈变得更加轻松愉快,了解谁在联机以及查看用户何时联机并与其交换即时消息。用户间可以进行单独的聊天,或者在同一个对话窗口中与多达四个的联系人进行聊天。自动的输入指示器可让用户知道何时联系人正在输入答复,还可以进行全球 呼叫以非常低的费用呼叫世界的任何地方。用户可以选择所要使用的 服务提供商,从服务提供商的列表中选择最适合的提供商。用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各地的朋友进行交谈,甚至可以呼叫联系人将文本消息发送到联系人的移动 和传呼机上(注:此特性仅适用于美国和加拿大),而进入“聊天室”结识新朋友,或加入与名人聊天,此特性在所有地区都适用。用户可以使用 M

14、SN Messenger 与朋友交换照片、喜爱的音乐或任何其他文件,也可以监视新的电子邮件并查看用户有多少新的电子邮件。MSN Messenger能在收到新的 Hotmail邮件时通知用户,还能邀请联系人进行联机DirectPlay 兼容游戏。在当今信息时代,信息通信已成为这个世纪必不可少的组成部分,随着互联网技术的发展,聊天软件作为即时性通信工具的主流,已被越来越多的人所喜爱。在中国,上网的用户几乎都用腾讯QQ进行聊天。当前腾讯QQ的注册帐户已经超过4.3亿,是中国用户最多、最为流行的聊天工具。起初的QQ只支持文字聊天,随着相关技术的发展,腾讯QQ也不断的自我完善,增加众多实用的、人性化的功

15、能,得到了许多用户的支持与喜爱。现如今腾讯公司已经初步完成了面向在线生活产业模式的业务布局:构建了QQ、QQ 、QQ游戏以及QQ移动 门户这四大网络平台,形成了规模巨大的网络社区。在满足用户信息传递与知识获取需求方面,拥有QQ 门户、QQ即时通讯工具以及年初收购的Foxmail电子邮件等;在满足用户群体交流和资源共享方面,腾讯推出的个人博客Q-Zone将与访问量极大的论坛、聊天室、QQ群相互协同;在满足用户个性展示和娱乐服务方面,腾讯拥有非常成功的虚拟形象产品QQshow、QQpet(宠物)和QQGame(游戏)QQMusic/Radio/LiveTV(音乐/电台/电视直播)等,另外对 用户提

16、供了彩铃、彩信等无线增值业务;在用户的交易需求方面,专门为腾讯用户设计开发的C2C电子商务拍卖网已经上线,并和整个社区平台无缝整合。像QQ这样聊天工具已经逐渐适应了时代的发展,市场的需求,给人们提供了全方位的信息服务平台,使用户在互联网上的生活更加丰富多彩,它不仅带来了巨大的商业价值,而且也给人们的生活带来了无比的欢乐与便利。1.4 本文的主要工作本文主要对聊天软件的私聊,群聊以及文件传输等相关功能的实现原理进行了研究。本文首先对聊天软件的发展以及其对人们的生活有何影响作了简述,并对开发环境和工具进行了相应说明并对此聊天软件系统进行了较为详细的分析;进而提出了该多功能聊天软件的设计方案。在本次

17、多功能聊天软件的设计与开发中,本人主要负责设计开发登录模块、注册模块、聊天模块、并对此聊天软件系统的登录模块、注册模块、聊天模块的设计与实现进行了较详细的说明和分析。2、应用需求分析与可行性分析2.1 应用需求分析表2.1 运行环境服务器硬件处理器:Intel 酷睿内 存:256M 或更大硬 盘:20G 或更大软件Microsoft Windows XPMicrosoft SQLSERVER 2005Microsoft Office 2003客户机硬件无特殊要求,只要能上连接互联网即可软件Microsoft Windows XP 系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安

18、全性,运行效率等方面的考虑。 硬件系统环境:C600、1G MB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好2.2 运行需求分析硬件条件:酷睿 CPU、1G RAM、10G硬盘以上的PC机;打印机;局域网。软件条件:Windows XP 2.3 其他需求分析本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面

19、最大限度的得到满足。2.4 可行性分析经济可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后实现系统功能提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、 机房、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人

20、员和维护人员的工资、培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费,打印纸、软盘、色带等开支。所有开支都不大,所以经济上是可行的。技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本科生实习管理系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后

21、果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前我们公司信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+SQLSERVER体系,已无技术上的问题。 时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。 法律可行

22、性: 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何网站,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。2.5 系统开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果

23、。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/

24、3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。3、相关技术简介3.1 MYEclipse介绍MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。3.2 Java

25、语言Java语言是SUN公司于1995年5月推出的新一代面向对象的计算机通用编程语言,是继WWW之后又一引起世界轰动的产品。Java语言的特点是跨平台和强大的网络编程功能。在Java语言诞生之前,Internet已存在,所以Java语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又简化了网络编程的操作。因此利用Java语言可以开发出功能强大的网络应用程序。3.3 Jar命令功能:Java归档工具语法:jar 命令选项 manifest destination input-file input-files jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。j

26、ar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而,设计jar的主要目的是便于将java applet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class文件、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次 事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来源。jar工具的语法基本上与tar命令的语法相同。命令选项:-c:在标准输出上创建新归档或空归档。-t:在标准输出上列出内容表

27、。 -xfile:从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。 -f:第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。-v:在标准错误输出设备上生成长格式的输出结果。 -m:包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile *.class”-0:只储存,不进行 ZIP 压缩。 -M:不创建项目的清单文件。 -u:通过添加文件或更

28、改清单来更新现有的 JAR 文件。例如:“jar -uf foo.jar foo.class”将文件 foo.class 添加到现有的JAR文件foo.jar中,而“jar umf manifest foo.jar”则用manifest中的信息更新foo.jar的清单。 -C:在执行 jar 命令期间更改目录。例如:“jar -uf foo.jar -C classes *”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。程序示例 1:将当前目录下所有CLASS文件打包成新的JAR文件:jar cf file.jar *.class 2:显示一个JAR文件中的文件列表

29、:jar tf file.jar 3:将当前目录下的所有文件增加到一个已经存在的JAR文件中:jar cvf file.jar * SQL Server数据库简介SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于

30、2000年推出的最新版本。 SQL Server 特点1真正的客户机/服务器体系结构。 2图形化用户界面,使系统管理和数据库管理更加直观、简单。 3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。 5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 6对Web技术的支持,使用户能够很容易地将数据库中的数据发布

31、到Web页面上。 7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS SQL Server 2000新特性 1支持XML(Extensive Markup Language,扩展标记语言) 2强大的基于Web的分析 3支持OLE DB和多种查询 4支持分布式的分区视图 JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和

32、接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接

33、体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。3.6 编程运行环境硬件环境:CPU: 闪龙2400内存:256M硬盘:80G软件环境:操作系统:Windows XP Professional应用软件:Eclipse3.1 + JDK 4、

34、系统分析系统功能要求 在线聊天室的要求此聊天软件系统是模拟现今国内最为流行的即时性通讯工具QQ而设计的,能够实现注册、登录、添加好友、文字聊天、等功能。该聊天软件系统是采用C/S结构,即客户端与服务器端的结构体系。基于对该聊天软件功能的分析,本文分别对客户端与服务器端进行了设计。该聊天软件服务器端的功能是实现对客户端提交的用户信息进行处理。服务器设计内容包含:信息接收、注册、登录、添加好友等。“信息接收”是提供服务器接受客户端发送信息的功能;“注册”是服务器端接受到用户的注册信息请求后,将请求信息写入到数据库,为用户的注册提了相关服务;“登录”是服务器通过验证登录信息来实现相关的服务; “好友

35、添加”是服务器对添加的好友信息进行处理等相关操作。客户端即用户使用的应用程序端。用户通过该聊天软件的客户端来实现网上聊天的相关功能:注册、登录、添加好友、文字聊天、聊天等。注册功能是提交用户相关信息以及获得一个属于自己登录该聊天软件系统的用户ID号;登录功能是实现验证用户信息与合法使用该聊天软件系统的权限;添加好友是实现用户之间好友添加的操作;添加好友成功后,就可以与好友之间开始文字聊天、文件传输、聊天等功能。 在线聊天室的管理子系统要求对数据库中的在线用户信息进行管理。对数据库中的非在线用户信息进行管理。对数据库中的聊天信息进行管理。系统性能要求系统的性能要求一般包括:计算和查询响应时间、处

36、理容量、存储容量、人机交互的友好性、系统的安全性、可靠性以及容错能力等,如果是网络系统还应包括系统传输交换能力。本系统非网络系统,所以符合系统的一般性能要求即可。系统的性能要求应从以下几个方面确定:(1)容量要求:确定系统的容量要求,如处理的记录数和处理数据的最大容量等(2)精度要求:确定系统的精度要求,如数据或数值检索的精度要求、数据传输的精度要求等。(3)时间特性要求:确定系统的时间特性要求。如处理时间、响应时间及其峰值负载期间允许偏离范围,系统各项功能的顺序关系,由于输入类型的不同和操作方式的变化引起的有限顺序的变化。(4)适应性要求:必须指明反映系统环境变化的系统适应能力和系统适应能力

37、的各种参数。说明当需求发生变化时系统的适应能力,指出为适应这些变化而需要设计的软件和过程。 (5)人机交互友好性:要有适应与用户特点的智能化人机交互界面,便于用户操作使用。 (6)系统可靠性:为提高系统可靠性必须采用模块化、结构化设计,需要对容错处理的模块提供备份,以减少系统故障。 (7)系统可维修性:系统应具有奥好的可维修性,以便在系统故障时能迅速恢复运行。本系统应具有如下性能:(1)数据库系统的扩充能力(2)快速的信息交换能力(3)快速的响应能力(4)具有较大的数据存储能力(5)系统迅速恢复能力5、数据库设计在线聊天室系统是一个数据库应用系统,系统的所有信息都是保存在数据库中。在数据库应用

38、系统的开发中,数据库的结构设计是一个非常重要的问题。我们这里所说的数据库结构设计是指数据库中各个表结构的设计,包括信息存在哪个表中、各个表的结构如何以及各个表之间的关系。 数据库结构设计的好坏,将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等。由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但这些方法和设计者的工作经验有很大的关系。因此要从根本上解决所有数据库结构设计的问题,就需要多实践,在实践中积累经验和教训,最终成为数据库结构设计的专家。数据库需求分析数据

39、库结构设计的第一个阶段,也是非常重要的一个阶段时数据库需求分心。在这个阶段主要时收集基本数据以及数据处理的流程,为以后进一步设计打下基础。内容调查应用系统用户所需要操作的数据,决定在数据库中存储什么数据。处理调查应用系统用户要求对数据进行什么样的处理,理清数据库中各种数据之间的关系。数据项包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系。数据结构若干个数据项有意义的集合,包括名称、含义以及组成数据结构的数据项。概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计.也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体

40、转化为关系表。这种转化比较简单,只需要将实体的属性定义为表的属性即可。第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。在上面工作的基础上的基础上归纳出人员管理数据库表格的组成、列的属性、表格之间的联系等等。该数据库系统要求具有以下方面的特点:结构合理;所建立的数据冗余度小,独立性强;建档、修改、查询、统计快准确;保密性、可靠性好。聊天室系统中各个表格的设计结果如下面的各表格所视。每个表格表示数据库中的一个表。5.3 数据库表的创建图 5.3 数据库信息6 系统实现6.1 模块实现 图 6.1 登录图6.2 注册 图6.3 聊天 添加好友相关代码登录JFram

41、e jf1 = new JFrame("login");JPanel jp1 = new JPanel();JLabel l1 = new JLabel("用户帐号");JLabel l2 = new JLabel("用户密码");JLabel l3 = new JLabel(" 弹指间 心无间 ");JTextField jtf1 = new JTextField(15);JPasswordField jtf2 = new JPasswordField(15);JButton jb1 = new JButton(

42、"登录");JButton jb2 = new JButton("退出");JButton jb3 = new JButton("注册");注册jp1.add(l3,BorderLayout.NORTH);jp1.add(l1,BorderLayout.CENTER);jp1.add(jtf1,BorderLayout.CENTER);jp1.add(l2,BorderLayout.CENTER);jp1.add(jtf2,BorderLayout.CENTER);/jtf2.jp1.add(jb1,BorderLayout.SOUT

43、H);jp1.add(jb2,BorderLayout.SOUTH);jp1.add(jb3,BorderLayout.SOUTH);jf1.setSize(280,180);jp1.setBackground(Color.LIGHT_GRAY);jf1.add(jp1);jf1.setResizable(false);jf1.setVisible(true);聊天JLabel title; /标题JLabel jl1 = new JLabel("好友列表");JPanel jp1 = new JPanel();JButton set = new JButton("

44、;添加好友");JButton modifyp = new JButton("修改密码");JTextField addfriend = new JTextField(10);JScrollPane jsp = new JScrollPane(); /JComboBox jcb ;/= new JComboBox(picture); Properties p = new Properties(); /用 于存储个人信息 HashMap friends = new HashMap(); /朋友列表对应的哈希表,键值为账号 HashMap ChatFrames = n

45、ew HashMap(); /用于储存每个朋友对应的窗口,键值为账号 DefaultListModel listModel = new DefaultListModel(); JList friendList = new JList(listModel); /好友列表 Socket clientSocket; /和服务器的连接Socket String myname; /用户的账号Person me; /保存使用这个主窗口的客户6.2 功能实现 第一次使用系统的用户通过填写个人信息来注册,服务器返回一个注册ID号给注册用户,用来登录。已经注册的用户在登录界面填写完相关登录信息,通过服务器的验证

46、后就可以进入客户端界面。 用户在注册获得账号和密码后,在登录界面填写用户名和密码并提交给服务器,服务器通过用户提交过来的信息和数据库中原有的用户信息进行比较和验证,如果结果一致表明验证成功,用户进入到客户端的系统界面下,如果不一致,给用户返回登录错误信息。用户在登录成功后会进入客户端界面。如果想和朋友进行聊天,就用鼠标双击添加好友,好友收到对方请求后,好友同意,此时就可以与好友进行对话该多功能软件聊天操作简单、容易,在运行时占有系统资源量少。但是其功能并不是很完善,不像QQ那样人性化,在数据库设计上,只实现了为用户提供了用户名、帐号、密码等基本的信息,但在以后会进行完善。7、系统调试与测试7.

47、1 程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。7.2 程序的测试7 测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应

48、包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上

49、的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括: 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感; 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定; 测试工作枯燥无味,不能引起人们的兴趣; 测试工作是艰苦而细致的工作; 对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法

50、。 这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。 (2)测试的目的 如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。 软件测试是为了发现错误而执行程序的过程; 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如

51、此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。7 测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:(1)模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。(2)系统测试 在这个测试步骤中发现的

52、往往是软件设计中的错误,也可能发现需求说明中的错误。(3)验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。7 测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 (1)单元测试 单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 (2)集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受

53、的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 (3)确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。 (4)系统测试 软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。 单独对系统的测试主要从以下几方面入手: 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试

54、最常用和必须的测试,通常还会以正式的软件说明书为测试标准。 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。 结束语几个月来忙碌紧张而又有条不紊的毕业设计,使我有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会,使我在四年中所学到的知识得到了系统和升华,真正达到了学以致用。 对即时通讯系统的体会 在系统

55、开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。设计实践上的体会 在设计的过程中,我掌握了很多JAVA的编程知识,并对这种成熟并广泛应用的技术进行了深入的学习。设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论