作业4:从需求分析到软件设计

一、作业要求

 作业4:从需求分析到软件设计

学号:504

二、需求分析

VS Code是一款轻量级的跨平台代码编辑器,它通过各种插件可以扩展出很多功能,满足各种用户的需求。Remote Development就是VS Code上的一款插件,它允许开发者将容器、远程计算机或 Windows Subsystem for Linux (WSL) 作为完整的开发环境。

该插件使得用户能够:

  1. 在部署相同的操作系统上进行开发,或者使用更大或更专业的硬件。
  2. 把开发环境作为沙箱,以避免影响本地计算机配置。
  3. 让新手轻松上手,让每个人都保持一致的开发环境。
  4. 使用原本在本地环境不可用的工具或运行时,或者管理它们的多个版本。
  5. 在 WSL 里开发 Linux 应用。
  6. 从多台不同的计算机访问现有的开发环境。
  7. 调试在其他位置(比如客户网站或云端)运行的应用程序。

对上述功能进行需求分析:

功能性需求:

  1. 远程连接:用户通过VS Code远程连接插件,与远程服务器建立连接。
  2. 建立远程工作区:用户在本地的VS Code打开远程工作区,可以编辑、调试和运行远程服务器上的代码。
  3. 文件传输:用户可以在本地和远程服务器之间进行下载或上传文件,以完成开发工作。
  4. 调试代码:用户可以使用VS Code的调试功能,在远程服务器上进行代码运行和调试。

非功能性需求:

  1. 安全性:采用必要的措施保证远程连接的安全性,防止信息泄露
  2. 高可靠性:防止数据在传输过程中发生变化,导致数据传输失败或者传输了错误的数据
  3. 性能:远程服务器的响应速度要快,本地占用的资源要尽可能少

用例提取:
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、Remote connection to server

  • 通信协议:选择SSH协议作为远程连接的安全通信协议,提供数据传输的机密性和完整性。支持基于密码和SSH密钥的身份验证,提供用户友好的连接配置界面,包括主机地址、端口、用户名、密码和SSH密钥的输入字段。
  • 身份验证:要研究远程连接时的身份验证机制,如用户名密码验证、SSH密钥验证等。 研究安全性措施,如加密传输、防止中间人攻击等。
  • 会话连接管理:客户端可能维护一个连接池,用于管理多个远程连接。连接管理模块可能包含功能,如建立、断开、保持活动连接、重新连接等。用户可以配置远程连接的参数,如远程计算机的地址、端口号、身份验证凭据等。 可能存在一些高级配置选项用于调整连接行为和性能,如连接超时时间、连接重试策略等。
  • 远程访问文件系统:研究如何实现远程文件系统访问,包括文件的上传、下载和同步等。研究文件系统访问的协议和API,如SSH文件传输协议(SFTP)等。
  • 错误处理和故障恢复:研究远程连接中可能出现的错误和异常情况,如连接失败、网络中断等。分析错误处理机制和故障恢复策略,以保证系统的可靠性和稳定性。

2、Establish remote workspace

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

3、Update code file to workspace

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

4、Remote debugging

  • 用户界面:分析用户界面,确定用户界面元素,如启动远程调试的按钮、调试器面板等。确定用户界面与其他相关组件或类之间的交互关系。
  • 调试协议: 远程调试的实现通常涉及特定的调试协议,以支持在本地环境中对远程应用程序进行调试。调试协议可能是一种与VS Code兼容的协议,用于传递调试相关的命令、事件和数据。分析远程调试类的属性和方法,如启动调试会话、设置断点、监视变量等。确定远程调试类与其他相关类之间的关联关系,如远程连接类、调试器类等。
  • 断点设置:客户端提供断点设置功能,允许用户在源代码中设置断点,以便在调试过程中暂停应用程序的执行。分析断点设置和命中的实现方式,如在远程服务器上设置断点等。确定断点设置类和断点命中类的属性和方法考虑断点设置类和断点命中类与远程调试类之间的交互关系。
  • 变量查看:客户端可能支持查看变量的值和状态,以帮助用户理解应用程序的内部状态。 
  • 调试配置:用户需要提供一些调试配置信息,如远程应用程序的运行参数、调试器的设置等。
  • 调试器扩展:客户端可依赖于特定的调试器扩展,用于与远程应用程序进行通信和解析调试相关的信息。
  • 调试会话管理:客户端可能维护调试会话,包括当前正在调试的应用程序的状态和相关信息。用户可能能够启动、停止、暂停和继续调试会话。

学号后三位:504

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值