您的当前位置:首页正文

基于java socket的聊天室项目文档

2020-02-06 来源:易榕旅网


北京邮电大学软件学院

2010-2011 学年第 1学期实训项目文档

(每个项目小组一份)

课程名称: 全日制研究生实训

项目名称: 通信软件实训

项目完成人:

姓名: 学号: 姓名: 学号: 姓名: 学号: 姓名: 学号: 姓名: 学号: 姓名: 学号:

指导教师:

日 期:2011年1月21日

基于java socket的聊天室实现

一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求)

 

目的:熟练掌握socket编程原理,并用java socket实现聊天室 要求:实现p2p和聊天室功能

二 . 实训项目开发环境(说明本项目需要的环境)

 

开发工具:Eclipse SDK Version: 3.5.2 和 NetBeans 6.9.1 版本 系统:win7

三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等) 1.问题分析

网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提 出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也 能及时得到服务。

两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

比较:

UDP:1,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。

2,UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。

3,UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方

TCP:1,面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中需要连接 时间。

2,TCP传输数据大小限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大的数据。

3,TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。

应用:

1,TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。但是可靠的传输是要

付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。

2,UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

2.设计方案

基于Socket的java网络编程。网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。

Socket通讯的过程。Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过send,recv等方法与对方通信。

3.设计图

图1:聊天室用例图

用例说明文本:

1、 用户登录用例:客户端运行,用户可以用用户名和端口号登陆到服务器。 2、 服务器注册用例:服务器根据用户输入的用户名和端口号和sip地址记录用户信息

并把信息广播给所有的在线用户。

3、 客户端发送消息用例:客户端县服务器带有关键字(群聊/私聊/登录/退出)的消息

到服务器。

4、 服务器转发消息用例:服务器解析收到的消息,提取目的端sip地址,并把消息转

发到目的端。

5、 客户端退出用例:客户端向服务器发送log on消息。服务器把该客户信息从用户列

表中删除,并更新在线列表。

图2聊天室领域模型

图3登录顺序图

图4聊天顺序图

四 . 实训项目结果及分析

项目分析: 客户端实现:

以服务方主机地址和端口号为参数调用 Socket 类的构造函数去创建一个 Socket 对象. 创建过程包含了向服务方请求建立通讯连接。使用 Socket 对象的 getInputStream() 和 getOutputStream() 方法创建用于网络传输的输入/输出流。使用所得的网络流对象读写数据,网络流对象将读写转换成对 Socket 数据的接收和发送。工作完毕, 关闭网络流对象

服务器实现:以某端口号为参数调用 ServerSocket 类的构造函数去创建一个 ServerSocket 对象,作为服务器的Socket。调用被创建的 ServerSocket 对象的 accept() 方法在指定端口监听客户方的连接请求。收到客户请求后,accept() 方法返回一个新建的 Socket 对象, 该对象代表和客户方建立起来的通讯连接在服务方的通讯端点。使用 Socket 对象的 getInputStream() 和 getOutputStream() 方法创建用于网络传输的输入/输出流。使用所得的网络流对象读写数据,网络流对象将读写转换成对 Socket 的数据的接收和发送。工作完毕, 关闭网络流对象

项目实现:

五 . 实训项目人员、进度安排及完成过程

小组一共六个人,在这一星期的实训中,每个人都认真学习了java socket的内容,并在此基础上进一步完成聊天室功能实现。由于基础不同,我小组分工及人员完成情况如下:

小组组长:在这个项目里主要负责协调各个组员之间的协作,进行项目分工,画用例模型,总结整理组员的工作。

技术经理:主要负责java socket的研究并回答小组其他成员的疑问,在聊天室的设计过程中,对一些功能实现提出了建设性的意见。

技术人员:主要负责几个聊天室程序的分析与设计,设计文档的撰写,聊天室程序编写的大部分工作。

测试人员:负责聊天室程序的测试工作,需求文档的撰写,负责文档的整理,资料的搜集以及小组PPT的制作。

六 . 实训项目心得及体会

心得体会:

理解了socket工作流程和实现方法,熟练掌握socket编程,实现了简单的聊天室功能,对多线程有了更进一步的理解。通过老师对SIP协议的讲解,使我对SIP协议有了一个初步的认识,使我明白了SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以好似Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。在学习网络传输的过程中,对两种网络传输协议有了更进一步的理解和深刻的体会。

七 . 附录(附上实训项目其他文档,具体内容根据项目要求确定)

1. 需求分析文档错误!未找到索引项。 2. 设计文档 3. 项目PPT 4. 源程序

