个人作业-软件案例分析

项目 内容
这个作业属于哪个课程 2023年北航敏捷软件工程
这个作业的要求在哪里 个人作业-软件案例分析
我在这个课程的目标是 锻炼工程思维,提高开发能力
这个作业在哪个具体方面帮助我实现目标 深入调研软件,了解评测流程

选题

  1. 现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径? 请评测CSDN上技能树功能(python 技能树,CS入门技能树, C技能树 )。请对照项目成员对自己产品的期待, 你觉得这个目前的产品状态离原来的期望还差哪几个方面?

第一部分 调研,评测

软件评测

基本功能

  • 主页面,包含内容目录,学习进度等,可以选择要学习的章节,或者是继续之前的进度。

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

  • 章节详情页面,左侧可以选择章节,中间可切换练习题、参考资料、交流讨论、我的笔记、专栏课程等多个栏目,右侧可发帖子或做笔记。

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

  • 练习题详情页面,可进行选项间的比对,提交后会给出答案和解析。

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

产品评价

  • 功能与需求:给出技能树类软件用户可能的一些需求,并根据实现的功能判断是否满足需求,分为三个等级,完全满足、部分满足和不满足

    需求 满足程度 原因
    界面简洁明了,让读者保持专注 部分满足 界面无较多广告,但是相比于其他博客或教程软件还不够简洁,信息密度较大
    规划学习路线,提供学习资料 完全满足 学习资料丰富,有文字、图像、视频等不同形式的资料,且放了较多额外资料的链接
    做笔记功能,实时记录,笔记分类整理 完全满足 笔记和博客在同一界面,可边读边写,并按学习章节分开保存
    讨论区功能,支持帖子检索,筛选有价值帖子 部分满足 支持多人发帖讨论并按热度排序,但是不支持检索
    提供相关练习题,检验学习成果 部分满足 提供选择题练习,但并无更多题型,也没有编程训练
    任务管理功能,可将待学习内容安排进队列或时间表 不满足 无相关功能
    监督打卡,限时完成学习目标 部分满足 有 flag 功能,可选择待学习的知识点数量,并支付费用来督促学习
  • 优缺点:从数据量、界面、功能、准确度四个方面给出优点和缺点

    方面 优点 缺点
    数据量 资料丰富,形式多样,讨论区帖子较多 资料质量不高,题库内容较少,且不同知识点的数据分布不平均
    界面 目录、学习资料、笔记三者在同一页面,方便切换和记录 不够简洁,重点内容突出不明显
    功能 功能多样,基本功能完善 许多功能比较简单,不够好用,例如练习题功能和笔记功能
    准确度 无明显优点 讨论区有较多无效提问和回答,难以将有价值信息准确传达给用户
  • 用户体验

    • 第一印象不够好,界面美观程度和简洁程度一般
    • 内容质量不高,大多数文章也都来源于社区作者
    • 功能很多,方便用户使用

改进意见

  • 优化 UI,将界面做得更简洁美观
  • 增加部分功能,如讨论区帖子检索,在线编程练习等
  • 替换部分质量不高的文章,讨论区也增加检索和筛选功能,过滤出有价值帖子

用户调研

  • 采访对象:贺同学,其他软工班级学生,主要需求是巩固知识点,查阅语法

  • 采访内容:

    Q:你对 CSDN 技能树有什么第一印象?

    A:感觉跟菜鸟教程差不多。

    Q:你使用 CSDN 技能树的需求是什么?

    A:忘了一部分语法或者是查一下不太常用的语法。

    Q:你使用了其中的哪些栏目?

    A:目录和参考资料。

    Q:你在使用过程中遇到了什么问题?

    A:这个技能书的内容组织不循序渐进,感觉纯入门的看不懂。

    Q:你觉得这个产品有什么亮点?

    A:配了练习题可以自己试一下。

    Q:从用户体验的角度来说你觉得有什么需要改进的地方?

    A:内容组织的逻辑还可以再改进,有一定基础的倒是能看懂,真入门感觉看不懂。

  • 采访照片

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

结论

  • 总体评价:d)好,不错

  • 量化评价:每项评分满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分

    类别 描述 评分
    核心功能 目录、资料、笔记、练习题等 8
    细节 做笔记和看博客在同一界面,可同时进行 5
    用户体验 没有广告,但是界面设计一般 6
    辅助功能 例如题目的选项比对功能 5
    差异化功能 有立 flag 功能,可支付费用督促学习 4
    软件的效能 加载速度较快,消耗资源小 7
    软件的适应性 不同浏览器、不同设备使用都无明显问题 7
    成长性 可记录用户进度等 5
    用户有控制权 可控制性一般,例如帖子的删除功能不完善 4

Bug 分析和提交

Bug 严重性定义

严重程度 Bug 描述
⭐️⭐️⭐️⭐️⭐️ 致命性系统故障、致命性安全性漏洞
⭐️⭐️⭐️⭐️ 严重系统故障、服务器鉴权漏洞或重要数据泄露
⭐️⭐️⭐️ 严重功能性 bug,严重影响用户体验
⭐️⭐️ 轻度功能性 bug,略微影响用户体验
⭐️ 页面显示错误,不影响功能

