标准化C++聊天系统需求.doc

上传人:scccc 文档编号:12343244 上传时间:2021-12-03 格式:DOC 页数:9 大小:181KB
返回 下载 相关 举报
标准化C++聊天系统需求.doc_第1页
第1页 / 共9页
标准化C++聊天系统需求.doc_第2页
第2页 / 共9页
标准化C++聊天系统需求.doc_第3页
第3页 / 共9页
标准化C++聊天系统需求.doc_第4页
第4页 / 共9页
标准化C++聊天系统需求.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《标准化C++聊天系统需求.doc》由会员分享,可在线阅读,更多相关《标准化C++聊天系统需求.doc(9页珍藏版)》请在三一文库上搜索。

1、网络聊天系统需求分析说明书1. 弓I言11编写目的12. 定义12. 任务概述21 .目标22. 用户的特点23. 系统功能示例 23. 需求细则21. 对功能的规定 22. 对性能的规定 63. 对排版的规定 64. 对可维护性的规定 75. 对个性的规定 76. 对项目过程的规定 81. 引言1. 编写目的此需求分析说明书对标准化 C+聊天系统软件做了全面细致的用户需求分析, 明确所要开发的软件应具有的功能、 性能与界面,使系统分析人员及软件开发人员能清 楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发 工作。本说明书的预期读者为客户、业务或需求分析人员、测试人

2、员、用户文档编写者、 项目管理人员。2. 定义需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、 标准,规范或其它正式规定文档所需具有的条件或权能。而且其很强的交互性及简单易行性,可以让人在很短时间内熟悉它的操作方法, 不论用户文化水平如何,都会很轻松 的学会使用它。2.任务概述1. 目标2. 用户的特点由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟 练习都可以熟悉本系统的规则。3. 系统功能示例需求:1. 项目架构:项目采取c / s架构(服务器/客户端):服务器:采用TCP协议搭建,用于处理客户端的请求操作。客户端:采用TCP协议连接服务器,

3、同时使用UDP向同一个聊天室的客户端发送视频数据和音频数据。2. 数据存储:服务器端的用户信息一律保存至数据库中,数据库种类不限,可选用MySQL,SQLite,SqIServer.3. 开发过程:使用QT版本5.7以上进行开发,开发平台windows /linux / os。自行搭建svn服务器,进行版本控制。(可选)git4. 最后成品:将最后的项目的程序打包生成各个平台上的可执行文件。(可选)1.对功能的规定分基本功能和可操作功能,其中,基本功能是必须完成的,属于项目答辩的入口条件,所有人 都要做,未完成者取消答辩资格;如果可操作功能不做将会扣分。如果所有项(包括必选和任选) 都完成,那

4、么功能分就是满分。如果设计思路、界面效果、代码组织等方面有个性(或和别人的不 同),则获得附加分。项目需求中图片的窗口布局仅其提示参考作用,学员请自行合理的布局。1.1 服务器和客户端的基本通信:属性:基本功能 需要搭建基本的TCP服务器和客户端,并且能过建立连接,收发信息。之后所有功能都 基于该项功能。1.2 用户注册:属性:基本功能客户端能过向服务器发出注册的请求。服务器收到注册请求后,将新用户添加至数据库 (需要重名用户无法注册),然后将注册的结果返回客户端。FgrniWelcome1239如上图。注册成功失败都应有提示。1.3 用户登陆:属性:基本功能客户端能过向服务器发出登陆的请求。

5、服务器收到登陆请求后,需要通过数据库核对用户名和密码是否正确,然后将登陆的结 果返回客户端。如上图,登陆失败应有提示,登陆成功进入聊天室选择窗口。1.4 用户创建聊天室:属性:基本功能用户登陆后可以选择创建聊天室,成为一个聊天室的房主。在同一聊天室的用户可以进行视频,音频,文字聊天。而聊天内容不会被聊天室外或者 其他聊天室接受。上图为用户abc进入聊天室后的窗口显示。1.5 用户加入聊天室:属性:基本功能用户登陆后可以查看目前已有的聊天室,然后选择加入其中某个聊天室。Form上左图为用户aaa登陆后的房间列表显示,aaa可以选择某个房间进入。上右图为用户aaa选择进入了 abc的房间。1.6

6、聊天室内的用户列表:属性:基本功能用户创建聊天室或加入聊天室后,可以查看在聊天室内的所有用户。1.7 聊天室内的文字传输:属性:基本功能用户创建聊天室或加入聊天室后,可是在聊天室内发送文字信息,文字信息发送后,聊 天室内所有用户都会收到该文字。1.8聊天室内的视频传输:属性:基本功能房主可以在聊天室内打开摄像头,进行视频直播。直播后所有聊天室内成员都可以通过 摄像头看到动态的影像(如果房主没有摄像头则直播房主的电脑屏幕)。提示:建议使用 udp协议多播的形势进行图片的传输,多播组的ip地址224.0.0.0到239.255.255.255。上左图:aaa不是房主尝试打开摄像头后,弹出窗口“只有