Linux 操作系统下基于c语言的 socket聊天室实现 一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求)

基于Linux系统下的socket编程——P2P聊天系统

1.掌握Linux环境下socket编程的基本过程; 2.熟练掌握C语言编程方法;

3.了解GCC编译器的编译过程,并能在Linux系统下熟练使用。 二 . 实训项目开发环境(说明本项目需要的环境)

系统环境:Linux系统 编译环境:GCC编译器

三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等)

问题分析:如何通过socket实现Linux环境下的点对点通信。 设计方案:

1. 目的:在Linux系统中实现点对点通信 2. 要求:使用socket、C语言编程

3. 步骤:(1)根据socket通信机制,编写C源程序; (2)对源程序进行反复测试、修改; (3)实现点对点通信功能。 设计图:

开始主进程main创建子进程负责接收消息 Socket() Bind() Recvfrom()Close()四 . 实训项目结果及分析 P2P网络聊天系统的测试结果如下:

负责发送消息 Socket() Sendto() Close()

结果分析:

该测试是在一台计算机上进行的,若要实现两台计算机间的点对点通信,只需修改相应的IP地址和端口号即可。

如图所示,该系统实现了P2P通信,即通信双方之间可以相互发送和接收消息,达到了预期目的,满足了用户需求。 五 . 实训项目人员、进度安排及完成过程

小组一共六个人,在这一星期的实训中,每个人都认真学习了linux操作系统环境下的C socket的内容,及GCC的编译环境,并在此基础上进一步完成聊天室功能实现。具体的分工如下:

负责UDP通讯协议下聊天室的程序编写。

负责TCP通讯写一下的聊天室的程序编写。

同学,主要负责编写需求分析,绘制领域模型等工作。

六 . 实训项目心得及体会

Linux环境对于我们都是一个陌生的环境,通过这个项目的联系,收获的不

仅是C Socket的通信编程。更大的收获是对linux环境的学习,了解了linux的文件构成。

