ForgeHelm › 接手一套没有文档的系统

接手一套没有文档的系统

原团队已经不在,没人说得准动哪里会坏。与其凭感觉,不如先扫一次,把这套系统有什么、谁调用谁、风险在哪摊开来看。

四种情况,同一个问题

🚪

自己写的,人走了

系统是信息部门自己开发、自己维护的,写的人几年前离职,交接只有一份文档。现在要改一个字段,没人敢保证不会弄坏别的地方。

📦

外包做的,厂商不再往来

当年委外开发的系统,验收完就结项,原厂商换了人或已经不接了。手上只有一包源代码,不知道里面长什么样。

🤝

客户把系统交给您维护

顾问或开发商接手客户的既有系统,报价前要讲得出「改得动吗、要多久」,却只能靠人工翻代码估。

📑

投标接手前一家

中标后要接续前一家做的系统,交接与验收都要拿得出凭据,口头上的经验谈客户签不下去。

扫完第一天,您手上会有什么

不是一句「风险偏高」,是可以拿去开会、指得到文件的东西。

🗺️

这套系统长什么样

类图、包图、组件图、调用图、依赖图、数据流图、时序图、部署图——共 20 种架构图,直接从代码生成。可按角色挑要看哪几张(系统分析、系统设计、开发、数据库管理、界面设计、项目管理、合规、决策层共九种),不必一次看完全部。

📍

哪里有问题,在第几行

31 套框架同时对照,每一条不合规项指到具体文件与行号,按风险排序。这份清单就是估工时与排优先级的依据。

🧾

用了哪些依赖包、有没有雷

SBOM 列出所有依赖包、许可证条款与已知漏洞,输出 CycloneDX 与 SPDX 两种格式。接手前先知道有没有踩到许可证问题或停止维护的包。

🎯

整体健康度,而且说明哪些是估的

八轴风险指纹:安全态势由扫描实测;文档、测试、依赖、技术债四轴目前是系统预设估值,图上标示(估),也不会被当作风险发现项。我们宁可标出来,也不想让您拿一张看起来很满的图去开会。

🧑‍💻

人的那一面

风险评估问卷补上扫描看不到的部分:系统交接、需求追溯、变更预测、验收标准、沟通成本五个维度。分数来自填答,不是代码扫描。

报告与产出的所有权归您,可直接提供给客户或上级,作为交接、验收或报价的附件。

扫得动什么

这通常是第一个问题,所以直接写清楚。分析分两层:.NET 家族除了语法树,还会跑合规与安全规则;其他 62 个技术家族做语法解析与调用关系,但不跑那些规则。

深度分析(语法树层级)

C#、VB.NET、ASP.NET WebForms(.aspx 与 code-behind)。类继承与依赖关系、API 端点、数据流、业务逻辑与错误处理都在这一层解析。

合规规则扫描的文件

.cs、.vb、.aspx、.sql、.config、.json、.xml、.yml、.yaml、.ps1、.sh、.tf,以及 .md 与 .txt 文档。原有 24 套框架的缺陷清单就是从这些文件扫出来的;AI 治理那 7 套另外看所有支持语言里用到 AI 的地方。.cbl、.pas、.pbl、.prg、.abap 这些扩展名不在清单内,所以老语言源代码里的硬编码密码或 SQL 注入模式,缺陷清单不会列出来——那一层看的是结构与调用关系。

语法解析与调用关系(62 个技术家族)

Java、Python 2/3、PHP 5/7/8、Go、Rust、C++、SAP ABAP、PowerBuilder、VB6、COBOL(85/2002/IBM/Micro Focus/GnuCOBOL)、Delphi、FoxPro、Fortran、Pro*C、传统 ASP(VBScript/JScript)、AngularJS、jQuery、Ember、TypeScript、CoffeeScript、Blazor、Flutter、MAUI、Xamarin、Flash/Flex、Silverlight,以及没有源代码的 .NET DLL(反编译后盘点)。这一层不只是数文件:会抽出程序、类与过程,建出谁调用谁的调用图,记录每段程序的条件、循环与异常处理数量,并标出动态调用点——运行期才决定调用谁的地方,迁移时最容易漏掉的就是它。COBOL 另外会展开 copybook(含 REPLACING)并识别方言。这些结果与 .NET 那一层合并进同一份清单,架构图与影响范围分析一并覆盖。

代码从哪里来

Git 仓库地址(GitHub、GitLab、Bitbucket、Azure DevOps、Gitea 等皆可;内网自建的 Git 服务器需要在配置中开启允许),或直接上传 ZIP,单次上限 2 GB。没有 CI、没有 PR 流程也用得上——把文件夹压成 ZIP 就能扫。

这一层需要在分析引擎(Agent)主机上安装 Python;各技术家族可单独开关。

这些目前不支持

TFVC 与 SVN 不能直接连(可改用 ZIP 上传)、Oracle PL/SQL 包、Excel VBA 宏,以及 PLC 与 OT 控制器程序。与其让您扫到一半才发现,不如先讲。

如果要换掉旧技术

技术栈迁移模块先出一份评估:这套系统现在用什么、换过去要分几个阶段、每个阶段动到哪些文件。自动转换(Codemod)目前以 .NET 为主,例如 WebForms → Razor、EF6 → EF Core、.NET Framework → .NET 9;其他语言提供评估与迁移前后的合规对照,转换本身仍由您的团队执行。

  • 迁移前后的合规状态并排比较——证明升级过程没有把安全性做低
  • 每个阶段的产出留在文档中心,可下载、可回溯
  • 转换结果可直接提为 Pull Request(GitHub、GitLab、Bitbucket、Azure DevOps、Gitea)

先扫一个项目看看

免费版是永久免费的:1 席、每月 3 次分析,在线查看完整报告与分数;在线自助注册尚未开放,想看实际结果请先与我们联系。代码不能出内网的话,直接跟我们谈在您自己环境里跑的做法。