mywinnies

 

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

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

项目 内容
这个作业属于哪个课程 2026年春季软件工程
这个作业的要求在哪里 [I.2] 个人作业:软件案例分析
我在这个课程的目标是 学习到软件工程中的各种最佳实践,然后实际运用到学习和未来的工作中
这个作业在哪个具体方面帮助我实现目标 帮助我学会分析现实案例,积累经验和方法论

目录

第零部分 选题

第一部分 调研,评测

第二部分 分析

第三部分 建议和规划


第零部分 选题

类型:✈Open source is FREE!

软件Tabby Terminal

第一部分 调研,评测

软件评测

1.软件使用

SSH远程连接

使用截图

多种终端集成

多终端集成

外观与插件设置

设置

2.软件分析

(1) 基本使用流程

Tabby作为一个集成终端使用流程非常简单:启动应用→选择配置文件→建立会话→执行命令。可以通过配置文件切换不同的系统命令行工具,也可以通过ssh进行远程连接服务器工作。在设置里面可以下载各种实用的插件进行使用,以及可以对UI界面进行个性化的修改,颜值明显高于传统的命令行工具。

(2) 优缺点分析

方面 优点 缺点
数据量 日志渲染能力强,能够流畅处理数万行的滚动日志输出 内存占用比传统的普通命令行工具要大,容易触发GC卡顿
界面设计 默认配色极佳,并且还支持进行个性化的修改,界面设计干净优雅 暂无
功能体验 集成了SSH客户端、SFTP文件传输、Telnet、串口调试等丰富的功能 缺少批量发送命令、脚本录制宏等高级功能
用户体验 使用简单,安装后自动识别系统中的各种Shell,无需繁琐配置,且内置了类似IDE的命令补全提示,对新手非常友好 内置默认快捷键过多且常用,非常容易与系统快捷键冲突

3.改进意见

  • 优化Electron的资源占用情况,减少内存占用,优化使用体验。
  • 减少默认的快捷键设置,由用户自主设置。
  • 增加类似会话分组功能,支持多窗口同步输入以及分组管理。

4.用户调研

采访对象简介:吴际老师软工班的学生,他选修的课程需要连接学校高性能计算平台的服务器完成作业,同时其他课程还需要使用CMD,Git Bash,Ubuntu等等命令行工具,觉得频繁切换十分繁琐,于是下载了Tabby Terminal使用。

采访记录

5.评测结论

e) 非常推荐

总体来说覆盖了大多数用户基本需求,一些特殊需求也可以通过下载插件来实现,没有任何让用户反感的设计,是我非常推荐的软件。

按照讲义中的评分标准大概为如下的评定:

维度 类别 描述 评分 (满分 10, 良好 6, 及格 4, 聊胜于无 1, 很差 -3)
功能 核心功能 分析三个核心功能,功能设计和质量。 10
细节 有什么为用户考虑的细节? 6
用户体验 当用户完成功能时,不干扰用户(例如:是否不断弹出不相关广告)。 10
辅助功能 一些辅助功能如皮肤等。 10
差异化功能 这个软件独特的功能。它对用户的吸引力有多大? 10
软件的效能 占用内存,启动速度,内存泄漏情况。 6
体验 软件的适应性 在联网/断网,大小屏幕,没有鼠标的情况下都可以顺畅操作。和不同平台的软件能流畅协作。 10
成长性 记住用户的选择,适应用户的特点,用户越用越方便。 10
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。让用户方便地从错误中恢复工作,快捷操作键可调整。 10
自选 跨平台配置同步能力 各种配置(包括主题、快捷键、SSH 密钥、字体设置等)在Windows、macOS和Linux之间的同步 10
总分 92

Bug分析与提交

1.测试环境

操作系统是win11,Tabby的版本是1.0.230。

2.Bug严重性定义

  • ⭐⭐⭐⭐⭐:系统崩溃、数据丢失或核心功能完全不可用。
  • ⭐⭐⭐⭐:主要功能受损,需要紧急修复。
  • ⭐⭐⭐:功能受限或产生部分错误,但不至于整体瘫痪。
  • ⭐⭐:不常用功能出现问题,或者问题可以自己解决。
  • ⭐:设计不当,但不影响正常使用。

3.第一个bug:字符串搜索功能出错

(1) bug严重性

