[I.2] 个人作业:软件案例分析

[I.2] 个人作业:软件案例分析——Snipaste截图工具

项目 内容
这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 [I.1] 个人作业:阅读和提问
我在这个课程的目标是 深入学习软件工程,掌握其核心思想,增强自身团队合作能力,学会敏捷开发
这个作业在哪个具体方面帮助我实现目标 学会如何评测一款软件,在评测的同时思考我们将要开发的软件该如何设计

第一部分 调研,评测

软件评测

Step 1. 软件使用

Snipaste是一款免费且强大的截图工具,广受用户欢迎。 在开发初期,作者曾考虑将其开源,但是出于对产品发展的考虑,最后决定不开源核心代码,只对一些辅助功能的代码进行开源,虽然 Snipaste 的核心源代码并未公开,但其在 GitHub 上提供了部分相关资源,例如用于反馈与维基的 feedback 仓库,以及翻译文件的 translations 仓库等,还有用于跨平台开发的Qt库。
Snipaste 的主要功能包括:

  • 截图:按下 F1 键即可开始截图,支持自动检测界面元素区域,提供像素级的鼠标移动控制和截图范围控制。

    1

  • 贴图:截取的图片可通过按下 F3 键贴回到屏幕上,作为浮动窗口显示。

    2

  • 取色:内置取色器,方便设计师和开发者获取屏幕上的颜色信息。按c进行取色。

    image-20250312205635150

  • 剪切板文字转图片窗口:剪贴板中的文字或颜色信息转化为图片窗口,并对这些窗口进行缩放、旋转、翻转、设为半透明等操作。

    image-20250313140418663

    image-20250313140446082

  • 高分屏支持:在高分辨率屏幕上也能正常使用,确保清晰的截图效果。

  • 首选项配置:

    image-20250313175201404

Step 2. 软件分析

Snipaste 是一款轻量、便捷的截图 + 标注工具,具备强大的截图、贴图和标注功能。其基本使用流程如下:

1. 启动 Snipaste

  • 下载并安装 Snipaste 后,启动程序。
  • 在 Windows 上,Snipaste 会最小化到系统托盘,在 macOS 上位于菜单栏。

2. 截图

  • 快捷键默认是 F1(可在设置中自定义)。
  • 截图时,屏幕上会出现一个十字准星,拖拽选择需要截取的区域。
  • 在截图模式下,Snipaste 会自动检测窗口边界,快速框选窗口内容。

3. 标注

  • 截图完成后,Snipaste 提供多种标注工具(箭头、矩形、文本、马赛克、涂鸦等)。
  • 标注完成后,点击“保存”或“复制到剪贴板”,快速分享或粘贴到其他应用。

4. 贴图

  • 使用 F3 快捷键可将剪贴板中的图片直接“贴”到屏幕上,像便签一样悬浮,方便比对、参考。

5. 其他功能

  • 支持颜色拾取(按 C 键),提供丰富的调色和颜色识别功能。
  • 具有 OCR(文字识别)功能,方便从图片中提取文字。
  • 提供自动保存、历史记录管理等功能,提升工作效率。

优缺点分析

维度 优点 缺点
数据量 占用内存和 CPU 资源极低,适合频繁使用。 无法处理超大尺寸图像(如超高分辨率或复杂图表时可能卡顿)。
界面 简洁直观,功能按钮紧凑且易用,截图模式自动吸附窗口。 部分高级设置入口较深,新手可能不易发现。
功能 功能丰富,支持贴图、标注、颜色拾取、OCR、快捷键自定义等。 不具备复杂图像处理能力(如图像编辑、滤镜等)。
准确度 OCR 功能对常规字体的识别准确度较高;截图时的窗口边界识别精准。 OCR 在手写文字或特殊字体上的准确度相对较低。
用户体验 快捷键响应迅速,截图、贴图流程顺畅,适合多任务切换。 默认快捷键可能与其他软件冲突,需手动调整。

