个人作业——软件评测
作业相关 | 具体描述 |
---|---|
班级 | 班级链接 |
作业目标 | 分析 腾讯实时音视频 ,结合阅读《构建之法》,写一篇随笔。 |
作业要求 | 作业要求链接 |
作业正文 | 作业正文链接 |
案例分析:
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对, 软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信微博,等等都是软件,都很值得分析。 你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么? 通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现。
关于 腾讯实时音视频 的案例分析
第一部分 调研,评测
评测
####微信小程序Demo
使用截图
BUG
①
这张图是直播播放里的。当我从主界面点击“直播播放”,然后点击“播放”,它直接给出了上图。 可以看出,视频没有自适应,虽然下面的选项中有“适应”的选项,但是,进去以后出现这样的画面对用户还是很不友好的,需要用户自己去调整。 ###② 由于游戏直播一般都是横屏,点击下面的“竖屏”可以切换。切换以后还是出现了与屏幕不适配的情况,视频的自适应在横屏还是有问题的,还需要用户手动去调。 这张图中可以看出,对于横屏直播的主播和用户都不友好。当在已经切换到横屏的情况下,页面下方的导航按钮并没有适配横屏的模式,仍然是竖屏时的情况没有发生改变。点击:日志:也是同样的情况,对于用户来说十分不友好,而且没有手动调节的机会。 而且在横屏情况下也没有对设备给出消息说明“现在在横屏的使用情况”,就会发生我截图的结果仍然是竖屏,手机的状态栏也没有变化。这会带来看直播时使用手机其它方面的问题。 **为什么产品组的人没有发现** 我认为如此明显的bug产品组肯定是知道了解的,也许对于他们来说这些并不算技术bug也是体验上的bug,对于还出现这样的问题那可能就是产品组自身的问题了。 也许他们认为这个只用实现基本的功能就ok了,毕竟只是提供给别人的demo,所以就没有消耗过多的时间和精力去细化的解决小的问题。Android Demo
使用截图
BUG
使用Android端的demo还是出现了类似于微信小程序的横屏不适配的情况
①
进入一个视频房间以后,下面导航按钮众多,只能通过图片去辨认。在点左下角这个按钮时出现了bug,画面效果变暗,弹出一个有透明度的黑框,然而并没有内容。 **为什么产品组的人没有发现** 我认为这个问题可能是代码出了一点问题导致加载不出来内容。也有可能产品组的人在里面并没有填充代码,留给我们自己自定义。 ###② 在界面下方导航按钮的第二个按钮,点进去以后,只有“美颜”和“滤镜”有实际效果,后面的“动效”、“手势”等均没有效果的bug。在测试中,我们在“手势”中点击了“皮卡丘”,系统提示伸出手掌,我们伸出手掌测试多次都没有效果。 **为什么产品组的人没有发现** 我认为这个bug可能时产品组并没有代码实现的。因为前两个“美颜”和“滤镜”都有效果,而后面可能复杂度更高的效果没有实现,可能就是因为产品组的人偷懒没有嵌入算法。 ###③ 点击导航按钮的设置按钮,系统默认画面方向为“竖屏模式”,当我切换至“横屏模式”后,画面并没有出现任何变化,仍然是竖屏的模式。 **为什么产品组的人没有发现** 这个问题我认为还是小程序的问题一样,产品组可能因为这是个demo并没有做细节的填充。iOS Demo
使用截图
(我使用的是iPad,这个demo没有专门iPad端的,所以有些界面大小不太适配...这不算bug
BUG
使用iOS端的demo出现了与安卓相同的动效没有实现的问题,在此不再叙述
①
(上面三张图都是我在iPad横屏使用情况)在iOS系统中设置的“旋转锁定:关闭”,在一般情况下iPad都会根据用户的方向而改变。但是这个demo并没有做到,在横屏的情况下应用并没有跟着改变。而且在设置中选择“横屏模式”仍然是没有改变。
为什么产品组的人没有发现
这个问题我认为还是小程序的问题一样,产品组可能因为这是个demo并没有做细节的填充。
②
在视频界面中点击下方导航按钮中的第二个,连续点击两次会出现以上界面。我认为这个按钮是改变每个视频端的排列方式,而且在Android端同样的按钮却没有出现这个问题,所以出现以上的界面是没有逻辑的,是不正确的。 **为什么产品组的人没有发现** 这个问题我认为是没有逻辑的应该是个BUG,应该是代码层面出了问题,可能是因为在后来的版本更新中不小心使代码出现问题。(也有可能是iOS端的产品组认为这是正确逻辑...③
在与其它人视频的时候,对方的界面下方会出现如图中的三个按钮。前两个按钮“摄像头开关”和“声音开关”没有问题,而第三个应该是界面缩放开关,点击不会起作用。
为什么产品组的人没有发现
这个问题我认为可能是程序员的代码错误
采访
假如你需要用这个腾讯实时音视频SDK开发属于你的自己产品,那么开发之前你除了需要了解该SDK的基本使用之外,
更重要的就是为你将开发的产品进行市场调研
想要开发的产品
关于滴滴打车的视频联络平台
产品主要功能
我构思的这个产品是关于滴滴打车的时候,司机可以开个直播房间,记录当时行驶的情况和路线,司机的家人可以获得即时的情况。
乘客也可以获得司机的房间号,可以提供给家人,让他们来去看乘车的情况,能确保当前乘客的安全。
产品面向的用户
面向滴滴的司机和乘客,以及他们的家人
NABCD分析
N(Need,需求)
当前社会随着互联网技术的不断发展,依托于该技术的滴滴打车也发展迅速。人们当有空闲的时候都可以注册为滴滴司机去赚一些利润,乘客们也能随时随地享受快捷舒适的服务。而随着滴滴的不断发展,近些年都出现了一些不安全的事故,让一些人对滴滴望而却步。滴滴的安全问题成为了乘客心中的一块大石头。
而这个视频联络平台正是为了解决此问题而开发的。每当司机接到一单生意,视频房间号就会随机生成,然后发送到司机绑定的家人手上。司机的家人就可以看到此时司机的情况。而乘客同时也会获得房间号,乘客可以根据自己的实际情况,将房间号发送给自己的联络人来保证自己的安全。
A(Approach,做法)
司机:司机会在每一单开启一个视频房间,自己的联络人也会获得该房间号。
乘客:乘客会在上车后获得司机的视频房间号,乘客可根据实际情况将房间号发送给自己的联络人,保证自己的安全。
司机&乘客的联络人:当他们获得房间号以后可以进入房间查看当前的行车情况。
B(Benefit,好处)
在上面的分析中已经可以看出,这个视频联络平台的很多好处。最主要和最重要的一点就是极大的保证了乘客的安全,让乘客更加的安心。其次也让司机的家人实时了解情况,让家人更加放心。
C(Competitors,竞争)
当前尽管滴滴已经做了很多有关安全的措施,但是这个视频联络平台会更加的直接和有效。当发生意外时,其他人能以最快的反应采取一些措施。也可以看作是当前滴滴平台安全措施的补强。
而当前市面上也不存在类似的视频联络平台,可以说该平台竞争力十足。
D(Delivery,推广)
在推广上可以直接与滴滴平台合作,滴滴进行推广宣传。乘客可根据自己当前的需求进行取舍。
采访潜在用户
采访对象背景
多年的老司机(XD
采访对象需求
最主要的安全需求,保证自己安全,让乘客放心。
采访对象使用情况
用户的问题解决了么?
基本可以得到解决
软件在数据量/界面/功能/准确度上各有什么优缺点?
数据量:优点是可能不需要太多的数据
界面:优点是简洁明了,缺点是还有待改善UI
功能:基本满足需求
准确度:优点是在网络好的情况下准确度极高,缺点是网络不好的话准确度一般
用户体验方面有问题么?
现阶段是基本没有问题的
介绍说你想用这个SDK开发怎样的产品
面向滴滴的司机和乘客,以及他们的家人,关于滴滴打车的视频联络平台
用户对腾讯实时音视频的功能有什么改进意见?
暂时没有改进意见
用户对你想开发的产品有哪些意见?
UI改进一下
给腾讯实时音视频下一个评价
我选择“推荐”。
第二部分 分析
这个SDK做到这个程度大约需要多少时间
我认为可能大概8周的时间吧
这个软件目前的优劣
优点:这个软件目前支持的客户端基本已经很全面了,每种客户端的基本内容实现的很好,很简单
缺点:还有很多很多的细节没有完善,还有部分的bug
团队在软件工程方面可以提高的一个重要部分(具体建议)
1.分工的能力
2.领导的能力
3.开发的能力
第三部分 建议和规划
如果你是项目经理,如何提高从而在竞争中胜出?
首先最重要的是提高自己的领导能力,这就依赖于自己能够与团队的成员打成一片,并且十分的了解团队的成员
目前市场上有什么样的产品了?
目前没有相关产品
你要设计什么样的功能?
面向滴滴的司机和乘客,以及他们的家人,关于滴滴打车的视频联络平台。每当司机接到一单生意,视频房间号就会随机生成,然后发送到司机绑定的家人手上。司机的家人就可以看到此时司机的情况。而乘客同时也会获得房间号,乘客可以根据自己的实际情况,将房间号发送给自己的联络人来保证自己的安全。
为何要做这个功能,而不是其他功能?
这个功能可以满足司机和乘客的安全需要,这是极其迫切的。
为什么用户会用你的产品/功能?
因为我的产品能够满足司机乘客的安全需求。这对于用户来说是重要的。
你的创新在哪里?可以用 NABCD 分析。
上文已分析
如果你来领导这个团队,会有什么不一样?
我会让团队更加轻松,自由的完成任务,大家都可以根据自己的意见做产品。
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?‘
1人 UI
2人 前端
2人 后端
最后UI的那个人来做测试
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件。
第一周:团队成员开会,进行头脑风暴,最后制定出所有的功能。
第二三周:完成UI设计工作。
第四到十二周:完成开发工作。
第十三到十六周:整合,优化到具体发行的工作。
项目发布后,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。
应用服务器配置:4核16G4
后端服务器配置:8核16G8
网站安全性:WAF,DDOF
宽带:依托现有的4G网,未来一两年依托5G
关系数据库:Oracle 11台(读写分离各五台,备份一台)
缓存数据库:Redis 8台