⭐⭐⭐:功能受限或产生部分错误,但不至于整体瘫痪。

(2) 情况描述

当在Tabby中的CMD里面出现过长文本换行,并且在行尾出现了疑似自动加入的空白字符的时候,搜索功能就会无法正常匹配被这个空白字符断开的字符串。

原生CMD:

原生cmd

Tabby集成的CMD:

Tabby

(3) 可复现性

可以稳定复现。

(4) 复现步骤

  1. 在Tabby中打开CMD,输入一段非常长的文本。
  2. 调整界面大小,使得在自动换行处的行末有自动插入的空白字符。
  3. 使用Ctrl+Shift+F对被自动插入的空白字符截断的字符串进行搜索,发现搜不到。

(5) bug分析

猜测是因为Tabby在进行字符串搜索的时候直接读取终端缓冲区匹配,然后没有注意到这个特殊的空格字符,当做了普通的空格字符进行匹配,而原生CMD中会专门识别这个自动填充的空格字符替换掉。

大概是测试人员测试的时候没有考虑到这么细致的情况,但是实际上带来的影响还是比较大的,因为字符串搜索其实算是比较常用和实用的功能。

(6) bug改进意见

可能可以在执行搜索操作前,增加一个预处理步骤,检测并移除缓冲区中位于行尾的软空格。

4.第二个bug:SSH会话断开后标签页残留

(1) bug严重性

⭐⭐:不常用功能出现问题,或者问题可以自己解决。

(2) 情况描述

在使用Ctrl+D快捷键断开SSH链接之后无法正常自动关闭标签页,仅显示logout,光标一直闪烁,无法进行其他操作。

SSH

(3) 可复现性

几乎可以稳定触发,共测试20次,其中触发18次。

(4) 复现步骤

  1. 建立一个 SSH 连接。
  2. 使用Ctrl+D快捷键结束对话。

(5) bug分析

可能是当SSH快速断开时,Tabby的前端渲染线程和后端主进程之间由于存在通信延迟,导致关闭指令被渲染指令阻塞或覆盖。

这个bug可能严格说起来并不完全影响正常使用,因为还可以手动关闭标签页,可能是因为影响比较小所以没有修复,如果要修复的话设计IPC和整个状态管理,可能比较复杂。

(6) bug改进意见

我只能想到比较粗暴的方法就是检测到SSH断开之后多少秒自动强制关闭该标签页。

5.bug反馈

已经通过github发布issue,等待解决。

bug反馈

第二部分 分析

1.工作量分析

假设条件

  • 团队配置:团队人数 6 人左右,计算机大学毕业生,并有专业 UI 支持。
  • 开发目标:从零开始,完成Tabby Terminal的核心功能设计与实现(可能还有一些功能我还没有了解到的),达到稳定可使用版本。

时间估计

阶段 任务 预估周数
需求与设计 竞品调研和用户画像分析 1
UI交互设计 1
核心终端构建 终端基础渲染引擎开发 3
多标签页与分屏交互逻辑开发 2
窗口自适应、文本折行与重排算法优化 2
连接与文件管理 本地Shell自动识别与适配 3
SSH会话管理模块 3
SFTP可视化文件管理面板 3
密钥与密码安全存储箱开发 1
个性化与生态 全局设置中心开发 2
跨设备配置同步功能 1
插件系统基础架构与API接口封装 2
测试与交付 跨平台兼容性测试 2
性能专项优化 1
自动化测试用例编写与全量回归测试 1
总计 28

2.软件质量分析

(1) 对比分析

维度 Tabby Terminal Windows Terminal Hyper
功能完备性 内置功能非常丰富,且可以下载插件 纯粹的终端模拟器 基础功能少,依赖插件扩展
性能与资源 内存占用略高,启动稍慢 内存占用低,启动快 内存占用较高,启动很慢
跨平台支持 全平台支持,且可以配置云同步 仅限Windows平台 全平台支持,但配置同步需手动实现
底层兼容性 存在略微windows兼容问题 对windows兼容极好,但只适用windows 兼容性一般,处理复杂排版偶有瑕疵
易用性/UI 界面现代美观,上手快 原生风格,简洁高效,上手较难 界面极简,配置难度极高

