您现在的位置是:首页 >技术教程 >高软作业4:从需求分析到软件设计网站首页技术教程
高软作业4:从需求分析到软件设计
一、需求分析
当我们要去逆向一个程序,首先要明白我们想从这个程序获得那些体验,这时候就需要进行需求分析。也就是这个程序哪些功能是我们自己制作时需要去实现的。
功能需求
1.完整的开发和调试功能。
2.源码的同步。
3.运行远程主机的系统和开发环境。
4.允许多个机器或位置访问远程主机。
5.本地机器可以连接到不同开发环境的远程主机,使用容器和WSL。
性能需求
稳定且延迟在可接受范围的连接。
安全需求
1.网络连接的安全
2.权限控制。
二、逆向工程
逆向工程是指通过对产品、系统或设备进行分析和研究,以了解其内部结构、工作原理和设计特点的过程。
连接前:
VSCode采用的是SSH连接的方式
针对SSH连接,SSH建立连接的过程主要分为下面几个阶段:
SSH协议版本协商阶段:客户端通过TCP三次握手与服务器的SSH端口建立TCP连接。服务器通过建立好的连接向客户端发送一个包含SSH版本信息的报文来协商
密钥和算法协商阶段:服务器端和客户端分别发送算法协商报文给对端,服务器端和客户端利用Diffie-Hellman密钥交换算法,主机密钥对等参数,生成共享密钥和会话ID。
认证阶段:客户端向服务器端发送认证请求,请求中包含用户名,认证方法,密码或密钥。服务器端对客户端进行认证,如果认证失败,则向客户端发送失败消息,其中包含可以再次认证的方法列表。
会话请求阶段:服务器等待客户端请求。认证完成后,客户端想服务器发送会话请求,服务器处理客户端请求。
交互会话阶段:客户端将要执行的命令加密发送给服务器。服务器收到后,解密命令,执行后将结果加密返回客户端。
身份验证和安全性
这个其实在上面SSH的连接过程中已经体现,连接的时候就会进行用户名和密码的验证才会进行后面的操作。
连接过程中:
连接的管理和会话保持:研究如何管理远程连接和会话的生命周期,包括连接的建立和断开。
错误处理和故障恢复
研究远程连接中可能出现的错误和异常,如连接失败和网络中断。
分析错误处理机制和恢复策略以保证系统的高可用性和稳定性。
三、 总结
需求分析和逆向工程是软件开发和系统设计过程中的两个关键概念,在不同的阶段和目的下发挥着重要的作用。
需求分析可以明确需求,避免误解和偏差,保证产品能够提供预期功能。逆向工程可以提供关于已有系统的深入信息,为改进、集成或替换系统提供依据。在实验中学习这些知识为我以后的工程开发与实践提供了帮助。