7、房主才能打开摄像头。上右图:abc是房主打开摄像头后,abc的聊天室都会显示影像。1.9聊天室内的音频传输:属性:可操作功能(A班必选功能)房主可以在聊天室内打开麦克风,进行音频直播。直播后所有聊天室内成员都可以通过 房主的麦克风听到声音。提示:建议使用udp协议多播的形势进行音频的传输,多播组的ip地址224.0.0.0到239.255.255.255。1.10聊天室弹幕:属性:可操作功能聊天室成员发送的文字能以弹幕的形势出现在房主的直播窗口中。1.11聊天室送礼:属性:可操作功能为数据库中的用户添加金钱和积分属性。在聊天室内,用户发送文字信息可获取积分,积攒一定积分后可以赠送虚拟礼物(鱼蛋

8、,飞机,火箭)给房主,房主收到虚拟礼物后折算为金钱。1.12个性功能:属性:可操作功能surprise me.2. 对性能的规定本系统在设计方面本着方便、实用的宗旨,性能方面应遵循如下原则: 执行效率(时间):软件运行应该尽量高效;避免没有必要的循环处理、重复处理; 资源损耗(空间):设计尽量节约资源(内存、数组、链表等);不用的资源要及时释放; 初始化:变量、数组、内存块、链表节点(其 next要置NULL等都要初始化; 健壮性:不能出现野指针、内存泄露、数组越界访问等等: 申请内存之后,应该立即检查指针值是否为NULL动态内存的申请与释放必须配对,防止内存泄漏。释放了内存之后,立即将指针设

9、置为NULL防止产生“野指针”; 函数的入参必需进行有效性判断; switch-case 一定要有 default ; if-else if等后要有 else ;不允许出现goto语句; 数组的下标不要发生“多1”或者“少1”操作。3. 对排版的规定缩进要对齐;长行拆分;>="、二元操作符的前后应当加空格,包括如下操作符:赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,女如 "="、"+=""<<"等;"< = ""+ ""*"&

10、quot;%""&&" "II"空行: 结构体声明之后、每个函数定义结束之后都要加2行空行;逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔; 一行代码只做一件事情; "if" > "for"、"while" 、”do"等语句自占一行,执行语句不得紧跟其后。不论执行语 句有多少都要加" ";4. 对可维护性的规定对可维护性的最终要求:别人能够轻松上手你的代码。 结构清晰: 模块化:对界面(显示)、菜单管理、逻辑管理、文件操作等等

11、代码要独立; 封装:一个函数只做一件事,函数功能要单一;一个函数不能超过100行;避免重复、冗余代码;代码块清晰。 变量命名规范,变量名应该具有自明性:常量,枚举和宏定义命名常量名,宏和枚举值由全大写字母组成,单词间通过下划线来界定;函数的命名:使用”动词”或者"动词+名词"(动宾词组)的形式,由一个或多个单词组成且以小写 字母开头,以后每个单词的首字母要大写便于界定 变量的命名与定义应当使用”名词”或者”形容词+名词”,由一个或多个单词组成且以小写字母开头,以 后每个单词的首字母要大写便于界定。 注释充分:变量、函数(包括功能、参数、返回值)、代码功能块、一些复杂算法 等

12、都需要清晰地说明;5. 对个性的规定把项目做出个性出来。下列各项中有和别人不同之处、或很有创意,即可认为有个性。独立设 计的软件,一般都会出现一些个性。参考、抄袭不会出现个性。 设计思路:包括软件的整体架构、功能块的设计思路、函数封装等; 功能实现:从用户的角度,使用上发现与众不同的地方; 其它方面;6. 对项目过程的规定本着紧张但不急躁、不参考、不拷贝的原则进行。紧张但不慌张项目周期只有一周,包括项目答辩时间。所以项目时间比较紧张,但不能慌张。 要有自己明确的设计思路,一步步沿着思路走下去,以此来巩固自己所学,锻 炼自己的独立工作能力。能自己做,绝不参考别人自己还没有做,还没有想,就去看别人的,这样尽管功能做出来,但却没 有什么意义,真正面试时还是不会。作者和读者,天壤之别。如果自己实在无法搞定,一个问题卡了快一天,则可以咨询一下别人的想 法,再行编码;尽量不直接看别人代码。不拷贝一旦发现拷贝,取消答辩资格。答辩时发现,答辩成绩减半。copy别人的代码,甚至直接运行别人的代码,以此作为自己的项目进展,这是 严禁的。严禁运行效果出来了,却不知道是哪些代码造成的,严禁明明是自己 写的代码,但却不知道为什么这么写。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1