0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

形式仕様記述を活用したAI支援ソフトウェア開発の全体像

Posted at

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の出力ブレを人間レビューと自動検証で補正できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?