七 . 附录(附上实训项目其他文档,具体内容根据项目要求确定

部分核心代码 if(fork()==0) { char msg[256]; while(strcmp(msg,\"@\") != 0) { printf(\"enter input message\\n\"); scanf(\"%s\ sendto(sockffdd, msg, sizeof(msg), 0, (struct sockaddr *)&server1, sizeof(struct sockaddr)); printf(\"send successful\\n\"); usleep(100000); } close(sockffdd); }

///////////////////////////////////////////////// char buf[4096]; int resize, the_len; the_len = sizeof(struct sockaddr); while(true){ printf(\"ok\"); resize = recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr *)&their, &the_len); printf(\"receive message is:%s\ printf(\"\\%s\\n\ }

基于JAIN-SIP聊天室的开发

一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求)

 熟悉JAIN-SIP协议规定的通信工程;

 完成一个有GUI界面的聊天室,最基本要实现公聊和私聊内容;

二 . 实训项目开发环境(说明本项目需要的环境)

开发工具:Eclipse 3.2版本 和 NetBeans 6.9.1 版本

系统要求:装有Java 虚拟机的 Windows XP 及高版本 、Linux等其他系统 接口/协议约束:必须使用JAIN-SIP协议栈,支持IPv4接口

用户界面的约束:用户界面要求操作系统能支持Java 虚拟机,并有GUI桌面。

软件质量的约束:正确实现了网上聊天室的群聊、私聊、显示在线列表,新建聊天室功能,选择进入聊天室。服务器端通过JAIN-SIP封装的类使用多线程分别处理监听,发送功能。但本软件的主要实现通信的只有一个类,略有庞大,并且与多个界面有联系,之间互相有操作、调用关系,故程序的耦合度比较大。

三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等)

3.1本系统介绍:

本聊天室系统适用于大多数用户,对用户操作能力的要求低。同时,该系统的界面简洁,系统资源占用少,运行速度快,对于小型局域网内的用户可以起到很好的交流作用。所谓聊天室就是一个可以让许多用户同时相互通信的网上园地,个人用户可以通过网上聊天室将自未自己获取更多的知识和更多的阅历。

本聊天室主要用登录界面、聊天室界面、私聊界面、创建聊天室界面等构成,这个设计简洁明了,实用,使用简单。

系统的总体框架图如图2所示:

聊天室系统 服务器 客户端 监 听请求显示登录情况转 用 群 私 发请求户登录聊聊创建聊天室用 户退出

本系统的主要功能:

(1) 聊天室系统界面由登录界面,聊天窗口,私聊窗口组成,聊天窗口分为聊天室名称,

在线人数,消息发送区,消息显示区。

(2) 用户首先在登录界面输入昵称,点击登录按钮登录系统。客户端随即与服务端进行

三次握手,收到“ok”回应后打开群聊窗口。

(3) 用户可以在群聊窗口的点击用户在聊天室中的在线用户列表中可以双击某个用户,

随后弹出私聊窗口,进行对被点击用户之间的私聊。

(4) 用户可以创建新的聊天室,其他用户可以进入到新建的聊天室里。

(5) 用户在聊天窗口可以发送消息,服务器收到消息后广播给所有登录用户。并且在消

息显示区显示消息发送方的昵称。

(6) 服务器端可以记载所有用户的聊天的信息,包括私聊信息。并能通过打开一个在线

用户列表用户。可以实时看到用户列表。

(7) 聊天室系统界面由登录界面,聊天窗口,私聊窗口组成,聊天窗口分为聊天室名称,

在线人数,在线用户列表区,聊天室创建/选择,消息发送区,消息显示区。

(8) 用户首先在登录界面输入昵称,点击登录按钮登录系统。客户端随即与服务端进行

三次握手,收到“ok”回应后打开聊天窗口。

(9) 用户可以在聊天窗口的点击聊天室标签,进行创建新的聊天室,或选择一个已有的

聊天室。用户创建新聊天可以点击创建后输入聊天室名称,然后点确定。

(10) 用户在聊天窗口可以发送消息,服务器收到消息后广播给所有登录用户。并且在消

息显示区显示消息发送方的昵称,发送时间,消息内容。

用户在聊天室中的在线用户列表中可以双击某个用户,随后弹出私聊窗口,进行私聊。

3.1子系统结构图

(1)客户端子系统

2)服务端子系统

3.3分解系统的目的:

聊天室的系统主要由客户端和服务端组合而成,故可以分为两个子系统。这两个子系统可以独立的处理客户和服务器的各自的需求,如客户可以填写发送的消息,服务器可以查看用户的消息和用户的是否在线。

3.4子系统之间的关系

两者之间采用JAIN-SIP协议通过请求消息和响应消息建立通信机制。

3.5模块汇总 3.5.1 登录系统

如表1所示:

用例名称 范围 级别 主要参与者 前置条件 成功保证 登录系统 聊天室系统应用 用户目标 登录用户 无 成功登录聊天室系统 1. 用户进入登录窗口界面 2. 用户输入昵称,并点击登陆,向服务器端发送登陆请求 主成功场景 3. 系统验证用户身份,返回客户端一个响应 4. 用户成功登录系统,并进入相应的聊天室系统 2a. 登录超时 扩展 1. 系统给出登录超时的提示 1. 用户重新输入昵称,并提交 表1

3.5.2 群聊

如表2所示:

用例名称 范围 级别 主要参与者 前置条件 成功保证 主成功场景 2. 在输入区输入消息,并回车,消息发送 用户群聊 聊天室系统应用 用户目标 成功登录的用户 用户登陆成功 成功进行群聊 1. 用户成功登录后,选择右侧下方的消息输入区

3. 客户端将用户发送的信息打包传送给服务器 4. 服务器对数据进行分析后,并将用户的信息进行正确处理 5. 传给处在聊天室的所有在线其他用户 6. 将消息正常显示在上方的消息显示区 扩展 3a. 消息发送失败 1. 系统给出消息发送失败的提示 2. 用户重新输入消息,进行发送 表2

3.5.3私聊

如表3所示:

用例名称 范围 级别 主要参与者 前置条件 成功保证 用户私聊 聊天室系统应用 用户目标 成功登录的用户 用户登录成功,私聊的对方在线 成功进行私聊 1. 用户双击在线列表中的某个用户 2. 系统弹出私聊窗口 3. 在窗口下方输入消息,点击发送按钮 主成功场景 4. 系统转发消息,发送到指定的私聊用户,消息显示在私聊窗口的消息显示区,进行双方私聊 5. 私聊结束,点击关闭按钮

扩展 3a. 消息发送失败 1. 系统给出消息发送失败的提示 2. 用户重新输入消息,进行发送 特殊需求 不能与不在线的用户进行私聊 表3

3.5.4 创建聊天室

如表4所示:

用例名称 范围 级别 主要参与者 前置条件 成功保证 创建聊天室 聊天室系统应用 用户目标 成功登录的用户 用户登录成功 成功创建聊天室 1. 用户成功登录后,点击创建聊天室 2. 系统弹出新窗口 主成功场景 3. 用户输入聊天室名称点击确认 4. 创建新聊天室,进行聊天 扩展 3a. 用户如果输入已经存在的聊天室名称 1. 系统给出创建失败的提示 2. 用户重新输入,进行确认 表4

3.5.5 退出系统

如表5所示:

用例名称 范围 用户退出系统 聊天室系统应用

级别 主要参与者 前置条件 成功保证 用户目标 成功登录的用户 用户成功登录聊天室 用户在正常情况下退出了聊天室 1. 用户向服务器发送用户退出消息 2. 服务器进行用户退出的数据处理 主成功场景 3. 服务器向聊天室其他用户发送退出消息 4. 刷新其他在线用户的用户列表信息,并显示当前在线人数 表5

3.6模块间关系

领域模型如下图所示:

群聊顺序图

私聊顺序图

四 . 实训项目结果及分析

登陆界面如下:

聊天界面如下:

创建群界面如下:

五 . 实训项目人员、进度安排及完成过程

小组成员 分工及安排 组长,组织大家讨论聊天室UML设计模型,编程设计思路,解决程序出现的问题。 编程人员,主要负责通信模式设计 编程人员,主要负责分析JAIN-SIP API。 调试程序,分析并解决问题。 调试程序,分析并解决问题。 编程人员,主要负责消息处理,界面设计

六 . 实训项目心得及体会

通过本次的实训项目的练习,让我们充分熟悉了sip协议以及sip在java编程中的实现方法——jain-sip作为API来调用。熟练了我们在java的GUI方面的应用、强化了我们对于面向对象概念的理解、接口的作用;让我们对UML

和OOAD的认识又更近了一层,如何用它们知道需求分析、进一步细分软件的功能实现到具体的人员分工。

七 . 附录(附上实训项目其他文档,具体内容根据项目要求确定

7.1稳定性和可扩展性

提示:在“软件”生命周期内,判断哪些需求是不变的,预测哪些需求可能发生的变化。 在总体设计的时候,既要使总体结构稳定,又要适应需求变化。

当出现代码异常时,部分会出现正确的提示,但客户端的问题不会影响到服务器端正常的运行。用户之间信息传输不会因为数据封装问题出现丢失或乱码。因用户的误操作产生的非法输入信息会得到验证及时的处理或信息提示。

软件应正常完成所有功能需求。服务器能长时间运行无故障,但当客户访问量大时或客户发送信息量大时,服务器可能会出现端口阻塞现象,消息得不到响应,甚至服务器瘫痪。

由于采用JAVA设计,故可移植性较好。该软件项目将界面程序和后台处理程序分在不同的包中,服务器和客户端也是在不同的包中,这样将来还一些可以扩展系统的功能。

7.2 性能分析

提示:

(1)本系统应当具备哪些性能指标才能满足用户的需求? (2)如何实现性能指标?

1. 安全性

用户的合法性不能被伪装。防止网络对服务器的攻击。用户的信息应该尽可能不能被黑客截取。该软件项目目前的安全性还有待进一步提升,考虑没有使用数据库,且传输安全模式还有待进一步测试。

2. 扩展性

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

3. 易用性

系统操作的界面必须简洁、操作方便易用、设计合理。由于这次是实验软件,功能并不繁多,简单易用,但界面不够美化。可以通过设计更好的Swing界面解决。

基于O-SIP聊天室的开发

一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求)

 熟悉JAIN-SIP协议规定的通信工程;

 完成一个基于控制台的聊天室,最基本要实现公聊和私聊内容;

二 . 实训项目开发环境(说明本项目需要的环境)

 软件环境 各种版本的widows操作系统(X86)  硬件环境 CPU:英特尔80386 以上配置 内存:32MB 硬盘空间:128M

 接口/协议的约束:支持标准的IP,TCP传输协议

 软件质量的约束,如正确性、健壮性、可靠性、效率(性能)、易用性、 清晰性、安全性、可扩展性、兼容性、可移植性等等。

 软件需求能在各种Windows操作系统上使用;能连续工作7*24小时, 界面清晰,易于使用;最大支持2000个用户同时在线聊天;支持可以进

一步扩大在线人数,切在客户端可以进一步添加功能。

三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等)

