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

于是,你们懂的。

不了解神策数据的同学请看简介:

神策数据简介

目前神策分析主要有以下五个功能:

  • 事件分析
  • 漏斗分析
  • 留存分析
  • 行为序列
  • 用户分群

这些功能针对不同的业务决策者均能起到重要作用。
另外,从功能上来说,还有一个使用上的功能:

数据概览。
这是一个不同角色都会用到,适合做易用性分析的功能,在里面可以灵活添加配置、创建概览、添加数据项等。

请选取其中一个功能进行测评。另外,可以测评的方面有:

  1. 根据产品手册进行产品的易用性分析,虽然大家对软件的功能不会特别熟悉,但根据需求说明,并尝试找一些bug,总结出软件不好,不方便或者不符合用户习惯的地方;同时,对神策数据的用户手册也可以提出意见或建议。
  2. 根据神策数据中提供的8个demo,请自选其中的demo,首先对demo针对的不同业务进行需求分析,然后分析demo的展示结果是否能够能够满足需求,最后尝试提出一些可以改进的地方。
  3. 调研神策主要的竞争对手,进行同类软件的对比分析,具体请对比talkingdata与Google Analytics这两个竞品,其中一个是神策数据目前国内的一号竞品,另一个是国外的一号竞品。

3.必应词典

最近,必应词典产品经理最近给了邹欣老师一个反馈:

欢迎测试移动版本,希望着重测试这些新功能:拍照翻译,语音翻译以及词汇量测试~
于是,我们希望大家能着重测试这些功能:D

必应词典客户端有Windows 10,Windows Phone,iPhone,Android,iPad客户端!
它的竞争品更是多得数不胜数!

二、博客具体要求:

第一部分 调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)

注册并使用网站的功能,按照描述的bug定义,找出几个功能性的比较严重的bug。至少两个。用专业的语言描述(每个bug不少于40字),如有必要,可以配图。

相信每个同学的朋友中一定有人需要用这样的软件(例如你上课的同学),记载你对这位用户的采访。

提示: 采访提要

  1. 介绍采访对象的背景和需求(他们为何要开博客,读博客,给博客点评,她有什痛点,她还有别的需求么)
  2. 让采访对象使用10–30分钟这个软件的基本功能(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相
  3. 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
  4. 用户对产品有什么改进意见?

结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:

  • a)非常不推荐
  • b)不推荐
  • c)一般
  • d)好,不错
  • e)非常推荐

请选择一个结论。除了定性的结论,是否能有定量的结论(就像最近比较时髦的手机评测那样,跑个分?),如何定量地评价一个软件?
请看这个链接,并尝试进行定量的测评:
http://www.cnblogs.com/xinz/p/3308608.html

第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)

在书上我们看到:

程序 = 算法 + 数据结构;
软件 = 程序 + 软件工程(软件服务还有数据,内容的因素)
软件企业 = 软件 + 商业模式

那么:

  1. 使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
  2. 分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)
  3. 它的市场份额估计第几?两者匹配么?不匹配的原因是什么?
  4. 团队在哪一个层次还有问题?为何这么著名的团队还有这些问题?可以把自己想问软件团队的问题都列出来,也许就能得到团队的亲自解答了!
  5. 从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。(必答)
  6. 根据各种公开资料,推测这个App/系统是用什么语言+架构实现的,做到目前这个水平总的工作量应该是多少(人×月)
  7. 你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:

    • 对用户需求掌握不好
    • 具体的设计质量不高
    • 开发人员粗心大意
    • 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
    • 其他

第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)

这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?

  • 首先,市场有多大?全中国IT专业的学生和职业人士都可以是用户,总共有多少人?
  • 目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
  • 作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
  • 功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析.
  • 如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

把上面几个部分都写清楚,并带有选择第回答其中三分之二的问题,发布一个个人博客。
作业实际花费时间记录:请大家在博客末尾记录本次博客作业实际花费的时间,计时标准为:一心一意开始做相关调研,不能干其他事。

三、评分标准

按时提交,文章显示较高的专业水平和认真细致的工作态度,详略得当:满分。
按时提交,有各种不足,则酌情扣分。
迟交作业,得0分。
不交作业,从学生成绩中倒扣分数。
抄袭等行为则根据学校有关规定处理。

