即时通讯软件的设计与实现Word格式.docx

上传人:b****6 文档编号:18821286 上传时间:2023-01-01 格式:DOCX 页数:41 大小:254.17KB
下载 相关 举报
即时通讯软件的设计与实现Word格式.docx_第1页
第1页 / 共41页
即时通讯软件的设计与实现Word格式.docx_第2页
第2页 / 共41页
即时通讯软件的设计与实现Word格式.docx_第3页
第3页 / 共41页
即时通讯软件的设计与实现Word格式.docx_第4页
第4页 / 共41页
即时通讯软件的设计与实现Word格式.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

即时通讯软件的设计与实现Word格式.docx

《即时通讯软件的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《即时通讯软件的设计与实现Word格式.docx(41页珍藏版)》请在冰豆网上搜索。

即时通讯软件的设计与实现Word格式.docx

KeyWords:

Silverlight;

InstantMessaging;

WindowsCommunicationFoundation.

引言

互联网的告诉发展不断影响着人们的生活方式,他在提供人们快速便捷的体验的同时,慢慢渗透到我们生活中的每一个角落。

这其中,互联网人际交往也成为现代社会人际交往的一种时尚、便捷、多元化的方式。

IM作为其工具,也变得流行起来。

从1996年世界上第一款IM软件ICQ的推出,到2005至2007年的迅速发展,电子商务运营商、综合门户网站、电信运营商都纷纷围绕各自核心业务,推出各具特点的IM即时通信工具。

如今,即时通信产品功能已经从比较单一的文字聊天、好友查找、好友管理,在向集社会化网络、资讯、娱乐、位置服务、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台发展。

第一章主要技术介绍

1.1WCF-WindowsCommunicationFoundation

WindowsCommunicationFoundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口。

它是.NET框架的一部分,由.NETFramework3.0开始引入,与WindowsPresentationFoundation及WindowsWorkflowFoundation并行为新一代Windows操作系统以及WinFX的三个重大应用程序开发类库。

在.NETFramework2.0以及前版本中,微软发展了WebService(SOAPwithHTTPcommunication),.NETRemoting(TCP/HTTP/Pipelinecommunication)以及基础的Winsock等通信支持。

由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如.NETRemoting可以开发SOAP,HTTP通信),对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在使用中有许多不便。

同时,面向服务架构(Service-OrientedArchitecture)也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是WindowsCommunicationFoundation。

1.2MVC

MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

1.3Silverlight

MicrosoftSilverlight是一个跨浏览器的、跨平台的插件,为网络带来下一代基于NETFramework的媒体体验和丰富的交互式应用程序。

Silverlight提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。

Silverlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。

MicrosoftSilverlight的中文名为“微软银光”,是一种新的Web呈现技术,能在各种平台上运行。

借助该技术,您将拥有内容丰富、视觉效果绚丽的交互式体验,而且,无论是在浏览器内、还是在桌面操作系统(如Windows和AppleMacintosh)中,您都可以获得这种一致的体验。

Microsoft.NETFramework3.0(Windows编程基础结构)中的呈现技术XAML(可扩展应用程序标记语言)遵循WPF(WindowsPresentationFoundation),它是Silverlight呈现功能的基础。

第二章系统概述

1.1系统开发背景和意义

内部通讯是每一个组织机构必须切实面对的工作,但一直以来人们使用传统的方式进行信息交换。

例如传真和内部电话。

这些方式存在着许多缺点,如效率低、保密性差且较为繁琐。

随着网络技术的不断发展和普及,这种传统的通信方法必然被以计算机网络为基础的方法所取代。

即时通讯系统作为网络应用的一个分支,有着传统通讯方法无法比拟的优点,如易于管理,可靠性高,部署简单等。

因此,开发一套能够为企业机构提供内部资源信息交换的系统,是十分必要的。

国内外的企业级内部通讯软件平台技术都已经非常成熟,集成了电话会议,视频会议,邮件系统,提供二次开发和与其他系统(例如OA)的集成。

典型的项目例如微软的Lync,腾讯的RTX等。

1.2开发环境

开发环境的选择会影响到数据库的设计,所以在这里给出图书管理系统开发与运行环境的选择如下:

开发环境:

Windows8.1

开发工具:

VisualStudio2013

数据库管理系统:

SQLServer2012Express

数据库服务器:

第三章系统需求分析

2.1任务概述

经过对同类软件的研究,发现同类软件之间的基本原理相差不大。

主要实现一对一聊天,一对多聊天,广播通知,文件互发,语音聊天等。

基于TCP/IP协议实现。

为了减少服务器的负载,客户端也同时集成了服务器的功能,使基本的聊天信息不在经过主服务器发送,而是由客户端之间进行配对发送。

新用户首先对主服务器进行http请求,服务器返回登陆界面,新用户进行注册并下载客户端程序后便可正常使用客户端进行聊天。

根据以上调查分析,整个系统的构成如图2.1所示。

图2.1系统概念构成图

Fig.2.1Structurediagramof 

systemconcept

2.2功能需求

经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。

以下是即时通讯系统必须具备的功能:

1.后台客户端:

处理与网络相关的信息。

包括获取当前可用网络的ip,当前网络是否可以连接到服务器,自动绑定至可连接的ip等功能。

由于SilverLight功能的局限性,不得不考虑将客户端分为两部分。

一部分专门为用户提供应用程序的可视化接口服务,一部分处理网络通信。

2.网站与服务器:

网站提供用户的注册和登陆。

用户可通过页面内置的SilverLight客户端来使用聊天服务,也可以下载SilverLight客户端到本地来使用。

下载到本地的SilverLight客户端使用服务器进行登陆,

3.前台客户端模块:

向服务器发送登录信息,发送注册信息,呈现用户界面,提供基本服务,向后台客户端提供数据。

4.主要功能模块:

主要功能模块分为3个子模块,分别为文字聊天模块,图片/文件传输模块,音频聊天模块。

每个模块使用单独的信道通信,并适当使用多线程技术提高并发处理能力。

5.异常处理模块:

前后台客户端都应设有异常处理模块。

当信道出现异常时尝试自动重置信道以排除异常并重新连接至目标终结点,提高程序的健壮性。

2.3性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,即时通讯系统应该满足以下的性能需求:

1、系统处理的准确性和及时性

系统处理的准确性和及时性是衡量系统性能的重要指标。

在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息传送的需要的同时,尽可能的迅速和准确。

2、系统的开放性和系统的可扩充性

即时通讯系统在开发过程中,必须充分考虑以后的可扩充性。

例如用户对数据传送的需求会不断的更新和发展,系统必须尽可能的满足这些需求并且只花费较少的时间和金钱。

这就要求系统提供足够的手段进行功能的调整和扩充。

而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。

通过软件的修补、替换完成系统的升级和更新换代。

3、系统的易用性和易维护性

即时通讯系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。

这就要求该系统必须有较为完善的用户帮助信息和友好的系统界面,帮助用户尽快熟悉系统的使用方法,缩短磨合时间。

4、系统的先进性

现代计算机通讯技术发展极为迅速,如果想要该系统尽可能的延长生命周期,必须在开发时使用相对较新的技术。

同时系统必须具有足够的开放性和良好的耦合度,通过快速和廉价的升级方案,防止系统过快淘汰。

5、系统的响应速度

即时通讯系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。

在进行数据传输时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。

第四章系统总体设计

3.1系统总体流程

根据需求分析得到的性能和功能要求,得出系统的大致工作流程。

程序开始运行后,首先进行用户的登陆验证。

之后初始化系统的各项功能所依赖的对象,之后等待用户进行输入,根据输入的信息进行相应的处理,例如发送文字聊天信息,图片,文件和发起音频会议。

用户使用完毕之后,关闭程序之前进行登出操作。

之后关闭程序。

图3.1即时通讯系统总体流程图

Fig.3.1Theoverallflowchart 

ofinstantmessaging 

system

针对这个总体上的业务流程,必须要进行一些合理的改进以适应实际情况。

例如初始化失败;

连接后台客户端失败;

无法连接到登陆服务器等实际情况,必须采取相应的措施排除错误和异常。

实际使用过程中可能遇到的问题及改进措施如下:

网络连接类错误:

