Git へのソース取り込みとブランチ戦略

分離・検証が完了したソースコードはまず Git 管理下に置きます。この時点が「ソース管理の起点」になります。

Shell — Git 初期コミット
cd project-root

# .gitignore を作成(コンパイル成果物を除外)
cat > .gitignore <<'EOF'
*.o
*.so
*.exe
*.lst
test/output_*.dat
EOF

git init
git add src/ copybook/ jcl/ test/
git commit -m "feat: COBOLモジュール分離完了 — 初期ソース登録

分離元: YOURLIB.LOADLIB(YOURMOD)
検証: 入出力比較テスト PASS (正常系・境界値・異常系)
環境: IBM Enterprise COBOL V6.3 / z/OS 2.4"

ブランチ戦略の推奨は以下の通りです。

ブランチ用途
main検証済みのソース(現行相当)を保持。直接コミットしない。
modernization/javaJava 移植・API 化の作業用ブランチ。
fix/YYYYMMDD-issue緊急改修用。main からブランチして PR でマージ。

モダナイゼーションへの接続

分離されたソースコードをベースに、次のモダナイゼーション工程に進みます。

移行パターン概要ポイント
Java 移植 COBOL のバッチ処理・業務ロジックを Java で再実装する。 COBOL の固定長・PACKED DECIMAL を Java の型にどうマッピングするかが課題。分離済みソースを仕様書代わりに使う。
REST API 化 COBOL の CALL インターフェースを HTTP API でラップする。 短期移行として COBOL をそのまま残し API 層だけを追加するアプローチ。Spring Boot + JNI または GnuCOBOL の C API を使う。
クラウド移行 オンプレのメインフレームから AWS / Azure 上の Linux 環境へ移行する。 GnuCOBOL でリコンパイルできる状態になっていれば ECS / EC2 へのリフト&シフトが可能。

💡 移行前の SonarQube 解析を推奨

分離済みソースコードを SonarQube(COBOL プラグイン)で解析すると、コード重複・未使用変数・複雑度の高い段落が可視化されます。移植範囲の絞り込みとリスク評価に活用できます。

作業記録をドキュメントとして残す

分離作業で得た知識は将来の改修・移植担当者にとって貴重な資産です。最低限以下の内容をドキュメント化してください。

Markdown — 分離作業記録テンプレート
# COBOL モジュール分離作業記録

## 対象モジュール
- 分離元: YOURLIB.LOADLIB(YOURMOD)
- コンパイラ: IBM Enterprise COBOL V6.3
- 環境: z/OS 2.4

## 分離結果
| ファイル | PROGRAM-ID | 役割 | 備考 |
|----------|------------|------|------|
| ORDMAIN.cbl | ORDMAIN | 受注メイン処理 | CALL ORDSUB01, ORDSUB02 |
| ORDSUB01.cbl | ORDSUB01 | 受注バリデーション | |
| ORDSUB02.cbl | ORDSUB02 | 受注登録 | DB2 EXEC SQL あり |

## コピーブック一覧
| ファイル | 参照元 | 内容 |
|----------|--------|------|
| ORDSTRC.cpy | ORDMAIN, ORDSUB01 | 受注レコード構造 |

## 制約・注意事項
- ORDSUB02.cbl は EXEC SQL を含む。再コンパイル時は DB2 プリプロセッサが必要。
- 最適化レベルは -O0 で検証済み。本番は -O2 でビルドすること。

## 検証結果
- 再コンパイル: ✅ エラーゼロ
- 入出力比較テスト: ✅ 全件一致(正常系20件・境界値5件・異常系3件)

最終章では…

PART 10 でシリーズ全体を振り返り、作業完了チェックリストと参考資料をまとめます。

→ PART 10 — まとめ・チェックリスト・参考資料へ