题目:
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习软件工程的一个好方法;但我们也可以从别人的成功/失败中学到很多。
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
测评软件:
必应词典(iOS版)
第一部分 调研, 评测
下载并使用,描述最简单直观的个人第一次上手体验。
1、画面简洁清新,主要是没有广告(不像某道词典和某山词霸);每日一句很值得推荐,我们在日积月累中学习英语。
2、按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
bug1:当点击分享每日一句的时候并分享到某平台后,接收方点开链接是乱码;另外分享成功后出现“友盟社会化组件”?应该是必应词典吧!(本次测试的是QQ)
bug2: 在互联网接入使用第三方账号登录时(本次测试的微软账号),经常出现闪退现象。(本次测试由于条件问题,无法截图)
bug3:设备网络连接正常,单词挑战项目显示网络出错。
用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
提示: 采访提要
5.1. 介绍采访对象的背景和需求(他们为何要学英语,查词典和用法,还有别的需求么)
本次采访对象是我舍友童毅南,由于他要考六级,用词典的几率大增。除了使用该产品查词外,他还会用生词本功能记忆单词。
5.2. 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
5.3. 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户在使用本产品过程中,问题基本解决,但是有部分单词还是没有在产品数据库中。采访对像表示,该产品在单词解释方面有待改进。例如某道词典通常对单词解释是多种,而该产品是一种。
另外,PC端单词本不能同步到移动设备上,没有一个应用,多个设备共同使用的理念。
5.4. 用户对产品有什么改进意见?
1、增加后台词库量
2、希望单词本同步
3、希望增加网络许可项,当无法连接互联网时,默认不适用网络连接,增加询问许可。
5.5. 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
--------好,不错------------
第二部分 分析
使用此软件的所有功能 (包括背单词, 单词挑战,口语练习等), 联系第二部分的分析, 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
我认为大概需要一年时间
分析这个软件目前的优劣 (和类似软件相比,至少对比2款软件), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。
[附加题]针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分(能给出更详细的评分更优)。
界面 | 语言 | 释义 | 离线下载 | 总分 | |
必应词典 | 简洁无广告(9) | 支持中译英(4) | 网络释义(2) | 支持(10) | 26 |
有道词典 | 丰富,广告多(5) | 支持英法德日汉葡藏俄汉互译(9.5) | 朗文辞典 柯林斯辞典 21世纪大英汉词典 例句(8) | 支持(10) | 32.5 |
金山词霸 | 简洁,有些许广告(7) | 支持中英韩日德法法西(8.5) | 牛津辞典 常用释义 柯林斯高阶辞典(7) | 支持(10) | 32.5 |
第三部分 建议和规划
如果你是项目经理,如何提高从而在竞争中胜出
1、增强推广率和市场占有率
2、坚持无广告,良心经营
3、重视用户体验,及时修复bug
目前市场上有什么样的产品了? 有道词典,金山词霸
你要设计什么样的功能?
1.单词同步
为何要做这个功能,而不是其他功能?
在浏览了所有苹果应用商店必应词典用户评论后,我发现用户在方面反映比较明显
为什么用户会用你的产品/功能?
你的创新在哪里? 请使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
运用了新媒体和数据说话,更加权威
如果你来领导这个团队,会有什么不一样?
那可能这个软件都做不出来(笑)
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
第一,需求调研(2周)
第二,需求分析(2周)
第三,版块分工,系统设计(2周)
第四,软件编码(6周)
第五,软件测试(3周)
第六,软件美工(1周)
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定.