测试环境

  • 操作系统:Windows 10 家庭中文版 19044.2604

  • 浏览器:Google Chrome 110.0.5481.178

Bug1:图标的说明文字显示错误

可复现性及具体复现步骤
  • 必然发生
  • 步骤:点开任意一个知识点,做一道练习题,再查看左侧目录,会发现做过题的章节会有绿叶图标(灰色表示没有通过,绿色表示通过),把鼠标移上去,会弹出来内容为“VIP 专享”的说明文字
Bug 具体情况描述
  • 当鼠标悬停在目录中皇冠图标上时,会弹出“VIP 专享”,表示此章节需要付费

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

  • 但对于表示章节是否完成的绿叶图标,同样会显示”VIP 专享“,可以看出这是一个显示 bug

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

Bug 分析
  • 可能成因:在图标元素的 mouseenter 事件响应器中,没有特判图标类型,导致全部弹出一样的消息
  • 严重性:⭐️,不影响系统功能、安全性,轻微影响用户体验
  • 未修复的可能原因:开发人员粗心大意
Bug 改进建议
  • 正常行为:鼠标指针悬浮在绿叶图标上时,应根据颜色显示“章节已完成”或“章节未完成”
  • 推测如何修复:根据图标内容切换要显示的文字

Bug2:文章引用无法删除

可复现性及具体复现步骤
  • 必然发生
  • 步骤:在发布笔记后,会把文章自动存到个人的私密社区,点开文章后进行删除,再回到”我的笔记“这一栏
Bug 具体情况描述
  • 先任意发布一篇个人笔记,此时在个人私密社区和”我的笔记“栏目均可看到

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

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

  • 再删除此篇文章,回到“我的笔记”栏目,此时依旧可以看到这篇文章(与上图相同),但是点开后没有任何内容,因此该文章的引用是无效的

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

  • 在删除文章本身的同时没有删除对它的引用,在我看来这是 bug 而不是 feature

Bug 分析
  • 可能成因:在加载“我的笔记”列表时并没有检测文章是否被删除,而是将所有文章的引用全部列出来,即使是无效的
  • 严重性:⭐️⭐️⭐️,无效的文章引用如果堆积,会严重影响用户体验,同时文章删除不彻底可能会导致安全性问题
  • 未修复的可能原因:具体的设计质量不高
Bug 改进建议
  • 正常行为:“我的笔记”栏目中不显示已经删除过的文章的引用
  • 推测如何修复:每次加载该页面时进行筛选,只显示未被删除的文章的引用,同时更新数据库,删除无效的文章引用

Bug3:笔记发布错误时前端无反馈

可复现性及具体复现步骤
  • 必然发生
  • 步骤:在笔记页面输入大量字符并发布
Bug 具体情况描述
  • 当笔记内容超过 30 万字时会导致笔记发布失败,请求会反馈如下错误信息

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

  • 但此时前端并没有做出明显的响应,既没有弹窗也不会刷新网页,而“发布”按钮也一直保持在等待状态,这是前端错误处理功能不完善导致的 bug

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

Bug 分析
  • 可能成因:前端只处理了请求正确的情况,并没有处理异常情况
  • 严重性:⭐️⭐️⭐️,严重功能性 bug,影响用户体验,也可能会有潜在的安全性问题
  • 未修复的可能原因:测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
Bug 改进建议
  • 正常行为:笔记发布失败时,弹出错误消息,告知用户失败原因
  • 推测如何修复:前端发送新增笔记请求时,实现完整的错误处理功能,在请求失败时弹出信息

Bug 反馈

  • 反馈到 GitCode,向开发团队提 issue,链接为:https://gitcode.net/csdn/skill_tree/-/issues/31

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

第二部分 分析

工作量分析

  • 预计每个阶段工作内容和时长如下:

    工作 时长/周
    团队分工,需求分析,文档撰写 1
    UI设计,前后端框架搭建 2
    核心功能开发 4
    辅助功能开发 2
    测试,稳定和发布 4
    总计 13

软件质量分析

  • CSDN 技能树和同类产品菜鸟教程、Microsoft Learn相比,大概能排在第 2,各方面优缺点如下:

    方面 优点 缺点
    UI 相较于菜鸟教程广告更少,更简洁 存在 bug,不够稳定,且美观程度不如 Microsoft Learn
    内容数量 内容数量较多,形式丰富,基础内容比 Microsoft Learn 更多更丰富 内容来源仅限于 CSDN 中的文章,总数量应该小于另外两者
    内容质量 比菜鸟教程质量略好,且通俗易懂,适合初学者 内容专业程度不如 Microsoft Learn
    辅助功能 有笔记、练习题、立 flag 等功能,比其他两者要更完善 辅助功能的质量一般,存在 bug
  • 开发团队可以提高的一个重要方面:加强测试

    • 加强单元测试,在开发过程中尽可能减少 bug
    • 多进行效能测试和压力测试,确保核心功能在高压情况下也能正常运行,或是有完整的错误处理机制

