前两天在博客上,发了一篇博文,概述了java qq设计中的几个重要的问题,及其解决方案,有的人求源代码,其实得到源代码也未必能看懂的详细结构,原因之一就是代码太多,二是鄙人的代码编写水平很有限,所以为方便那些拿到代码的朋友的阅读,特此连载详细设计思路、详细设计图、及伪代码。
Iteye 网站的这个博客编辑器貌似不大给力,不能插入图片,也许我刚来不知道怎么插图片,我会在csdn上同步贴出这一系列博文,大家如果想看图文的话,可以看我的csdn博客
http://blog.csdn.net/wangchangshuai0010
今天第一部分写一下概述,今后几天会连续更新出来其他的。重申:代码水平有限,肯定会有设计不周及小bug的地方,请大家提提建议或意见,勿拍板砖,谢谢
(一)接口
一、外部接口
1、用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Java se进行编程,在界面上可使用Java2 se 所提供的可视化组件,向WINDOWS 风格靠近。 其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用Java2 se 库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用
2、软件接口
服务器程序可使用Java2 se 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。服务器程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存。在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
3、硬件接口
在输入方面,对于键盘、鼠标的输入,可用Java2 se的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用Java2 se的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。
二、内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
(二)运行设计
一、运行模块的组合
客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。
在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。
运行控制运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
二、出错处理设计
1、出错处理对策
所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。
在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。
2、安全保密设计
不好意思,这一方面做的最差,可以说为了进度,几乎完全没考虑,请拿到源代码的朋友完善一下,完善后可以分享一下(无私的人最美)
3、维护设计
维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
设计中遇到的几个问题及解决方案:
http://blog.csdn.net/wangchangshuai0010/article/details/7335732
分享到:
相关推荐
这个压缩包文件“安卓Android源码——仿QQ列表通讯录项目.zip”包含了创建一个类似QQ通讯录的Android应用的源代码和相关资源。通过分析这些文件,我们可以深入了解Android应用程序开发的关键知识点。 首先,"源码...
**实验报告——JAVA程序设计** 本实验报告是针对大学生JAVA程序设计课程的,基于吕凤翥第二版教材,旨在通过实际操作加深对JAVA语言的理解,特别是GUI(图形用户界面)菜单设计方面的能力培养。实验的主要目标是让...
1. **Java概述**(第1章Java概述.ppt):这部分通常会介绍Java的历史、特点、应用领域以及Java开发环境的搭建,如JDK的安装与配置。此外,还会涉及Java程序的编写、编译和运行过程,例如"Hello, World!"程序的创建。...
- **WebRoot和Src路径配置**:在Eclipse中创建Java Web项目时,需要指定两个重要的路径——`WebRoot`和`src`。 - `WebRoot`:这是项目的根目录,通常包含了所有的Web资源,如HTML文件、CSS文件、JavaScript文件等...
### Java IO流技术详解 #### 一、IO流概述 在Java编程中,**IO流**(Input/Output Stream)主要用于实现数据的输入与输出操作。无论是文件读写、网络通信还是程序间的交互,几乎所有的数据交换都依赖于IO流。 #####...
### Java版QQ——类似QQ的即时通讯系统 #### 一、概述 Java版QQ是一款基于Java语言开发的即时通讯(Instant Messaging, IM)软件,它提供了类似于腾讯QQ的基本功能和服务,包括用户登录、注册、添加好友、即时消息...
1999年2月,腾讯正式推出第一个即时通信软件——“腾讯QQ”,QQ在线用户由1999年的2人(2人指马化腾和张志东)到现在已经发展到上亿用户,在线人数超过一亿,是中国目前使用最广泛的聊天软件之一。由于QQ的流行,...
1. **Java语言概述**:Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现为Oracle公司)在1995年推出。它的设计目标是“一次编写,到处运行”,通过Java虚拟机(JVM)实现平台无关性。 2. **类与...
《阿里巴巴Java 开发手册》通过一系列明确而实用的规约,帮助开发者在编码过程中遵循最佳实践,提高软件质量和开发效率。这些规约不仅涵盖了编程本身,还包括了数据库设计、异常处理、日志记录等多个方面,旨在帮助...
- **案例驱动的学习方式**:本书采用案例驱动的方式教授Java编程,通过一系列实际项目(如仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器等)引导读者深入理解Java编程的各个方面。 - **重现课堂氛围**:...
代码及运行界面截图:链接:https://blog.csdn.net/qq_43563538/article/details/115723753 介绍: 项目概述: 基于SSM框架实现一个酒店管理系统,包括用户端和管理员端;...————————————————
【需求文档概述】 《李萌萌毕设——需求文档》主要描述了一个基于Web的企业办公用品申领系统的构建,旨在优化企业内部的办公用品申请和管理流程。系统前端操作平台的设计和实现聚焦于提供便捷的自助服务,提升办公...
目录回到顶部↑第1章 进驻爪哇岛——JAVA的基本语法. 1 1.1 讲解 2 1.1.1 爪哇岛的历史与演变 2 1.1.2 爪哇岛基本生存规则 4 1.1.3 爪哇岛上新人新风尚 11 1.2 练习 15 1.2.1 搭建Java开发环境 15 1.2.2 体验...
通过介绍Java的特点(如面向对象、跨平台性等),让学生了解为什么Java能够成为如此流行的编程语言之一。 - **视频内容要点:** - Java语言的由来和发展历程; - Java语言的主要特性,包括但不限于面向对象、安全...
### 全新Java初学者实践教程(J2SE5.0版)——环境变量配置与实践 #### 知识点概述: 本教程旨在帮助Java初学者掌握基础的环境配置及简单程序开发流程,特别是针对Java SE 5.0版本。教程内容涵盖了环境变量的基本...
3. **多版本兼容(JEP 261)**:Java 9允许并行使用不同版本的Java运行时环境,这意味着一个项目可以依赖不同版本的库,增强了软件的兼容性和升级灵活性。 4. **接口私有方法和默认静态方法**:Java 9扩展了接口的...
1. **概述**:这部分通常介绍Java的历史、特性、应用领域以及其开发环境——Java Development Kit (JDK)。Java的"Write Once, Run Anywhere"(一次编写,到处运行)理念使得它在各种操作系统上都能运行。 2. **数据...
该项目最初考虑使用C++作为开发语言,但由于C++过于复杂且安全性不佳,最终决定基于C++开发出一种全新的语言——Oak(Java的前身)。Oak语言设计简洁、安全,特别适合网络环境下的应用。 1994年,随着互联网的兴起...