Snipaste 非常适合频繁使用截图、标注、贴图功能的用户,尤其在以下场景表现出色:

  • 程序开发人员做界面对比
  • UI/UX 设计师进行视觉元素标注
  • 学生/教师用于在线教学和资料整理
  • 日常办公人员做文档截图、快速标注和贴图参考

尽管它无法替代专业的图像编辑工具,但在轻量化、快速标注及贴图方面表现优秀,能很好地满足绝大多数用户的截图需求。

Step 3. 改进意见

现状分析

  • Snipaste是一款非常方便的截图工具,但是目前只支持 WindowsmacOS 平台,尚未提供官方的 Linux 版本。

  • 在开发者群体中,Linux(尤其是 Ubuntu、Fedora、Arch 等系统)用户较多,尤其在编程、科研、服务器管理等领域需求明显。

改进建议

  • 采用 Qt(Snipaste 已使用 Qt 构建,具备跨平台优势),降低移植难度。
  • 优化对 Linux 桌面环境(如 GNOME、KDE、XFCE)的兼容性,确保窗口捕获、快捷键、剪贴板等功能稳定。
  • 在linux中,考虑增加CLI模式,满足服务器环境下远程截图、图像提取等需求
  • 提供 .deb、.rpm、.AppImage、.tar.gz 等多种安装包格式,方便不同 Linux 发行版的用户。

Step 4. 用户调研

  1. 采访对象的背景,为什么选择这个人采访?TA 的需求是什么?

    本次采访对象为我的室友jhz同学,最开始是他推荐我使用Snipaste这款软件,他作为该款软件的资深用户,能对该软件进行更加全面的评价。TA的需求就是为了截图和贴图的便利性。

    image-20250313175352695

  2. 采访对象实际使用的产品栏目

    image-20250313175413567

  3. 采访对象使用软件的过程中会遇到的问题和亮点

    image-20250313175438612

  4. 采访对象觉得从用户体验的角度来说需要改进的地方有哪些?

    image-20250313175455842

Step 5. 评测结论

d)好,不错

理由如下:

Snipaste 在轻量级截图工具中表现出色,特别适合需要快速截图、便捷标注、贴图参考的用户。

  • 对于 程序员、UI 设计师、学生/教师、办公人员 等用户群体而言,Snipaste 可大幅提升工作效率。
  • Snipaste 的截图、贴图、标注、OCR、颜色拾取等功能丰富,几乎涵盖了日常办公、学习、开发中的常见场景。其“贴图”功能是亮点之一,解决了传统截图工具无法便捷对比参考的信息留存痛点,特别适合多任务环境。
  • Snipaste 体积小、启动快,内存占用较低,在 Windows 和 macOS 上表现稳定。

Bug分析和提交

Step 1. 测试环境

  1. Windos规格
    • 版本:Windows 11 家庭中文版
    • 版本号:24H2
    • 操作系统版本:26100.3194
  2. 软件规格:Snipaste 2.10.5 免费版

Bug 1:多显示器环境下“截取并复制”功能行为不一致

  1. bug描述

    在多显示器环境下,用户将“截取并复制”功能绑定到 F10 键。当按下 F10 键并在同一显示器上截取窗口时,只需单击即可完成截图。然而,如果按下 F10 键后将光标移动到另一显示器,然后再返回原始显示器进行截取,则需要双击才能完成截图,行为不一致。

  2. 可复现性:必然发生

  3. 复现步骤:

    1. 在多显示器环境下,启动 Snipaste 应用程序。
    2. 将“截取并复制”功能绑定到 F10 键。
    3. 按下 F10 键,直接在当前显示器上单击窗口进行截取,截图成功。
    4. 再次按下 F10 键,将光标移动到另一显示器,然后返回原始显示器,单击窗口进行截取,发现需要双击才能完成截图。
  4. Bug分析

    1. bug成因:不同显示器可能具有不同的分辨率和缩放设置,Snipaste 在处理截图时可能未能适应这些差异,导致截图行为不一致。
    2. bug严重性:不太严重,只对少数有需要频繁进行多显示器截屏的用户有影响。
    3. bug未修复原因:需要频繁进行多显示器截屏的用户较少,且修改此bug的难度未知,此bug的修复价值不高

