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

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

目录

  • 软件工程个人作业-软件案例分析
    • 1. CSDN APP
      • 1.1. 调研,评测
        • 1.1.1. 软件简介
        • 1.1.2. 优缺点分析
        • 1.1.3. 软件 bug
          • a. bug 分级
          • b. 测试环境
          • c. 打赏反馈 bug
          • d. 权限授予 bug
        • 1.1.4. 用户采访(加分项)
        • 1.1.5. 评测结论
      • 1.2. 分析
        • 1.2.1. 开发时间
        • 1.2.2. 同类软件排名
        • 1.2.3. 开发建议(非必做题)
        • 1.2.4. bug 出现的原因(非必做题)
      • 1.3. 建议和规划
        • 1.3.1. 市场概况
        • 1.3.2. 市场现状
        • 1.3.3. 市场与产品生态
        • 1.3.4. 产品规划
    • 2. 微信公众号
      • 2.1. 调研,评测
        • 2.1.1. 软件简介
        • 2.1.2. 优缺点分析
        • 2.1.3. 软件 bug
          • a. bug 分级
          • b. 测试环境
          • c. 文件发送 bug
          • d. 登录状态丢失 bug
        • 2.1.4. 用户采访(加分项)
        • 2.1.5. 评测结论
      • 2.2. 分析
        • 2.2.1. 开发时间
        • 2.2.2. 同类软件排名
        • 2.2.3. 开发建议(非必做题)
        • 2.2.4. bug 出现的原因(非必做题)
      • 2.3. 建议和规划
        • 2.3.1. 市场概况
        • 2.3.2. 市场现状
        • 2.3.3. 市场与产品生态
        • 2.3.4. 产品规划

项目 内容
这个作业属于哪个课程 北航 2022 春季敏捷软件工程
这个作业的要求在哪里 个人作业-软件案例分析
我在这个课程的目标是 提升合作开发的能力、观点表达能力、展示能力,熟练掌握多种开发工具的实用技能,具备合作开发复杂软件的能力
这个作业在哪个具体方面帮助我实现目标 通过实例学会软件分析的基本方法

选题:

选择第 2 个主题。

现在很多开发人员和IT专业的学生都在移动设备上学习、工作、社交,在移动设备上的 APP 能满足这类目标用户的需求么?它们会被微信公众号取代么? 请分析 CSDN 的移动App, 不要面面俱到,请聚焦分析它的 “微社区 / 动态 / Blink” 功能, 点击 App 的首页下方正中间的那个 “微社区/动态” 按钮,打开后的微社区,就是我们要分析的。

  • CSDN的APP
  • 微信公众号

1. CSDN APP

1.1. 调研,评测

1.1.1. 软件简介

CSDN APP 是 CSDN 网站开发的客户端(见下图),该客户端具有如下的功能:

  • 首页博客推荐、热榜、问答
  • 博客浏览与撰写、打赏、评论等
  • 购物商城,提供软硬件或其他线下商品
  • 动态、微社区、Blink
  • 互动、聊天消息
  • 课程与直播

软件工程个人作业-软件案例分析_第1张图片

注:本节余下的部分将会着重分析 “微社区 / 动态 / Blink” 功能。

1.1.2. 优缺点分析

优点:

  • 提供了专业技术的交流平台,能够让技术的交流更加集中
  • 具有动态和推荐功能,更像一个社区,具有一定的趣味性