3.1软件系统结构图

3.2.1客户端系统登录模块

3.2.2 客户端聊天功能模块

3.2.3 客户端系统功能模块

3.2.4 服务器端转发功能模块

3.2.5 服务器日志备份模块

3.3功能模块设计概述

3.3.1 模块汇总 子系统A O-SIP聊天室客户端 模块名称 系统登录 功能概述 登录客户端,需要输入用户名和客户端所在的IP地址,自动分配一个(8000-999号)端口; 聊天功能 直接输入想说的话可以实现聊天室公共发言; “$$$+想说的话”可以与某一在线用户私密聊天(前提要先设置密聊对象); 接受公共聊天和私密聊天的内容; 系统功能 发送“***list”,服务器可以返回当前在线用户URL; 发送“***help”客户端会提供所有支持的系统功能提示; 发送“***quit”客户端会退出,并发送离开消息给服务器,服务器给所有用户广播此离开消息; O-SIP聊天室服务器端 模块名称 转发功能 功能概述 接收用户的信息并按照不同的类型,重新包装发送(其中用户登录消息和离开消息为广播,私聊消息为转发,查询在线用户消息为回发); 日志备份 接收每个用户的每一条信息(包括公聊,私聊,以及系统信息),加入服务器的系统时间,保存在“D:\\\\log.txt”文件里;