Bug 2:快捷键不响应

  1. bug描述

    在管理员窗口的时候,截图快捷键失效

  2. 可复现性:必然发生

  3. 复现步骤:

    1. 以管理员权限打开PoweShell
    2. 使用快捷键,发现无效
  4. Bug分析

    1. bug成因:Windows权限问题,Snipaste没有以管理员权限运行,而当前窗口时以管理员身份运行的,此时快捷键就会失效。
    2. bug严重性:严重,直接影响截图的功能性
    3. bug未修复原因:涉及到Windows的权限问题,作者在代码层面去修复可能比较困难,所以希望用户在使用时以管理员权限运行Snipaste
  5. Bug改进建议

    该Bug应该需要被修复,以非管理员权限依然可以在管理员窗口进行截图。

    第一,在用户的角度,需要以管理员的权限运行Snipaste会增加信息泄露和中病毒的风险(有用户可能会在非官方途径下载该软件)

    第二,该Bug应该是可以被修复的,市面上很多成熟的软件即使没有管理员权限也能在管理员窗口用快捷键唤出,如豆包客户端,Alt+a进行截图提问。

  6. Bug反馈

    已经在git上提交issue反馈:

    image-20250313153653530

第二部分 分析

工作量分析

假设一个由6名计算机专业毕业生组成的团队,配备专业的UI设计师,计划开发一款类似于 Snipaste 的截图和贴图工具。以下是对各功能模块的开发时间估计:

  • 核心截图功能: 实现全屏、窗口、区域截图,并支持自动检测界面元素。预计开发时间为2-3个月。
  • 贴图功能: 将截图或其他内容以图片形式贴在屏幕上,支持缩放、旋转、透明度调整等操作。预计开发时间为2个月。
  • 编辑功能: 提供矩形、椭圆、线条、箭头、铅笔、马克笔、文字、高级标注工具(如马赛克、高斯模糊、橡皮擦)等。预计开发时间为2个月。
  • 取色器功能: 实现屏幕取色,并显示颜色代码。预计开发时间为1个月。
  • 历史记录和回放: 支持截屏记录回放、多次截图、历史记录管理等。预计开发时间为1个月。
  • 自定义设置: 提供主题色、界面字体、通知栏图标、自定义快捷键等个性化设置。预计开发时间为1个月。
  • 多显示器和高分辨率支持: 确保软件在多显示器和高分辨率环境下的兼容性。预计开发时间为1个月。
  • UI设计与用户体验优化: 专业UI设计师负责界面设计和用户体验优化。预计开发时间为2个月。
  • 测试与调试: 进行功能测试、性能优化和BUG修复。预计开发时间为2个月。

综合以上估算,开发团队需要约14个月的时间才能完成一款功能与 Snipaste 相当的软件。然而,实际开发时间可能因团队协作效率、技术难点和需求变更等因素而有所不同。

软件质量分析

Q1:分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?

调研了市面上几款常用的截图工具,给出了以下优缺点分析表格:

以下是对 Snipaste、Snagit、Lightshot、Greenshot、PicPick 等截图工具的优缺点分析:

软件名称 优点 缺点
Snipaste - 独特的贴图功能,将截图固定在桌面上,方便对比和参考。
- 提供丰富的编辑工具,如矩形、椭圆、线条、文本等。
- 操作简单,完全免费,适合日常使用。
- 功能相对简单,缺乏高级编辑和屏幕录制功能。
- 仅支持 Windows 和 Mac 系统。
Snagit - 功能强大,支持截图、屏幕录制、GIF 制作等。
- 提供丰富的编辑工具,适合专业需求。
- 支持滚动截图,方便截取长网页或文档。
- 需要付费购买,价格相对较高。
- 功能复杂,可能对仅需简单截图的用户而言显得冗余。
Lightshot - 界面简洁,操作直观,适合初学者。
- 支持将截图上传至云端,方便分享。
- 完全免费,满足一般截图需求。
- 编辑功能有限,缺乏高级标注工具。
- 不支持滚动截图和屏幕录制功能。
Greenshot - 免费且开源,功能实用。
- 提供多种截图方式,支持自定义快捷键。
- 内置编辑器,支持添加文本、箭头、形状等标注。
- 编辑功能相对简单,缺乏高级图像处理工具。
- 界面设计较为简洁,可能不够美观。
PicPick - 集成截图、图像编辑、屏幕取色器、标尺、量角器等多种工具。
- 界面友好,功能丰富但易于上手。
- 提供免费版,功能足够满足日常需求。
- 仅限 Windows 系统,无法在其他平台使用。
- 部分高级功能需要付费解锁。

​ 综合来看,Snipaste 在贴图和编辑功能上具有独特优势,适合需要频繁对比和参考截图的用户。然而,在高级编辑和屏幕录制功能方面,可能不如 Snagit 等专业工具。根据个人需求选择合适的截图工具,可以有效提高工作效率。

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

建立跨平台开发与测试体系

  • 发挥跨平台开发框架Qt优势,进一步兼容Linux系统

  • 扩展自动化测试环境:

    • 构建针对 Linux 环境的自动化测试体系,包括单元测试、集成测试与 UI/端到端测试,覆盖常见的发行版和桌面环境(GNOME、KDE、XFCE 等)。
    • 利用 CI/CD 工具(例如 GitHub Actions 或 GitLab CI)在 Linux 虚拟机或容器中定期运行测试,确保每次提交都能在 Linux 平台上稳定运行。

第三部分 建议和规划

市场现状

市场概况

从官方的统计数据来看,Snipaste的下载量已达到百万级别,活跃用户主要集中在设计师、程序员、办公人员和学生等群体。

其潜在用户广泛。从整体市场来看,截图工具的潜在用户包括所有需要快速捕捉、编辑和分享屏幕内容的人群。全球范围内,办公自动化、软件开发、设计、教育等领域的用户数以亿计,其中有相当一部分用户尚未使用专门的截图工具,这些都是Snipaste的潜在用户。

竞争产品

市面上有许多截图工具,在上述同类型产品分析中已经提到相关产品,现在从产品特点和产品定位再进行一次分析。

产品名称 产品特点 定价及定位
Snagit 功能非常全面,支持截图、屏幕录制、滚动截图和高级编辑,适用于专业需求。 付费软件,定位高端、企业级市场。
Lightshot 轻量、易用,支持基础截图和在线分享,操作简单。 免费软件,适合普通用户和初级使用。
Greenshot 开源、免费,提供多种截图模式和基本编辑功能,配置灵活。 免费软件,定位于中小型企业和个人用户。
PicPick 集成截图、编辑、取色器等多功能工具,界面友好且易于上手。 免费版功能有限制,高级版付费,定位于设计和办公用户。

产品定位

  1. Snipaste 定位:
    • 核心优势:
      • 独特的贴图功能:截图后可以直接“贴”在桌面上,方便对比、参考和临时标注。
      • 操作简洁:界面设计简洁直观,用户上手快。
      • 免费策略:相较于高端付费产品,Snipaste 免费且功能实用,吸引了大量中文用户和部分国际用户。
    • 不足之处:
      • 功能深度:与 Snagit 等专业工具相比,Snipaste 在高级编辑、屏幕录制等方面功能较为有限。
      • 平台局限:目前主要支持 Windows 和 macOS,Linux 用户较难享受到其便捷功能。
      • 权限与兼容性问题:在多显示器和高权限环境下偶尔存在功能不稳定问题。
  2. 竞争态势:
    • 在轻量级产品中,Snipaste 以其独特的贴图功能和良好的用户体验脱颖而出。
    • 市场中直接用户数量和口碑均显示 Snipaste 在中文市场具有较高的认可度,但在国际化、专业编辑和多平台支持上仍有提升空间。

