[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:

Tabby集成的CMD:

(3) 可复现性
可以稳定复现。
(4) 复现步骤
- 在Tabby中打开CMD,输入一段非常长的文本。
- 调整界面大小,使得在自动换行处的行末有自动插入的空白字符。
- 使用
Ctrl+Shift+F对被自动插入的空白字符截断的字符串进行搜索,发现搜不到。
(5) bug分析
猜测是因为Tabby在进行字符串搜索的时候直接读取终端缓冲区匹配,然后没有注意到这个特殊的空格字符,当做了普通的空格字符进行匹配,而原生CMD中会专门识别这个自动填充的空格字符替换掉。
大概是测试人员测试的时候没有考虑到这么细致的情况,但是实际上带来的影响还是比较大的,因为字符串搜索其实算是比较常用和实用的功能。
(6) bug改进意见
可能可以在执行搜索操作前,增加一个预处理步骤,检测并移除缓冲区中位于行尾的软空格。
4.第二个bug:SSH会话断开后标签页残留
(1) bug严重性
⭐⭐:不常用功能出现问题,或者问题可以自己解决。
(2) 情况描述
在使用Ctrl+D快捷键断开SSH链接之后无法正常自动关闭标签页,仅显示logout,光标一直闪烁,无法进行其他操作。

(3) 可复现性
几乎可以稳定触发,共测试20次,其中触发18次。
(4) 复现步骤
- 建立一个 SSH 连接。
- 使用
Ctrl+D快捷键结束对话。
(5) bug分析
可能是当SSH快速断开时,Tabby的前端渲染线程和后端主进程之间由于存在通信延迟,导致关闭指令被渲染指令阻塞或覆盖。
这个bug可能严格说起来并不完全影响正常使用,因为还可以手动关闭标签页,可能是因为影响比较小所以没有修复,如果要修复的话设计IPC和整个状态管理,可能比较复杂。
(6) bug改进意见
我只能想到比较粗暴的方法就是检测到SSH断开之后多少秒自动强制关闭该标签页。
5.bug反馈
已经通过github发布issue,等待解决。

第二部分 分析
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链接,允许同事通过浏览器实时观看你的终端操作。
- 集成AI:允许用户选中终端文本,右键
- 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和各大开发者技术论坛进行上线推广与活动运营。
浙公网安备 33010602011771号