个人作业——软件产品案例分析

软件产品案例分析

第一部分 调研,评测

评测:

软件的bug,功能评测,黑箱测试

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

注册时候用户名试了很多个才通过,为什么不用手机号登陆呢,用户名为了避开重复的而试出来的容易忘记- -得记小本子。
登录后,网页版觉得UI不错,简洁清楚不花哨,就是功能有点多,不知道从何下手。

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

bug软件的缺陷,可以分解为:症状(用户角度看软件出什么问题了),程序错误(代码角度看代码什么错误导致了软件问题),根本原因(导致代码错误的根本原因)。
5个bug如下

  • 登录时输入手机号密码,发现手机号+密码不能登录,只能用用户名+密码,且并没有明确提示只能用户名登录。

  • 分组类型不对应,工作项分组页面中有feature、story、task、bug共4种,工作项详情中选择类型却只有2种。

  • 项目点击右边的爱心(关注)没问题,进入项目后,对其工作项点击关注却出现闪退,试了多次都是闪退。

  • 在app建了两个项目,打开web端,发现并没有新增的项目,同样web端建的项目app也没更新,web端和app信息不同步

  • 登录后,看到了默认头像,刚开始以为可以修改,可是发现点击无效,设置中只有清除存储空间,并没有更换头像的设计

3.你觉得为什么这个产品组的人没有发现这些bug?

  • 可能是产品组的人员还没开发完全,比如:web和app信息不同步和出现了闪退情况
  • 测试人员没测试全面,比如:分组种类和设置类型种类不对应
  • 开发时候未考虑周全,比如:手机号登录比用户名方便,更换用户喜欢的头像之类的问题

4.假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)

如果我们团队需要开发这套系统,可以采用微服务架构模式

  • 将这个庞大的整体应用分解成一组服务。整体功能没有改变的同时,将应用程序分解成可管理的模块或服务。每个服务可以由几个人独立开发,然后各自专注于某个服务。注意遵守API约定即可。
  • 微服务的部署需要注意:1)能够独立于其他微服务部署;2)必须能在每个微服务级别做扩展;3)能快速构建和部署;4)一个微服务的故障不得影响任何其他服务。
  • 同时也要注意安全方面的保护

采访:

第8章 用户调研,12 章 软件的用户体验,相信每个同学的朋友中一定有人需要用这样的软件,记载你对这位用户的采访。例如使用下面的采访提要:

1.介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)
用过github。有参与团队项目开发的需求。

2.让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)

3.描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
基本满足需求。觉得软件数据量丰富,界面简洁大方,功能强大但寻找费时,app较web端弱些,比较卡。中英切换,使用起来方便、亲切,体验感还行。

4.用户对产品有什么改进意见?
app界面切换更流畅些,布局设计上希望能让用户更方便找到所需的功能。

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

第二部分 分析

参考 8.6 节 对工作的估计, 和14.1 节 软件工程的质量

使用此软件的大部分功能,联系第二部分的分析,

1.估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。
功能较多,不断完善,应该需要6个月

2.分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
和类似软件相比,

  • 优点:功能齐全,中英切换。
  • 缺点:页面切换不流畅,没有划分服务群体。
  • 具体建议:提高用户体验流畅性,针对不同群体进行划分,配套教程视频。

3.根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果

4.针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分。

  • 用户体验方面:7分
  • UI界面美观度:8分
  • 核心功能:7分

第三部分 建议和规划

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

这个软件有很多可以提高的部分。

1.如果你是项目经理,如何提高从而在竞争中胜出?
提升页面加载的速度,专注于核心功能,针对不同用户群体,增加宣传。

2.目前市场上有什么样的产品了?
github
teambition

3.你要设计什么样的功能?
受模拟校园生活的游戏app的启发,我想设计给新手指导的模拟游戏功能。

4.为何要做这个功能,而不是其他功能?
初次使用,功能繁杂,上手慢。如果有个游戏功能,模拟这个使用流程,既有趣又上手快。

5.为什么用户会用你的产品/功能?
在模拟游戏上花费时间少于自己摸索百度的时间,效率高。

6.你的创新在哪里?可以用 NABCD 分析。

  • N:新手用户不熟悉该软件,功能较多,使用起来不方便。
  • A:设计一个模拟使用该软件的游戏功能。
  • B:新手用户可以更快上手,不需要每次都去百度功能使用方法。
  • C:相比于其他的软件,易上手,可以留住更多想尝试刚接触的新用户。
  • D:做广告,将生活中的好友拉入。

7.如果你来领导这个团队,会有什么不一样?
我会更注重反馈,通过用户的体验感不断完善改进。

8.如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?

  • 开发:3人,1人前端,2人后台。
  • 测试:1人,测试人员前期可以参与开发设计,熟悉项目。
  • 美工:1人,要求有美工功底,体现产品独特风格。

9.描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。

时间 内容
第1周 撰写需求规格说明书
第2周 UI设计
第3周 编码规范完成,平台环境搭建
第4-6周 编码,测试,项目管理同步推进,发布alpha版本
第7-10周 项目完善,用户使用反馈,测试计划改进
第11-13周 测试,项目管理推进,发布beta版本
第14-15周 正式版本完善,用户手册
第16周 正式版本发布,撰写宣传文案推广

10.项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

  • 应用服务器配置:4核8G * 4
  • 后端服务器配置:8核16G * 4
  • 数据库服务器: SQL Server/ Oracle/MySqI 数量:5(备份2)
  • 缓存数据库:Redis数量:3(主备)
  • 网站安全性:WAF. DDOS
posted @ 2017-12-02 11:43  九龄  阅读(446)  评论(1编辑  收藏  举报