市场与产品生态

核心用户画像

维度 描述
学历 多数核心用户具有本科及以上学历,部分用户甚至拥有研究生学历。
年龄 主要集中在 20~40 岁之间,年轻用户占比较大,正处于职业初期至中期。
专业背景 主要集中在计算机科学、软件工程、UI/UX 设计、视觉传达、数字媒体、市场营销等专业。
爱好 对新技术、数字工具和效率工具有较高兴趣;热衷于使用轻量级软件优化工作流程;部分用户喜欢DIY工具、分享工作技巧。
收入水平 收入层次跨度较大,从刚步入职场的初级员工到中高端白领都有;多数用户处于中等收入水平,追求性价比高的工具。
表面需求 需要一款轻量、便捷、反应迅速的截图工具,能够快速捕捉、编辑、注释、保存并分享屏幕内容。
潜在需求 希望工具具备更强的定制化能力、更丰富的编辑功能以及跨平台支持(如 Linux 版本);对自动化、团队协作和与其他办公软件的集成有一定期待。

用户生态构建

  • 共性需求与工作场景:
    核心用户大多来自与数字内容创作、技术开发和设计相关的行业,他们在日常工作中需要频繁地截取、标注、编辑和分享屏幕信息。

  • 用户社群与互动:
    这些用户往往活跃于技术论坛、QQ/微信群、在线社区(如知乎、CSDN 等),分享使用经验、定制化技巧以及插件开发经验。

  • 用户生态构建的可能性:
    利用用户之间在工作流程、技巧和需求上的共性,可以构建专属的用户社区或“生态圈”——

    • 知识共享平台: 鼓励用户分享使用案例、定制化脚本、工作流和插件,形成产品知识库。

    • 互动反馈机制: 通过线上社区、社交媒体和定期举办用户活动,进一步收集需求和改善产品体验。

    • 开发者生态: 吸引技术爱好者为软件开发第三方扩展插件或整合其他工具,形成更丰富的生态链。

产品生态构建

  • 产品功能模块化:
    Snipaste 本身已集成截图、贴图、编辑、取色等多个功能模块,这些模块既能独立满足部分用户需求,也能组合构成完整的工作流。

  • 与相关工具的互补性:
    市场上同类或互补性工具(例如图像编辑软件、文档管理系统、协同办公平台)与 Snipaste 存在功能交集或延伸关系。

    • 例如: 用户在使用 Snipaste 截图后,可能会将图像导入 Photoshop、Sketch 或 PowerPoint 中进一步处理或展示;或者通过与在线协同工具(如企业微信、Slack)集成,实现更高效的团队协作。
  • 产品生态构建的可能性:

    • 子产品联动: 可以考虑将 Snipaste 的各模块进一步模块化为独立的工具,如专门的贴图管理器、快捷标注插件等,并支持与主应用无缝对接。

    • 平台整合: 借助 API 或插件机制,与其他办公、设计、协作软件打通数据流,形成更完整的数字办公生态系统。

    • 扩展生态: 建立开发者平台,鼓励第三方开发扩展功能或整合其他服务(例如云存储、图像处理服务等),打造开放的产品生态圈。

产品规划

产品功能:文字提取

一、功能开发原因

目前Snipaste的贴图无法想微信截图一样进行文字提取,直接复制其中的文本,想要获得图片中的文本还需要借助微信,将图片发送给微信传输助手,然后点开图片进行文字提取。作为一款以便捷性打动用户的产品,该功能的缺失显然偏离了该产品的核心理念。以下是NABCD分析:

N – Needs(需求)

  • 用户需求:
    当前用户在使用截图和贴图工具时,往往需要从图片中提取文字信息,如快速摘录、复制、翻译或搜索。
  • 痛点:
    传统截图工具仅停留在图片保存和标注层面,用户必须借助第三方 OCR 软件来提取文字,这样的流程繁琐且效率低下。

