《标准化C聊天系统.docx》由会员分享,可在线阅读,更多相关《标准化C聊天系统.docx(7页珍藏版)》请在第一文库网上搜索。
1、网络聊天系统需求分析说明书1.引言1.编写目的2,定义2 .任务概述21 .目标22 .用户的特点23 .系统功能不例23 .需求细则21 .对功能的规定22 .对性能的规定53 .对排版的规定54 .对可维护性的规定65 .对个性的规定66 .对项目过程的规定61.引言1.编写目的此需求分析说明书对标准化C+聊天系统软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。2.
2、定义需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。而且其很强的交互性及简单易行性,可以让人在很短时间内熟悉它的操作方法,不论用户文化水平如何,都会很轻松的学会使用它。2.任务概述1 .目标2 .用户的特点由于本程序简单易操作,交互性好,对用户没什么特别要求。一般用户经过几分钟练习都可以熟悉本系统的规则。3 .系统功能示例需求:1 .项目架构:项目采取C/S架构(服务器/客户端):服务器:采用TCP协议搭建,用于处理客户端的请求操作。客户端:采用TCP协议连接服务器,同时使用UDP向同一个聊天室的客户端发送视频数据和音频
3、数据。2 .数据存储:服务器端的用户信息一律保存至数据库中,数据库种类不限,可选用MySQL,SQLite,SqlServer.3 .开发过程:使用QT版本5.7以上进行开发,开发平台windows/linux/oso自行搭建svn服务器,进行版本控制。(可选)4 .最后成品:将最后的项目的程序打包生成各个平台上的可执行文件。(可选)3-需求细则1 .对功能的规定WelcomeresistorsuccessWelcomeT(eAccountPeterPaw 123OKAccountPeterPass 123register failedOK1.1 服务器和客户端的基本通信:属性:基本功能需要搭
4、建基本的TCP服务器和客户端,并且能过建立连接,收发信息。之后所有功能都基于该项功能。1.2 用户注册:属性:基本功能客户端能过向服务器发出注册的请求。服务器收到注册请求后,将新用户添加至数据库(需要重名用户无法注册),然后将注册的结果返回客户端。FormFormRegisterRegister如上图。注册成功失败都应有提示。1.3 用户登陆:属性:基本功能客户端能过向服务器发出登陆的请求。服务器收到登陆请求后,需要通过数据库核对用户名和密码是否正确,然后将登陆的结果返回客户端。FormForm房间列表刚新创建我的房间WelcomeTOloginfailedAccountJackOKPass1
5、23RegisterExit如上图,登陆失败应有提示,登陆成功进入聊天室选择窗口。1.4用户创建聊天室:属性:基本功能用户登陆后可以选择创建聊天室,成为一个聊天室的房主。在同一聊天室的用户可以进行视频,音频,文字聊天。而聊天内容不会被聊天室外或者其他聊天室接受。0Form用像奂期天空成贵列表刷新开美邛夏克风开关T天记录Send上图为用户abc进入聊天室后的窗口显示。1.5用户加入聊天室:属性:基本功能用户登陆后可以查看目前已有的聊天室,然后选择加入其中某个聊天室。WForm严眇碗.一创建我的房阍FormaocTanPeterMA3abcExit上左图为用户aaa登陆后的房间列表显示,aaa可以
6、选择某个房间进入。上右图为用户aaa选择进入了abc的房间。Swd1.6 聊天室内的用户列表:属性:基本功能用户创建聊天室或加入聊天室后,可以查看在聊天室内的所有用户。1.7 聊天室内的文字传输:属性:基本功能用户创建聊天室或加入聊天室后,可是在聊天室内发送文字信息,文字信息发送后,聊天室内所有用户都会收到该文字。1.8聊天室内的视频传输:属性:基本功能房主可以在聊天室内打开摄像头,进行视频直播。直播后所有聊天室内成员都可以通过摄像头看到动态的影像(如果房主没有摄像头则直播房主的电脑屏幕)。提示:建议使用udp协议多播的形势进行图片的传输,多播组的ip地址224.0.0.0到239.255.2
7、55.255o上左图:aaa不是房主尝试打开摄像头后,弹出窗口“只有房主才能打开摄像头。”上右图:abc是房主打开摄像头后,abc的聊天室都会显示影像。1.9 聊天室内的音频传输:属性:可操作功能房主可以在聊天室内打开麦克风,进行音频直播。直播后所有聊天室内成员都可以通过房主的麦克风听到声音。提示:建议使用udp协议多播的形势进行音频的传输,多播组的ip地址224.0.0.0到239.255.255.255o1.10 聊天室弹幕:属性:可操作功能聊天室成员发送的文字能以弹幕的形势出现在房主的直播窗口中。Formaoc大e俵1.11 聊天室送礼:属性:可操作功能为数据库中的用户添加金钱和积分属性
8、。在聊天室内,用户发送文字信息可获取积分,积攒一定积分后可以赠送虚拟礼物(鱼蛋,飞机,火箭)给房主,房主收到虚拟礼物后折算为金钱。1.12 个性功能:属性:可操作功能surpriseme.2.对性能的规定本系统在设计方面本着方便、实用的宗旨,性能方面应遵循如下原则: 执行效率(时间):软件运行应该尽量高效;避免没有必要的循环处理、重复处理; 资源损耗(空间):设计尽量节约资源(内存、数组、链表等);不用的资源要及时释放; 初始化:变量、数组、内存块、链表节点(其next要置NULL)等都要初始化; 健壮性:不能出现野指针、内存泄露、数组越界访问等等:申请内存之后,应该立即检查指针值是否为NUL
9、L;动态内存的申请与释放必须配对,防止内存泄漏。释放了内存之后,立即将指针设置为NULL,防止产生“野指针”; 函数的入参必需进行有效性判断; switch-case一定要有if-elseif等后要有else; 不允许出现goto语句; 数组的下标不要发生“多1”或者“少1”操作。3.对排版的规定 缩进要对齐; 长行拆分; 二元操作符的前后应当加空格,包括如下操作符:赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如二、二=、二、+、*、,、&、11、,”等; 空行: 结构体声明之后、每个函数定义结束之后都要加2行空行; 逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔; 一
10、行代码只做一件事情二 if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加;4.对可维护性的规定对可维护性的最终要求:别人能够轻松上手你的代码。结构清晰: 模块化:对界面(显示)、菜单管理、逻辑管理、文件操作等等代码要独立; 封装:一个函数只做一件事,函数功能要单一;一个函数不能超过100行;避免重复、冗余代码; 代码块清晰。变量命名规范,变量名应该具有自明性: 常量,枚举和宏定义命名常量名,宏和枚举值由全大写字母组成,单词间通过下划线来界定; 函数的命名:使用动词或者动词+名词(动宾词组)的形式,由一个或多个单词组成且以小写字母开头,以后每个单词的首字母要大写便于界定 变量的命名与定义应当使用名词或者形容词+名词,由一个或多个单词组成且以小写字母开头,以后每个单词的首字母要大写便于界定。注释充分:变量、函数(包括功能、参数、返回值)、代码功能块、一些复杂算法等都需要清晰5.