mcpField
D
Data Flow Diagrams

Data Flow Diagrams

github.com/danhvb開発97 回インストール
リポジトリ

Data Flow Diagrams について

システム内のデータの流れをDFDで表すスキルです。標準的な記法と階層化の方法を用いて、システム分析、連携設計、プライバシー確認、セキュリティ監査を支援します。

主な機能

  1. 01DFDのエンティティ、プロセス、ストア、フロー
  2. 02レベル0のコンテキスト図
  3. 03レベル1のプロセス分解
  4. 04データ保存則と接続ルール
  5. 05DFDとフローチャートの違い

活用シーン

  1. 01レガシーシステムのデータフロー整理
  2. 02個人データの行き先の追跡
  3. 03システム連携の設計
  4. 04セキュリティ上の信頼境界の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/danhvb/my-ba-skills --skill data-flow-diagrams

インストール後、Claude Code で/data-flow-diagramsを入力して読み込まれたか確認します。

詳細

データフロー図(DFD)スキル

目的

システム内でデータがどのように流れるかを可視化します。DFD はデータに対してシステムが 何をするか を示します。一方、フローチャートが示すのは制御フロー(順序)です。

使用する場面

  • レガシーシステムを理解する。
  • データプライバシーを分析する(PII はどこへ流れるか?)。
  • インテグレーションを設計する。
  • セキュリティ監査を実施する(信頼境界を特定する)。

DFD の表記法(Gane & Sarson または Yourdon)

  1. プロセス(円/角丸長方形):データを変換します。
    • 形式:動詞+名詞。
    • 例:Calculate Tax、Validate User。
  2. 外部エンティティ(四角形):データの送信元または送信先(対象範囲外)です。
    • 例:Customer、Bank API、Admin。
  3. データストア(開いた長方形/平行線):保存されているデータです。
    • 例:Customer DB、Orders File。
  4. データフロー(矢印):データパケットの移動を示します。
    • ラベル:Order Details、Invoice。

DFD のレベル

レベル 0:コンテキスト図

対象範囲:システム全体を 1 つのプロセスとして表します。 表示内容:システムの境界と外部とのやり取り。

例:

graph LR
    Customer[Customer] -->|Order| System((Order Mgmt System))
    System -->|Invoice| Customer
    System -->|Payment Info| Bank[Bank]
    Bank -->|Confirmation| System
    Warehouse[Warehouse] -->|Stock Levels| System
    System -->|Shipping Request| Warehouse

注:外部システムと共有されていない限り、レベル 0 ではデータストアを表示しません。

レベル 1:システムの分解

対象範囲:「1 つのプロセス」を主要なサブプロセス(3~7 個のバブル)に分解します。 表示内容:これらのプロセスが使用するデータストア。

例:

  1. プロセス 1.0:注文を検証する
    • 入力:注文(Customer から)
    • 出力:検証済みの注文
  2. プロセス 2.0:合計を計算する
    • 入力:検証済みの注文+価格(Product DB から)
    • 出力:合計金額
  3. プロセス 3.0:支払いを処理する
    • 入力:合計金額+カード情報
    • 出力:領収書

方法論のルール

  1. データの保存則:プロセスは何もないところからデータを作成できません(入力が必要です)。プロセスは出力せずにデータを消費できません(ブラックホール)。
  2. 直接接続は禁止:
    • エンティティ ↔ エンティティ(対象範囲外)
    • エンティティ ↔ データストア(プロセスを介す必要があります)
    • データストア ↔ データストア(プロセスを介す必要があります)
  3. ラベル付け:すべての矢印に、移動する データ(アクションではなく)をラベルとして付けます。

DFD とフローチャートの比較

DFDフローチャート
データに焦点制御/順序に焦点
「税額を計算する」「税額 > 0 の場合、次を実行…」
ループ/分岐なしループ/判断あり
並列/非同期を暗示順次処理を暗示

DFD の作成手順

  1. エンティティを特定する:誰がデータを送信/受信するか?(Customer、Manager、API)。
  2. プロセスを特定する:どのような論理的アクションが発生するか?(在庫を確認する、ユーザーを保存する)。
  3. データストアを特定する:情報をどこに保存するか?(ファイル、テーブル)。
  4. レベル 0 を描く:エンティティを「システム」に接続する。
  5. レベル 1 に展開する:システムをサブプロセスに分解する。
  6. 検証する:データの保存則とデータフローの欠落を確認する。

ベストプラクティス

  • 論理性を保つ:物理的な実装については考慮しません(たとえば、論理 DFD では「紙のファイル」と「SQL DB」の違いは関係ありません)。
  • プロセスに番号を付ける:1.0、2.0、3.0。サブプロセスには 1.1、1.2 を付けます。
  • 複雑さを抑える:1 つのレベルに 7 個を超えるプロセスがある場合は、さらに分解します(レベル 2)。

ツール

  • Visio。
  • Lucidchart。
  • Draw.io。
  • Mermaid(グラフ形式)。

コメント