这个作业属于哪个课程 | 2020春 S班 (福州大学) |
---|---|
这个作业要求在哪里 | 个人作业——软件评测 |
这个作业的目标 | 产品测评 |
作业正文 | 正文 |
其他参考文献 | 《构建之法》 |
第一部分 调研,评测
1.1测评
本次作业采用web端,ios端,微信小程序进行测评
- web端
存在的bug
- 好友列表无法正常显示,点击好友列表后好友列表内没有好友,内容显示暂无好友,并不会显示你已经自行添加的好友
- 无法将联系人拉黑,无法退出已加入的群聊,没有此类操作,不能删除好友,
为什么没有发现这些bug?- web端的功能还未完善,开发人员可能没有对数据库进行较好的操作
- 重要的功能缺失
- ios端
存在的bug
- 登录界面的账号密码无法正常显示,显示的文本框内是一片空白,需要非常费劲才能看清楚文字
- 个人设置界面无法正常显示文字,显示的文本框内是一片空白,需要非常费劲才能看清楚文字
- 已读与未读之间切换的延迟时间过长,经测试,前一天晚上正常聊天的两个人,需要到第二天,未读才会变成已读
为什么没有发现这些bug?- 开发人员对不同的系统支持的可能不是很到位
- 服务器可能没有及时处理已读与未读之间的切换
- 微信小程序
存在的bug
因小程序端功能较少,暂时未发现bug
1.2采访
- 我准备基于这个sdk开发一个在线的聊天软件,主要功能可以自由添加好友,自由聊天,自由建立私密群聊,产品面向的用户为同一个地区的人。
- 采访对象的背景需求:某大二学生,想要一个同城交友软件
- 用户体验:觉得该demo的web端功能不完善,iOS端的前端做的不够友好,功能比较单一
- 用户察觉的问题基本没有得到解决。该软件在数据量上(未读消息的云端储存)做的比较好,web端的界面简洁清晰,而功能较少,在准确度上有不同程序的表现,主要体现在聊天信息的传递速度较好,但是已读和未读的转变上令人担心。用户觉得已读和未读对个人在聊天上的节奏把握比较重要。
- 我想开发一个同城交友的软件,该产品可以让一定范围内的用户对该范围内的其他用户有一定程度上的了解,有兴趣的话还可以进一步进行交流
- 用户对腾讯即时通信的功能有什么改进意见?
可以优化iOS端的界面显示,一款产品的ui是给用户的第一印象,若连ui都乱七八糟的,用户的第一印象差,自然就不会继续用下去。对功能也应该进行完善,不能只有按钮而没有实际的功能。
- 用户对你想开发的产品有哪些意见?
现在市面上交友软件较多,想在这些产品中占据优势,必需要有自己的特色
- 经过这么多工作,你一定有充分的理由给腾讯即时通信下一个评价,请选择一个结论:
一般
第二部分 分析
- 使用腾讯即时通信的所有功能,联系第二部分的分析,估计这个SDK做到这个程度大约需要多少时间?(团队人数大约6人左右,计算机大学毕业生)
大概需要5-6个月,因为大部分人的实践能力还不是很强,对高并发的实际应用还需要慢慢摸索
- 分析这个软件目前的优劣(和类似软件相比,如网易云信),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
优点:web端的前端做的让人舒适
缺点:许多功能未实现,实现的部分功能内还存在bug
建议:每个人选择自己有兴趣的部分进行开发,这样不仅可以锻炼自己在这方面的能力,学习新知识的时候也不会觉得过于吃力
第三部分 建议和规划
- 目前市场上有什么样的类似的产品?
类似的产品有微信,QQ等
- 对你的产品进行NABCD分析。考虑为何要做这个功能,而不是其他功能?你的创新在哪里?为什么用户会用你的产品/功能?对于C:Competitors,结合同类产品分析,描述如何从竞争中获胜
N(need)
对于现在的社交而言,绝大部分人有了网络之后就经常在家不出门,从而失去了与本该进行频繁联络的邻居联系的机会,有的人甚至在一个地方住了好几年,与自己的邻居居然都不认识。该产品就是为了避免这种情况的产生,让人现在网络上与自己感兴趣的人进行交流,最后可以成为经常联系的好友。
A(approach)
这款腾讯的SDK内含有丰富的功能,可以提供我使用。我可以利用该SDK实现私聊,群聊的功能,方便了我自己进行开发的程序。
B(benefit)
俗话说远亲不如近邻,多认识一些自己周围的人绝对是利大于弊的。这款产品同样可以避免两个附近的人之间第一次见面尴尬的情况。
C(competitors)
虽然微信和qq是聊天领域的巨头,但我认为人与人之间互相的沟通交流才是最为重要的。
D(devivery)
先在一个地区进行小范围推广,随后再发展到别的地区,同时可以给用户一些推广奖励。
- 如果你来领导这个团队,会有什么不一样?
先了解成员所擅长的领域和感兴趣的领域,并对产品的功能进行划分,最后将产品的某个相似或等同的功能划分给对该领域擅长或感兴趣的成员。为了避免出现一个人开发大部分代码的情况,我会对具体的代码量进行分析,确保每个人的工作量都差不多。
- 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
美工1人,对App的页面进行设计,时间2个月,剩余时间进行相应的测试
开发3人,先进行开发,后与美工对接,提供相应的接口,并修改出现的bug
测试1人,在设计初步完成后进行,随着开发进度的不断前行,继续进行测试
- 描述你的团队在周期为16周,每周都要做什么,才能保证在第16周如期发布软件。
周数 | 任务 |
---|---|
第一周 | 原型设计 |
第二周 | 需求分析 |
第三周 | 数据库设计 |
第四周 | 系统分析 |
第五、六周 | 基础界面开发,建立成基本的数据库 |
第7-11周 | 具体编码,完善相应的功能,alpha版本上线 |
第12周 | 对alpha版本出现的bug进行修复 |
第13-14周 | 继续完善功能,上线beta版本 |
第15周 | 修复beta版本的bug |
第16周 | 发布新版本 |
- 项目发布后,有没有考虑过项目该怎么部署才能满足需求?
设备 | 数量 |
---|---|
应用服务器配置 | 4核8G*2 |
后端服务器配置 | 8核16G*3 |
关系型数据库 | Mysql3(读写分离2,备份*1) |
缓存数据库 | Redis*2(主备) |
网站安全性 | WAF、DDOS |