软件工程网络15个人作业3——案例分析

时间:2021-10-01 16:44:18

题目

很多同学有误解:

  • 软件工程课是否就是理论课?
  • 或者是几个牛人拼命写代码,其他人打酱油的课?
  • 要不然就是学习一个程序语言,搞一个职业培训的课?
    都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,这样能根据切身体会来分析,很有价值,但也有可能“身在此山中”,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别人的项目的成败同样能够给我们很多启发!

我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。

  • 你为何成为它们的用户?
  • 它们的团队做对了什么,做错了什么?
  • 如果你来做,会做得更好么?
    通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。

产品分析

我选择“智慧集大平台——集大通APP”进行产品分析
(在平时交流中会跟朋友讨论一些集大通的问题,她有一些想法,这样刚好有采访的素材)

第一部分:调研, 评测

1、下载并使用,描述最简单直观的个人第一次上手体验。

  • 还没进入集美大学,就先使用了集大通,直观感受是方便,为新生提供了了解学校的途径。
    (第一次使用离现在真的有点遥远,几乎忘了对集大通的第一印象。下面谈谈对界面的直观感受。)
    ① 喜欢登录界面密码的小心心;
    ② 刚登录就跳出“课余生活”界面,其实对刚刚接触这个软件的同学有点迷茫(比如我自己);
    ③ “朋友圈”界面贴近我们常用界面(比如QQ的界面),很习惯;
    ④ 新闻界面几乎都是思政(这个嘛);
    ⑤ “消息”界面分“消息”和“联系人”,用起来很快上手;
    ⑥ “我的”里面有实用的课程表、应用中心,也有娱乐性任务。
    总的来说,用起来还是比较容易上手,没有很多让人误解的地方,总体感觉还不错。

2、按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。

  • 用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
  • Bug:软件的缺陷
    Bug可以分解为:症状、程序错误、根本原因
    1)症状:即从用户的角度看,软件出了什么问题。
    2)程序错误:即从代码的角度看,代码的错误导致了软件的问题。
    3)根本原因:错误根源,即导致代码错误的根本原因。

                           ——摘自《软件工程》13.1节

功能性bug应该不好找(毕竟一直在改进更新),就说一下个人认为的缺陷:
(程序错误不知道该怎么写,根本原因均为个人推测)(删删减减就只剩了3个个人觉得问题比较明显的缺陷)
(1)症状:进入一个界面要很久(这是我一直很烦恼的问题),网络差一些就根本进不去,但还是会一直在刷新。而且正在刷新有时还不能取消刷新。
  程序错误:(未知)
  根本原因:进入界面时,程序在搜索相应的功能,这个算法可能不太好,因此一直在刷新;每次刷新时,进行全部程序的刷新,拖慢刷新速度。

软件工程网络15个人作业3——案例分析

(2)症状:官方微博不能直接打开手机上的已有微博,只能跳到下载微博的界面,而且无法下载。
  程序错误:(未知)
  根本原因:没有识别手机上是否有微博的功能,没有提供微博下载的正确链接。

软件工程网络15个人作业3——案例分析

(3)症状:消息中的教务前一秒可以进去,去刷一下其它界面再回来就进不去消息界面了,退出集大通再进行访问就可以进入消息界面。
  程序错误:(未知)
  根本原因:程序卡在某一个地方,无法识别用户进行的操作。

软件工程网络15个人作业3——案例分析

3、相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。

(1)介绍采访对象的背景和需求

背景:集美大学理学院学生
需求:
① 为什么使用集大通 → 首先,大一还没有入学就被录取通知书安利了集大通;其次,主要用集大通查看课程表以及教务功能。
② “痛点” → 目前希望集大通可以直接充值校园卡,不需要到圈存机领款(觉得又慢又麻烦)
③其它需求 → 希望集大通可以有快捷方式,比如网费充值,一点进去就能充而不是经过一系列的繁杂过程,觉得有点冗余;这个快捷方式可以自己设置,拖到首页或者合适的地方。

(2)让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)

软件工程网络15个人作业3——案例分析

软件工程网络15个人作业3——案例分析

(3)描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?

① 过程:用户首先登录,再根据习惯打开了应用中心进行使用,期间我们交流了各自对集大通的看法,提出了一些相同的想法。(如优缺点)
② 用户表述的是目前存在的问题已经想要的功能,所以用户的问题没有解决。

