我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
产品
请下载 微软小娜-智能助手,win10,iOS或Android客户端都有!
第一部分 调研, 评测
(功能评测,软件的bug,黑箱测试, 用户调研, 软件的用户体验)
- 下载并使用,描述最简单直观的个人第一次上手体验。
下载了微软小娜智能助手之后。在打开时,会获取用户信息,包括隐私的信息。因此在信息安全与维护方面至关重要,让用户安心的使用。操作界面简约,布局方面可以设计一些主题供选择。在菜单栏中有多种功能,是较为普遍,广泛应用的。
- 按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
所谓bug就是软件的行为和用户的期望值不一样。
(1)win10的小娜无法追踪快递
(2)信息查询无法识别准确
用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图
对于信息查询无法识别准确,准确的来说就是人机交互的问题,毕竟小娜还没有什么语言都能识别出来的功能,例如本地方言等等。
相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
配合我采访的是我的同学。开始时,对其中通过人工智能来查询信息,发现其办事效率比较高。再用了一段时间之后,对其采集过多隐私信息有了烦恼。 他说,这款件的界面布局有些欠缺,菜单选项中的功能太少了,满足不了大多应用。
5. 提示: 采访提要
5.1. 介绍采访对象的背景和需求(他们为何要使用该软件)
满足一些需求,解放劳动力,提高工作效率。
5.2. 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
5.3. 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
准确度还好,界面简单,功能一般,总体感觉一般。
5.4. 用户对产品有什么改进意见?
(1)界面主题多样化。
(2)功能贴近生活,并多元化。
(3)人机交互能够更加完善。
5.5. 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
还不错,以一种人工智能的方式,满足用户大多需求,值得使用。
? 非常不推荐
? 不推荐
? 一般
? 好,不错
? 非常推荐
第二部分 分析
1. 使用此软件的所有功能,估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
在完成这个软件的过程中,分为3大阶段--定义、开发、维护。定义中有问题的定义,可行性分析,以及需求分析。开发阶段分为设计和编码测试。最后需要进行维护。
要实现一个模块大概需要多长时间,具体编码要涉及到哪些部分。服务器要搭建,数据库要设计。
在项目实现阶段,可以将之分为几个模块来完成。按照软件菜单栏里的功能来划分模块吧。该软件,重点还是在于人工智能的实现,所以在这方面花的时间会相对教长。还有涉及到数据库的交互,以及一些注意的地方,再加上最后的测试验收阶段,以及上线后修复BUG,总的大概需要1年左右吧。之后便是版本的更新,在实际使用中逐步完善。
2. 分析这个软件目前的优劣 (和类似软件相比,至少对比2款软件), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。
优点:使用简便,功能较多。
缺点:人机交互有待提高。
第三部分 建议和规划
- 如果你是项目经理,如何提高从而在竞争中胜出?
如果我是该团队的项目经理,我觉得要提高的就是在UI设计方面。首先,考虑的使市场,或者是面向人群,从而来制定其需要的功能。
且不说目前手机的普遍,人工智能成为这个时代的趋势。所以市场方面的顾虑并不上那么大。接下去就是功能,什么样的功能满足什么样的人群。首先是学生群体,这是这这款软件的传播者。接着是工作群体,提供一些办公的应用。还有就是大众群体,提供生活最普通的,最有用应用,来满足日常的需求。
- 目前市场上有什么样的产品了?
类似的产品,Siri。
- 你要设计什么样的功能?
在UI上做改良。
- 为何要做这个功能,而不是其他功能?
应为第一印象很重要,这款软件的界面不好看。
- 为什么用户会用你的产品/功能?
用户选择一款软件,有时是很简单的,他会凭着对这一产品的第一印象来选择。用户能提前接触到软件最多的部分便是界面。所以花时间重构UI设计,是可以收获更多用户的。
6. 你的创新在哪里? 请使用 NABCD 分析
( http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html ).
- 如果你来领导这个团队,会有什么不一样?
如果要我来领导这个团队,不管是需求分析,还是UI设计,或是代码实现,我都希望能参与。能够更加清楚团队每一个角色的工作,方便日后的工作安排。
- 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
因为此次的重点是放在UI设计方面,所以我需要有1个美工,3个开发,1个测试。开发人员和美工需要及时沟通,共同来设计出一份令人满意的UI界面。
之后就可以在开发中在分配一人出来测试。
- 描述你的团队在12 周期间每周都要做什么,才能在第12周如期发布软件,大小里程碑绩点设定.
第1周:问题明确,制定可性方案。通过网络调查,用户调研等多途径了解用户的需求,以便美工设计出初步多套UI界面。
第2~3周:需求分析是制定大方向,至关重要。所谓磨刀不误砍柴功,花费足够的时间是有必要的。整理用户反馈,美工继续改进UI设计,继续调查,继续获取反馈,并形成初步最终版。
第4~8周:开发人员完成内侧版本,测试人员进行测试反馈。
第9~10周:投放部分市场,接收正式用户的反馈,即时整理,修改BUG。
第11~12周:根据整理出来的反馈,开发人员进行修改,完成公测版本,测试人员进行测试反馈。测试通过,发布产品。