zoukankan      html  css  js  c++  java
  • 软件工程实践个人作业——软件评测

    个人作业——软件评测

    作业相关 具体描述
    班级 班级链接
    作业目标 分析 腾讯实时音视频 ,结合阅读《构建之法》,写一篇随笔。
    作业要求 作业要求链接
    作业正文 作业正文链接

    案例分析:

    很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对, 软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信微博,等等都是软件,都很值得分析。 你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么? 通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现。

    关于 腾讯实时音视频 的案例分析

    第一部分 调研,评测

    评测


    ####微信小程序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核16G
    8
    网站安全性:WAF,DDOF
    宽带:依托现有的4G网,未来一两年依托5G
    关系数据库:Oracle 11台(读写分离各五台,备份一台)
    缓存数据库:Redis 8台

  • 相关阅读:
    python3爬虫-快速入门-爬取图片和标题
    数据库Mysql的学习(八)-储存过程和事务和导入导出
    数据库Mysql的学习(七)-自定义函数和流程控制
    git reset --hard HEAD^
    list采坑记录一下
    Linux运行jar包
    JSONObject.toJSONString(map)
    String转list
    判断list中元素是否是相邻
    统计List中相同的元素
  • 原文地址:https://www.cnblogs.com/spongebobyjh/p/11958746.html
Copyright © 2011-2022 走看看