A. 数据量——集大通有很多消息的更新都不够同步,如果太久没有进入界面就会下线,下线之后的消息都不会同步;集大通有很多不用的功能都会被搁置,好像不再更新消息,比如应用中心的新闻中心,里面几乎没有什么内容。然后不希望有过于暴露自己的隐私信息,什么宿舍分配之类的功能,感觉这个数据量就“太大”了吧。
B. 界面——总体来说还是不错的,容易上手,界面布局比较熟悉。但一张课程表可以不需要两个页面。
C. 功能——用户认为应用中心可以不要那么多功能,比如说需要内网服务的,就可以不要显示在集大通里,在学校可以用i集大和教务处,不在学校一样都用不了。比如说易班网,其实易班不都有APP了嘛。
D. 准确度——从这点来说还是不错的,从经常使用的课程表和教务功能(比如成绩查询)来说,至少是不会出错的。
④ 用户体验方面觉得许多功能都很鸡肋,可有可无。

(4)用户对产品有什么改进意见?

① 内网连接的功能显得有点鸡肋,可以不要。(还有挺多用不到的功能的)
② 希望有快捷功能,还可以自己编辑。
③ 朋友圈有各种屏蔽功能。(个人意见)
④ 希望进入图书馆的界面就是搜索馆藏书目而不是学术资源。(个人觉得图书馆这个功能主要是来查找想借的书的)

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

  • 非常不推荐
  • 不推荐
  • 一般 √
  • 好,不错
  • 非常推荐

理由:集大通的许多功能都不怎么被学生用到(老师那边不太清楚),学生用户能用到的只有充值校园卡,网费充值,图书馆查询,教务信息查询,网上办事大厅,以及查询课程表等;更何况朋友圈几乎都是广告,都有点避而远之;然后自己也不怎么用集大通;所以我的评价是一般。

5、[附加题]除了定性的结论,是否能有定量的结论 (就像比较时髦的手机评测那样, 跑个分?), 如何定量地评价一个软件?

这里贴一个定性评价与定量评价的概念:定性评价与定量评价

从定量的角度来说,可以统计用这个软件的人数,用这个软件的功能的人数;从而判定这个软件是否收到用户的认可。

(简单说一下)

第二部分:分析

1、使用此软件的所有功能 , 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。

  • 需求调研:找老师和学生进行调研,大概1周(从设计问题到统计完成)
    需求分析:根据调研的结果进行分析,并做出一份“痛点”图,大概1周
    系统设计:要设计蛮多的功能的,大概一个月
    软件编码:2个月(可以在系统设计初步完成的时候开始)
    软件测试:测试需要全面一些,大概3周
    实施发布:2周
  • 总的来说,大概需要5个月

2、不要写成一个罗列功能的流水单子! 而是要集中火力在一个场景,这个场景中典型用户有什么需求,软件如何解决了需求(或者没解决),UX 有什么细节是好的,差的,请结合书上UX的内容来分析。

(额,不知道UX什么意思,还查了一下意思的我)

(1)典型用户的需求:希望将不常用的功能删除或减少,并添加“快捷方式”功能,以便于使用;完善充值校园卡的功能。(软件还未解决)
(2)集大通的用户体验:(主要体验应用中心的功能)

应用中心 优点 缺点
第一印象 看起来有很多功能 实用的功能比较少
界面 一目了然 有的图标会一闪一闪的
功能
我的媒体 “易班网”“大学主页”“官方微博”比较方便 但是这里的功能学生都不怎么用到
我的系统 内网结合的方式更好的展示了系统的功能 但是内网一般在APP中很少用到,使用时有一些麻烦(宿舍分配好像没什么用啊)
我的服务 这里的功能实用的较多,方便学生 “电量助手”只是拿来查看电量使用情况的,不能充值电费/“图书馆”的第一界面不是馆藏查询并且切换繁琐
其他 (额,没有发现什么优点) “网上办事大厅”里的功能跟“网费充值”一样,“集大通”是来下载集大通APP的,但是不是正在使用APP了么
个人事务 “课程表”功能还是挺实用的 不能自己随意编辑
总结 “我的服务”与“个人事务”较为实用 功能分类有些不明确,“其他”的功能累赘

3、你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:

  • 对用户需求掌握不好 √
  • 具体的设计质量不高
  • 开发人员粗心大意
  • 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
  • 其他 √ 比如没有发现这个bug或者这个bug是之后才出现的,原来没有。

4、团队在哪一个层次还有问题? 可以把自己想问软件团队的问题都列出来, 也许就能得到团队的亲自解答了!

