题目描述
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
第一部分 调研, 评测
(软件的bug,功能评测,黑箱测试, 第8章 用户调研, 12 章 软件的用户体验)
1.下载并使用,描述最简单直观的个人第一次上手体验。
第一次使用该软件,Android客户端,跟一般词典一样,四大基本板块。因为这肯定是一款比较成熟的软件,有很多人夸,整体评价也不错。所以可能大部分写的是我看到的不足,见谅。必应在我眼中的主要不足是整体很臃肿,依照我对软件产品的理解,无非是功能界面做加法减法,词典这种我觉得应该是做减法,甚至应该是极精简的一类。我们要考虑主流的受用人群需要的功能--听说读写背。而必应词典给我的第一感觉就是太贪心了。
1.1推送太长,一种下拉拉不到到头的感觉很心累,对此我还用了有道词典做了一下对比,虽然同样有这种问题的存在,但是仍有些可取之处。
首页必应给了6个滚动窗口,全是优美句子,有道4个分别是每日一句,音频,广告和文章。在我看来必应词典在浪费空间,加个刷新按钮就可以解决的事情,占用了最显眼的版块,就是图片很好看而已。下面推送的文章都是望不到头,没有具体的排序,这些全放在首页是否太冗余?类似新闻推送设置分类,然后另起页面是否会好点?(当然没有广告这一点算的上是良心软件)
1.2学习界面,同样的问题,对比一下就发现,必应词典的这个界面“色彩斑斓”,这个看个人喜好吧,我个人意见再精简一些。
1.3翻译界面,我没发现这个界面和首页的输入框直接点进去有什么差别,还是有什么我没发现的必需功能。
这下面的三个按钮我想再多嘴一句,因为很少见,我在商店评论里看到好像曾有一个bug是当手机复制过文字的时候,翻译只能粘贴。这可能是为了修复那个bug吧,我测试了下,只要输入这三个按钮就一直存在,有些功能略有差别。大部分人可能更多的使用输入法自带的功能和那个×。
1.4单词联想(很棒的功能而且界面简洁很喜欢)
2.按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
3.用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
依照书中的bug定义,bug可以分解为:症状(symptom),程序错误(fault),根本原因(root cause)。所以可能我找到的更偏向于功能的不完善,从代码角度和错误根源我不知道如何去写,也有可能是我水平太低。尽力找出这些,望指正。
Bug1 and Bug2:拍照识别和图片识别
症状:我拍了很多张去实验,发现直接拍照识别会显示“没有识别到文字”,而手机拍照之后使用图片识别就可以识别出来。由于担心是图片不同导致的我又在拍照识别的时候直接截图然后图片识别。结果和上述相同。其次大家也看出了,在碰到大面积的词汇时,很有可能是只识别不翻译(明明设置的是翻译到简体中文)。
程序错误:只识别不翻译应该是条件设置问题,但是为什么同一张图片拍照识别和图片识别会有不一样的效果,难道不是图片扫描过后参数统一到一个算法去分析?
根本原因:不知道,水平太低。
Bug3:不可以删除历史记录
症状:搜索的记录无法删除,虽然历史记录有其作用,但是应该赋予用户这个权利。(同样对比了有道词典)
程序错误:无
根本原因:开发团队没开发改功能
4.相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
5.提示: 采访提要
5.1. 介绍采访对象的背景和需求(他们为何要学英语,查词典和用法,还有别的需求么)
舍友,备战六级,可能需要偏重考试而不是积累。需求:希望能自己活着和教育机构合作,如果选择了相应的考试需求,在例句上加入相应考试原题的例句。
5.2. 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
5.3. 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
单词挑战和我爱说英语点击没有可能没反应,可能是加载问题,如果加载之后,立马在点击没有问题,过一会还是有可能没反应。
数据量:时间较短,简单看了一下单词本各种类型的单词数量和百词斩的,应该还是不错的
界面:同样感觉有些冗余
功能:较为全面,单词记忆可以添加拼写选项
准确度:简单查找了几个单词,还不错
用户体验,整体评价不错,但对比其他的类似软件并没有惊喜。
5.4. 用户对产品有什么改进意见?
界面在简洁些。
5.5. 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
好,不错
第二部分 分析
(参考《构建之法》 8.6 节 对工作的估计, 和14.1 节 软件工程的质量)
1.使用此软件的所有功能 (包括背单词, 单词挑战,口语练习等), 联系第二部分的分析, 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
8个月左右
前期的准备和调研 --1个月
功能和前端开发 --2个月
测试 --3个月
上架用户测试 --2个月
分析这个软件目前的优劣 (和类似软件相比,至少对比2款软件), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。
词典应用对比 | 必应词典 | 有道词典 | 金山词霸 |
---|---|---|---|
UI界面 | 一般 | 简洁 | 简洁 |
功能 | 较多 | 较少 | 较少 |
[附加题]针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分(能给出更详细的评分更优)。
用户体验 | UI界面 | 核心功能 | 整体 |
---|---|---|---|
★★★★ | ★★★ | ★★★★ | ★★★★ |
没有广告,操作方便,但是有些功能反应迟缓 | 界面色彩太多,页面不够精简 | 基本功能完善,缺少拼写功能 |
第三部分 建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
- 如果你是项目经理,如何提高从而在竞争中胜出?
确定主流受众人群及其需求,调查同类产品,精简共有功能,添加独有功能。
- 目前市场上有什么样的产品了?
词典比较主流的是金山词典,有道词典,必应词典。
- 你要设计什么样的功能?
根据用户设置的需求(如四六级 考研),在例句和训练中加入真题
- 为何要做这个功能,而不是其他功能?
因为我自己和周围的同学在用类似的书籍,却没有类似的软件。
- 为什么用户会用你的产品/功能?
市场调研,用户需求。
- 你的创新在哪里? 请使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
N:绝大多数人下载词典是因为有近期目标(如四六级,考研),而不是长远考虑。这项功能更贴合大众需求
A:可以和教育机构合作,在相关页面之间引用他们的资料,一举两得
B:让用户在实现自己近期目标时,无须浪费时间
C:主流产品中这个功能还没有发现,或许有类似产品,但是我们有用户基础,整合后的软件要比单一功能的更舒心
D:在用户添加自己的目标类型后进行提醒
- 如果你来领导这个团队,会有什么不一样?
很难说,并没有这种经验,尽心尽力而已。
- 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
3人开发 --一个月
2人美工 --一个月(可与开发同时进行)
3人测试 --两个月
2人测试 --一个月(如果有时间更希望多测试,而且是测试自己开发部分)