第3部:ドキュメントスキル / 第4章:ロジック実装

処理フロー図の読み方

処理フロー図は、処理の流れを図で表したものです。フローチャート、シーケンス図、アクティビティ図、状態遷移図など様々な種類があります。

📖 読了目安 約10分 対象:設計書・コードの処理の流れを追う方

処理フロー図とは

役割

  • 処理の流れを視覚化
  • 分岐条件を明確化
  • 繰り返しを表現
  • 処理の開始と終了を明示

いつ使うか

設計理解時処理の流れを把握
実装時ロジックの確認
デバッグ時どこで問題が起きているか特定
レビュー時処理が正しいか確認

フロー図の種類

種類特徴用途
フローチャート最も基本的な流れ図単一処理の流れ
シーケンス図オブジェクト間のやり取りAPI呼び出し、画面遷移
アクティビティ図UMLの活動図業務フロー、ユースケース
状態遷移図状態の変化ステータス管理

種類別に読み方を見る

4つの図はそれぞれ記法・見るポイントが異なります。自分が読みたい図の種類のタブを開いてください。

基本記号

記号名称意味
○ / 楕円端子開始・終了
□ / 長方形処理処理・操作
◇ / ひし形判断分岐・条件
▱ / 平行四辺形入出力データの入力・出力
矢印処理の流れ

読み方の基本

flowchart TD
    A([開始]) --> B[処理1]
    B --> C{条件判断}
    C -->|Yes| D[処理2]
    C -->|No| E[処理3]
    D --> F([終了])
    E --> F
  1. 開始から矢印に沿って読む
  2. 分岐では条件を確認
  3. 終了まで追う

【サンプル】ログイン処理のフローチャート

flowchart TD
    A([開始]) --> B[/メールアドレス、パスワード入力/]
    B --> C{入力チェック}
    C -->|NG| D[エラーメッセージ表示]
    D --> B
    C -->|OK| E[ユーザー検索]
    E --> F{ユーザー存在?}
    F -->|No| G[認証エラー表示]
    G --> B
    F -->|Yes| H{パスワード一致?}
    H -->|No| G
    H -->|Yes| I[セッション作成]
    I --> J[ログイン履歴記録]
    J --> K[トップ画面へ遷移]
    K --> L([終了])

読み解き方

  1. 開始:ログイン画面表示
  2. 入力:ユーザーがメールアドレスとパスワードを入力
  3. 入力チェック:形式チェック(空欄、メール形式)
  4. ユーザー検索:DBからユーザーを検索
  5. 存在チェック:ユーザーが見つかるか
  6. パスワード確認:ハッシュ値を比較
  7. セッション作成:ログイン状態を保持
  8. 終了:トップ画面へ遷移

シーケンス図は、オブジェクト間のやり取りを時系列で表します。

基本要素

要素意味
縦の箱オブジェクト(参加者)
縦の点線ライフライン(生存期間)
横の矢印メッセージ(呼び出し)
破線の矢印戻り値(レスポンス)

サンプル:商品購入処理

sequenceDiagram
    actor User as ユーザー
    participant Web as Webサーバー
    participant Cart as カートサービス
    participant Order as 注文サービス
    participant Payment as 決済サービス
    participant DB as データベース

    User->>Web: 購入ボタン押下
    Web->>Cart: カート内容取得
    Cart->>DB: SELECT cart_items
    DB-->>Cart: カート内容
    Cart-->>Web: カート内容

    Web->>Order: 注文作成
    Order->>DB: INSERT orders
    DB-->>Order: 注文ID

    Order->>Payment: 決済処理
    Payment-->>Order: 決済結果

    alt 決済成功
        Order->>DB: UPDATE order status='completed'
        Order-->>Web: 注文完了
        Web-->>User: 注文完了画面
    else 決済失敗
        Order->>DB: UPDATE order status='failed'
        Order-->>Web: エラー
        Web-->>User: エラー画面
    end

読み解き方

  1. 左から右へ:呼び出し元→呼び出し先
  2. 上から下へ:時系列順
  3. 実線:呼び出し(リクエスト)
  4. 破線:戻り(レスポンス)
  5. alt:分岐(条件による処理分け)

アクティビティ図は、業務フローやユースケースを表します。

基本要素

要素意味
開始ノード
終了ノード
□(角丸)アクション
分岐・合流
フォーク・ジョイン(並行処理)

サンプル:注文処理の業務フロー

flowchart TD
    A((●)) --> B[注文受付]
    B --> C{在庫確認}
    C -->|在庫あり| D[出荷指示]
    C -->|在庫なし| E[入荷待ち登録]
    E --> F[入荷]
    F --> D
    D --> G[梱包]
    G --> H[発送]
    H --> I[配送完了]
    I --> J((◎))

状態遷移図は、オブジェクトの状態変化を表します。

サンプル:注文ステータスの遷移

stateDiagram-v2
    [*] --> 注文中
    注文中 --> 決済待ち: 注文確定
    決済待ち --> 決済完了: 決済成功
    決済待ち --> キャンセル: 決済失敗
    決済完了 --> 出荷準備中: 在庫確保
    出荷準備中 --> 発送済み: 発送完了
    発送済み --> 配達完了: 配達完了
    決済完了 --> キャンセル: キャンセル依頼
    出荷準備中 --> キャンセル: キャンセル依頼
    配達完了 --> [*]
    キャンセル --> [*]

読み解き方

  • 状態:注文のステータス(注文中、決済完了など)
  • 遷移:ステータスの変化
  • トリガー:遷移のきっかけ(注文確定、決済成功など)

処理フロー図を読むときのポイント

1. 開始と終了を確認する

  • どこから始まるか
  • どこで終わるか(複数の終了点があることも)

2. 分岐条件を確認する

  • 条件は何か
  • Yes/Noでどこに進むか

3. ループ(繰り返し)を確認する

  • どこからどこまで繰り返すか
  • 終了条件は何か

4. 例外処理を確認する

  • エラー時はどこに進むか
  • リトライはあるか

よくある疑問

フロー図と実際のコードが違う場合は?

設計者に確認します。フロー図が古い可能性も、実装が間違っている可能性もあります。

フロー図がない場合は?

コードを読んで処理の流れを把握します。複雑な処理は自分でフロー図を描いて理解することも有効です。

フロー図を自分で書くべき?

複雑な処理を理解したり、レビューで説明したりするときに書くと効果的です。

関連ドキュメント