个人作业Week3-案例分析的更多相关文章

  1. 个人作业 - Week3 - 案例分析

    调研与评测 真实用户采访: 用户姓名: 刘斯盾 用户的背景和需求: 用户是一位计算机专业学生,需要浏览技术博客来扩充自己的学识. 用户使用博客园证明: 产品是否解决用户问题: 在码代码过程中遇到的很多 ...

  2. 个人作业week3案例分析

    调研产品:博客园 第一部分 调研和评测 1.bug 1.不同种类浏览器的支持存在差异 bug描述:在不同浏览器下,部分博客内容显示的格式有明显不同 可尝试用下面两种不同的浏览器打开这个博客网址:htt ...

  3. 个人博客作业week3——案例分析

    1.调研 & 评测 1.我的用户体验 win10应用版: Bug1:例句经过翻译与其给出的译文相差太多 上图是应用给出的每日一句及其译文. 将其复制入翻译,就可以看出翻译过后的句子一点也不通顺 ...

  4. 个人作业-week3案例分析

    第一部分 软件调研测评(必应词典移动端) 找到的bug: 在词汇量测试中每个单词给用户思考的时间太短,只有五秒钟.导致很多似曾相识的单词还没来得及想起就已经过了.如果说测的是用户记忆深刻的单词,那些记 ...

  5. [2017BUAA软工]第三次博客作业:案例分析

    第三次博客作业:案例分析 1. 调研和评测 1.1 BUG及设计缺陷描述 主要测试博客园在手机端上的使用情况. [BUG 01] 不能后退到上一界面(IOS) 重现步骤:打开博客首页中任意博文,点击博 ...

  6. [软工作业]-软件案例分析-CSDN

    [软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...

  7. BUAA软件工程个人作业-软件案例分析

    BUAA个人博客作业-软件案例分析 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习开发软件的能力 这个作 ...

  8. 2020BUAA软工个人博客作业-软件案例分析

    2020BUAA软工个人博客作业-软件案例分析 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分 ...

  9. 个人作业-Week2 案例分析

    微软必应词典客户端的案例分析 第一部分 调研,评测 1)bug: 运行平台:iOS 10.0.2 必应词典版本:4.2.2 1. bug标题:词库加载错误 bug详细描述:学习界面中的经典词库出国考试 ...

  10. 第二次 作业——APP案例分析

    APP案例分析 产品 网易云课堂 选择理由 网易云课堂是从大一就开始使用的一款学习软件,有海量的学习资源,很适合学生课余时间的自主学习 调研,评测 上手体验 第一次打开网易云课堂app的时候,进入的是 ...

随机推荐

  1. Tomcat 代码方式启动

    配置好参数,只需在Booter类中调用 EmbbedTomcat.main(args); 就可以启动. maven中也需要配置相应插件. import java.io.File; import org ...

  2. Css3关键帧动画

    @keyframes设置动画规则,可以理解为一个剧本: 1.name动画的名字必需填写 2.可以使用百分比0%-100%或者from...to...必填内容: 3.需要变化css的样式:必需: ani ...

  3. 【洛谷1855】 榨取kkksc03

    题面 前面省去一堆背景内容 洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一 ...

  4. [TJOI2016&&HEOI2016]求和

    BZOJ Luogu 求 \[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)*2^j*j!\] 其中\(S(i,j)\)是第二类斯特林数 \(n\le10^5\),模\ ...

  5. python数据类型——字典类型

    字典(dictionary) python中唯一的映射类型,采用键值对(key-value)的形式储存数据,python对key进行哈希函数运算,所以key值必须是可哈希的,可哈希表示key必须是不可 ...

  6. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...

  7. Unity3D判断角色对敌人是否可见

    在编写敌人AI的状态机时 经常需要判断角色对敌人来说是不是可见的 如果是可见的,则做出追击或者攻击动作 如果是不可见的,则保持idle或者巡逻状态 判断是否可见 包括两个步骤 1.地方角色的视见向量和 ...

  8. curl post请求总是返回417错误

    在进行post请求的时候, curl总是返回417错误 在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步. 发送一个 ...

  9. iOS 用户体验之音频

    早期某知名公司的应用有这么一个问题,如果我在听音乐时打开该应用,播放一段小视频,视频播放完成之后,音乐没有继续播放.这个问题被很多用户吐槽,很久以后,该公司终于修复了这个问题. 无论声音是应用体验的重 ...

  10. python web开发-flask中日志的使用

    Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...