四種情況,同一個問題
自己寫的,人走了
系統是資訊部門自己開發、自己維護的,寫的人幾年前離職,交接只有一份文件。現在要改一個欄位,沒人敢保證不會弄壞別的地方。
外包做的,廠商不再往來
當年委外開發的系統,驗收完就結案,原廠商換了人或已經不接了。手上只有一包原始碼,不知道裡面長什麼樣。
客戶把系統交給您維護
顧問或開發商接手客戶的既有系統,報價前要講得出「改得動嗎、要多久」,卻只能靠人工翻程式碼估。
標案接手前一手
得標後要接續前一家做的系統,交接與驗收都要拿得出憑據,口頭上的經驗談客戶簽不下去。
掃完第一天,您手上會有什麼
不是一句「風險偏高」,是可以拿去開會、指得到檔案的東西。
這套系統長什麼樣
類別圖、套件圖、元件圖、呼叫圖、相依圖、資料流圖、序列圖、部署圖——共 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)