英语学习APP的案例分析
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
产品
请下载必应词典,PC、Mac、iOS或Android客户端都有,不要说你找不到!
第一部分 调研, 评测
(软件的bug,功能评测,黑箱测试, 第8章 用户调研, 12 章 软件的用户体验)
- 下载并使用,描述最简单直观的个人第一次上手体验。
感觉界面挺不错的,一些基本功能都能很快发现,操作也挺简单,推荐的句子和图片都挺漂亮,不过推荐的内容过多,浪费流量.
2. 按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
在一个英文句子中,点击其中的一个英文单词时有时候不会显示中文意思,例:
拍照翻译时会出现乱码:
3.用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
4.相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
提示: 采访提要
5.1. 介绍采访对象的背景和需求(他们为何要学英语,查词典和用法,还有别的需求么)
阅读英文文章时用于查单词,复习英语单词,背诵英语四级词汇等.
5.2. 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
5.3. 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
界面挺不错的,联想词汇挺不错的,不过还有一些问题,有些词汇没有显示意思,推荐内容过多,不联网的话一些单词查不到,感觉一般.
5.4. 用户对产品有什么改进意见?
希望能减少推荐内容或者自己选择喜欢的内容.
5.5. 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
-
- 非常不推荐
- 不推荐
- 一般
- 好,不错
- 非常推荐
第二部分 分析
(参考《构建之法》 8.6 节 对工作的估计, 和14.1 节 软件工程的质量)
- 使用此软件的所有功能 (包括背单词, 单词挑战,口语练习等), 联系第二部分的分析, 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
可能需要10天.
2.分析这个软件目前的优劣 (和类似软件相比,至少对比2款软件), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。
优点 | 缺点 | |
必应词典 | 画面挺不错的,可以用拍照功能自动识别单词 | 推荐内容过多,有些单词没解释 |
有道词典 | 单词挺全的 | 推荐过多 |
金山词霸 | 单词全,内容丰富,有许多词典 | 使用不方便 |
3.[附加题]根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
4.[附加题]针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分(能给出更详细的评分更优)。
第三部分 建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
- 如果你是项目经理,如何提高从而在竞争中胜出?
减少一些不必要的功能,对一些功能比如四级词汇设置不用联网就能使用,推荐内容可以由用户自由选择需不需要,减少不必要的广告.
2.目前市场上有什么样的产品了?
有道字典:使用的人较多,查单词功能比较强大.
金山词霸:内容丰富,有牛津词典
3.你要设计什么样的功能?
扫描和自动匹配功能,增加一个养成加冒险的游戏功能,每个用户可以有一个角色,通过冒险(认单词,翻译单词等)等一些其它功能使角色成长.
4.为何要做这个功能,而不是其他功能?
吸引用户,方便用户使用.
5.为什么用户会用你的产品/功能?
有意思,能满足用户需求.
6.你的创新在哪里? 请使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
增加了游戏功能.
7.如果你来领导这个团队,会有什么不一样?
我会更加注重用户的需求来开发功能
8.如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
半个月 | 市场需求调研 | 1人 |
一个半月 | 软件开发 | 2人 |
半个月 | 软件测试并改动 | 1人 |
半个月 | 美工 | 1人 |
9.描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定.
2周 | 市场需求调研 | 1人 |
1周 | 团队讨论决定软件功能 | 5人 |
7周 | 软件开发 | 3人 |
1周 | 软件测试 | 1人 |
2周 | 美工 | 2人 |
3周 | 测试使用并修改 | 3人 |