[章番号]: [コンポーネント名] 設計書
このテンプレートの使い方
このファイルは、特定のコンポーネントやモジュールの詳細な内部設計を定義するためのテンプレートです。 複雑なビジネスロジックやアルゴリズムを実装する前に、このドキュメントで設計を明確にすることを推奨します。 詳しい使い方は「設計仕様の書き方ガイド」を参照してください。
1. はじめに
1.1. 目的
1.2. 背景
2. コンポーネントの役割と責務
- [責務1]: [説明]
- [責務2]: [説明]
3. クラス図 / モジュール構成図
classDiagram
class PaymentProcessor {
-IPaymentGateway gateway
+ProcessPayment(order) Result
}
class IPaymentGateway {
<<interface>>
+Authorize(request) AuthResponse
+Capture(transactionId) CaptureResponse
}
class StripeGateway {
+Authorize(request) AuthResponse
+Capture(transactionId) CaptureResponse
}
class PayPalGateway {
+Authorize(request) AuthResponse
+Capture(transactionId) CaptureResponse
}
PaymentProcessor ..> IPaymentGateway
IPaymentGateway <|-- StripeGateway
IPaymentGateway <|-- PayPalGateway
4. シーケンス図 / フローチャート
4.1. [主要な処理フロー名]
sequenceDiagram
participant User
participant OrderService
participant PaymentProcessor
participant IPaymentGateway
User->>OrderService: PlaceOrder()
OrderService->>PaymentProcessor: ProcessPayment(order)
PaymentProcessor->>IPaymentGateway: Authorize(request)
IPaymentGateway-->>PaymentProcessor: AuthResponse (Success)
PaymentProcessor-->>OrderService: Result (Success)
OrderService-->>User: OrderConfirmation
5. 主要なアルゴリズムやビジネスロジック
5.1. [アルゴリズム名]
- 目的: ...
- ロジック:
- ...
- ...
6. 状態遷移図
stateDiagram-v2
[*] --> Draft
Draft --> Submitted : Submit()
Submitted --> Approved : Approve()
Submitted --> Rejected : Reject()
Approved --> [*]
Rejected --> [*]
7. 内部API/インターフェース定義
IPaymentGateway インターフェース
- 概要: 決済ゲートウェイとの通信を抽象化する。
- メソッド:
Task<AuthResponse> Authorize(AuthRequest request): 支払い承認をリクエストする。- ...
8. エラーハンドリング
- [エラーケース1]: 決済承認の失敗
- 対応:
PaymentAuthorizationFailedExceptionをスローし、注文ステータスをpayment_failedに更新する。
- 対応: