个人作业——软件评测
| 这个作业属于哪个课程 | 软件工程实践 |
|---|---|
| 这个作业要求在哪里 | 作业要求在这里 |
| 这个作业的目标 | 评测腾讯即时通信SDK,发表发现的问题和使用感想,供其他人选择时作参考 |
| 作业正文 | 如下 |
| 其他参考文献 | 无 |
第一部分 调研,评测
一、评测
- web
- 安卓
- 微信小程序
-
严重的bug
1. 在微信小程序端测试拍摄发送的功能时,点击完成的按钮时,小程序自动关闭,退回到微信的窗口,并且拍摄的照片也没有发送出去
可能的原因:可能并没有正式做出这个功能,只是将接口先放了上去。开发组的人员未对每个功能模块测试
2. 在同时登录这小程序和web端的IM时,在web端向创建的群聊里发送信息,在小程序处看见了消息发送了两次。重新点开会话后消息变成了一次

可能的原因:在web端发送信息时,服务器错误的将在两个设备登录的同一个账号认作两个账号,先在小程序端显示的信息,再存入数据库中,
重启会话时,查询数据库,显示了正常的信息。开发组可能设计在存入数据库时进行检验,没有考虑到在两个设备登录同一个账号消息的同步显示不是从数据库中取数据。3. 小程序发送输入法的表情包时图片变成url,安卓客户端发送输入法的表情包时图片变成统一的符号


可能的原因:输入框不能识别图片,图片只能通过发送图片这个接口发送,安卓客户端将不能识别的图片自动变换成符号。开发组没有考虑到输入法需要输入框直接识别图片。
二、开发的产品与采访
1.LightChart:
功能:提供基于web的轻量的聊天,包括文字信息,文件,语音和视频。
面向对象主要是需要短期的,迅速的即时交流的用户
N--need
在日常生活中,我们发现想和多于2个人语音时,需要用打开qq或微信创建群聊,再聊天,如果需要在电脑上语音聊天的
同时做其他占带宽的活动,例如看视频,上网课,打游戏,会发现我们只需要语音,但是qq这个综合形应用占了更多的带
宽,于是我打算开发出一个迅速的,短期的web应用实现多人聊天。
A--approach
利用腾讯的即时聊天SDK,开发出一个能够实现多人语音的web应用
利用数据库临时存储用户发送的消息,文件
提醒用户下载消息记录,文件等,使数据库每7天清空这些内容,减少用户查找的时间。
将多人群聊定时删除,以方便用户查找。并保存上一次创建的群聊设置,一键拉人,方便创建群聊。
B--benefit
web应用的特点方便用户使用,功能简单节省用户的资源。
C--competitor
竞品为qq(微信),yy语音
优势:
web应用不需要下载软件,方便用户使用
功能简单,相对于QQ占用的带宽少很多。
定时删除信息,文件方便用户查找,
定时销毁群聊,方便用户找到自己需要的群聊(对比QQ已经70+的群)
劣势:
没有用户,不适合于长期的交流。
D--deliver
多人游戏用户对此的需求最大,与游戏厂商合作推广;
用户自发推荐推广,推广有奖机制。
2.采访:
采访对象:小C是一个沙盒游戏玩家,热爱和他人联机,但是QQ占的带宽太多,开黑的人不固定导致群聊创了又删,十分麻烦。
用户体验腾讯即时通讯Demo:
在使用这个demo的过程中用户关于带宽的问题解决了,但是无法多人语音,群聊还是需要自己删除 ,没有只语音不视频的选项 ,功能过于简陋 使用户的体验不好
我的产品:
我想用这个SDK做一个web端的,短期的,迅速的多人聊天软件,在完善语音基本功能后,减少软件的数据,方便用户查找群聊。
用户的意见:
群主自定义群聊的销毁时间,尽可能的优化语音的功能,即稳定又快速还节省资源。
对腾讯即时通信的评价为:
推荐
第二部分 分析
- 预估时间:6名计算机系学习情况合格的大学生,只开发web端的软件,结合腾讯即时通信的SDK 。由于软件的功能不多,主要是快速,轻量。大概需要2个月时间。
- 优劣:
- 优势:腾讯即时通信有多重收费模式,用户可以选择适合自己的方式付费,而网易云信只能选择付费或免费,而付费的价格高达1800/月。
- 劣势:和网易云信相比功能不够完善,而且存在许多的bug。
- 团队在软件工程方面可以提高的一个重要部分
测试,需要在每一个功能模块完成后进行足够的单元测试,测试出的bug要尽早解决。
第三部分 分析
-
如果你是项目经理,如何提高从而在竞争中胜出?
- 重视用户的需求,结合用户的需求快速的更新产品
- 开发出自己的独有功能,在同类产品中做的人无我有
-
目前市场上有什么样的产品了?
QQ,微信,yy语音,腾讯会议
-
你要设计什么样的功能?
用户可以添加好友,选择好友创建群组,群组可设置定时销毁的时间,默认为无活动后7天群组销毁,群内文件,消息每7天清空,提醒用户下载。
可以设置黑名单,自己的呢称,头像可自定义。提供创建群聊历史记录,方便一键创群。 -
为何要做这个功能,而不是其他功能?
为了使软件尽可能的快速,用户可以快速查找,自动删除使软件的数据量变小,功能的单一让工程师主要保证多人语音的高效,稳定。
-
为什么用户会用你的产品/功能?
我们的产品为web应用,不需要下载,功能简单,上手快,查找快速,用户体验好,轻量,资源占用少
-
你的创新在哪里?可以用 NABCD 分析。
我的创新在于用web应用实现多人聊天,数据定时删除,方便用户的查询,解决用户短期的聊天需求。
-
如果你来领导这个团队,会有什么不一样?
用户的体验十分重要,即使是demo也应保证无明显的bug,如果我来领导团队,可能功能会少一些,但是应该会在不同的设备做到功能一样,没有明显的bug
-
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
1个人一直负责美工,前3个月4个人一边开发,一边单元测试,最后一个月2个人开发,2个人测试。
-
描述你的团队在周期为16周,每周都要做什么,才能保证在第16周如期发布软件。
第1周:需求分析
第2周:原型设计
第3周:数据库设计
第4周:系统设计
第5-9周:软件开发
第10周:测试并发布基础版本
第11-15周:根据用户反馈加以改进,并完善各个功能.
第16周:测试并发布 -
项目发布后,有没有考虑过项目该怎么部署才能满足需求?
应用服务器配置:4核8G2
后端服务器配置:8核16G4
关系型数据库:MySQL(1读、1写、1备份)
缓冲数据库:Redis(1主、1备)
网站安全性:WAF、DDOS
浙公网安备 33010602011771号