コラム

前回の記事では、経営層向けに「見える化の価値」を整理しました。今回は視点を変え、技術者が実際にどのようにDelphi資産やDB資産をリバースエンジニアリングしながら解析し、設計書として展開できるのかを具体的に解説します。
DFM(フォーム定義)、PAS(イベント処理)、埋め込みSQL、そしてDDL(テーブル定義)──これらを対象に、設計情報を再構築するリバースエンジニアリングの流れを追いながら、VSSD上での設計書化までを紹介していきます。
Delphiのアプリケーションは主に以下の3つの要素で構成されています。
・DFMファイル:フォーム定義。UIコンポーネントの配置やプロパティ、イベントの紐付けが記録される。
・PASファイル:イベントハンドラやビジネスロジックを記述するソースコード。
・埋め込みSQL:フォームやコード内に直接記述されたSQL文。
これらが密結合して動作するため、ブラックボックス化すると解析が難しくなります。
アプリケーション資産だけでなく、DB資産も合わせて解析する必要があります。
・テーブル定義・ビュー定義:DDL文(Create文)から生成する。
・ドメイン定義:テーブルの各項目から項目定義を抜き出すことで、同名項目の定義に流用・管理を一元化できる。
つまり、アプリケーション資産(DFM/PAS/SQL)とDB資産(DDL)を両輪で扱うことで、初めてシステム全体の設計情報が揃います。
▼ 関連記事:『リバースエンジニアリング』について詳しく解説したコラムはこちら
アプリケーション資産とDB資産を機械的に解析することで、設計書を自動生成します。
・画面・クラス定義
ー レイアウト(DFMから)
ー 処理記述(PASから)
ー SQL呼び出し(アプリ内SQLから)
・テーブル・ビュー・ドメイン定義(DDLから)

設計書だけでなく、下記のような関連情報もシステムの見える化には重要です。
・アプリケーション間の依存関係を可視化
・アプリケーションとDBのCRUD関係を整理
・システム全体の構造を俯瞰できる状態を提供
これにより、単なる設計書の集合ではなく「システム全体像」を把握できるようになります。
抽出・生成した設計情報は、システム設計ツール「Verasym System Designer(VSSD)」にインポートすることで整理されます。
これにより、属人化していた仕様が「誰でも読める設計書」として可視化されます。
フォーム定義を解析し、画面項目一覧とレイアウトイメージを生成。
<項目定義>
DFMの項目定義を一覧化。

<レイアウト>
レイアウトを忠実に再現。

<初期化処理>
SQLオブジェクトの初期化処理(SQL)は処理詳細として取り込む。

<変数宣言>
SQLオブジェクトは変数として宣言し、対応する初期化処理の名称を明記。

イベントハンドラやロジックを処理記述として整理。
<イベント処理記述>
ロジックは可能な限り日本語化し、詳細設計レベルの処理記述を生成。

さらに一歩進める場合は、ローコード開発ツール「Verasym Application Generator(VSAG)」を利用して新言語形式に出力できます。
・C#など、別言語のコード雛形を自動生成
・UIやDBアクセス部分は自動化、ロジック部分は生成AI+技術者で補完
・マイグレーションの初期工程を効率化
ただし、これは必須ではなく、まずはVSSDで設計情報を整備することが第一歩となります。
VSAGによる新言語出力はその先のステップですが、VSSDに設計情報を集約するだけでも十分に価値があります。
・設計情報の一元化による属人化の解消
・保守・改修時の影響範囲調査の効率化
・内部統制や監査対応の強化
・将来のマイグレーション計画の基盤整備
つまり「VSSDで設計書として読める状態にする」こと自体が投資効果を生むのです。
Delphi資産の見える化は、アプリケーション資産とDB資産の両方を解析し、設計書を作る「設計書生成サービス」と関連情報を抽出する「分析サービス」を組み合わせることで実現できます。
今回はDelphiに特化した解説となりますが、VB6や古い.NET、Javaなども同様に対応可能です。
・設計書生成サービスで基盤を作り
・分析サービスで全体像を補完し
・VSSDに集約して設計書として整理する
これにより、ブラックボックス化したDelphi資産も「設計書として読める状態」に変わり、保守性・移行性が大幅に向上します。具体的な変換例の詳細をご覧になりたい方は、定期的にウェブセミナーを実施していますので、以下のサイトをご確認ください。
「見える化」の価値は、実際に体験していただくのが一番わかりやすい方法です。
まずは無料体験から、貴社のDelphi資産がどのように設計書として可視化されるのかをぜひご確認ください。