综合上述分析,我认为Tabby Terminal在同类开源软件当中可以排名第一或者至少并列第一。它的内置基础功能就覆盖了几乎所有的常用功能,同时还提供了插件来进行拓展,并且它的界面设计做到了一骑绝尘的美观和优秀,配置起来还非常简单,易于上手。

(2) 提高建议

目前的主要问题还是存在略微的底层兼容性测试不足问题,可以考虑更加完善底层兼容性测试,修复潜在bug,追求完美质量。

第三部分 建议和规划

1.市场现状

(1) 市场概况

市场

  • 直接用户: Tabby Terminal目前在GitHub上拥有大约69.3k个Star,全球累计下载量在百万级别,同时还有超过2.5k个Issue,说明实际活跃人数也相当之多。核心用户群体为全栈开发者、运维工程师以及计算机专业学生等。
  • 潜在用户: 根据Evans Data的数据,全球开发者数量约2600万,而每一位开发者应该都需要使用终端工具,再加上现在各种操作系统和平台百花齐放,以及人们的审美需求日益提高,Tabby Terminal这样一个非常美观的集成终端软件肯定会有越来越多的用户。开发者以及计算机专业学生等,加起来潜在用户至少在千万级别。

(2) 竞争产品

  • Windows Terminal:由微软官方开发,是Windows11默认的现代化终端,平衡了高性能与易用性,并提供优秀的多标签与分屏管理。
  • Hyper:基于Electron构建,以极致的高颜值和丰富的JavaScript插件生态为核心卖点,适合追求视觉个性化的前端开发者。
  • Alacritty:被誉为“速度最快”的终端,采用Rust编写并完全依赖GPU渲染,不提供复杂功能,专注于极致的响应速度与简洁。
  • WezTerm:用Rust编写且功能极其强大的跨平台终端,支持通过Lua脚本进行深度配置,在多路复用和连字显示方面表现卓越。

(3) 产品定位

名称 定位 优势 劣势 竞争态势
Tabby Terminal 适合现代全栈开发者的终端 1.多种终端集成,支持跨平台作业
2.界面极其美观优雅,配置简单
3.操作高度自动化,界面图形化,上手简单
1.内存占用较高,启动较慢
2.存在略微兼容问题
对于新手和经验丰富的全栈开发者都具有很强的吸引力
Windows Terminal Windows平台的原生标杆 1.对底层ConPTY完美支持,兼容性好
2.GPU加速渲染,非常流畅
1.跨平台能力缺失,只支持windows
2.只有简单的终端功能,不支持高级运维功能与插件
在Windows平台上最权威的选择,对Windows单一环境开发有较强控制力
Hyper 极客的Web终端 1.可以完全自定义终端界面
2.拥有非常完善和丰富的插件生态
1.架构较老,基本功能较少,过度依赖插件
2.内存占用极高,启动慢,容易卡顿
用户已经开始衰减,由于Tabby Terminal在它的基础上增加了更多功能,逐渐被替代
Alacritty 性能至上的极简终端 1.拥有最快的渲染速度,资源占用极低
2.配置方式非常灵活,支持文本配置
3.跨平台表现高度统一
1.没有图形化界面,操作和上手难度较大
2.缺少多标签页功能,会影响部分体验
主要吸引硬核以及追求极致效率的开发者,并且需要一定的门槛
WezTerm 可编程的高级终端 1.支持进行多路复用,效率较高
2.拥有较好的跨平台开发能力
3.支持连字字体与内联图片显示等高级终端特性
1.配置需要使用Lua脚本,难度较大
2.缺乏图形化配置界面,不易上手
在性能和功能上达到了很好的平衡,与Tabby Terminal处于相当的地位

2.市场与产品生态

(1) 核心用户群与典型用户画像

核心用户

  • 现代全栈开发者
  • 后端开发工程师
  • 计算机相关专业学生

典型用户画像

  • 学历:本科及以上为主。
  • 年龄:20岁~35岁。
  • 专业:计算机科学与技术、软件工程、网络工程、数据科学等。
  • 爱好:参与开源社区项目、技术博客撰写、进行跨平台开发、科研科创。
  • 收入:具有中等收入,倾向于免费开源软件。
  • 表面需求
    • 功能丰富,支持插件。
    • 界面美观,可以定制。
    • 上手简单,操作可视化。
  • 潜在需求
    • 降低认知负担与上下文切换成本。
    • 身份认同与审美表达。