A – Approach(方案)

  • 技术方案:
    集成成熟的 OCR 引擎(例如 Tesseract 或结合深度学习的轻量模型),直接在截图后调用 OCR 模块,实时提取文字,并支持多语言识别和后期校正。
  • 集成方式:
    将 OCR 模块无缝嵌入 Snipaste 的工作流程中,使用户在截图后可一键提取、编辑、复制文字,甚至支持智能翻译。

B – Benefits(收益)

  • 效率提升:
    用户无需另启应用程序,通过一站式操作完成截图、编辑、文字提取等流程,大幅提升工作效率。
  • 用户粘性:
    提供一项独特、便捷的功能,可成为产品的重要卖点,增强用户对工具的依赖性和口碑传播。

C – Competition(竞争情况)

  • 市场现状:
    目前市场上有专门的 OCR 工具(如 Adobe Acrobat、Google Keep 内置 OCR 等),但大多独立存在,难以与截图、标注工具整合。
  • 差异化:
    相较于单一 OCR 工具,Snipaste 的优势在于其“贴图”与截图后编辑的整体流程。将 OCR 功能嵌入其中,形成从截图到文字提取的一体化体验,能够吸引对效率和便捷性有较高要求的用户。

D – Differentiation(创新与差异化)

  • 产品创新:
    本功能在传统截图工具中实现了从图像到文字的无缝转换,是一个功能“裂变器”:不仅满足基本截图需求,更延伸出文字编辑、翻译、检索等增值服务。
  • 竞争优势:
    通过与现有贴图、标注功能结合,实现跨功能协同,构建独特的工作流,打造市场上少有的“一站式”数字办公工具。

二、项目规划

我作为项目经理,招聘6人,16周时间(如果不考虑各种兼容性的问题,在软件代码框架可扩展性高的前提下,我认为可能23个人23周就能完成,不包括项目测试),我认为的角色分配如下:

  • 1 名全栈开发工程师
    负责 OCR 模块核心算法的集成(后端)、与前端 UI 的接口对接,确保整体功能流畅。

  • 1 名后端开发工程师
    专注于图像处理、OCR 调用及性能优化,保证识别效率与准确性。

  • 2 名前端/桌面开发工程师
    负责 UI 整合与交互设计,将 OCR 功能无缝嵌入现有 Snipaste 界面。

  • 1 名 UI/UX 设计师
    设计新功能界面和用户流程,确保界面美观且易用,同时协调整体产品风格。

  • 1 名 QA/测试工程师
    制定测试计划、撰写测试用例,并负责自动化、手动测试,覆盖多平台(尤其关注 Windows 与 macOS)的兼容性。

三、16周详细规划

周次 主要目标与任务描述
第1-2周 需求调研与规划:确定 OCR 功能需求,收集用户反馈与竞品分析,完成初步需求文档。
第3-4周 设计阶段:UI/UX 设计新功能界面和工作流程;技术团队讨论并确定 OCR 集成方案和架构设计。
第5-8周 核心开发阶段: - 开发 OCR 模块(后端图像处理与文字识别); - 前端集成 OCR 功能到现有界面; - 建立基本的自动化测试和 CI/CD 环境。
第9-10周 内部集成与初步测试: - 完成 OCR 与截图、贴图功能的集成; - 开始内部测试,初步收集 Bug 和性能问题。
第11-12周 Beta 版本发布: - 发布内部/小范围 Beta 版本; - 收集用户反馈,进行问题修复和功能优化。
第13-14周 迭代与优化: - 根据反馈对 OCR 准确率、响应速度及 UI 细节进行改进; - 完善自动化测试覆盖,确保回归测试稳定。
第15周 最终测试与文档整理: - 全面回归测试,完善用户文档、FAQ 和安装指南; - 确保所有主要平台的打包部署工作顺利。
第16周 正式发布与上线监控: - 正式发布改进版本; - 实时监控用户反馈并启动快速响应机制。
posted @ 2025-03-13 18:09  zfz04  阅读(40)  评论(0)    收藏  举报