高软作业04

以VS Code Remote Development相关功能为例,选择一个用例进行需求分析和逆向工程
 https://code.visualstudio.com/
 https://github.com/microsoft/vscode

选择VS Code Remote Development调试代码进行用例分析和逆向工程。

一、需求分析

需求分析就是需求分析师对用户期望的软件行为进行表述,并进一步用对象或实体的状态、属性和行为来定义需求。

VS Code是一个免费开源的轻量级代码编辑器,其用户主要是开发人员。VS Code提供远程开发服务VS Code Remote Development,可以让用户进行远程开发,包括远程编辑、调试代码等功能。VS Code Remote Development可以让用户进行远程代码的编辑等开发工作。

通过参考资料,需要确定VS Code Remote Development编辑代码的主要特点和用例。

  • VS Code Remote Development通过SSH等方式连接远程服务器;
  • VS Code支持在远程计算机上安装各种运行时和扩展,并且可以通过设置端口转发等方式进行访问;
  • VS Code可以通过 sftp、rsync 等工具在本地计算机和远程服务器之间同步文件;
  • VS Code支持在远程服务器上进行调试,并且可以通过端口转发等方式进行调试;
  • VS Code使用 SSH 隧道进行数据传输,并且支持通过密钥进行身份验证,保证数据传输的安全性。

由于本次选择VS Code Remote Development的调试代码功能进行分析,本次仅对调试代码功能进行需求分析。

我们可以根据分析得知:

  1. 远程连接服务器
  2. 建立远程工作区
  3. 上传代码文件(或是编辑代码文件)
  4. 远程调试

用例提取:

  • System: VS Code Remote Development
  • Actor: VS Code User
  • User Cases:
    • UC1: Remote connection to server
    • UC2: Establish remote workspace
    • UC3: Update code file to workspace
    • UC4: Remote debugging

二、逆向工程

1、连接远程服务器

配置环境:

  • 通信协议和传输方式:
    • 逆向工程需要确定用于远程连接的通信协议和传输方式。这里选择了常见的SSH(VS Code提供了SSH的扩展安装包,可以直接配置)
    • 针对选择的协议和传输方式,需要了解其相关规范和实现细节。
  • 身份验证和安全性:
    • 逆向工程需要远程连接时的验证机制,如用户名密码验证、SSH密钥验证等(可以在config.json文件中配置)。

运行过程:

  • 连接管理和会话保持:研究如何管理远程连接和会话的生命周期,包括连接建立、断开等。
  • 远程文件系统访问:
    • 逆向工程需要研究如何实现远程文件系统访问,包括文件的上传、下载和同步等。
    • 研究文件系统访问的协议和API,如SSH文件传输协议(SFTP)等。
  • 错误处理和故障恢复:
    • 研究远程连接中可能出现的错误和异常情况,如连接失败、网络中断等。
    • 分析错误处理机制和故障恢复策略,以保证系统的可靠性和稳定性。

2、建立远程工作区

  • 用户界面需求:
    • 分析用户界面,确定用户界面元素,如打开远程工作区的命令按钮、工作区管理器等。
    • 确定用户界面与其他相关组件或类之间的交互关系。
  • 远程工作区类:
    • 分析远程工作区类的属性和方法,例如创建或打开远程工作区、同步文件等。
    • 确定远程工作区类与其他相关类之间的关联关系,如远程连接类、文件同步类等。
  • 命令执行功能:
    • 分析远程服务器上执行命令的实现方式,通过SSH远程执行命令等,确定命令执行类的属性和方法,如执行命令、获取命令输出等。
    • 考虑命令执行类与远程工作区类之间的交互关系。
  • 错误处理和故障恢复:
    • 考虑远程工作区类和相关类的错误处理机制,如处理连接错误等。
    • 确定错误处理和故障恢复类的属性和方法,如捕获和处理异常等

3、上传代码文件

  • 远程工作区类:
    • 分析远程工作区类的属性和方法,例如创建或打开远程工作区、同步文件等。
    • 确定远程工作区类与其他相关类之间的关联关系,如远程连接类、文件同步类等。
  • 同步文件功能:
    • 分析文件同步功能的实现方式,如通过SSH协议传输文件。
    • 确定文件同步类的属性和方法,如上传文件、下载文件等。
    • 考虑文件同步类与远程工作区类之间的交互关系。
  • 命令执行功能:
    • 分析远程服务器上执行命令的实现方式,通过SSH远程执行命令等,确定命令执行类的属性和方法,如执行命令、获取命令输出等。
    • 考虑命令执行类与远程工作区类之间的交互关系。
  • 错误处理和故障恢复:
    • 考虑远程工作区类和相关类的错误处理机制,如处理连接错误等。
    • 确定错误处理和故障恢复类的属性和方法,如捕获和处理异常等

4、调试代码

  • 用户界面需求:
    • 分析用户界面,确定用户界面元素,如启动远程调试的按钮、调试器面板等。
    • 确定用户界面与其他相关组件或类之间的交互关系。
  • 远程调试类:
    • 分析远程调试类的属性和方法,如启动调试会话、设置断点、监视变量等。
    • 确定远程调试类与其他相关类之间的关联关系,如远程连接类、调试器类等。
  • 断点设置和命中:
    • 分析断点设置和命中的实现方式,如在远程服务器上设置断点等。
    • 确定断点设置类和断点命中类的属性和方法,如设置断点、检测断点命中等。
    • 考虑断点设置类和断点命中类与远程调试类之间的交互关系,以实现在远程服务器上的断点调试功能。
  • 调试信息显示:
    • 分析调试信息显示的实现方式,如在远程服务器上显示调试信息等。
    • 确定变量调试信息显示类的属性和方法,如显示调试信息等。
    • 考虑变量调试信息显示类与远程调试类之间的交互关系。
  • 错误处理和故障恢复:
    • 考虑远程调试类和相关类的错误处理机制,以处理连接错误、调试错误等。
    • 确定错误处理和故障恢复类的属性和方法,如捕获和处理异常、显示错误信息等。

本文参考了大佬的博客:https://www.cnblogs.com/zxc3wyx/p/17441991.html

作者:095

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值