文章目录
1. 作业要求
以VS Code Remote Development相关功能为例,选择一个用例进行需求分析和逆向工程,按课堂要求完成一篇博客文章。
https://code.visualstudio.com/
https://github.com/microsoft/vscode
2. VScode Remote Development简介
Visual Studio Code远程开发功能允许用户通过SSH、容器、WSL方式连接访问远程开发环境,在本地的VScode编辑器中实现远程服务器中的开发环境配置、代码编辑、程序编译运行、程序调试等远程开发功能,从而可以使用性能强大的服务器资源、隔离开发环境、简化开发环境搭建、保证多人开发时环境一致性、便于代码共享和多版本管理等。
(通过SSH连接的VSCode远程开发架构图)
本文将针对其“远程调试”功能(基于SSH连接)做需求分析和逆向工程分析。
3. “基于SSH的远程调试”需求分析
3.1 功能需求
- 连接远程开发设备
- 在远程设备上安装调试器
- 配置调试器
- 执行调试功能,如设置断点、监视打印变量、查询内存等
- 返回正确的调试信息
- 保存调试结果
3.2 非功能需求
- 建立连接时,确保用户信息安全
- 响应时间应尽可能缩短,远程连接、配置、返回结果等非调试步骤响应时间 < 1s
- 占用较少的本地CPU、内存资源
3.4 用例图
4. “基于SSH的远程调试”用例逆向工程分析
4.1 代码开发语言、目录结构、核心模块
- 主要开发语言:TypeScript
![在这里插入图片描述](https://img-blog.csdnimg.cn/4462d85ad4744bbd92a49d00023e693d.png = 100x100)
- 程序源码目录:src/vs中
文件夹名称 | 功能 |
---|---|
code | 进程管理 |
editor | 代码编辑 |
platform | 平台管理 |
server | 远程连接 |
workbench | 用户UI、插件 |
- 远程调试功能的核心模块
模块文件 | 功能 |
---|---|
src/vs/workbench/api/common/extHostDebugService.ts | 定义调试器的本地API接口,如设断点、监视变量等 |
src/vs/workbench/contrib/debug/node/debugAdapter.ts | 调试器适配器,实现本地VScode程序与远程设备上调试器之间的通信 |
src/vs/workbench/contrib/debug/common/abstractDebugAdapter.ts | 调试适配器的抽象类定义 |
4.2 “远程调试”的对象交互建模
4.3 设计类图
debugAdapter.ts源程序的主要类关系如下:
5. 小结
VScode虽然是轻量级代码编辑器,然而经过多年的“积累”,其插件库较为庞大,目录层次、程序文件数量多,加上自身对它的开发框架不熟悉,导致初期分析远程开发功能时遇到较大困难。突破口是搜索“debug”关键字,查找与调试功能相关的文件,再筛选出于远程调试相关的部分,然后通过阅读核心模块debugAdapter.ts,获得与其相关功能模块的位置,进而梳理出远程调试功能模块的脉络。通过本次实践,强化了开源程序的阅读分析能力,了解用例图、UML图、泳道图等工程图的在设计软件工程项目中的强大作用以及它们的简单使用方法,加深我对需求分析、软件设计等知识点的理解。
学号后三位:243