drawmiat

IDEF0 功能建模 IEEE 1320.1

IDEF0 是基於 SADT(結構化分析與設計技術)的功能建模方法。透過活動(Activity)和 ICOM 箭頭的層次分解,清晰描述系統中「做什麼」、「用什麼」、「由誰做」、「怎麼控制」。

核心概念

概念說明
Activity功能單元,以動詞片語命名(如「分析感測資料」)。ID 格式為 A0, A1, A11 等。
Input (I)左側箭頭 — 被活動轉換或消耗的資料/物料
Control (C)上方箭頭 — 控制活動執行的條件、政策、約束
Output (O)右側箭頭 — 活動產生的結果
Mechanism (M)下方箭頭 — 執行活動的硬體、軟體、人員

層級分解規則

必要規範(MUST)

  1. 每個活動必須有唯一的層級 ID
  2. 活動名稱必須是動詞片語(如「Process Sensor Data」)
  3. 每個活動至少要有一個 Input 和一個 Output 箭頭
  4. 箭頭方向和語義類型必須一致
  5. 父子分解必須保持意圖可追蹤性
  6. 外部介面必須使用 EXTERNAL 端點

JSON 格式

{
  "diagram_title": "採購流程",
  "node_reference": "A0",
  "activities": [
    { "id": "A1", "title": "審核需求" },
    { "id": "A2", "title": "詢價與議價" },
    { "id": "A3", "title": "下單採購" }
  ],
  "arrows": [
    { "id": "i1", "label": "採購申請單", "source": "EXTERNAL", "target": "A1:input" },
    { "id": "c1", "label": "採購政策", "source": "EXTERNAL", "target": "A1:control" },
    { "id": "s1", "label": "核准申請", "source": "A1:output", "target": "A2:input" },
    { "id": "s2", "label": "最佳報價", "source": "A2:output", "target": "A3:input" },
    { "id": "o1", "label": "採購訂單", "source": "A3:output", "target": "EXTERNAL" },
    { "id": "m1", "label": "採購系統", "source": "EXTERNAL", "target": "A1:mechanism" }
  ]
}

箭頭 source/target 格式

格式意義
EXTERNAL邊界箭頭(進出圖表)
A1:input活動左側(被轉換的物件)
A1:output活動右側(產出結果)
A1:control活動上方(規則/約束)
A1:mechanism活動下方(執行者/工具)

層級分解範例

活動可透過 decomposition 欄位包含巢狀 IDEF0 子圖。渲染器會為每個分解層級生成獨立的 SVG。

{
  "diagram_title": "智慧製造系統",
  "node_reference": "A0",
  "activities": [
    {
      "id": "A1", "title": "接收訂單",
      "decomposition": {
        "diagram_title": "接收訂單 — 子流程",
        "node_reference": "A1",
        "activities": [
          { "id": "A11", "title": "驗證訂單格式" },
          { "id": "A12", "title": "檢查庫存" }
        ],
        "arrows": [
          { "id": "i1", "label": "原始訂單", "source": "EXTERNAL", "target": "A11:input" },
          { "id": "s1", "label": "有效訂單", "source": "A11:output", "target": "A12:input" },
          { "id": "o1", "label": "確認結果", "source": "A12:output", "target": "EXTERNAL" }
        ]
      }
    },
    { "id": "A2", "title": "排程生產" }
  ],
  "arrows": [
    { "id": "i1", "label": "客戶訂單", "source": "EXTERNAL", "target": "A1:input" },
    { "id": "s1", "label": "確認訂單", "source": "A1:output", "target": "A2:input" },
    { "id": "o1", "label": "生產排程", "source": "A2:output", "target": "EXTERNAL" }
  ]
}

常見錯誤

駱子逸

臺灣大學電機所碩士 • 中央大學資工博士班
社群網站創辦人 專利智財顧問 資安攻防顧問 新創經營者 智慧裝置創客 攝影藝術創作者
yeatsluo@g.ncu.edu.tw