软工案例分析作业
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021年春季软件工程(罗杰 任健) |
这个作业的要求在哪里 | 2021年软工-案例分析作业 |
我在这个课程的目标是 | 系统了解并参与软件开发过程,提升自身工程能力 |
这个作业在哪个具体方面帮助我实现目标 | 了解软件分析的各个要素,体会软工思想在实践中的体现,便于开展后续软工项目 |
写在前面
相信每个计科学子都或多或少接触过牛客、CSDN 和微信公众号。于我而言,牛客主要用于了解招聘信息、阅读面试经验,CSDN 主要用于浏览技术博文、解决技术问题,微信公众号则两者兼顾。
由于微信公众号内置在微信中,并非一款独立软件,因此,我选择对牛客和 CSDN 进行 BUG 测试和分析,对微信公众号进行其他角度的简单分析。
测试环境
环境 | 描述 |
---|---|
测试设备 | iPad Air 3 |
测试系统 | iPadOS 14.4.2 |
测试软件一 | 牛客 3.0.3 |
测试软件二 | CSDN 4.5.8 |
量化标准
本文从系统功能、安全性、用户体验三个角度对出现的 BUG 进行量化评级,量化标准如下。
系统功能
星级 | 描述 |
---|---|
★★★★★ | 致命系统故障,致使软件崩溃,甚至设备卡死 |
★★★★ | 严重系统故障,致使软件卡顿 |
★★★ | 中度系统故障,造成软件使用障碍 |
★★ | 轻度系统故障 |
★ | 基本不属于系统故障 |
安全性
星级 | 描述 |
---|---|
★★★★★ | 致命安全漏洞,致使用户隐私泄露 |
★★★★ | 严重安全漏洞,带来用户隐私泄露风险 |
★★★ | 中度安全漏洞,带来用户资料丢失风险 |
★★ | 轻度安全漏洞,但触发条件苛刻 |
★ | 基本不属于安全漏洞 |
用户体验
星级 | 描述 |
---|---|
★★★★★ | 极度影响用户体验(毫不犹豫卸载) |
★★★★ | 重度影响用户体验 |
★★★ | 中度影响用户体验 |
★★ | 轻度影响用户体验,但不影响正常使用 |
★ | 基本不影响用户体验 |
牛客
使用体验
打开牛客,映入眼帘的是屏幕中部的导航菜单,菜单设置了每日一练、专项练习、公司真题和全部题库等选项,给我的第一印象是,牛客是一个刷题软件。
随着手指拨动,目光掠过校招日程、面经资源、帮你内推和求职攻略等内容,牛客的定位基本可以确定,它是一个帮助求职的软件。
视线最后扫过的地方,是屏幕底部的导航栏。众所周知,导航栏的作用是方便用户快速定位所需资源所在区域,因此,导航栏往往昭示着软件的几大资源板块。于牛客而言,这里有三个资源板块——学习、社区和求职。
学习板块
牛客收录了各知名公司的笔试试题,方便用户浏览学习。
在公司真题页面下,牛客罗列了众多公司的数套真题,并对每套真题进行了热度和难度的量化,用户可根据技术类别、意向公司、意向职位、笔试年份、试题状态等选项快速筛选试题。刷题结束后,用户可即刻获知得分情况和试题答案。通过刷真题,用户会更加了解笔试考察点,清楚自身定位,提升求职信心。
不过,既然对真题进行了热度和难度的量化,为什么不支持按照这两个指标排序呢?同时,随意打开一套试题,这糟糕的前端设计,字体和按钮过小,阅读和点击十分不便,且存在大量空白,严重浪费了屏幕资源;甚至,仔细观察可以发现,不同行的逗号长的还不一样,段落右侧的字体也没有对齐。页面不美观严重拉低了牛客的印象分。
在全部题库页面下,牛客划分了多个试题集,用户可选择按知识点或按公司查看笔试试题集,也可查看牛客官方划分的一些面试试题集。
在查看了按知识点划分的若干试题集下的若干题目后,我认为,按知识点划分试题集略嫌鸡肋。通常情况下,题目页面展示的信息有题号、题名、题面、题目种类以及一个官方给出的参考答案。题目页面存在如下问题:
- 题面字体混乱,样式丑陋。
- 参考答案只是简单地贴代码,不分语言种类,不给注释讲解,没有缩进。
- 题解稀少,质量堪忧。
- 题名与题面存在一定关联,根据题名一般可以获知题目考察点,但试题集不支持以题名作为关键字检索指定题目。
以一个题目页面为例:
另外,面试试题集的页面风格和笔试试题集的页面风格完全不一致,字体过大,行距过大。不过不可否认,这里的试题一般具有较高的讨论度,题解众多且详细,对知识积累有很大帮助。
总体而言,牛客的学习板块建设较差,从页面设计,到题解风格,全方位劝退。个人认为,学习板块唯一值得用户使用的地方,就是可以浏览各大公司的笔试面试真题。真想撕代码,还得上力扣。
社区板块
社区为用户提供了交流的平台,像极了一群程序员的专属朋友圈。在社区广场,有关于某个公司的笔试和面试的经验贴,也有关于某些知识的学习总结贴。
社区页面上部的三个按钮展示了社区的主要功能——找面经、找内推、查薪资。
牛客汇总了社区用户发布的所有面经帖,并按照面试职位和面试公司进行了分类,同时挑选出了若干精华面经供用户浏览。
牛客提供了若干公司的内推途径,用户可进入公司对应的内推页面,直接与相关人员进行沟通。
牛客提供了薪资查询窗口,用户可根据公司、职位、所在地等信息进行查询。
总体而言,牛客的社区板块建设优秀。面经数量众多且内容详细。内推渠道可靠且信息公开。
求职板块
牛客罗列了众多岗位招聘信息,方便用户找实习、找工作。
总体而言,牛客求职板块建设良好。招聘信息广泛而公开。
软件测试
BUG 1 题目页面缺少试题检索按钮(可能是一个特性
-
可复现性:稳定复现
-
复现步骤:进入牛客,进入全部题库页面,点击按知识点查看按钮,进入任意试题集的任意题目页面,即可测试此 BUG
-
具体情况:
-
成因分析:前端设计师考虑欠佳
-
量化:
- 系统故障:★★
- 安全性:★
- 用户体验:★★
BUG 2 薪资查询页面两个搜索栏组件发生冲突
-
可复现性:稳定复现
-
复现步骤:进入牛客,进入社区页面,点击查薪资按钮,进入薪资查询页面,在页面搜索栏中键入任意内容,即可复现此 BUG
-
具体情况:
-
成因分析:前端程序员撰写了错误的事件监听方法
-
量化:
- 系统故障:★★★
- 安全性:★
- 用户体验:★★★
-
中度影响用户体验的原因:点击搜索栏右端的叉按钮,本应清空搜索栏中已键入的内容;此处由于叉按钮与取消按钮重合,点击叉按钮会导致页面直接退出
BUG 3 浏览记录页面删除按钮显示异常
-
可复现性:稳定复现
-
复现步骤:进入牛客,进入我页面,点击最近浏览按钮,进入浏览记录页面,即可复现此 BUG
-
具体情况:
-
成因分析:前端程序员撰写了错误的页面初始化方法
-
量化:
- 系统故障:★★
- 安全性:★
- 用户体验:★★★
反馈
总结
类别 | 描述 | 评分 |
---|---|---|
核心功能 | 分析核心功能,核心功能的设计和质量 | 9(社区板块优秀,学习板块一般) |
细节 | 有什么为用户考虑的细节 | 2(前端设计较差,功能不尽人意) |
用户体验 | 当用户完成功能时,不干扰用户 | 6 |
辅助功能 | 一些辅助功能如皮肤等 | 6 |
差异化功能 | 这个软件独特的功能,它对用户的吸引力有多大? | 9(面经) |
软件的效能 | 占用内存,启动速度,内存泄露情况 | 8 |
软件的适用性 | 在联网/断网,大小屏幕,没有鼠标的情况下都可以顺畅操作和不同平台的软件软件能流畅协作 | 8 |
成长性 | 记住用户的选择,适应用户的特点,用户越用越方便 | 6 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 8 |
综合来看,牛客的面经内容优秀,但软件开发一般,用户求职成功后可能不会再对牛客有较多的使用。整体而言,比较推荐使用牛客,毕竟牛客的面经着实会吸引大批用户。
CSDN
使用体验
同牛客的分析类似,可以认为 CSDN 主要希望呈现的板块有博客板块和直播板块。
博客板块
CSDN 的主页展示了若干博文。用户可通过页面上方的各个分类查看相关博文,也可通过搜索栏进行任意关键字的检索。配环境,就上 CSDN!
blink 类似牛客的社区,功能大同小异。
直播板块
老实说,我从未关注过 CSDN 的直播功能,该板块的受众是大学生吗?
软件测试
BUG 1 直播组件无法自适应屏幕宽度
-
可复现性:稳定复现
-
复现步骤:进入CSDN,进入直播页面,即可复现此 BUG
-
具体情况:
-
成因分析:前端程序员样式渲染失误
-
量化:
- 系统故障:★
- 安全性:★
- 用户体验:★★
BUG 2 无法滑动页面查看博客
-
可复现性:部分博客偶尔复现
-
复现步骤:进入CSDN,依次查看热榜博客,大概率复现此 BUG
-
具体情况:
-
成因分析:未知的前端问题。可以注意到,在滑动页面时,第三个博客的右部出现了滚动条,而其余博客均未出现
-
量化:
- 系统故障:★★★★
- 安全性:★
- 用户体验:★★★★(理论上应该是五颗星,但个人认为修复此 BUG 并非难事)
-
2021.4.9 19.00 更新:今天下午13:00时,此 BUG 稳定复现;现在好像已经修复完毕?
BUG 3 评论功能不完善
-
可复现性:稳定复现
-
复现步骤:进入CSDN,随意点击一个博客进行评论,可复现此 BUG
-
具体情况:
-
描述:点击发送按钮后,可以看到评论区成功更新,但输入框内的内容依然存在,且再次点击数次发送按钮,页面毫无反应。我认为,正常的评论功能应该是,评论成功后输入框内容自动清空且将输入框自动关闭。另外不得不吐槽的地方是,我在整个软件里根本找不到一个汇总我所有评论的页面,这是一个正常的评论模块吗?
-
成因分析:未知的前端问题
-
量化:
- 系统故障:★★
- 安全性:★
- 用户体验:★★★
反馈
相信邹欣老师会看到学生的博客,这未尝不算做一种反馈。
总结
这里,我就不以列表打分的形式总结了,我来谈谈这几年来使用 CSDN 的感受。
我初次使用 CSDN 是在大一,那时候要用 Atom 配一个 C 语言开发环境。当时,一篇数万点击量的博客,清清楚楚地贴出了所有配置步骤,帮我解决了一切问题。我也随之喜欢上了 CSDN,开始在社区阅读技术博客,解决技术问题。
但不知何时,CSDN 的博客质量开始下降,社区里充满了抄袭和搬运。大量博主将其他网站的文章或一些官网的开发参考文档当成自己的原创博文发布。有时,检索一个问题,一篇博客的相关博客,竟然完完全全复制了原博客,唯一不同的地方,是在开头标注了转载,并贴出了原博客地址。这样的搬运,对社区建设带来的尽是负面影响,每每看到这样的同质博客,我都想问,为什么 CSDN 不对内容进行进一步审查呢,知识产权在 CSDN 眼里这么轻淡吗?
整体而言,不推荐使用 CSDN。
微信公众号
使用体验
某种角度上,运营微信公众号的技术博主更多,内容更详实。
如 JavaGuide 和 Java3y,他们二人均对 Java 学习路线、Java 基础知识、Java 进阶知识、Java 面试等内容有着成体系的介绍和描述。如 labuladong,他对算法的剖析讲解,阅读起来简直是一种享受。
但微信公众号的一大问题是,广告过多,用户必须在海量的广告中找到想要的资源。不过,微信公众号提供了根据关键字检索推文的功能,对广告问题有一定的解决。
综合分析
产品开发所需时间
使用此服务的所有功能,估计这个软件、网站、服务做到这个程度大约需要多少时间?(团队人数6人左右,计算机大学毕业生,并且有专业 UI 支持)
以 CSDN 为例,需求实现为用户系统、博客板块、问答板块、社区板块。
开发内容 | 用时 |
---|---|
市场调研,团队搭建 | 2周 |
分析需求,探讨架构 | 2周 |
前后端同步开发 | 8周 |
部署测试 | 4周 |
发布内测版本,接收用户反馈,改软件、打补丁 | 3周 |
上线 | 1周 |
综上,我认为该产品的最小应用版本需要20周的开发时间。
产品对比
分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?
与牛客类似的产品,刷题板块有力扣,求职板块有脉脉、Boss 直聘、掘金等。牛客最大的产品优势在于其社区氛围良好,面经整理详细。综合评价,牛客在同类产品中排二到三名。
与 CSDN 类似的产品,问答板块有 Stack Overflow,博客板块有博客园、简书、知乎,虽然 CSDN 曾经辉煌过,是最大的程序员中文社区,但不可否认,前面提及的这些网站、软件、社区,现在做的都比 CSDN 好。CSDN 的产品优势,可能只剩下早期的用户积累了。综合评价,CSDN 在同类产品中排四到五名。
至于微信公众号,在同类产品中毫无疑问排第一。
建议和规划
市场概况
市场有多大?
牛客的用户群体,主要是各大高校的应届生和社会上的求职人员。据数据统计,每年高校毕业生近千万,故牛客的市场在千万量级。
CSDN 的用户群体,是全体计算机领域的人员,包括未就职的学生和已就职的程序员。
直接用户有多少?潜在用户有多少?
如前所示,我在牛客发布了一个问题反馈帖,至今仍未收到回复。并且,牛客社区的普遍发帖,包括热榜,讨论数量均不破百。以及,牛客题库中的试题题解,也基本在几十的量级。因此,我合理推测牛客的在线活跃用户(直接用户)不超过五万,潜在用户十余万。
CSDN 的直接用户较多,毕竟曾经辉煌过,应该有几十万,潜在用户应该破百万。
市场现状
目前市场上有什么样的产品了?
Stack Overflow、知乎、博客园、简书、Boss 直聘等。
上述产品的定位、优势与劣势在哪里?
Stack Overflow 的定位是问答,优势是基本没有劣势,劣势是全英文环境,中国市场占据还不大。知乎的定位也是问答,它的劣势在于问题多样,并非一个纯粹的程序员社区。博客园的定位是分享,优势是内容全面、知识产权保护好,劣势是界面古老,用户积累少,市场占据小。简书的定位也是分享,优势是界面美观、使用体验好,劣势是产品较新,仍需原始用户积累。
我认为,与这些产品相比,CSDN 不具备任何优势。CSDN 想要恢复社区的活力,应该依赖其历史积累的用户数量,盘活曾经辉煌的根基——博客。至少,CSDN 应该对现有的资源,包括但不限于博客、问答讨论、可下载文件,进行全方位的整改,剔除侵犯知识产权或无意义的资源。
Boss 直聘的定位和牛客类似,是求职,二者属于竞品。牛客想要增强自身的竞争力,应该把学习板块进行一次小型重构。牛客整理的学习资料十分全面,但呈现出的效果却不尽人意。我认为,所有的试题,至少应该有一份规范的解答,如果是代码,从代码风格,如命名、缩进、注释等方面进行规范;如果是问答,从内容层次、详略安排等方面进行规范。以及,牛客的前端设计真的需要提升。
市场与产品生态
这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
CSDN 的核心用户是计算机领域的在职人员和大学生,典型用户就是我这样的人,需求是解决开发中遇到的一系列问题。
牛客的核心用户是求职者,典型用户同样是我这样的人,需求是刷面经、找实习。
产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
大学生走出校园就是在职人员,因此,即将毕业的大学生和刚刚入职的在职人员通常会有较多联系。我认为,CSDN 和牛客,应该重点抓在职人员这些用户。因为大学生的选择往往取决于其学长学姐的选择,只有抓住在职人员,才能源源不断地为社区注入新鲜血液。
产品规划
你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?
无论是 CSDN,还是牛客,在增强用户使用体验方面,都有可完善之处。
我查看了二者的最近浏览功能,只支持滑动界面来查看已浏览内容,不支持关键字检索功能;只支持删除所有浏览记录,不支持删除特定浏览记录,牛客的前端甚至还有 BUG。如果我是开发者,我会实现如上功能。
在我看来,这些功能的实现并不复杂,同时能很好地抓住用户需求。举个例子,我遇到了一个问题,在社区找到了解决方案,过了一段时间,我又遇到这个问题了,但由于间隔时间较长,我忘记了解决方案,我可能希望通过最近浏览找到当时查阅的博客,结果你竟然让我从上滚到下挨个查看?为什么不让我通过博客名中的关键字、查阅博客的大致日期来进行检索呢?再举个例子,我浏览了一个博客,但其实是个标题党,我希望从最近浏览中删除这条记录,因为它会占据我查阅最近浏览时的屏幕资源,结果你竟然不让我删除特定记录?
如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等)才能在第16周如期发布软件的改进版本,并取得预想中的成绩,请为你的团队设计每周的详细规划
1个优秀美工,3个开发(1个前端、2个后端),2个测试。
开发内容 | 时间 |
---|---|
市场调研,团队搭建 | 第1周 |
分析需求,探讨架构 | 第2周 |
前后端同步开发 | 第3-10周 |
部署测试 | 第11-13周 |
发布内测版本,接收用户反馈,改软件、打补丁 | 第14-15周 |
上线 | 第16周 |