近年、AI搭載のIDE(例:GitHub? Copilot、Cursor)の普及により、プログラミングの効率は飛躍的に向上しています。しかし、設計ドキュメントの作成においては、まだいくつかの課題が残されています。本記事では、実際の開発経験から得られた課題と、その解決策としての新しいアプローチを提案します。
私は最近、Cursor IDEを使用してプログラムの設計書を作成しようと試みました。具体的には:
このプロセスで明らかになった問題点は以下の通りです:
これらの問題の根本的な原因は、現在のAIが持つ制約にあります:
JavaのようなIDEの静的解析機能を、ドキュメント管理に応用するという考え方です。具体的には、ドキュメントの要素をプログラミング言語の構文として表現します。
// ユースケースの基本クラス
abstract class UseCase {
}
/**
* ユーザー登録ユースケース
*
* # 概要
* 新規ユーザーが システムに登録する
*
* # フロー
* 1. ユーザーが登録画面を開く
* 2. 必要情報を入力
* 3. 登録を実行
*/
abstract class UseCase01 extends UseCase {
// 使用する画面の定義
public Form Form01; // ユーザー登録画面
public Form Form02; // 登録完了画面
}
- 未定義の画面IDの参照を検出 - ユースケース間の関係性を可視化
- リファクタリングツールを使用した一括変更 - 依存関係の自動トラッキング - コードジャンプによる関連ドキュメントの素早い参照
- Gitなどのバージョン管理システムとの統合が容易 - 差分の可視化が容易
// 画面定義
abstract class Form {
String id;
String title;
}
// アクター定義
abstract class Actor {
String name;
String description;
}
// ストーリー定義
abstract class Story {
Actor mainActor;
UseCase[] relatedUseCases;
}
- AIによるドキュメント生成時に、この構造を自動的に適用 - 整合性チェックの結果に基づく自動修正提案
- 視覚的なエディタの開発 - より直感的なインターフェースの提供
AIとIDEの長所を組み合わせることで、より信頼性の高い設計ドキュメントの作成が可能になります。この手法は、特に大規模プロジェクトにおいて、ドキュメントの品質向上に貢献することが期待できます。
今後は、このアプローチをさらに洗練させ、より使いやすいツールやフレームワークの開発を進めていきたいと考えています。