当前位置: 首页 > 编程日记 > 正文

软件工程需求设计说明书

Java即时通聊天程序

设计需求说明书

专业班级:

计本班1202班

项目组成员:

杨宗坤

刘瑞

满亚洲

指导教师:

张利峰

开始日期:

完成日期:

编写目的:

本说明书是在充分理解系统需求分析基础上,为详细设计及编码设计准备的,是详细设计和系统编码的根据,同时也是与用户进行交流的文档之一。

背景:

在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ等一类的聊天、文件传送系统的发展日新月异,应2015-2016学年第二学期《软件工程》课程要求,我小组(包括:满亚洲、杨宗坤、刘瑞)选择聊天程序作为我组的开发程序。

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

待开发软件系统的名称:聊天系统

此软件系统任务提出者:课程要求

此软件系统任务开发者:刘瑞、满亚洲、杨宗坤

参考资料:

《java2实用教程(第三版)》

功能简介

用户显示界面:可显示当前的在线用户,另有“刷新用户”

按钮,可刷新掉下线用户,上线用户则自动添加到在线组上。

聊天室登陆

(包括名字、

服务器、

端口的输入

和性别选择)

聊天室界面:聊天室界面最上一栏菜单栏可设定聊天字体、样式、颜色、字号,下部分别为群聊天显示界面和私聊显示界面。下部分为聊天界面,右部分为文件传输界面。可实现功能包括群聊功能、私聊功能、截屏功能、文件传送功能。

用户的特点

本软件的最终用户为各类计算机使用者,主要是需要在局域网间频繁通信的用户,并且需要快速的传送不同类型文件,此软件可为这类用户提供很大便利。

系统运行环境

本软件可在正确安装jdk的系统环境下运行。

总体设计:

开发工具和平台:

jdk,eclipse、windows平台

程序名称:java聊天程序

编程语言:java

功能:群聊、私聊、文件传送、截图、改变字体属性。本软件为即时传送软件,可忽略延时,可以高速传送大容量文件。

基本设计思想和处理流程:

采用客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。

系统功能层次图

转载于:https://www.cnblogs.com/yzkblog/p/4420250.html

相关文章:

Nagios 安装文档

安装前的装备工作(1)解决安装Nagios的依赖关系:Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经安装完成:#yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server --skip-…

Comprehensive Guide to build a Recommendation Engine from scratch (in Python) / 从0开始搭建推荐系统...

https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/, 一篇详细的入门级的推荐系统的文章,这篇文章内容详实,格式漂亮,推荐给大家. 下面是翻译,翻译关注的是意思&#x…

关于std::string 在 并发场景下 __grow_by_and_replace free was not allocated 的异常问题

使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧。 string作为一个容器,随着我们的append 或…

Java项目:银行管理系统+文档Java基础Gui(java+Gui)