(1)团队需求调研的形式?
(2)团队进行APP试用过程中是不是发现了大量的问题,以至于小问题不太起眼?
(3)团队开发的功能那么多,但是很多并不完善或正在完善,是否考虑下架一些功能?
(4)团队是否太过将开发中心放在新功能的开发上而忽略了以前最想做的功能?
(5)在同步更新消息这个问题上,为什么不能下线也更新消息?

5、从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面 (具体建议)。

在做用户体验的时候可以多让几个人进行用户体验,以用户的角度看问题,将没有实质性意义的功能删除,再增添一些用户觉得应该要有的功能,比如我觉得可以在“我的”页面增加一个快捷功能服务;并且在这个期间能及时发现软件出现的小问题,然后改正。

第三部分:建议和规划

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

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

  • 我参考了第8章8.4节的内容,觉得可以利用NABCD模型对项目进行需求分析,以便更好的满足用户的需求,在竞争中脱颖而出。
    N(Need):全面调研用户需求,看他们需要的是什么样的软件,团队可以根据他们的需求做出怎么样的项目改变。
    A(Approach):完成一些需求后,团队可以对这些满足需求的功能进行先进行测试,再将这些功能推荐给提意见的用户,看是否还有需要改进的地方。
    B(Benefit):在宣传产品的时候可以适当的宣传该软件与其他相似软件或网站有什么较优的地方,让用户体验并说说感受,以便参考。
    C(Competitors):以上的步骤完成后,团队充分了解自己的项目的优缺点,不管是先进入市场还是后进入市场都将会有一定的优势。
    D(Delivery):做好了项目的改善,团队应该对自己的软件做一个比较适应相应群体的宣传,让用户知道这个产品,知道这个产品的一些好的功能,从而选择使用。

2、目前市场上有什么样的产品了?

  • 除了集大通好像没有其他类似的产品了,毕竟是自己学校用的APP,一个就够了;但不乏其他学校也有相应的APP产品,于是我就查了一下,发现每个学校都有他们对应的APP,比如清华大学——AtTsinghua、复旦大学——i复旦、浙江大学——浙江大学等等。还有一些高校用的课程表之类的APP。

3、作为新的项目经理,这个产品的核心用户群是什么样的人, 典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

(针对学生客户端)典型用户——懒癌发作但需要各种充值的学生

核心用户群 学历 年龄 专业 爱好 收入 表面需求 潜在需求
集美大学全体学生 本科 18-23 各个专业 阅读/运动/游戏 部分无收入 查课表/充值校园卡/充值网费/查成绩等 功能可以很方便的看到并使用

4、功能:你要设计什么样的功能? 为何要做这个功能,而不是其他功能? 为什么用户会用你的产品/功能? 你的创新在哪里? 可以用 NABCD 分析。

http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html

(1)你要设计什么样的功能?
答:在集大通中,想设计的功能是:快捷方式
(2)为何要做这个功能,而不是其他功能?
答:快捷方式有利于学生管理自己常用的或随时需要用的功能,方便,同时也是采访的用户需要的。比如这个功能可以将网费充值中的充值直接提取出来,放在自己想放的界面。
(3) 为什么用户会用你的产品/功能?
答:这个功能比较方便,适合越来越“懒”的大学生们。
(4)你的创新在哪里? 可以用 NABCD 分析。
答:至少之前的开发团队没有做到这个功能并且这个功能也是用户所需求的。
N:我想设计的功能满足了大部分学生找想用功能的便捷度,没有快捷功能就要在应用中心找相应的功能。(进入速度慢)
A:然后利用一些链接将想要的功能拖出,先放几个常用的。
B:这个功能节省了时间,节省了流量。
C:这个功能还没有被先前的开发团队采用过,有竞争市场。
D:将这个功能介绍给身边的朋友,如果实用,他们就会告诉自己身边的同学与好友。

5、如果你有钱可以招聘 6 个人, 有 4 个月的时间, 你作为项目经理, 应该如何配置角色 (开发, 测试,美工等等)?

  • 开发3人(个人觉得这个方面比较难,需要分块进行,再整合)
  • 测试1人(开发人员可以协助测试)
  • 美工1人
  • 用户体验1人(以用户的角度使用该产品,提出中肯的意见和建议)

6、描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

时间 任务
第1~2周 需求分析(进行调研)
第3~4周 系统设计,讨论设计细节(界面以及功能)
第5~10周 Alpha阶段,初步实现软件功能
第11~14周 Beta阶段,改进软件功能
第15~16周 软件试运行(包括修复之前没有发现的bug以及用户体验后改进)