错误发生后尝试重新连接,在尝试一定次数仍失败后提示用户。

用户输入类错误:

提示用户重新输入正确的信息。

机会错误和未知错误:

提示用户后关闭程序,暂时不进行处理。

3.2系统功能模块图

根据需求分析阶段得到的功能需求,以及对系统对性能的需求以及系统特点,得出系统的功能模块图如下:

图3.2即时通讯系统功能模块图

Fig.3.2FunctionmodelsdiagramofinstantmessagingSystem

第五章详细设计

4.1程序流程图

依据软件工程的基本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

具体来说就是把经过总体设计得到的各个模块详细的加以描述。

根据总体设计中对总体流程图提出的改进要求,画出详细流程图如下图4.2所示。

图4.1程序详细流程图

Fig.4.1Detailedprogramflowchart

4.2程序详细流程图描述

程序开始运行后,首先尝试与后台客户端进行连接。

如果连接失败则进行重试,如果连接成功则后台客户端进行初始化,之后返回监听地址到SL客户端以便进行用户登录。

验证用户登录,如果失败则提示失败,重新获取必要信息后重新验证。

如果登陆成功则向服务器获取登陆用户的好友列表。

服务器返回列表之后SL客户端进行用户界面的初始化并等待用户进行操作。

关闭客户端时自动向服务器发送离线信息。

4.3主要功能描述

系统主要功能有客户端与服务器之间的连接,客户端与客户端之间的连接,发送不同种类的数据。

发送数据的方式有两种,分为缓冲模式和流模式。

分别对应简短数据和大型数据。

用户登陆登出功能时序图:

图4.2登陆登出时序图

Fig.4.2SequencediagramofLogin/Logout

用户登陆登出采用BasicHttpBinding缓冲模式发送和接收数据。

用户在登录时需要提供用户名和密码,以及一个代表自身网络地址的终结点Uri。

服务器接收登陆请求后验证用户名密码是否正确并异步送回验证结果。

登陆成功后服务器记录登陆者的Uri并设置登陆状态。

发送消息功能时序图

图4.3发送消息功能时序图

Fig.4.3Sequencediagramofsendingmessage

图4.3表示的是一个发送过程。

此过程在本系统中是通用的,换句话说,此过程使用在一些实现相似功能的模块中。

发送过程开始前需要进行普通服务客户端的初始化。

在此我们认为初始化过程已经完成并且连接正常。

之后需要构建一个CommunicationData以表示需要发送的数据。

客户端接收到请求后,会构建一个CommunicationRequest,其中包含一个CommunicationInformation并携带一个消息目的地的Uri,然后它会通知主服务客户端发送此Request到目标地址并等待此请求返回。

请求返回的结果同样是一个CommunicationRequest。

不同的是其中的PingPongCount会加1,普通服务客户端会检测这个值,如果此值小于2就继续发送一个CommunicationRequest并且PingPongCount加1。

返回的Request还携带了一个ReplyAddress。

这个地址表明了普通服务客户端需要的目的地址。

有了这个地址,普通服务客户端就可以和远程的相应主机进行通信了。

接收消息功能时序图:

图4.4接收消息功能时序图

Fig.4.4Sequencediagramofreceivingmessage

图4.4表示的是一个通用接收过程。

在主服务主机接收到CommunicationRequest之后检测普通服务主机是否存在,若不存在则会新建。

之后检测Request中的PingPongCount并回发携带ReplyAddress的Request。

通过使用和重复使用以上三个功能,我们可以构建一个功能强大的客户端。

4.4程序接口描述

4.4.1服务器端服务接口

共三个接口,分为登陆服务接口,好友列表获取接口,登出接口。

分别提供登陆,获取好友列表,登出功能。

图4.5接口原型

Fig.4.5Prototypeofserviceinterface

具体实现详见附录第一部分。

4.4.2客户端内部接口

客户端模块间接口采用数据耦合方式,通过参数表传送数据,交换信息。

4.5数据设计

4.5.1数据的逻辑设计

根据在需求分析和系统设计阶段得到的功能需求和系统流程,分析出系统所需要使用的数据结构。

以下是三个最主要的数据的结构MessageBody,CommunicationInformation和CommunicationData。