缺点:

  • 社区推荐算法存在问题,偶尔会在动态推荐的靠前位置刷到过时的消息(如 2010 年前的博客,且质量较差)
  • 不具有推荐算法。本人连续浏览了 20 个 Vue 相关话题和博客,并且在搜索框多次搜索关键词 Vue,在推荐中, Vue 相关词条的占比几乎不变(小于 1 / 30 1 / 30 1/30
1.1.3. 软件 bug
a. bug 分级

根据 bug 产生的具体影响,将 bug 分成 5 个等级,见下表:

等级 条件
A 造成严重后果,如隐私泄露、财产损失、数据意外变更等后果
B 不影响数据安全,但是会严重影响使用体验
C 轻微后果,如界面错位但仍能阅读、界面变丑等,一定程度上影响使用,不危害安全
D 比较明显,但不影响正常使用,不危害安全
E 难以发现,不影响数据和安全等,基本不影响界面
b. 测试环境

测试环境见下表

项目 配置
硬件 华为 荣耀 10
操作系统 HarmonyOS 2.0.0
CSDN v5.1.1
c. 打赏反馈 bug

bug 描述:

如下图 gif,当选择打赏并进入支付页面后,取消支付。回到 CSDN 页面,仍会显示“赠人玫瑰,手有余香”字样,暗示打赏成功。

bug 复现:

该 bug 在打赏取消时总会出现,完全可复现。

复现步骤如下:

  • 进入一篇动态中的博客(由其他用户发表的),点击右下角的打赏
  • 选择金额与打赏方式,进入支付页面
  • 直接退出支付页面,返回 CSDN APP

此时会展示“赠人玫瑰,手有余香”的字样,暗示打赏成功。

bug 分析:

原因分析:该 bug 的产生极有可能是因为开发者未对支付的结果进行判断,而默认完成了打赏过程,展示的提示信息暗示打赏成功。

危害分级:该错误属于信息展示错误,但并不会造成信息泄露或财产损失,归为 C 类 bug。

建议:在进行支付等环节后,先查询支付结果,并等待服务器端向客户端发送相应消息,再进行信息展示。

d. 权限授予 bug

bug 描述:

如下图 gif,当软件启动后第一次打开“同城”页面时,会提示请求授权读取位置,但是拒绝权限后,依然会读取位置。

bug 复现:

该 bug 在禁止读取位置信息时总会出现,完全可复现。

复现步骤如下:

  • 打开界面下方导航栏的“动态”,并进入“同城”标签
  • 弹出位置信息授权窗口后,点击“不允许”

此时,位置信息仍然展示为当前所在地区。

bug 分析:

原因分析:该 bug 的产生可能是因为开发者用户选择的结果进行判断,仅仅展示了请求窗口,就直接读取了用户信息。

危害分级:该问题违背了用户的意愿搜集用户位置信息,造成用户隐私的泄露,危害严重,属于 A 类 bug。

建议:应严格遵守国家相关法律法规,当用户未授权使用隐私信息时,坚决不得读取相关信息。

bug 反馈(加分项)

本人将无法拒绝位置信息读取的 bug 反馈给了开发组,截图如下。

软件工程个人作业-软件案例分析_第2张图片

后续

本分的反馈很快得到了开发组的回复,开发组的答复是:在选择拒绝读取位置信息后,默认将位置定位在北京

这种方式并不是太好的实现:功能性而言,选择拒绝之后,在没有任何后续提示的情况下,定位显示是北京。对于处在北京的用户,会产生位置信息被读取的印象;对于不再北京的用户,会认为信息仍被读取且读取不准确,因此仍被视为 bug。但是鉴于危害性降低,信息展示混乱,应该归入 B 类。

1.1.4. 用户采访(加分项)

采访的同学是计算机学院大三的同学(不在相同的软工班级),他的使用需求主要是学习新技术,并查找一些 bug 的解决方法,属于最常见的用户群体。采访记录如下如:

软件工程个人作业-软件案例分析_第3张图片

1.1.5. 评测结论

推荐指数:一般

该软件内容十分丰富,对于大多数的问题都可以找到解决方案。博客对新人学习的指导意义很强。

考虑 APP 本身的功能,该 APP 仅仅将 CSDN 上面的相关内容聚合起来,满足了移动端浏览的需求。而且该应用出现了较多的问题,集中体现在对于用户选择和第三方信息不加确认。另一方面,表项得更像是一个工具,而不是一个社区,尽管已经在尽力模仿。浏览的内容没有精准推荐,不太注重用户体验,感觉像是 5 年前的 APP。

以上仅考虑了“微社区 / 动态 / Blink” 等功能,若考虑整个 APP,则评级为好,不错

1.2. 分析

1.2.1. 开发时间

仅考虑“微社区 / 动态 / Blink” 功能,对于团队人数 6 人左右,计算机大学毕业生,并有专业 UI 支持的开发者团队,预计需要 4 周时间(需求已经明确的情况下)。前三周,2 人开发后端 API 并测试,相关工作完成后,立即投入前端开发;4 人一直开发前端并完成基本测试。最后一周,整体完成压力测试和上线部署等。

1.2.2. 同类软件排名

主要的同类软件包括:

  • 牛客 - 专业的 IT 论坛平台,且增加了求职、招聘、面试指导等功能
  • 知乎 - 综合类问答平台,也有相当量的 IT 知识储备
  • StackOverflow - 专业的 IT 论坛平台,查阅资料方面,门类丰富,唯一可以算作缺陷的是对英文有一定要求

在专业性方面,CSDN 不及 StackOverflow,CSDN 更像是面对初学者,及水泥管较强的内容不太多,与牛客相当,略胜于知乎;在功能性上,CSDN 超过了 StackOverflow 和知乎,与牛客相当,提供了直播、课程、社区等功能,纵横更好;内容上来看,CSDN 同质性较强,而且相当一部分都收费,与牛客相当,不及知乎和 StackOverflow,StackOverflow 对具体的技术细节收录很多,这也得益于其问答的形式。

综上所述,在同类软件中排名第 2,次于 StackOverflow。

1.2.3. 开发建议(非必做题)

信息展示的逻辑要加强。例如打赏之后,需要判断是否完成打赏再展示相应界面,例如位置信息权限获取失败后,应该有所提示,而不是直接给出默认位置。

1.2.4. bug 出现的原因(非必做题)

选择的原因是:“具体的设计质量不高。”

都是用户选择后的验证问题。对于默认定位的问题,用户拒绝后应该基于提示,而本软件则直接默认选择北京,对用户体验没有把握好。对打赏取消后的信息展示,也是没有考虑到用户会取消的情况,而是从该界面返回后,不从后台拉取支付结果就展示了信息。

1.3. 建议和规划

1.3.1. 市场概况

市场规模估计:

根据本人手机上应用市场(华为应用市场)的安装数据,该 APP 共有约七千万次安装。参考微信有135 亿次安装,而腾讯官方给出的数据是 12 亿用户使用,按比折算,约有 650 万人使用。

题目中要求的部分收益主要来自于打赏与 CSDN 会员,除此之外,还有资源下载、在线课程等。按照人均消费 50 元计算,预计市场规模在 3.3 亿元 / 年左右,且会逐年增长。

潜在用户:

我国每年本科生毕业人数约为 400 万(将读研的部分,按照当年本科毕业计算)(https://www.sohu.com/a/435750921_100259375), IT 行业占比约 10%(https://www.sgpjbg.com/info/24886.html),即 40 万。 IT 从业者现有 700 万,加上相关专业的学生数量,有需求的人数可达 900 万。因此,潜在用户仍有 250 万人。

1.3.2. 市场现状

同类产品包括知乎、牛客、StackOverflow 等。

知乎内容综合,用户体量大,定位是综合类的问题讨论社区,不限于 IT 行业。

牛客和 StackOverflow都是专业的 IT 平台,但是牛客集中了求职、招聘等信息,更适合毕业生、待从业人员等。StackOverflow 问题更加专业,涉及范围广,但是具有一定的英文使用门槛。

1.3.3. 市场与产品生态

面向的群体绝大多数都是 IT 的从业者或专业学生。如:

  • 18 ~ 25 岁的高校学生,收入主要是生活费,需求为 IT 技术的学习
  • 23 ~ 40 岁的从业人员,收入 15 ~ 60 万 / 年,主要需求是工作中相关技术问题的解决,新思路扩展。

其中,学生群体在几年后将会变成从业人员群体,即从上述的第一类典型用户变成第二类典型用户。可以考虑仿照知乎构建问答式平台,即由部分用户提问,另一部分用户进行解答,可以选择性收费,由此构成一个完整的 IT 社区生态。

1.3.4. 产品规划

增加用户提问并邀请其他用户回答的功能。该平台作为 IT 技术的知识平台,存在各个水平的使用者。可以利用这种知识水平上的差异,提供相应的问答服务。一方面可以为平台增加流量和广告收入,另一方面提升了可互动性,甚至可以采用打赏等方式锁住一部分高级用户。

新版本开发的人员配置

时间 人员分配
第 1 周 完成需求分析,名明确主要要求和目标,构想出开发的雏形
2 - 12 周 2 人进行测试(包括之前的代码、bug 等),2 人进行美工开发,2 人进行功能开发
13 - 15 周 4 人进行测试, 1 人美工开发,2 人功能开发
第 16 周 压力测试,投放使用

2. 微信公众号

2.1. 调研,评测

2.1.1. 软件简介

微信是腾讯公司开发的一款即时聊天 APP,截图见下。

软件工程个人作业-软件案例分析_第4张图片

该 APP 具有多种功能:

  • 聊天功能,支持文字、语音、视频、文件、群聊等功能
  • 支持公众号,便于集中发布信息
  • 支持小程序功能,让用户可以上传自己的小程序,是的微信功能大大扩展
  • 朋友圈、视频号等功能,进一步打造了社区的规模
  • 可通过微众银行发起微信支付

其中,本次作业需要分析的是微信的公众号功能,该功能可由用户或实体申请注册,被个人用户关注,可以集中、定向发布推送,提供相关服务。

2.1.2. 优缺点分析

优点:

  • 公众号可以向关注的用户群体发送推送,并提供相应的服务
  • 用户可以搜索自己感兴趣的公众号进行关注,也可以直接进行推送的搜索
  • 打赏功能可以让发布者有一定的收入,激励其发布更好的内容

缺点:

  • 小程序运行速度慢
2.1.3. 软件 bug
a. bug 分级

将 bug 分成 5 个等级(A ~ E),与测试 CSDN APP 时相同。

b. 测试环境

测试环境见下表

项目 配置
硬件 华为 荣耀 10
操作系统 HarmonyOS 2.0.0
微信 v8.0.16
c. 文件发送 bug

bug 描述:

如下如所示,微信公众号聊天窗提供了发送文件的接口,但是无法发送文件。

软件工程个人作业-软件案例分析_第5张图片
bug 复现:

该 bug 在给公众号发送消息时会出现,完全可复现。

复现步骤如下:

  • 打开公众号,点击左下角小键盘,切换至消息发送
  • 点击右下角加号,打开发送菜单
  • 点击“文件”,并选择文件发送

此时消息窗口会出现文件,但同时会提示“不支持的消息类型,对方无法接收”

bug 分析:

原因分析:该 bug 的产生极有可能是因为开发者直接复用了普通聊天窗口的部分消息发送接口,并未针对性进行检查,而是在发送之后,由后端校验是否能发送。

危害分级:该错误展示了不完整的功能,但不会产生危害,归为 D 类 bug。

建议:将这个功能从公众号发送菜单中删除,减少冗余。

d. 登录状态丢失 bug

bug 描述:

打开需要登录才可见的界面时,有时候会产生以保存的登录信息丢失的 bug。例如打开北航小程序,原本已经进行了账号登录,有一定概率会要求重新登陆(见下图)。

软件工程个人作业-软件案例分析_第6张图片

bug 复现:

该 bug 难以复现,通常只会自动出现,频率在一天至一周不等,多数在一周以上。

bug 分析:

原因分析:该 bug 的产生可能是因为:

  1. 登录信息的缓存丢失
  2. 服务器端 Session 过期

危害分级:该问题造成了用户使用的不便,但几乎不危害安全问题,属于 D 类 bug。

建议:增加固定设备无需认证、对登录缓存进行保护等措施。

2.1.4. 用户采访(加分项)

采访的同学是计算机学院大三的同学(不在相同的软工班级),她的使用需求主要是作为通讯工具,还会浏览朋友圈,公众号等内容,属于最常见的用户群体。

软件工程个人作业-软件案例分析_第7张图片

2.1.5. 评测结论

推荐指数:非常推荐

微信公众号功能齐全,公众号能够像用户推送文章,用户也可以使用公众号导航栏的相关服务,基本上满足了大多数用户对获取信息的基本需求。且操作流程简单,适合各个年龄段的网民使用。

2.2. 分析

2.2.1. 开发时间

仅考虑“公众号”部分功能。对于团队人数6人左右,计算机大学毕业生,并有专业UI支持的开发者团队,预计需要 6 周时间(需求已经明确)。前 5 周,3 人开发后前端,完成后进入后端的开发;3 人一直开发后端并完成基本测试。最后一周,整体完成上线部署。

与 CSDN APP 相比,微信公众号前端更加简洁,前端与美工的压力更小。而在内容浏览上需要实现更多的服务功能,且开放的服务更像一个小操作系统,后端需求更大。

2.2.2. 同类软件排名

主要的同类软件包括:

  • QQ - 腾讯的另一款即时聊天工具
  • 百家号 - 百度公司开发的创作、发布、变现平台
  • CSDN - 专业的 IT 论坛博客平台,兼具一些课程和教学

作为即时聊天工具,微信在功能上比 QQ 略逊一筹,主要在文件支持、聊天记录存储、群聊功能上。作为发布平台,远好于百度百家号和 CSDN,因为微信有超过 10 亿的用户量,如此庞大的群体为其内容提供了加持。但是专业性方面不及 CSDN,CSDN作为专业平台,在相关领域聚集的用户会高于微型公众号对应领域的用户,用户也更倾向在专业讨论区活动,微信公众号在这一点上更像是教程发布站,缺少互动。

综上所述,在同类软件中排名第 1。

2.2.3. 开发建议(非必做题)

对复用部分的接口或代码加以检查,必要的时候单独继承一个类来写,将功能在前端也做好限制,例如公众号的文件发送功能。加强对存储空间的管理,将登录信息保存好,同时减少不必要的内存占用。

2.2.4. bug 出现的原因(非必做题)

选择的原因是:“具体的设计质量不高。” 微信的开发理念通常是一切从简,导致上述提到的一些功能还存在瑕疵。公众号的消息发送菜单,可能直接复用普通聊天窗口的相关方法,而对其功能未能进行进一步限制;登录信息丢失问题,可能是因为登陆信息的相关缓存没有保存,被系统清理。

2.3. 建议和规划

2.3.1. 市场概况

市场规模估计:

微信目前使用人数已经超过了 12 亿(百家号,2021)。收入来源包含广告费、微众银行、服务费抽成等,预计市场可能在百亿至千亿级。

潜在用户:

12 亿用户已经涵盖了我国绝大部分网民,剩余部分主要原因为没有相关需求或使用条件。在国内市场应该达到了饱和。如果成功走出国门,世界上其他国家用户还能提供约 10 亿的潜在用户(根据(百家号,2021)中 Facebook 等应用的使用人数推测),但是推广存在极大的困难,因此保守估计潜在的用户还有 1 亿。

2.3.2. 市场现状

同类产品包括QQ、百家号、CSDN 等

QQ 主打是聊天业务,在这一方面,QQ 是当之无愧排在首位的,QQ 聊天功能已经非常完善,在文件传送、聊天记录保存上也存在巨大的优势。

百家号和 CSDN 与微信公众号的功能相近,但是百家号的用户群体显然比微信公众号少,因为微信公众号捆绑在微信即使通讯的功能上,锁定了绝大部分用户群体。CSDN 是专业领域的平台,在 IT 领域聚集的人会更多,形成了讨论社区,评论等权限也会更大,便于交流(微信公众号的的评论无法回复),更适合交流,且开通 CSDN 的博客账号比开通微信公众号更加简单,这也是 CSDN 活跃量会大于微型 IT 领域的原因之一。另一方面,微信公众号的推送会推给所有关注的用户,这会使得创作者更加倾向于减少推送数量而增加质量,这样的弊端在于,部分技术细节问题,不会像 CSDN 中那样被单独提出来讨论。

2.3.3. 市场与产品生态

微信公众号面向的群体非常广阔,几乎所有的微信使用者都包括在内。作为与 CSDN 对比的对象,IT 方面的使用者与 CSDN 的使用者相似,大多数都是 IT 的从业者或专业学生,但微信的内容更加偏向于科普,可能会有更多的爱好者在内具体而言,有如下群体:

  • 18 ~ 25 岁的高校学生,收入主要是生活费,需求为 IT 技术的学习
  • 23 ~ 40 岁的从业人员,收入 15 ~ 60 万 / 年,主要需求是工作中相关技术问题的解决,新思路扩展。
  • 14 ~ 26 岁的非相关专业人员,收入不确定,主要需求是了解科普性质的内容,满足自己的兴趣。

其中,学生群体在几年后将会变成从业人员群体,即从上述的第一类典型用户变成第二类典型用户。第三类典型用户中,低年龄段的用户可能逐渐转变成专业学生或从业者。

可以考虑通过用户群体的相互作用,即增加第二类用户的带领作用,给与第一类和第三类用户更好的反馈。例如,可以让用户更加容易在公共频道发表相关信息,从而激发学生、爱好者等更加浓厚的兴趣以及对行业更加深入的了解,从而建立起产品生态。

2.3.4. 产品规划

参考 CSDN 的模式,可以扩充微信公众号评论功能,这样会使得公众号更像一个社区。具体而言,微信公众号的评论区允许用户之间相互评论和回复,并允许回复图片、视频等,增强用户之间的交流,从而吸引更多用户使用。

新版本开发的人员配置

时间 人员分配
第 1 周 完成需求分析,名明确主要要求和目标,构想出开发的雏形
2 - 12 周 2 人进行测试,2 人进行美工开发,2 人进行功能开发
13 - 15 周 4 人进行测试, 1 人美工开发,1 人功能开发
第 16 周 压力测试,投放使用

你可能感兴趣的:(软件工程)