第三部分 建议和规划

市场概况

  • 市场大小

    • 根据阳光高考网的专业统计信息,目前全国计算机相关专业毕业生超过 30 万人,预计学生人数超过 150 万
    • 依据 GitHub 的数据,2021 年中国程序员人数大约 755 万,位居全球第二
    • 根据 CSDN 官网的统计信息,CSDN 的注册用户已经超过 3500 万,月活跃用户超过 1000 万

    推测 CSDN 技能树的市场用户量大约在 50 万到 100 万之间

  • 直接用户和潜在用户

    • 直接用户主要为计算机相关专业学生、程序员等,推测 CSDN 技能树的直接用户数超过 50 万
    • 潜在用户有非计算机专业学生和其他行业人员中的爱好者、自学者,推测用户人数在 5 万到 10 万。且随着计算机技术的不断发展,基本的计算机知识、编程可能会成为必备技能,潜在用户规模也会不断扩大

市场现状

  • 技能树相关产品有 CSDN 技能树、菜鸟教程、Microsoft Learn、OI-Wiki、W3school 等
  • 定位、优势与劣势
    • CSDN 技能树、菜鸟教程:主要面向需要广泛学习的初学者,优势在于内容广度大,劣势在于内容深度和质量不够高
    • Microsoft Learn:主要面向专业开发人员和微软产品的使用者,优势在于专业程度高,质量高,劣势在于需要有一定的知识储备才能更好地理解教程
    • OI-Wiki、W3school:主要面向某一特定领域的学习者,比如 OI-Wiki 是算法竞赛相关,W3school 是 web 开发相关,优势在于内容专一、有深度,劣势在于广度不足
  • 竞争关系:主要发生在 CSDN 技能树和菜鸟教程这样的内容广泛、面向初学者的软件之间,两者的用户群体高度重合,内容相似度高,因此互为竞品关系。菜鸟教程内容更丰富,前端页面更稳定,并且根据周围人的使用情况,笔者推测菜鸟教程的用户量高于 CSDN 技能树,在竞争中更具优势。

市场与产品生态

  • 核心用户群
    • 计算机相关专业学生:高中或本科学历,年龄 17-26 岁,专业为计算机科学与技术、软件工程等,爱好自主探索,无收入或较低收入,表面需求是帮助学习课程,潜在需求是自主学习、涉猎多种领域
    • 计算机相关专业教师:硕士及以上学历,年龄 26 岁以上,专业与计算机相关,爱好学术研究、教学工作,表面需求是辅助教学,潜在需求是在论坛中答疑、帮助初学者
    • 程序员:本科及以上学历,年龄 22-40 岁,专业与计算机相关,爱好不定,收入较高,表面需求是查阅工作相关文档和资料,潜在需求是不断学习、拓展技术栈、防止在工作中被淘汰等
  • 群体关系
    • 大多数计算机相关专业学生最后会成为教师或程序员,程序员中也有很大一部分是计算机专业出身
    • 三种用户的需求不同,容易关注的点也不一样,如果在社区中互相交流和分享,可构成特定的用户生态
  • 子产品关系和其他相关产品关系
    • CSDN 技能树是 CSDN 社区的子产品,其资料来源就是 CSDN 社区中用户发布的文章,而同时技能树也为优秀文章起到了引流的作用,吸引更多人关注该作者
    • CSDN 技能树和菜鸟教程互为竞争关系,可以激励内容创作者推出更新、更全面、质量更高的教程

产品规划

  • 新增功能:支持多种语言的在线演练场或 IDE

  • NABCD 分析

    • Need:初学者有练习编程的需求,而不仅仅是读文章
    • Approach:增加一个演练场栏目,可切换不同的语言,支持在线运行、调试等
    • Benefit:使用户在学习的同时能够在线写代码来测试,巩固学习成果
    • Competitors:例如 Vue SFC Playground 和 Go Playground,但是它们只支持一种框架或语言,只面向该领域的用户,不会与本产品形成较大的竞争
    • Delivery:可通过与高校合作来推广,或者借助父产品 CSDN 的影响力进行推广
  • 配置角色

    • 1 人:负责前端 UI 设计和美工
    • 2 人:负责前端的开发和测试
    • 2 人:负责后端的开发和测试
    • 1 人:负责前后端的衔接以及整体的测试
  • 详细规划

    周数 工作
    1 产品调研和需求分析
    2 撰写设计文档;完成基本接口设计;完成基本 UI 设计
    3-4 前后端搭建基本框架;开始编写测试用例
    5-8 前后端同步进行开发;美工不断优化 UI;测试人员对接口进行测试
    9 发布 alpha 版本,收集用户反馈意见
    10-13 根据用户反馈,修复 bug,开发辅助功能,优化 UI
    14 进行效能测试和压力测试
    15 发布 beta 版本,根据用户意见进行改进
    16 软件上线

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