DeadLine:2017.10.13 23:00
声明:本作业以邹欣老师博客
http://www.cnblogs.com/xinz/archive/2012/03/26/2417699.html
http://www.cnblogs.com/xinz/p/3308608.html
为基础进行修改。
零、说在前面的话
很多同学有疑惑:
软件工程课是否就是枯燥的理论课?
或者是几个牛人拼命写代码,其他人抱大腿的课?
要不然就是学习一个程序语言,练习某个框架,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,同学们自己组织团队写一个软件发布,然后分析其中的得失,的确是学习软件工程的一个好方法。这样能根据切身体会来分析,很有价值,但也有可能“身在此山中”,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别的项目的成败同样给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,背英语单词的手机App,买火车票的网站,互相联系用的微信微博,等等,都是软件,都很值得分析。
- 你为何成为它们的用户?
- 它们的团队做对了什么,做错了什么?
- 软件工程质量如何?
- 如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
分析什么样的软件也有讲究,这就要说到一个故事:
某国空军为了提高飞机在空战中的存活率,决定加固飞机,但是加固什么地方呢?他们研究空战后飞回基地的飞机,飞机各部分中弹的地方和密度,想以此得出结论。但是专家们忽略了一点,那些被击中要害的飞机,都没有能飞回基地,也没有能够参加这些调查。
幸存者偏倚(Survivorship bias)是一种常见的逻辑谬误,意思是只能看到经过某种筛选而产生的结果,而没有意识到筛选的过程,因此忽略了被筛选掉的关键信息。这东西的别名有很多,比如“沉默的数据”、“死人不会说话”等等。
因此,我们不光要分析那些经历战场的考验而最后"活着出来"而胜利的软件,还要分析那些在战场中被打败,或者伤痕累累,正在挣扎的软件,这样才能全面地了解软件工程的原理在好/坏软件上所起的作用。
有的同学会说:
“我只会看看界面,写不出来..."
那么,可以看看这个只评价界面的分析报告,争取写出类似水平的报告来:如何评价微软的UI设计?
一、本学期供分析的产品:
1.博客园博客
当邹欣老师在博客园班级博客微信群中问道:
我们以前让软件工程的学生测试博客园,提意见,不知道博客园认为这样的活动对博客园有意义么?如果这个学期我们又继续做,博客园支持么?
博客园负责人dudu在中这样说:
有意义,支持!我们这个月开始启动博客产品的大改进!
于是,请对cnblogs.com的博客功能,特别是https://edu.cnblogs.com中针对学习,教学,班级管理,互相交流的功能进行分析,这一方面的参考对象是:www.csdn.net。
另外,cnblogs的各项功能(包括博客和班级博客)在手机上做得如何呢?
另外,关于cnblogs.com的竞品分析,请尝试分析stackoverflow.com:
虽然后者不是博客站点,但两者都是面向开发者的社区:
- 后者的网站设计现代化很多可以和博客园的朴素界面设计对比;
- 问答系统的设计非常赞可以和博客园的留言区和小组对比;
- 从问答系统里整合出文档系统的功能可以和博客园的知识库对比;
- 后者的求职系统也可以和博客园的求职系统对比;
- 后者对问答的推荐可以和博客园的博客推荐对比。
因此还是有很多可以分析的地方的:D
2.神策数据
有一天,在我们的构建之法教学群内发生了这样的对话:
邹欣老师:
点评软件,找到一家愿意合作的。
桑文锋-神策数据:
可以尝试分析一下我们Sensors Analytics,这是一个数据分析工具。我还可以来北航作讲解:D
于是,你们懂的。
不了解神策数据的同学请看简介:
目前神策分析主要有以下五个功能:
- 事件分析
- 漏斗分析
- 留存分析
- 行为序列
- 用户分群
这些功能针对不同的业务决策者均能起到重要作用。
另外,从功能上来说,还有一个使用上的功能:
数据概览。
这是一个不同角色都会用到,适合做易用性分析的功能,在里面可以灵活添加配置、创建概览、添加数据项等。
请选取其中一个功能进行测评。另外,可以测评的方面有:
- 根据产品手册进行产品的易用性分析,虽然大家对软件的功能不会特别熟悉,但根据需求说明,并尝试找一些bug,总结出软件不好,不方便或者不符合用户习惯的地方;同时,对神策数据的用户手册也可以提出意见或建议。
- 根据神策数据中提供的8个demo,请自选其中的demo,首先对demo针对的不同业务进行需求分析,然后分析demo的展示结果是否能够能够满足需求,最后尝试提出一些可以改进的地方。
- 调研神策主要的竞争对手,进行同类软件的对比分析,具体请对比talkingdata与Google Analytics这两个竞品,其中一个是神策数据目前国内的一号竞品,另一个是国外的一号竞品。
3.必应词典
最近,必应词典产品经理最近给了邹欣老师一个反馈:
欢迎测试移动版本,希望着重测试这些新功能:拍照翻译,语音翻译以及词汇量测试~
于是,我们希望大家能着重测试这些功能:D
必应词典客户端有Windows 10,Windows Phone,iPhone,Android,iPad客户端!
它的竞争品更是多得数不胜数!
二、博客具体要求:
第一部分 调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)
注册并使用网站的功能,按照描述的bug定义,找出几个功能性的比较严重的bug。至少两个。用专业的语言描述(每个bug不少于40字),如有必要,可以配图。
相信每个同学的朋友中一定有人需要用这样的软件(例如你上课的同学),记载你对这位用户的采访。
提示: 采访提要
- 介绍采访对象的背景和需求(他们为何要开博客,读博客,给博客点评,她有什痛点,她还有别的需求么)
- 让采访对象使用10–30分钟这个软件的基本功能(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)
- 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
- 用户对产品有什么改进意见?
结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
- a)非常不推荐
- b)不推荐
- c)一般
- d)好,不错
- e)非常推荐
请选择一个结论。除了定性的结论,是否能有定量的结论(就像最近比较时髦的手机评测那样,跑个分?),如何定量地评价一个软件?
请看这个链接,并尝试进行定量的测评:
http://www.cnblogs.com/xinz/p/3308608.html
第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)
在书上我们看到:
程序 = 算法 + 数据结构;
软件 = 程序 + 软件工程(软件服务还有数据,内容的因素)
软件企业 = 软件 + 商业模式
那么:
-
使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
-
分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)
-
它的市场份额估计第几?两者匹配么?不匹配的原因是什么?
-
团队在哪一个层次还有问题?为何这么著名的团队还有这些问题?可以把自己想问软件团队的问题都列出来,也许就能得到团队的亲自解答了!
-
从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。(必答)
-
根据各种公开资料,推测这个App/系统是用什么语言+架构实现的,做到目前这个水平总的工作量应该是多少(人×月)
-
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:
- 对用户需求掌握不好
- 具体的设计质量不高
- 开发人员粗心大意
- 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
- 其他
第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?
- 首先,市场有多大?全中国IT专业的学生和职业人士都可以是用户,总共有多少人?
- 目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
- 作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
- 功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析.
- 如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
把上面几个部分都写清楚,并带有选择第回答其中三分之二的问题,发布一个个人博客。
作业实际花费时间记录:请大家在博客末尾记录本次博客作业实际花费的时间,计时标准为:一心一意开始做相关调研,不能干其他事。
三、评分标准
按时提交,文章显示较高的专业水平和认真细致的工作态度,详略得当:满分。
按时提交,有各种不足,则酌情扣分。
迟交作业,得0分。
不交作业,从学生成绩中倒扣分数。
抄袭等行为则根据学校有关规定处理。