图4.6MessageBody类结构图

Fig.4.6ClassdiagramofMessageBody

图4.7CommunicationInformation类结构图

Fig.4.7ClassdiagramofCommunicationInformation

图4.8CommunicationData类结构图

Fig.4.8ClassdiagramofCommunicationData

第六章测试分析报告

有两种基本方法可以用来标识测试用例,即功能测试(黑盒测试)和结构测试(白盒测试)。

本次测试我主要采用了功能测试。

功能测试的基本观点是,任何程序都可以看作是将输入定义域取值映射到输出值域的函数。

6.1测试计划和要点

软件测试的本质是针对要测试的内容确定一组测试用例。

在讨论之前,我先把要测试各个模块的计划和要点列出:

6.1.1主模块测试要点

服务器连接情况:

正常情况,数据库文件缺少,外部系统异常。

系统设置获取:

正常情况,外部系统异常。

对用户输入的响应:

合法输入,能够正常调用子模块;

非法输入,系统能否辨别,并作出响应(提出警告);

子模块的异常状况,系统能否及时做出响应。

6.1.2登陆模块测试要点

模块正常运行流程

用户输入数据检查(用户名,密码),包括数据合理性检查,以及合法性检查

网络连接异常时的响应情况

6.1.3聊天服务模块测试要点

连接异常

发送信息失败

初始化出错

未知错误

6.1.4文件服务模块测试要点

6.1.5音频服务模块测试要点

连接异常

发送信息失败

初始化错误

6.2测试用例

测试用例是为了特定目的(如考察特定程序路径或验证是否符合特定的需求)而设计的测试数据及与之相关的测试规程的一个特定的集合,或称为有效地发现软件缺陷的最小测试执行单元。

根据上一节给出的测试要点,又因为测试是不可能穷举的。

所以我们采用等价划分法来进行对图书管理系统的测试。

它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有代表性和完整性。

6.2.1主模块测试用例

表6.1主模块测试用例

Table6.1Mainservicetestcase

字段名称

描述

标识符

C1

测试项

主模块的初始化与关闭

输入标准

1.打开主模块

2.退出程序

输出标准

1.模块未做任何操作,单击退出按钮,能正常退出,无提示信息。

2.打开任意子窗体,单机退出按钮,能正常退出,无任何错误。

3.在打开相应的子窗体时,发送任意信息之后关闭程序,无任何错误

6.2.2登陆模块测试用例

表6.2登陆模块测试用例

Table6.2Loginmodeltestcase

C2

登陆模块的功能测试

1.打开程序,进入登陆界面

2.输入正确的用户名和密码。

3.输入不正确的用户名和密码。

输入正确的用户名密码后登陆成功进入下一界面。

输入错误用户名密码后登陆提示登陆错误。

点击退出按钮后正常退出。

6.2.3聊天服务模块测试用例

表6.3聊天服务模块测试用例

Table6.3Normalservicetestcase

C3

聊天服务模块的功能测试

1打开程序,进入聊天窗口

2.输入一些聊天文字,选择字体,颜色,大小等。

3.选择一副图片进行发送。

4.点击发送。

模块未做任何操作,单击退出按钮,能正常退出,无提示信息。

6.2.4文件服务模块测试用例

表6.4文件服务模块测试用例

Table6.4Fileservicetestcase

C4

文件服务模块的功能测试

1.打开程序,进入聊天窗口

2.单击文件发送按钮,选择文件进行发送。

点击确定。

3.单击文件发送按钮,选择文件,点击取消。

模块未做任何操作,单击“退出”命令,能正常退出,无提示信息。

6.2.5音频服务模块测试用例

表6.5音频服务模块测试用例

Table6.5Audioservicetestcase

C5

音频服务模块的功能测试

2.点击音频服务按钮。

6.3测试结果

6.3.1测试的结果

我们按照6.2节中给出的测试用例的顺序来给出相应的测试结果。

表6.6主模块测试结果

Table6.6Mainservicetestresult

测试结果

正常操作无任何异常出现

与预期的偏差

说明的问题

主模块通过了功

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

当前位置:首页 > 人文社科 > 军事政治

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

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