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

1. 作业要求

以VS Code Remote Development相关功能为例,选择一个用例进行需求分析和逆向工程,按课堂要求完成一篇博客文章。
https://code.visualstudio.com/
https://github.com/microsoft/vscode

2. VScode Remote Development简介

Visual Studio Code远程开发功能允许用户通过SSH、容器、WSL方式连接访问远程开发环境,在本地的VScode编辑器中实现远程服务器中的开发环境配置、代码编辑、程序编译运行、程序调试等远程开发功能,从而可以使用性能强大的服务器资源、隔离开发环境、简化开发环境搭建、保证多人开发时环境一致性、便于代码共享和多版本管理等。

基于SSH的远程开发架构(通过SSH连接的VSCode远程开发架构图)
本文将针对其“远程调试”功能(基于SSH连接)做需求分析和逆向工程分析。

3. “基于SSH的远程调试”需求分析

3.1 功能需求

  • 连接远程开发设备
  • 在远程设备上安装调试器
  • 配置调试器
  • 执行调试功能,如设置断点、监视打印变量、查询内存等
  • 返回正确的调试信息
  • 保存调试结果

3.2 非功能需求

  • 建立连接时,确保用户信息安全
  • 响应时间应尽可能缩短,远程连接、配置、返回结果等非调试步骤响应时间 < 1s
  • 占用较少的本地CPU、内存资源

3.4 用例图

在这里插入图片描述

4. “基于SSH的远程调试”用例逆向工程分析

4.1 代码开发语言、目录结构、核心模块

  • 主要开发语言:TypeScript

![在这里插入图片描述](https://img-blog.csdnimg.cn/4462d85ad4744bbd92a49d00023e693d.png = 100x100)

  • 程序源码目录:src/vs中
    在这里插入图片描述
文件夹名称功能
code进程管理
editor代码编辑
platform平台管理
server远程连接
workbench用户UI、插件
  • 远程调试功能的核心模块
模块文件功能
src/vs/workbench/api/common/extHostDebugService.ts定义调试器的本地API接口,如设断点、监视变量等
src/vs/workbench/contrib/debug/node/debugAdapter.ts调试器适配器,实现本地VScode程序与远程设备上调试器之间的通信
src/vs/workbench/contrib/debug/common/abstractDebugAdapter.ts调试适配器的抽象类定义

4.2 “远程调试”的对象交互建模

在这里插入图片描述

4.3 设计类图

debugAdapter.ts源程序的主要类关系如下:
在这里插入图片描述

5. 小结

VScode虽然是轻量级代码编辑器,然而经过多年的“积累”,其插件库较为庞大,目录层次、程序文件数量多,加上自身对它的开发框架不熟悉,导致初期分析远程开发功能时遇到较大困难。突破口是搜索“debug”关键字,查找与调试功能相关的文件,再筛选出于远程调试相关的部分,然后通过阅读核心模块debugAdapter.ts,获得与其相关功能模块的位置,进而梳理出远程调试功能模块的脉络。通过本次实践,强化了开源程序的阅读分析能力,了解用例图、UML图、泳道图等工程图的在设计软件工程项目中的强大作用以及它们的简单使用方法,加深我对需求分析、软件设计等知识点的理解。

学号后三位:243

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值