(2) 用户群体间的关系与用户生态的构建

用户关联

  • 开发者与使用者:部分用户乐忠于开发实用插件进行使用和分享,部分用户乐忠于寻找新的插件进行体验。
  • 相似的工作职责或主题:用户都具有一定的开发需要,可能还会有相似的工作岗位和方向。
  • 共享服务器或计算资源:可能出现一个实验室或者团队都使用Tabby Terminal进行SSH远程连接和工作。

生态构建

  • 允许用户一键导出自己的Tabby环境配置并生成分享码,利于大家交流改进以及更加降低上手难度。
  • 可以研究团队化SSH连接相关功能,使得可以一次性收获一个团队的新用户。

(3) 子产品与相关产品间的关系与产品生态构建

子产品与相关产品间的关系

  • 替代关系:Tabby的子产品SFTP替代了独立FTP软件,SSH管理器替代了Xshell,密码保险箱替代了Password的部分场景。

产品生态构建

  • 开发阿里云、AWS、腾讯云等的官方Tabby 插件,使得Tabby侧边栏能自动拉取用户所有的实例列表,点击直接免密SSH登录。

3.产品规划

(1) 新功能提案

基于之前的bug分析和市场缺口,我建议开发AI助手与团队协作功能,下面是NABCD分析:

  • N
    • 新手用户:不熟悉终端指令,不了解报错含义。
    • 运维团队:经常需要把服务器日志发给同事看,但是截图不仅模糊且无法复制文本。
  • A
    • 集成AI:允许用户选中终端文本,右键解释报错生成修复命令
    • 实时会话分享:生成一个Web链接,允许同事通过浏览器实时观看你的终端操作。
  • B
    • 极大降低新手入门门槛,吸引更多的新用户。
    • 提升远程debug效率,提高用户体验。
    • 通过把单机工具变成协作平台,增加用户粘性。
  • C
    • 现有Warp Terminal的AI功能还算完善,但是闭源且Mac优先。Tabby可以作为开源跨平台界的Warp去抢占Windows/Linux市场。
  • D
    • 在GitHub的readme首页展示AI修复bug的功能以及团队协作功能。
    • 在视频平台发布相关的视频演示。
    • 在开发者社区中发布相关的通知以及操作教学。

(2) 团队角色配置

角色 人数 职责说明
项目经理 1人 负责需求控制、进度管理
后端开发 2人 负责云同步服务、AI接口的中转与鉴权、实时会话分享的搭建
前端开发 1人 负责UI交互、AI对话侧边栏开发
核心系统开发 1人 负责底层进程管理、性能优化、跨平台兼容性适配
测试 1人 负责搭建自动化测试流水线进行测试

(3) 详细规划

阶段一:需求分析与产品设计

  • Week 1:需求收集与竞品调研,完成产品交互原型图设计。
  • Week 2:确定前后端技术架构,完成数据库设计与核心API接口定义。

阶段二:核心功能开发

  • Week 3~4:完成团队组织架构模块的后端逻辑与前端界面搭建。
  • Week 5~6:开发团队配置共享空间,实现SSH列表、跳板机IP等配置在团队成员间的云端同步与隔离。
  • Week 7~8:接入大语言模型API,开发终端AI助手侧边栏。
  • Week 9:开发实时会话广播功能原型,实现跨设备、跨平台的远程协助。
  • Week 10:前后端联调与初步集成测试。跑通完整主干流程。

阶段三:优化与内测准备

  • Week 11:UI细节打磨与交互动效优化,进行性能压测,优化多人同时在线同步配置时的响应速度。
  • Week 12:开启团队内部Alpha测试,模拟真实的开发与运维协同场景,记录核心体验的阻力点。
  • Week 13:集中修复Alpha测试发现的bug,进行Windows、macOS和Linux的跨平台兼容性测试。

阶段四:公测、发布与推广

  • Week 14:准备最终版用户手册和API接入文档,在GitHub等社区开放Beta版本的限额公测申请。
  • Week 15:收集公测期间的用户反馈与崩溃日志,进行上线前的最后一轮bug修复与安全合规审查。
  • Week 16:正式发布,在Product Hunt、V2EX和各大开发者技术论坛进行上线推广与活动运营。

posted on 2026-03-13 13:34  一只大黄熊  阅读(126)  评论(0)    收藏  举报

导航