* 目次 [#pf51b186]
#contents
* AIとIDEの共存:ドキュメント整合性のための新しいアプローチ [#ze6aa3ba]
** はじめに [#l4eca050]
近年、AI搭載のIDE(例:GitHub Copilot、Cursor)の普及により、プログラミングの効率は飛躍的に向上しています。しかし、設計ドキュメントの作成においては、まだいくつかの課題が残されています。本記事では、実際の開発経験から得られた課題と、その解決策としての新しいアプローチを提案します。
** 現状の課題 [#j45c9cb4]
*** AIを用いた設計ドキュメント作成の試み [#q21cb8fb]
私は最近、Cursor IDEを使用してプログラムの設計書を作成しようと試みました。具体的には:
- 1. アクターの一覧作成
- 2. ユースケースの定義
- 3. 画面一覧と各画面の設計(画面IDを付与)
このプロセスで明らかになった問題点は以下の通りです:
- ユースケースと画面IDの不整合
- ストーリーとユースケースの対応漏れ
- 必要な画面の見落とし
*** AIの限界 [#g21e64d3]
これらの問題の根本的な原因は、現在のAIが持つ制約にあります:
- 1. **コンテキストの制限**:AIが一度に処理できる情報量には上限があります
- 2. **整合性の維持**:大規模なドキュメント間の関係性を完全に把握することが困難です
** 提案:IDEの静的解析を活用したドキュメント管理 [#dba154b6]
*** 基本的なアイデア [#lc072505]
JavaのようなIDEの静的解析機能を、ドキュメント管理に応用するという考え方です。具体的には、ドキュメントの要素をプログラミング言語の構文として表現します。
*** 実装例 [#x249e03a]
// ユースケースの基本クラス
abstract class UseCase {
}
/**
* ユーザー登録ユースケース
*
* # 概要
* 新規ユーザーが システムに登録する
*
* # フロー
* 1. ユーザーが登録画面を開く
* 2. 必要情報を入力
* 3. 登録を実行
*/
abstract class UseCase01 extends UseCase {
// 使用する画面の定義
public Form Form01; // ユーザー登録画面
public Form Form02; // 登録完了画面
}
*** このアプローチのメリット [#vdc7adca]
- 1. **自動的な整合性チェック**
-- 未定義の画面IDの参照を検出
-- ユースケース間の関係性を可視化
- 2. **IDE機能の活用**
-- リファクタリングツールを使用した一括変更
-- 依存関係の自動トラッキング
-- コードジャンプによる関連ドキュメントの素早い参照
- 3. **バージョン管理との親和性**
-- Gitなどのバージョン管理システムとの統合が容易
-- 差分の可視化が容易
** 実践的な使用方法 [#p21693b1]
*** ドキュメント構造の定義 [#of658cee]
// 画面定義
abstract class Form {
String id;
String title;
}
// アクター定義
abstract class Actor {
String name;
String description;
}
// ストーリー定義
abstract class Story {
Actor mainActor;
UseCase[] relatedUseCases;
}
*** 整合性チェックの例 [#i1d6ad55]
- 1. すべてのユースケースが少なくとも1つのストーリーから参照されているか
- 2. 定義されたすべての画面が何らかのユースケースで使用されているか
- 3. アクターとユースケースの関係が適切に定義されているか
** 課題と展望 [#k981a7c0]
*** 現状の課題 [#v72d7652]
- 1. **学習コスト**:開発者がこの新しい方法に慣れる必要がある
- 2. **ツールサポート**:専用のプラグインや拡張機能の開発が必要かもしれない
- 3. **非技術者との共有**:技術的な表現方法が非技術者にとって理解しづらい可能性
*** 将来の展望 [#jbec9a09]
- 1. **AI連携の強化**:
- AIによるドキュメント生成時に、この構造を自動的に適用
- 整合性チェックの結果に基づく自動修正提案
-- AIによるドキュメント生成時に、この構造を自動的に適用
-- 整合性チェックの結果に基づく自動修正提案
- 2. **ツールの発展**:
- 視覚的なエディタの開発
- より直感的なインターフェースの提供
-- 視覚的なエディタの開発
-- より直感的なインターフェースの提供
** まとめ [#cfd3816d]
AIとIDEの長所を組み合わせることで、より信頼性の高い設計ドキュメントの作成が可能になります。この手法は、特に大規模プロジェクトにおいて、ドキュメントの品質向上に貢献することが期待できます。
今後は、このアプローチをさらに洗練させ、より使いやすいツールやフレームワークの開発を進めていきたいと考えています。