一、题目:
英语学习APP的案例分析
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
测评软件:必应词典
二、第一部分 调研, 评测
1、个人第一次上手体验
界面较简洁,与其他英语学习app类似,有英文名句和精选文章推送,但是多了一个每日一词和联想词汇,且没有其他app会有的广告啥的。功能清晰,有词典、翻译、学习、个人中心等,感觉还行。
2、bug
下面是引用《构建之法》第13章,bug定义:
(1)症状:即从用户的角度看,软件出了什么问题。例如,输入(3211)时,程序出错退出。
(2)程序错误:即从代码的角度看,代码的什么错误导致了软件的问题。例如,代码在输入为某种情况下访问了非法的内存地址——0X0000000C。
(3) 根本原因:错误根源,即导致代码错误的根本原因。例如,代码对于id1==id2的情况没有做正确判断,从而引用了未赋初值的变量,出现了以上的情况。
bug1:语言切换存在bug,当切换语言的时候,界面并不能直接切换语言,我找了半天没找到到底哪里改了语言了。。后来才发现必须得手动退出重启之后才能切换语言成功。。。正常的app应该是设置改了之后就可以切换语言的
切换语言:
bug2:点击精选文章发现实际上是转跳到msn网站进行浏览,转跳有点慢,不是很方便,并且看起来不是很舒适,当我切换中文时,他直接转跳到msn中文网了。。。。。新闻直接就没了。。精选文章应该是做为学生学习英文的课外扩展阅读的,然而该模块并没有做到此功能,并不能给予学生帮助学习英文
bug3:点击单词挑战和我爱说英语,一直显示加载试题,然后就没有反应了。。。加载了老半天才出来,我觉得这个加载的速度可以加快一点,实在是太慢了
bug4:当我开始答题时,我进行快速点击,然后答题数量会在1和2之间切换并没有正确计数。。。。而且显示我有并没有完成的题目,但却不能返回到没有答的题目那进行答题。。
3、采访同学
被采访者为某一大三学生,为这学期的六级考试做准备,以下为采访截图
4、结论:我的感觉是必应词典还是存在着很多问题,有待改进,评价为一般
三、第二部分:分析
1、项目估计
下面是引用《构建之法》8.6节 对工作的估计:
实际时间花费Y主要取决于两个因素——对某件事的估计时间X,以及做过类似开发工作的次数N
Y=X±X÷N
项目的复杂程度将由需求的复杂程度和技术的复杂程度决定
(1)、这个软件有着词典,翻译,学习,个人中心四大板块,词典包括每日一句等功能,学习包括我的收藏,背单词,单词挑战等至少7个应用,进行预估的话翻译与个人中心较简单,估计开发时间为各一个月,学习板块应用较多,为3个月,词典为1个月,总计为6个月。
(2)、开发团队为刚毕业的大学生,共六人,既然刚毕业,那开发软件的经验肯定不多,若六人都没有开发过,那时间花费将无线趋近零,开发难度大,若算六人有1次的开发经验的话,按公式算就是12个月。
2、软件优劣
3、功能逻辑图如下:
4、评分
(1)、用户体验方面:3分
(2)、UI界面美观度:3分
(3)、核心功能:4分
总分:10分
评分细则:
四、建议和规划
1、如果你是项目经理,如何提高从而在竞争中胜出?
要想提高并在竞争中胜出,要能够主动收集用户反馈,预期用户新的需求,协调并决定各种需求的优先级。
必应词典这个软件功能非常多,但是UI界面略差,可在这方面提高,加强美工和模块划分。界面决定了用户对你的第一印象是否美好,用户是否会使用下去,界面如果太差那么就算你的功能再怎么强大也无法留住客户,所以这方面是非常重要的;其次必应词典bug较多,多收集用户的体验和反馈,与开发人员协商,定期优化;最后便是宣传,有了宣传才能有知名度,用户才会下下来体验,不然你就只能埋没在一堆英语app里了。。
2、目前市场上有什么样的产品了?
市场上此类产品特别多,如有道词典,扇贝词典,庐江开心词场,百词斩等,这都是比较有名的产品,此类产品能够脱颖而出代表着他们某一方面特别好,像庐江开心词场和百词斩主打背词功能,庐江开心词场使用打卡过关的功能,界面简洁可爱,而百词斩界面简洁,使用了特殊的图形记忆单词的功能,使背单词不在枯燥,有道词典则主打翻译查词功能,界面简洁,翻译虽然有一点差,但是这几乎是所有翻译软件的通病,有道的正确率还是蛮高,查词方便,使用体验还是非常好的。
3、你要设计什么样的功能?
UI界面优化
4、为何要做这个功能,而不是其他功能?
对我个人来说,我更看重界面吧,实在受不了凌乱糟糕的界面。。。。
5、为什么用户会用你的产品/功能?
其实用户挑选软件第一反应是会看你的使用截图,然后在看评价,界面美好就能第一时间抓住用户的心,使用户有兴趣看下去,若界面糟糕,用户就直接叉掉了啊,那还有什么以后啊。。当你吸引用户之后,只要你的功能使用流畅,没有bug,用户其实就会一直使用下去,而不会更换软件,毕竟人都是有点懒的,不会花太多时间去寻找特别满意的软件的
6、你的创新在哪里? 请使用 NABCD 分析
- N (Need 需求):美观的界面,简洁流畅的操作
- A (Approach 做法):与团队商量之后,弄清每个人负责的模块,在开始开发,遇到问题一起商量解决
- B (Benefit 好处):功能多,口语方面强大,可帮助学生练习口语
- C (Competitors 竞争):必应词典的功能强大,只是有少许bug和不够美观的界面经过优化后应能脱颖而出
- D (Delivery 交付) :可通过微博等新媒体推广,用美观的界面吸引用户,多功能和流畅的使用留下用户
7、如果你来领导这个团队,会有什么不一样?
就我个人而言,我的性格并不适合做领导,真的做了估计就做不完这个软件了。。。
8、如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
5人团队的的话,我会安排一人美工,三人开发,一人测试
9、描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定
第一周:需求调研,考虑用户想要什么样的软件
第二周:进行人员分工,初步规划功能,设计UI画面
第三周到第九周:,开始开发
第十周:进行内部测试,继续优化软件
第十一周到第十三周:发布软件,进行市场调研,收集用户反馈
第十四周到第十五周:根据反馈继续优化软件
第十六周:发布最终版