源码获取:博客首页 "资源" 里下载! 功能介绍: 登录、打印、取款、改密、转账、查询、挂失、存款、退卡 服务模块: public class atmFrame extends JFrame {private JPanel contentPane;private user user; // private…

ie旋转滤镜Matrix

旋转一个元素算是一个比较常见的需求了吧,在支持CSS3的浏览器中可以使用transform很容易地实现,这里有介绍:http://www.css88.com/archives/2168,这里有演示http://www.css88.com/tool/css3Preview/Transform.html,就不…

音频(3):iPod Library Access Programming Guide:Introduction

NextIntroduction介绍iPod库访问(iPod Library Access)让应用程序可以播放用户的歌曲、有声书、和播客。这个API设计使得基本播放变得非常简单,同时也支持高级的搜索和播放控制功能。iPod library access 通过打开iOS允许的音乐相关的广阔范围…

【2019/4/30】周进度报告

冲刺可以推迟了,但这不妨碍知识储备(另外这周看了看梦断代码,感觉还是很有意思的一本书)。 第七周所花时间约9个小时代码量700多行,主要是阅读代码为主(框架内代码)博客量1篇了解到的知识点 1.y…

关于 智能指针 的线程安全问题

先说结论&#xff0c;智能指针都是非线程安全的。 多线程调度智能指针 这里案例使用的是shared_ptr&#xff0c;其他的unique_ptr或者weak_ptr的结果都是类似的&#xff0c;如下多线程调度代码&#xff1a; #include <memory> #include <thread> #include <v…

Java项目:无库版商品管理系统(java+Gui+文档)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 添加商品、修改商品、删除商品、进货出货、查看流水、注册 登录业务处理&#xff1a; public class LoginView extends JFrame implements ComponentListener{private JPanel center…

LTE QCI分类 QoS

http://blog.163.com/gzf_lte/blog/static/20840310620130140057204/ http://blog.163.com/gzf_lte/blog/static/208403106201301403652527/ http://blog.sina.com.cn/u/1731932381 lte2010 QCI (QoS Class Identifier)同时应用于GBR和Non-GBR承载。一个QCI是一个值&#xff0…

CSS 单行溢出文本只显示部分内容

.cc-item div { width:175px; text-overflow:clip;  //该属性适用于IE6,IE7 max-width:175px;  //该属性适用于IE8&#xff0c;FF,谷歌}

Audio声音

转载于:https://www.cnblogs.com/kubll/p/10799187.html

Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

文章目录前言XOR-filter 实现原理xor filter 的构造原理xor filter 构造总结XOR-filter 和 ADD-filter对比XOR-filter 在计算上的优化Ribbon filter高斯消元法总结参考前言 还是起源于前几天的Rocksdb meetup&#xff0c;其中Peter C. Dillinger 这位大佬分享了自己为rocksdb实…

Java项目:无库版银行管理系统(java+Gui+文档)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 注册用户、编辑用户、删除用户、存取款、查看流水 存入业务处理&#xff1a; public class depositFrame extends JFrame {private JPanel contentPane;private JTextField inputFiel…

iptables-save和iptables-restore

iptables-save用来把当前的规则存入一个文件里以备iptables-restore使用。它的使用很简单&#xff0c;只有两个参数&#xff1a;iptables-save [-c] [-t table]参数-c的作用是保存包和字节计数器的值。这可以使我们在重启防火墙后不丢失对包和字节的统计。带-c参数的iptables-s…

代码之美——Doom3源代码赏析2

http://www.csdn.net/article/2013-01-17/2813778-the-beauty-of-doom3-source-code/2 摘要&#xff1a;Dyad作者、资深C工程师Shawn McGrathz在空闲时翻看了Doom3的源代码&#xff0c;发出了这样的惊叹&#xff1a;“这是我见过的最整洁、最优美的代码&#xff01;”“Doom 3的…

什么是JavaBean

按着Sun公司的定义&#xff0c;JavaBean是一个可重复使用的软件组件。实际上JavaBean是一种Java类&#xff0c;通过封装属性和方法成为具有某种功能或者处理某个业务的对象&#xff0c;简称bean。由于javabean是基于java语言的&#xff0c;因此javabean不依赖平台&#xff0c;具…

关于 linux io_uring 性能测试 及其 实现原理的一些探索

文章目录先看看性能AIO 的基本实现io_ring 使用io_uring 基本接口liburing 的使用io_uring 非poll 模式下 的实现io_uring poll模式下的实现io_uring 在 rocksdb 中的应用总结参考先看看性能 io_uring 需要内核版本在5.1 及以上才支持&#xff0c;liburing的编译安装 很简单&am…

添加引用方式抛出和捕获干净的WebService异常

转载&#xff1a;http://www.cnblogs.com/ahdung/p/3953431.html 说明&#xff1a;【干净】指的是客户端在捕获WebService&#xff08;下称WS&#xff09;抛出的异常时&#xff0c;得到的ex.Message就是WS方法中抛出的异常消息&#xff0c;不含任何“杂质”。 前提&#xff1a;…

Java项目:车租赁管理系统(java+Gui+文档)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 登陆界面、管理员界面、用户界面、汽车租赁文档 系统主页&#xff1a; SuppressWarnings("serial") public class SystemMainView extends JFrame implements ActionListe…

TFS中的测试计划(十)

现在有一个测试用例&#xff0c;用来测试登录&#xff0c;并且有两组测试数据。打开团队项目的web门户的测试。新建一个测试计划。命名为测试计划1添加完测试计划后&#xff0c;就可以向这个计划里添加测试用例了&#xff0c;选择登录测试。运行测试&#xff0c;就会生成下图左…

跟着Rocskdb 学 存储引擎:读写链路的代码极致优化

文章目录1. 读链路1.1 FileIndexer1.1.1 LevelDB sst查找实现1.1.2 Rocksdb FileIndexer实现1.2 PinnableSlice 减少内存拷贝1.3 Cache1.3.1 LRU Cache1.3.2 Clock Cache1.4 ThreadLocalPtr 线程私有存储1.4.1 version系统1.4.2 C thread_local vs ThreadLocalPtr1.4.3 ThreadL…

Java项目:人力管理系统(java+Gui+文档)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 角色员工、管理员&#xff0c;员工信息表&#xff0c;查询、更新&#xff0c;修改&#xff0c;移除、添加 用户管理控制层&#xff1a; /*** author yy*/Controller RequestMapping(…

senfile函数实例的运行过程截图

//要传输的文件内容如下所示&#xff1a; 启动服务器&#xff0c;等待客户端连接&#xff08;在同一台主机上模拟的&#xff09; 客户端远程登录&#xff0c;这里是在本地登录 这个要注意一点就是远程登陆的时候一定要带上端口号不然连接失败&#xff01;&#xff01;转载于:ht…

马年计划2014-2-21

新的一年到来了&#xff01; 刚刚过去的一年里&#xff0c;我已浪费很多时光&#xff01; 新年新气象&#xff0c;为避免重蹈覆辙&#xff0c;此时我必须要立个新年计划&#xff0c;马年计划&#xff01; &#xff08;1&#xff09;一天必须做两道ACM题。 &#xff08;2&#…

java jsp页面如何添加C标签

在https://mvnrepository.com/找两个jar包分别是&#xff1a; <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <dependency> <g…

如何用 ndctl/ipmctl 管理工具 配置不同访问模式的pmem设备

文章目录1 PMEM 底层架构2 PMEM 逻辑架构3 ipmctl 创建 不同模式的 region3.1 安装3.2 创建AppDirect mode的region3.3 创建 Memory Mode模式3.4 创建 混合模式3.5 查看创建的结果4 ndctl 创建不同类型的 namespaces4.1 安装4.2 创建/删除 一个任意类型的namespace4.3 指定类型…

[PHP]php基础练习题学习随笔

1、解释一下PHP中常量、变量、可变变量并举例说明&#xff1b;超级全局变量有哪些&#xff1f; 常量是单个值的标识符&#xff08;名称&#xff09;&#xff0c;通过define()设置&#xff0c;在脚本中无法改变该值&#xff0c;常量自动全局。<?php #对大小写不敏感为true&a…

Java项目:进销存系统(java+Gui)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 基本信息管理、库存管理、销售管理、订单管理、日志管理、供应商基本信息、员工基本信息、商品信息、入库管理、出库管理、剩余库存 商品信息控制层&#xff1a; /*** <p>* 前…

IDP申请直到软件上架流程 - iOS

第一&#xff1a;IDP的申请 1.先在iPhone DevCenter上注册成为iphone developer 2.加入iPhone开发程序项目iPhone Developer Program Apply Now 3.打算收费的都建议选择99刀那个&#xff0c;QTY是个数的意思。1就好。 4.选择地区china&#xff0c;(很早之前没有china&#xff0…