1. フローの全体像
AIを 「生成支援」ではなく「仕様一貫性の担保役」 として組み込み、形式仕様記述(VDMなど)を中核に据えたものです。
[要件定義:自然言語仕様] ──AI変換──▶ [VDM仕様(形式)]
▲ │
│ (人レビュー・修正) │
└──────────AI変換──────────────────┘
│
▼
[設計生成(内部構造)]
│
▼
[コード生成(Python/TS)]
│
▼
[テスト生成(VDM契約→境界/異常系)]
│
▼
[CI/CDで検証+人承認]
特徴
仕様は常にVDM(形式)を基準に管理
自然言語と形式仕様をAIで相互変換し、レビューと修正は人間が最終承認
VDMの契約(pre/post/invariant)から設計・コード・テストを自動生成
全工程で自動検証+人の承認を挟み、意味ドリフトを抑制
2. 実際の開発手順(ステップバイステップ)
Step 1. 要件定義(自然言語仕様)
ドメインエキスパートや顧客からの要求を自然言語で整理
必須項目(入力条件、出力条件、性能要件、例外条件)をテンプレで網羅
用語辞書(ドメイン用語集)を作成して、意味の揺れを防ぐ
Step 2. AIによるVDM変換
AIにより自然言語仕様をVDM++へ変換
型、不変条件、前後条件、例外、性能要件を明文化
自動検証(構文・型・契約整合チェック)をCIで実行
Step 3. 人間による仕様レビュー
VDMを自然言語に逆変換し、レビュー会議で確認
修正は自然言語で記述→AIでVDMに再反映
変更差分は必ず可視化(Before/After)
Step 4. 設計生成
VDMから内部構造(クラス構成、関数シグネチャ、インターフェース仕様)を生成
設計レビュー時に契約条件をコード上のアサーションや型制約として落とし込む
Step 5. コーディング
設計を基にAIが骨格コードを生成(Python/TypeScript)
契約条件は実行時チェックとして組み込み
開発者はロジックや外部接続処理を追記・最適化
Step 6. テスト自動生成
VDM契約(pre/post/inv)から同値分割・境界値・異常系テストを生成
Hypothesisなどのプロパティベーステストも導入し、仕様の網羅性を担保
CIで全テスト・静的解析・契約検証を毎回実行
Step 7. 継続的改善
仕様変更時は自然言語→VDM→設計→コード→テストの再生成をワンパスで実行
往復変換の一致率やレビュー修正件数をKPIとして品質管理
3. 実際の開発現場への適用方法
段階的導入
最初から全機能で使うのではなく、失敗コストが高く入力出力が明確なモジュール(例:決済処理、AI推論APIの前後処理)から適用
-
既存CI/CDへの統合
GitHub ActionsやGitLab CIにVDM検証→テスト生成ステップを追加 -
人間レビューの必須化
AI生成物は必ずドメイン担当・形式仕様担当・開発リードが承認 -
差分ファースト
AI生成時は必ず差分を提示し、意図しない変更を防止 -
用語と契約の固定
用語辞書と契約テンプレをプロジェクト資産として管理
4. 組織・マネージメント体制
必要な役割
ドメインエキスパート
顧客要求や業務知識を仕様化
用語辞書の策定と維持
形式仕様エンジニア
VDM記述の作成・検証
AI変換結果の品質確認
AI生成支援エンジニア
プロンプト設計、変換精度の改善
自動検証・差分チェックのパイプライン構築
実装エンジニア(Python/TypeScript)
AI生成コードの最適化、外部接続処理の実装
QA/テストエンジニア
自動生成テストの拡充
実機テスト・パフォーマンステストの実施
マネジメント上の特徴
二重承認制(仕様面と実装面の両方で承認者を設ける)
KPI管理(往復一致率、契約違反検出数、回帰不具合率)
ナレッジ共有(仕様レビューや契約違反の原因分析を週次共有)
段階的スケールアップ(1モジュール導入→成功事例→全体展開)
まとめ
このフローは、AIを単なるコード自動生成ツールではなく仕様一貫性の維持エンジンとして活用する方法です。
形式仕様(VDM)を中心に据えることで、自然言語・設計・コード・テストをすべて契約条件で縛り、AIの出力ブレを人間レビューと自動検証で補正できます。