3.4 模块之间的关系

四 . 实训项目结果及分析

目前我们O-SIP的聊天室系统的开发主要是基于控制台,由于开发时间比较仓促,所以用户界面设计部分还未完成,在后续的开发和维护中我们将此部分予以完善,给用户展示一个美观,易用,可靠的用户界面。

五 . 实训项目人员、进度安排及完成过程

小组成员 分工及安排 组织大家讨论聊天室UML设计模型,编程设计思路,解决程序出现的问题。 编程人员,主要负责通信模式设计 编程人员,主要负责分析O-SIP API。 调试程序,分析并解决问题。 调试程序,分析并解决问题。 编程人员,主要负责消息处理,界面设计 六 . 实训项目心得及体会

在这次O-SIP聊天室系统的开发过程中,虽然我们遇到过许多困难,经历了许多波折,但最终设计出的软件还是符合我们最初的设想,由于开发的时间比较仓促,软件还有许多方面需要完善,但是我们仍然收获很大,主要体现在以下两个方面:

 让我们深刻理解了团队的力量在软件开发中的作用。在 开发过程中我们

遇到过许多莫名其妙的问题,通过大家在一起交流,最后都一一解决了,如果让个人去解决,由于每个人的思维定势和编程经验的限制,可能最后解决这个问题会花费大量的时间,从而严重影响我们开发的效率。但是通过大家在一起讨论,研究,这些问题很快就解决了,因此团队协作的力量对开发效率的影响是不容忽视的,现在的软件开发行业再不是个人英雄主义,而是更加注重团队的力量。

 采用科学的软件设计的方法。在组长同学的组织下,我们首先对项目的需

求分析进行讨论,每个组员都可以表达自己的观点,然后大家一起讨论,确定最终的设计方案,因此我们组花了大量的时间进行需求分析,运用软件工程的思想和面向对象分析和设计方面的知识,对整个项目进行设计,最终确定出我们认为最合理,最优化的方案,然后分配给每个组员相应的任务,在限定的时间内完成,然后再大家一起交流自己的任务完成情况,以及遇到的问题,充分发挥集体的智慧大家一起解决,这样提高了我们开发项目的效率,同时在我们实际项目中采用迭代式开发方式,对于这种开发方式的好处,经过这次实际项目的锻炼,让我们才真正领悟到它的长处。在设计时运用UML方法,让我们的设计方案更加规范,整个项目分析和设计流程更加合理,同时也取得比较好的结果。

七 . 附录(附上实训项目其他文档,具体内容根据项目要求确定

由于开发时间比较仓促,以及我们开发团队技术能力和经验方面的限制,所以在以下几个方面还有不足之处,在后续的开发过程中我们将予以改进和完善。

 容错性需求

当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之 间信息传输不会因为数据封装问题出现丢失或乱码。因用户的误操作产生的异常应作为及时的处理或信息提示。  软件设计可靠性

要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统

的可靠性和稳定性得到提高,并且便于系统维护和新模块的添加。  安全性

安全性是防止网络方面的攻击。在后续的开发中我们将采用数据加密存储 技术,因为数据大多数是明文存放,如果黑客一旦有机会侵入系统,如果 是明文存放的,该数据很容易暴露出来。所以对一些核心数据,需要在数 据存储时,就进行了数据加密。  易用性

由于我们的系统是基于控制台的,所以在用户在客户端操作起来不是很方便,因此在后续的开发中,我们将开发出基于MFC的图形用户界面,充分发挥“以用户为中心的进行设计”设计理念,从设计过程的开端便把用户所关注的东西包含于其中,并规定用户应该是任何设计决定中最重要的因素

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