- 以VS Code Remote Development相关功能为例,选择一个用例进行需求分析和逆向工程,按课堂要求完成一篇博客文章。
- 我选择了github上GitHub - microsoft/vscode: Visual Studio Code这个用例进行分析
-
Visual Studio Code Remote - SSH 扩展允许在运行 SSH 服务器的任何远程计算机、虚拟机或容器上打开远程文件夹,并充分利用 VS Code 的功能集。连接到服务器后,您可以与远程文件系统上任何位置的文件和文件夹进行交互。无需在本地计算机上提供源代码即可获得这些优势,因为扩展直接在远程计算机上运行命令和其他扩展。
需求分析
- 用户需要能够通过 SSH、容器或 WSL 等方式连接到远程服务器或云平台。
- 用户希望在本地使用 VS Code 编辑器进行代码编辑和调试等操作,与本地编辑器相同的体验和功能。
- 用户需要能够快速上传和部署代码,改善协作效率。
- 用户希望远程连接是安全的,并且可以保护敏感数据和代码。
- 用户需要支持跨平台开发,可以在不同操作系统之间轻松切换。
1、根据以上需求我们可以抽象出以下用例
System:remote development
Actor:client
UC1: Remote connection to server
UC2:Remote debugging
2、找出关键步骤进行剧情描述
UC1:Remote connection to server | |
Actor:User | System:VS Code Remote to server |
1) 点击远程连接图标 | 1)显示需要用户输入连接密码的UI |
2)输入SSH密码 | 2)显示连接成功的UI |
3)点击打开文件的UI | 3)显示文件选择的UI |
4)点击文件 | 4)显示文件内容 |
选取2)进行时序分析:
开发人员在本地计算机上打开 VS Code 编辑器,并点击“Remote-SSH: Connect to Host”按钮来连接远程服务器或云平台。之后,VS Code 编辑器会发送 SSH 请求到远程服务器或云平台。在收到请求后,远程服务器或云平台会响应 SSH 请求,并将请求转发给 VS Code Server。然后,VS Code Server 会下载 VS Code 插件和配置环境等,并将更改保存回远程服务器或云平台。最终,VS Code 编辑器和远程服务器或云平台间的连接建立完成,开发人员可以在本地编辑器中直接对远程计算机上的代码进行编辑和调试等操作。
逆向工程
1、连接远程计算机:使用 SSH、容器或 WSL 等方式连接到远程计算机。
在 VS Code Remote Development 中,用户可以通过 Remote-SSH: Connect to Host 命令来连接到一个指定的远程计算机。当用户选择一个 SSH 连接配置后,VS Code 会自动使用该配置进行连接,并尝试使用提供的 SSH 密钥进行身份验证。如果一切正常,用户就可以在 VS Code 中打开远程计算机上的文件,并在其中进行开发了。
可以看到有一个远程连接类:
2、调试代码:
分析远程调试类的属性和方法,如启动调试会话、设置断点、监视变量等。
确定断点设置类和断点命中类的属性和方法,如设置断点、检测断点命中等。
考虑断点设置类和断点命中类与远程调试类之间的交互关系,以实现在远程服务器上的断点调试功能。
确定变量调试信息显示类的属性和方法,如显示调试信息等。
考虑变量调试信息显示类与远程调试类之间的交互关系。
逆向工程这里参考了:Gitee.com