作业4:从需求分析到软件设计
Remote Development插件官方介绍如下
可以看出,用户的需求主要体现在以下几个方面
- 远程连接:用户可以通过多种方式进行远程连接,如SSH、容器、WSL等。不同的连接方式应该能够满足不同用户的需求和偏好。
- 文件传输:用户可以在本地和远程计算机之间进行文件传输,包括上传、下载和同步文件。这可以通过直接拖放、命令行或其他集成方式来实现。
- 连接管理:用户可以方便地管理和配置多个远程连接,包括添加、编辑和删除连接配置。连接管理界面应该直观易用,允许用户轻松切换和访问不同的远程计算机或服务器。
- 访问权限控制:用户可以对远程连接进行访问权限控制,确保只有授权用户可以进行远程访问。这可以通过身份验证、密钥管理或其他安全机制来实现。
本篇文章以SSH方式进行远程连接为例,进行需求分析与逆向工程。
SSH方式进行远程连接的需求分析
使用SSH进行远程连接需要考虑到以下几个方面的需求:
- 安全性
- 身份验证
- 多平台支持
- 连接管理
需求分析的两类基本方法为原型化方法和建模方法。
我们选择对SSH进行用例建模——
将需求提取用例,可以得到:
System: Remote-SSH
Actor: User
Use Cases:
UC1: Connecting to a remote server
UC2: Managing connections
UC3: Using SSH keys for authentication
UC4: File transfer and synchronisation
用例图如下:
对UC1:远程连接进行扩展用例表示,可以得到以下的表格
Actor: User | System: Remote-SSH |
---|---|
1.TUCBW:用户在VS Code中打开远程连接功能 | 2.系统初始化连接管理函数 |
3.用户选择SSH连接选项,并输入远程服务器的IP地址或主机名。 | 4. 系统查找服务器的IP地址是否正确,并查找密钥 |
5.用户提供必要的身份验证信息,如用户名和密码或私钥。 | 6. 系统核验密钥,如果核验正确,则创建SSH连接登录到远程服务器 |
7.TUCEW 用户在远程服务器上可以访问和编辑文件。 |
逆向工程
对SSH进行远程连接这一用例进行逆向分析,可以得到其应该包括以下内容:
- 用户界面设计:分析信息的展示与交互方式,包括表格的设计,配置界面的显示,具体状态,例如错误信息的提示、连接状态的展示等等
- SSH协议解析:对SSH协议进行逆向工程,解析协议的消息格式、加密算法、身份验证流程和会话管理等细节。
- 远程连接管理:研究SSH客户端和服务器的连接管理机制,包括连接的建立、断开、保持活跃等细节,以及对多个并发连接的支持。
- 密钥交换算法:分析SSH协议中使用的密钥交换算法,如Diffie-Hellman算法或椭圆曲线算法,以了解密钥交换的具体实现和安全性。
- 加密和消息完整性校验:分析SSH协议中使用的加密算法和消息完整性校验算法,如AES、HMAC等,以理解数据传输的保护机制和安全性。
学号后三位:522