题目描述
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
产品
请下载必应词典,PC、Mac、iOS或Android客户端都有,不要说你找不到!
第一部分 调研, 评测
(软件的bug,功能评测,黑箱测试, 第8章 用户调研, 12 章 软件的用户体验)
1.下载并使用,描述最简单直观的个人第一次上手体验。
首先看一下页面:
感受:第一次进入软件,只说第一感受(表面),其实我感觉一般吧,没有特别引人注意的。最关注的当然也就是翻译和学习这两块功能,学习板块的用户界面感觉不错,挺喜欢的,其他三个板块的页面一般,功能来说比较齐全,有背的(背单词),练的(单词挑战),听的(电台),说的(我爱说英语)。
使用描述:(安卓APP)
首先词典界面:
没有看到什么特别的,不过有个联想词汇,挺有意思的。上个图
翻译板块
很简略,只是翻译,不过有一个拍照识别翻译,多种需要选择。还结合必应的搜索引擎,搜索更多内容,还不错,还有用户反馈,能及时修改不正确的识别。
学习模块
收藏:可以收藏单词,每日一句和例句(再加入过程中遇到下面介绍的bug3)
背单词:有卡片集,可以选择四级,六级,高考词汇,国外生活词汇等。可以填写计划,还不错。
单词挑战:也有分类,不过在切换题当面很不方便,要一题一题切换,不能从5,直接点到2,不方便,一开始还没发现要划屏切换。在计时方面,如果我个人的话,喜欢先选个等级,比如初级,中级,高级。初级要在30s答完一题,中级20s,高级10s这样的倒计时来做。
经典词库:包含每个模块的单词数,然后还和翻译,必应搜索,联想词汇相结合。
口语训练营:这个没看懂怎么使用,怎么点都没有反应,应该是我的打开方式不对。也上个图
我爱说英语:这个还挺有意思。但是有的时候什么都没说,也会有得分,而且这个评分很不对,读的很认真就才30+分,什么也不说也会的20+分。
电台,本地听力:没什么说的
2.按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
(1)bug的定义:软件的缺陷。可以分解为:症状(Symptom),程序错误(Fault),根本原因(Root Cause)
- 症状:即从用户角度,软件出了什么问题。
- 程序错误:即从代码的角度看,代码的什么错误导致这样的问题。
- 根本原因:错误的根源,即导致代码错误的根本原因。
毕竟是微软这样大的企业出的app,而且最近一次更新实在一个多月前,大的bug没有找到。我只能从用户体验上说一下自己认为的软件缺陷。
BUG1:先上图
问题:以上这张图使用的是拍照识别进行翻译(英文来自于构建之法P75),可以看到这个翻译,其实谁看来都是不通顺的。我只做为用户的感受:“好差的翻译啊,这方面不行啊”(虽然对于我,很差的功能也做不出,哈哈)。这是其中我认为用户体验功能性比较严重的bug,感觉这样的翻译没什么意义。
自己的分析(不知对错,只是猜测)
- 程序的错误:应该是图像处理后,进行翻译时词语连句不顺的问题,变成一个个词进行直译。
- 根本原因:算法的问题。
BUG2:再上一张图:
问题:这张图,是不是感觉看起来很不顺?图片左边那块脱节严重,到底左边那块对应的是那块或者哪个单词(如果我是一个单词也不认识的人,我只想看看翻译)字体也是有大有小,而且左下角倒数第二个单词都快看不见了。
自己的分析(不知对错,只是猜测)
- 程序的错误:应该时没有的。
- 根本原因:只是一些信息显示排版问题。
BUG3:再来一个动图:
问题:这个屏幕上显示的“没有更多例句啦”,没有往下查看内容,只是切换左右会一直跳“没有更多例句啦”,而且严重的是切换一次会跳好几次“没有更多例句啦”,我手机上试过有3次的,还有的时候切换一次跳8次。
自己的分析(不知对错,只是猜测)
- 程序的错误:应该是多次执行了某一判断函数
- 根本原因:程序逻辑上,或者存在某些没有考虑到的问题。
BUG4:
问题:在语言选择英文的状态下BUG3也是显示“没有更多例句啦”。
自己的分析(不知对错,只是猜测)
- 程序的错误:没有输出英文版的提示
- 根本原因:没有顾及到边角提示词的转换
BUG5:切换语言后重新启动才能生效(虽然感觉很多APP都是这样)
自己的分析(不知对错,只是猜测)
- 程序的错误:没有错误
- 根本原因:加载配置的问题,可能只是打开APP的时候加载配置
BUG6:在口语训练营当中的的二维码,长按二维码识别,关注“微软小英”提示不好,因为并不能长按识别
- 根本原因(猜测):要么是图片的时候是从其他中直接扒过来,导致提示没有修改;要么就是程序没有实现。
BUG7:
自己的分析:(猜测)
- 症状:查找出来的单词的互联网释义,显示了很多网址链接,但是都是点不动的。
- 程序的错误:某段代码没有执行。
- 根本原因:可能是点击事件没有触发,或者触发了代码没有执行。
3.相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
(1)介绍采访对象的背景和需求(他们为何要学英语,查词典和用法,还有别的需求么)
因为他要考六级所以要学英语,除了查单词和用法外,他们觉得一些口语,句子和听力的训练也很重要。还要有一些记录用户行为的记录,进行数据分析。
(2)让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
(3)描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
他说软件相比与其他的同款软件,他会选择百词斩,有道这样的。其实听说读写,其实是每款学习英语的APP必备的,但是必应词典好像没有练习写的。这是一个挺大的不足。
数据量上来说是挺大的,有很多分类。界面其实相对一般,没有什么特别喜欢的或印象深刻的界面。准确度上,我的英语水平一般,所以都能接收,也没有怎么去研究各个词典翻译上的不同,但是必应词典上拍照识别上还是存在问题。用户体验相对其他同款软件来讲略差。
(4) 用户对产品有什么改进意见?
他说先添加练习写方面的功能,比如写单词。然后添加一些互动,可以看周围同学的学习,促进互相学习。有一些鼓励学习的策略,比如积分换购啊,得勋章这样得方式,鼓励用户学习。其他的软件一开始注册都会有一个数据分析,比如要一个测试,然后大约估计你的词汇量,然后还有其他的数据记录,这样很好的反应我的学习行为和效果。面对翻译可能存在不正确的,可以使用积分制换取人工在线帮助。也要结合当前的机器学习,人工智能,大数据分析给用户不一样的体验。
(5) 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
一般(也有可能是用的不久,没有发掘精髓).不过拍照翻译这个方式还是不错得,只是准确率不太好。
第二部分 分析
(参考《构建之法》 8.6 节 对工作的估计, 和14.1 节 软件工程的质量)
(1):使用此软件的所有功能 (包括背单词, 单词挑战,口语练习等), 联系第二部分的分析, 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
计算机毕业生,并有专业的UI支持。如果我个人觉得比较难的应该就是拍照图像识别翻译这块,涉及的东西可能比较多,对于我们这来说,会图像处理的人比较少,计划用两周得时间学习和研究图像处理的技术算法。其他方面对于会做APP的人来说功能实现应该试比较简单的。需求分析用一周的时间进行调查访问。然后用一周的时间进行设计和分工。6个人的团队,每天5,6个小时的开发的话,一个月的时间开发应该可以完成,然后进行测试等待,大约两个月的时间。
(2):分析这个软件目前的优劣 (和类似软件相比,至少对比2款软件), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。
界面 | 互动性 | 用户数据分析 | 内容丰富度 | 拍照翻译 | 花样 | |
---|---|---|---|---|---|---|
扇贝 | 一般 | 有 | 有 | 还行 | 无 | 多 |
百词斩 | 较好 | 有 | 有 | 丰富 | 无 | 多 |
必应词典 | 一般 | 无 | 无 | 简略 | 有 | 一般 |
相对来说,必应词典的功能比较一般,有的其他同款软件几乎都有(也有可能很多高级功能我没有发掘到),同款软件还有很多新式花样吸引用户。但是必应词典没有广告这个是吸引用户的一个点。其他的一般同款软件一般都有广告。
(3):[附加题]根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
(4)[附加题]针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分(能给出更详细的评分更优)(10分制)。
用户体验:7
UI界面美观度:6
核心功能:8
主要的方面我觉得还是吸引用户的地方不够,比较好的可能就是拍照翻译,如果针对学英语,做一个吸引用户的APP还有很多需要改进的(可以下载尝试百词斩,扇贝这样的软件借鉴好的地方。总的来说必应词典有点单调。
第三部分 建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
(一):如果你是项目经理,如何提高从而在竞争中胜出?
这个过程可以说是一条线:
竞争中胜出,首先就是产品的宣传策略,宣传的点要吸引用户,当然这个和产品给用户的体验有很大关系,满足用户自然就是功能上够齐全。留住用户自然是有用户不舍得放弃的原因。以前美团刚出的时候,因为优惠很多,周围同学说,我今天吃饭只用了5块前诶,而且很丰盛,而且新用户注册立减15,然后周围的同学都下载了。这是吸引用户,用户有可得。
(二):目前市场上有什么样的产品了?
百词斩、扇贝、有道、google等。
(三):你要设计什么样的功能?
首先必须做到一般同类软件能做到的听说读写方面的练习,拍照识别翻译,用户互动,用户数据分析,用户成就模式,用户奖励模式。然后进行比较齐全的分类,比如:法律专栏,医生专栏,计算机专栏等等这样的分类。结合当前的机器学习,人工智能,大数据分析给用户不一样的体验。
(四):为何要做这个功能,而不是其他功能?
基本功能必须要满足,比如听说读写的练习,翻译等待,质量当然要好。接着是拓展功能,重点把握用户的需求,什么是吸引用户的点。吸引不只是学生或者考研出国这样的用户,可以吸引各个领域的用户。然后就是数据,这是一个非常非常重要的方面,用数据分析用户的行为,记录用户的一点一滴,和支付宝一样有用户年账单这样相似的功能。这是一个数据的时代,要用数据去留住用户。举个例子,比如现在的手机号,一般的人都是用手机号绑定各种,如果他想换运营商他会考虑还有非常多的数据绑定我的手机号,我还是继续用吧。用户互动也是很重要的,可以邀周围的人一起学习,一起讨论。看到其他人今天学习的动态,也会有一种我也要学的动力。
(五):为什么用户会用你的产品/功能?
因为我们的根本出发点是站在用户的角度,量身定制,顾及各个领域的用户,让他们有可得,吸引用户,用数据留住用户,只要用户使用久了自然因数据而不舍放弃。如果后续再有与时俱进的更新,用户自然会很愿意使用。
(六):你的创新在哪里? 请使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
①:N(need)
首先要把自己置于用户的角度,自己需要什么功能,采访周围的人群,他们在用这样的软件时需要什么功能。比如有的人在学英语时,希望我阅读理解训练,写作训练。
②:A (Approach 做法)
首先根据用户的要求实现这些基本功能,之后就是比较重要的如何留住用户。有什么优惠策略,奖励方式?或者一些实质的鼓励?必须要有这样的方法,但是必应词典上面并没有其他软件做的好。
③:B (Benefit 好处)
自然考虑用户能得到什么好处,才可以留住用户,当然和第二点的做法息息相关。
④:C (Competitors 竞争)
有好的产品,必须要有好的宣传方式,当然产品质量是必不可少的。可以针对不用的人群开发不同的关于这方面学习的功能。可以采访各个不同领域的人,看看他们在这方面如果有需求会是什么需求。其他同款软件有的,我都有。其他同款软件没有的,而我有。
⑤: D (Delivery 交付)
这个设计的就是好的宣传方式了,可以针对不同的人群进行不同的宣传。比如学习要针对学习上面的宣传,工作的要针对工作方面的便利进行宣传,还有一些奖励方式鼓励用户使用。
(七):如果你来领导这个团队,会有什么不一样?
这个谁也不能说会怎么样,只能说努力做好,努力做到顾客的心里。
(八):如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
可以说,我作为一个用户来讲,第一印象很重要,所以美工是给用户开门的钥匙。接着就是bug问题,如果用户使用了一年的记录突然没有,他可能就放弃这款软件。很多用户都是因为数据量的问题,不愿意放弃某个软件,所以用户数量可以持续不减。当然测试也是非常重要的,三个地位如果让我排序的话(仅自己观点):美工,开发同等,测试稍微次之。所以先把重点放在开发和美工上。
(九):描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定.
时间 | 安排 |
---|---|
1-2周 | 需求分析 |
3-4周 | 整体设计,文档书写 |
5-10周 | 开发 |
11-13周 | 美工 |
14-15周 | 测试 |
16周 | 发布软件 |