基于linux的聊天软件可行性研究报告.docx
- 文档编号:23563135
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:47
- 大小:507.99KB
基于linux的聊天软件可行性研究报告.docx
《基于linux的聊天软件可行性研究报告.docx》由会员分享,可在线阅读,更多相关《基于linux的聊天软件可行性研究报告.docx(47页珍藏版)》请在冰豆网上搜索。
基于linux的聊天软件可行性研究报告
软件系统设计报告
Linux聊天软件
中国矿业大学计算机科学与技术学院
附表3:
题目
Linux聊天软件
设计日期
2010年9月15日至2010年12月30日
小组成员
在本次设计中承担的任务
文档成绩
韩超
概要设计、测试
优秀
黄颢
可行性研究、详细设计、编码、测试
优秀
金杰
可行性研究、需求分析、测试
优秀
李波文
详细设计、需求分析、测试
优秀
黄颢
组长
指导教师签字:
年月日
Linux聊天软件
可行性研究报告
1项目背景
随着科技的发展,尤其是电子科技,网络技术等的快速发展,其中Internet的广泛应用最引人注目,当今,基于网络通讯技术的各种应用软件已经鳞次栉比,非常多了,如QICQ,UC等,在这次软件设计中,我们选择了较为熟悉和普遍的即时通讯软件来开发。
鉴于传统的windows,unix操作系统不开源,不能让我们在开发过程中学到关于开发环境的相关知识,并且在其上应用前景也不是很明朗,所以我们选择开源的LINUX操作系统并且搭建其下的开发环境来开发我们的软件,在学习软件设计的同时,也能学习到LINUX操作系统的知识和熟悉相关开发环境的使用。
学习Linux软件开发与编程应用,并且把软件工程的理念蕴于其中,而更达到锻炼学习实践的目的。
2任务概述
2.1项目目标
设计一个可以运行在Linux平台下C/S架构的即时聊天系统,实现聊天的各种基本功能。
2.2项目范围
A.功能:
能够正确注册,登录,退出;
能够查询、添加、删除好友;
能够查看好友资料信息和状态信息;
能够实现个人资料信息维护、修改、更新个人状态信息;
能能在显示好友列表时显示好友状态;
能够实现正常地发送接收消息
能够查看聊天记录.
B.性能:
准确即时发送数据到指定用户;
能承载一定用户数量压力的服务器;
C输出:
注册信息,存储到数据库中;
个人信息表,存到相应的个人用户下;
个人状态表,存储个人ID、是否在线等;
好友列表,查看好友的信息、状态、ID等;
D输入:
输入ID登录,查找ID、添加好友ID;
修改个人信息、个人状态;
发送聊天信息,查看聊天记录;
E
F安全方面:
IP与ID一一对应,ID与密码匹配登录
G支持系统:
LINUX;
H2010年12月30日。
2.3初步想法
初次开发软件,难度比较大,压力也很大,没什么想法,尽量吧。
基本分为几大模块:
C/S模型设计,使用Socket网络通信编程完成其模型的实现;
数据库模块设计,使用mysqlCAPI编程实现;
图形模块设计,GTK+编程实现;
开发平台,Linux系统中各种常用开发工具,Eclipse、myspl、CDT、gcc
3对现有系统的分析
现有系统基于Linux下,采用C/S模型结构,数据库来存储数据,Socket即时通信,以实现聊天软件的基本功能。
不过该系统图形化不简单,因为没有成熟的技术。
而系统所缺乏的注销、下载客户端、找回密码等功能,需要B/S模块来实现。
3.1处理流程和数据流程
系统流程图表达系统各部件之间的有信息流动。
3.2局限性
本系统的主要的局限性:
处理时间赶不上需要,响应不及时,不能完全实现即时通信,具有延迟性。
数据存储能力不足,数据库容量不大,更新不够及时。
并且我要说明,基于硬件限制、网络通信限制等各方面的因素,对现有系统的改进性维护已经不能完全解决问题。
4所建议的系统
本章将用来说明所建议系统的目标和要求将如何被满足。
4.1对所建议系统的说明
现有系统基于Linux下,采用C/S模型结构,数据库来存储数据,Socket即时通信,以实现聊天软件的基本功能。
C/S模型设计:
使用Socket网络通信编程完成其模型的实现;
数据库模块设计,使用mysqlCAPI编程实现;
图形模块设计,GTK+编程实现;
开发平台,Linux系统中各种常用开发工具,Eclipse、myspl、CDT、gcc。
服务器充当中转站,交换用户信息,接收客户端信息,转发到另一客户端,实现对客户端登录用户的控制;
数据库存储用户基本信息、资料,即时更新客户端聊天信息,监控与保存聊天记录;
客户端实现与服务器的链接,发送聊天内容,接收服务器的响应。
4.2处理流程和数据流程
所建议系统的与原系统基本一样的处理流程和数据流程,不加以叙述。
4.3改进之处
很好很强大,不过当多个用户同时申请响应时,如何处理应当考虑。
4.4可行性分析
(说明在建立所建议系统时,预期将带来的影响,包括:
)
4.4.1经济可行性
所建议系统的开发预计,市场需求无关,不能盈利,成本无价,重在积累经验,掌握技术,实践学习。
A.费用估计:
软件开发价格=12人·月×1.5×1×(B*1.476+B/3+B/3)*1*1.2=925.632
平均工资B取20
B.效益估计:
本系统方便人们的交流联系,给Linux广大人民带来了新的快乐,支持他们一如既往地走下去,为Linux的发展作出了贡献。
开源系统,效益甚微,忽略不计。
(设计和维持运行而需要的各项经费开支,及对软件投入使用后,对用户经济上的影响。
)
4.4.2技术可行性
本节应说明技术条件方面的可行性,如:
a.小队成员人手一套Linux系统,一台笔记本,网线路由等,硬件资源齐全;
b.Ubuntu10有大量开源软件支持,利用已有的C++、数据库基础知识,善于学习、搜索有用源代码,理论上是可行的;
c.不过由于此次开发时初次,且经济效益不大,可能造成小队成员积极性不够,导致不能高质量、提前圆满完成任务,那也是有可能;
d.技术上可能遇到很多难题,如同时处理信息响应、通信协议的理解,C/S模型的建立等,但是只要我们一起努力,不断吸收学习,相信这些都不是问题。
4.4.3运行可行性
使用该软件要求:
Linux系统,支持10人以下客户端;
能简单操作使用Linux下的基本软件,最好使用过QQ等聊天软件;
(说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求。
从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系统;从用户单位的工作人员的素质来看,是否能满足使用该软件系统的要求等等,都是要考虑的。
)
4.4.4法律可行性
该软件基于Linux下开发,使用gcc、eclipse、mysql等开源工具,遵循软件开发公共准则,项目中如有使用其他开源代码部分会加以标示。
相信应该不会违反相应的法规。
(法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的陷阱,软件人员通常是不熟悉的,有可能陷入,务必要注意研究。
)
5结论
借着软件工程老师指导、督促的契机,融汇所学C++、数据库知识,打开硬件设备,进入神奇的开源世界,打造属于我们自己的软件!
Linux聊天软件
软件需求说明书
作者:
李波文、金杰
日期:
10.9.28-10.10.15
1需求分析概述
随着人们的生活的日趋网络化,网民不断的增加,越来越多的人加入到网聊的队伍中.聊天软件有很大的应用前景.现在有很多聊天软件,比如qq就是一个占有市场份额很大的,也是最流行的软件.
这次我们开发的软件就是一个具有简单的即时聊天应用系统,主要包括一些简单实用的功能,比如聊天,寻找好友.
为了实现预期的功能,我们主要把把软件分为客户端和服务器端,让二者分别实现相应的功能然后在有机的组合在一起完成整个系统的功能.
客户端:
注册功能:
新用户的注册申请
登陆功能:
输入正确的帐号与密码,发送登陆请求到服务器端,经服务器端的验证成功登陆或返回错误信息.
显示功能:
用不同的标示显示在线的好友和不在线好友,并显示相关功能的按键框方便用户的操作.
聊天:
用户可以选择文字或语音聊天.还可以给好友发送图片,文档资料.
聊天记录的管理功能:
用户可以选择上传或者查看聊天记录.
好友管理功能:
可以根据帐号查找好友,添加好友,删除好友.
服务器端:
注册信息处理功能:
系统受理用户请求信息随机返回给用户一个帐号,并把受理的信息送到用户信息数据库中存储.
登陆信息处理功能:
对用户的帐号与密码信息进行验证,如果正确就返回正确信息,否则返回登陆失败信息,并提示用户重新输入登陆信息.
系统返回信息处理功能:
对系统返回的信息进行处理,并给用户相关提示.
用户请求信息处理功能:
对用户发出查找好友,添加好友,删除好友,聊天,上传聊天记录以及查看聊天记录的信息进行处理,向系统发出相关信息,并向用户返回相关信息.
2数据流图
2.1顶层数据流图
2.2分层数据流图
2.2.1一层数据流图
2.2.2二层数据流图
客户端
服务器端
3数据字典
3.1数据元素
名称
别名
取值类型
长度
描述
位置
帐号
ID
Int
6到8位
惟一标识用户,Key,不可空
用户信息表,详细信息表,保护信息表,好友列表,聊天记录表
密码
Psw
Char
6-16
用户身份鉴定,不可空
用户信息表
登录状态
UserStatus
Int
1
用于记录当前用户的登录状态,不可空
用户信息表,用户状态表
年龄
Age
Smallint
0-99
记录用户年龄
详细信息表
地区
Area
Char
20
记录用户地区,可空
详细信息表
性别
Sex
Char
2
用户性别,可空
详细信息表
说明
Detail
Char
255
用户说明
详细信息表
问题详细
QstDetail
Char
20
具体的密码保护问题
保护问题表
好友帐号
FriendID
Int
6-8
好友的id
好友列表,聊天记录表
好友分组
FriendGroup
Int
1
好友分组编号
好友列表,好友分组详细列表
备注
Note
char
10
用于备注好友姓名,可空
好友列表
时间
ChatTime
Time
聊天时间
聊天记录表
日期
ChatDate
Date
聊天日期
聊天记录表
内容
ChatDetail
Char
255
聊天内容
聊天记录表
3.2数据流
注册信息
名称
注册信息
描述
用户注册时填写的资料信息
来源
申请用户
去处
服务器存储器中的用户信息表
组成
密码和个人资料
登录信息
名称
登录信息
描述
用户登录时输入的帐号以及相应的密码
来源
用户
去处
服务器存储器中的用户信息表
组成
帐号和密码
聊天信息
名称
聊天信息
描述
用户聊天时上传的聊天信息
来源
用户
去处
服务器存储器的聊天记录表
组成
用户帐号和聊天记录以及上传时间
3.3数据存储
用户信息表
名称
用户信息表
输入数据流
用户相关的信息
输出数据流
用户信息
描述
用户的账号信息表
组成
帐号+密码+状态
组织方式
按帐号申请时间排列
用户详细信息表
名称
用户详细表
输入数据流
用户的详细信息
输出数据流
用户信息
描述
用户的详细信息
组成
帐号+年龄+性别+地区
组织方式
按帐号申请时间排列
好友列表
名称
好友列表
输入数据流
用户帐号及其好友信息
输出数据流
好友相关信息
描述
构成用户的个人好友表
组成
我的帐号+好友帐号+分组+状态
聊天记录表
名称
聊天记录表
输入数据流
用户上传的聊天记录
输出数据流
聊天记录
描述
记录用户的聊天记录,便于以后查看信息
组成
帐号+好友帐号+聊天内容
组织方式
按帐号申请时间排列
4加工逻辑描述
登录服务
名称
登录服务
编号
1.2
输入
用户操作
输出
服务器用户信息表
功能描述
用户身份验证
加工处理
将用户输入内容与服务器用户表进行对比,若用户帐号和密码相符则转入登录界面,不符则返回。
注册服务
名称
注册服务
编号
1.1
输入
用户操作
输出
服务器用户信息表
功能描述
用于注册新账号
加工处理
检查服务器用户表,随机产生一个新的账号
添加好友
名称
添加好友
编号
3.52
输入
用户要求的条件
输出
符合条件的账号表
功能描述
筛选出符合用户要求的账号列表
加工处理
用户输入条件,通过查询语句筛选出符合条件的账号列表
注册服务
名称
注册服务
编号
1.1
输入
用户操作
输出
服条件的账号表
功能描述
筛选出符合用户要求的账号列表
加工处理
用户输入条件,通过查询语句筛选出符合条件的账号列表
发送聊天信息模块
名称
消息发送模块
编号
3.3
输入
客户端
输出
显示
功能描述
发送信息到接收的好友
加工处理
用户发送信息存储到聊天记录表中,通过发送机制发送给对方
题目
概要设计说明书
作者:
韩超
时间:
10.10.18-10.10.28
1软件结构设计
1.1软件结构
软件结构主要分为三大模块:
用户登录管理;
用户信息管理;
用户聊天管理。
各子程序模块有:
注册,登陆,退出;
根据ID(包含在用户资料中)查找,添加,删除好友;
维护,修改个人资料信息;
更新个人状态信息;
查看好友状态信息;
查看好友资料信息;
通过服务器发送聊天信息;
查看聊天记录。
1.2功能需求与模块的关系
本条用一张如下的矩阵图说明各项功能需求的实现同主要模块的分配关系:
(声明,由于表格地问题,本来包含在“用户聊天管理”的子模块“好友管理”放在了“用户聊天管理”单元格下,请老师谅解。
)
模块1
模块2
…模块3
登陆管理
注册
登陆
退出
用户信息管理
维护个人资料信息
修改个人资料信息
更新个人状态信息
用户聊天管理
查看好友状态信息
查看好友资料信息
通过服务器发送聊天信息
查看聊天记录
好友管理
查找
添加
删除
1.3人工处理过程:
(1)开始使用时,人工的在注册,登陆,和退出之间选择操作。
(2)人工输入想要修改或更新的信息资料,状态信息;
(3)人工进行根据ID进行查找,添加,删除好友的操作。
(4)人工进行查看好友状态信息,资料信息,通过服务器发送消息,查看聊天记录的操作。
1.4软件结构图:
HIPO图如下:
3数据库结构设计
3.1顶层ER
数据库包含在服务器中。
3.2第二层ER图
题目
详细设计说明书
作者:
李波文、黄颢
时间:
10.11.01-10.11.15
1引言
1.1编写目的
说明编写这份详细设计说明书的目的,指出预期的读者。
就是将设计拿给不同的人去写编码,写出来的程序处理流程相同.后续的评审或者是有人接替你的工作,只要查看详细设计,就能清楚你当时是怎样设计这些流程的。
1.2项目背景
说明:
a.基于Linux聊天系统;
b.本项目的任务由Linux聊天开发小组就开发、面向广大Linux用户和运行该程序系统的ubuntu-10.04及以上。
2程序描述
2.1逐个模块给出以下说明
客户端:
注册功能:
新用户的注册申请
登陆功能:
输入正确的帐号与密码,发送登陆请求到服务器端,经服务器端的验证成功登陆或返回错误信息.
显示功能:
用不同的标示显示在线的好友和不在线好友,并显示相关功能的按键框方便用户的操作.
聊天:
用户可以选择文字或语音聊天.还可以给好友发送图片,文档资料.
聊天记录的管理功能:
用户可以选择上传或者查看聊天记录.
好友管理功能:
可以根据帐号查找好友,添加好友,删除好友.
服务器端:
注册信息处理功能:
系统受理用户请求信息随机返回给用户一个帐号,并把受理的信息送到用户信息数据库中存储.
登陆信息处理功能:
对用户的帐号与密码信息进行验证,如果正确就返回正确信息,否则返回登陆失败信息,并提示用户重新输入登陆信息.
系统返回信息处理功能:
对系统返回的信息进行处理,并给用户相关提示.
用户请求信息处理功能:
对用户发出查找好友,添加好友,删除好友,聊天,上传聊天记录以及查看聊天记录的信息进行处理,向系统发出相关信息,并向用户返回相关信息.
2.2算法
详细算法描述见下面
2.3程序逻辑
详细描述模块实现的算法,可采用N-S图
1客户端:
判断接受参数
地址解析函数
创建socket
登录部分
获取收发服务端口号
发送消息给服务器
文件传送部分
Putname
Nsendbyte=send()Y
Exit
(1)
Len=登陆消息
N是否已登录Y
登陆
exit
文件传送部分:
Y
消息是否私消息且正文为sendfile
N
传送地址及文件名
Exit
(1)
打开读取文件
Whilelen>0
传文件
读文件
传送完毕发送sendover
2服务端:
(1)线程函数:
循环收发消息
Y
End线程
N
N
Quit服务端
Y
结束进程
打印接受消息
关闭服务器
mes.messagetype
=PUBLICMESSAGE
=PRIVATEMESSAGE
判断在线人员
把私人消息发给指定客户端
发消息给在线人员
文件接收
文件接收部分:
Y
Mes.messagetext=="sendfile"&&
mes.messagetype==PRIVATEMESSAGE
N
While
(1)
接收文件
发送文件
Exit
(1)
Y
sendover
N
break
(2)主函数:
判断函数
初始化在线人员
绑定函数blind
While
(1)
客户端连接
登录
登录部分:
接收名字
YY
名字是否已经被在线人员使用
N
nameexist=1
nameexist==0
发送nameexist给客户端
发送loadsuccess给客户端
Exit(0)
增加用户,使用户处于在线状态
增加新用户到空位中
给每个在线用户发送有新用户登录的消息
增加一个线程来为新登录的客户端服务
3显示端:
display主函数
获取消息队列号
running=1
while(running)
打开队列
接收消息
Ymsg=="end"N
running=0文件接收
文件接收:
Y
Msg=="sendfile"N
输出要把接收文件保存的位置和文件名
exit
创建文件
while
(1)
打开消息队列
接收消息队列中的消息
Y
sendover
N
break
写消息
提示还在接收文件
题目
编码与截图
作者:
黄颢
时间:
10.11.18-10.11.27
Trac截图:
SVN截图:
QT界面设计:
题目
测试报告
作者:
全小组
日期:
2010.12.29
511测试概要………………………………………………………………………………7
5.12测试结果及发现………………………………………………………………………8
1导言
1.1目的
该文档的目的是描述Linux聊天系统测试的总结报告,其主要内容包括:
●系统环境简介
●系统数据度量
●系统结果评估
本文档的预期读者是:
●聊天系统使用者:
聊天人
●测试人员
1.2范围
该文档定义了Linux聊天系统测试的结果,总结了测试客服端的注册、登录、查询信息、以及注销等功能,以及并发访问的性能,给出了测试的结论。
1.3参考资料
[1]《Linux聊天系统需求说明》
信科08-1班学生编制
[2]《软件工程与软件开发工具》
姜淑娟刘迎春荣新节编著/清华大学出版社
2.测试时间、地点和人员
本次测试的时间、地点和人员总结如下:
●测试时间:
2010-12-26至2010-12-27,基本按照计划进行。
●地点:
梅苑2号楼男生宿舍
●人员:
测试组的全体成员共计4人
3测试环境描述
本测试的测试目的是验证Linux聊天系统能否实现聊天正常的注册、登录、查询、注销等基本功能,以及并发访问的性能。
为此,采用IBM的RationalRobot测试工具进行压力测试,验证是否满足系统的需求。
测试机器的配置环境如下:
4测试工具的配置和使用
RationalRobot可开发三种测试脚本:
用于功能测试的GUI脚本、用于性能测试的VU。
是一种对环境的多功能的、回归和配置测试工具,在该环境中,可以使用一种以上的IDE和(或)编程语言开发应用程序.可以很容易的使手动测试小组转变到自动测试上来。
使用IBMRational?
Robot进行回归测试是早期步入自动化的很好的一步,因为它易于使用,并且可以帮助测试者在工作的过程中学习一些自动处理的知识。
允许经验丰富的测试自动化工程师使用条件逻辑覆盖更多应用程序以扩展其测试脚本以发现更多缺陷并且定义测试案例以调用外部DLL(动态链接库)或可执行文件。
为诸如菜单、列表和位图这些通用的对象提供测试用例和为特定于开发环境的对象提供专用的测试用例.包括内置的测试管理,并且在IBMRationalTeamUnifyingPlatform中整合了错误跟踪的工具,这改变了管理和需求跟踪能力。
IBMRationalRobot原理:
利用脚本的录制、回放,模拟用户的操作;然后将被测系统的输出同预先给定的结果(检查点)比较。
IBMRationalRobot配置:
1.首先,我们打开RationalAdministrato,开始-所有程序--IBMRational--RationalAdministrator
2.新建一个项目:
File--NewProject
项目名称:
MyRobotProject
项目路径:
C:
\DocumentsandSettings\Administrator\MyDocuments\RationalProject\
3NEXT到完成
4配置项目
这里我们只对TestAssets做相关配置,其他请参考相关文档。
因为实验环境
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 linux 聊天 软件 可行性研究 报告