--- id: wiki-2026-0508-fmea title: FMEA category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Failure Mode and Effects Analysis, DFMEA, PFMEA, FMECA] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [reliability, risk, safety, systems-engineering] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: Python framework: pandas, AIAG-VDA template --- # FMEA ## 매 한 줄 > **"매 system 의 모든 failure mode 의 systematic enumeration + ranking"**. 1949 US Military (MIL-P-1629) → NASA Apollo → 자동차 (AIAG-VDA 2019, the modern standard) → 매 software / ML / SRE 의 risk-process 로 generalized. 매 "what can fail, how, what then, what to do" 의 매 4 column. ## 매 핵심 ### 매 종류 - **DFMEA** (Design): 매 product / component design 단계. - **PFMEA** (Process): 매 manufacturing / business process. - **SFMEA** (System): 매 system-of-systems 의 interaction. - **FMECA**: 매 + Criticality (quantitative). - **MLFMEA / AI-FMEA** (2024+): 매 ML model failure modes (data drift, prompt injection, hallucination). ### 매 AIAG-VDA 7-step (2019, current global standard) 1. **Planning & Preparation** (5T: InTent, Timing, Team, Tasks, Tools). 2. **Structure Analysis** (system → subsystem → component tree). 3. **Function Analysis** (each element 의 functions + interfaces). 4. **Failure Analysis** (Failure Effect FE / Failure Mode FM / Failure Cause FC chain). 5. **Risk Analysis** — replaces RPN with **Action Priority (AP: H/M/L)** based on (S, O, D). 6. **Optimization** (preventive + detection actions). 7. **Results Documentation**. ### 매 scoring - **Severity (S)** 1–10: 매 effect 의 customer / safety impact. - **Occurrence (O)** 1–10: 매 cause 의 likelihood. - **Detection (D)** 1–10: 매 control 의 detection ability (10 = 못 detect). - 매 legacy **RPN = S·O·D** (deprecated by AIAG-VDA but still common). - 매 modern **Action Priority** matrix: H / M / L. ## 💻 패턴 ### Minimal FMEA table (pandas) ```python import pandas as pd rows = [ {"item":"Brake pad","function":"friction","FM":"wear", "FE":"reduced braking","FC":"high mileage", "S":9,"O":4,"D":3}, {"item":"Brake pad","function":"friction","FM":"contamination", "FE":"squeal","FC":"oil leak", "S":4,"O":3,"D":5}, ] df = pd.DataFrame(rows) df["RPN"] = df.S * df.O * df.D df = df.sort_values("RPN", ascending=False) ``` ### AIAG-VDA Action Priority ```python def action_priority(S, O, D): if S >= 9 and O >= 4: return "H" if S >= 9 and O >= 2: return "H" if S >= 7 and O >= 6 and D >= 6: return "H" if S >= 7 and O >= 4 and D >= 4: return "M" if S >= 4 and O >= 4: return "M" return "L" df["AP"] = df.apply(lambda r: action_priority(r.S, r.O, r.D), axis=1) ``` ### Software-FMEA (microservice) ```python fmeas = [ dict(component="auth-svc", FM="JWT signature mismatch", FE="login fails, downstream 401", FC="key rotation race", control="canary + jwks fallback", S=8, O=3, D=4), dict(component="auth-svc", FM="DB pool exhaustion", FE="latency spike, cascading 503", FC="connection leak in handler", control="bounded pool + timeouts + chaos test", S=7, O=5, D=6), ] ``` ### ML-FMEA (LLM application) ```python ml_fmeas = [ dict(stage="prompt", FM="prompt injection", FE="data exfiltration via tool call", FC="user content concatenated unfiltered", control="structured prompt + injection classifier + tool allow-list", S=10, O=6, D=7), dict(stage="model", FM="hallucinated citation", FE="false legal claim", FC="long-tail fact, no retrieval", control="RAG + post-hoc verifier", S=8, O=7, D=5), dict(stage="data", FM="distribution drift", FE="accuracy drop in prod", FC="seasonal user mix change", control="online metric monitor + canary", S=6, O=6, D=4), ] ``` ### Criticality matrix plot ```python import matplotlib.pyplot as plt plt.scatter(df.O, df.S, s=df.D*40, alpha=0.6) for _, r in df.iterrows(): plt.annotate(r.FM, (r.O, r.S)) plt.xlabel("Occurrence"); plt.ylabel("Severity"); plt.grid() ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Hardware design (auto, aero) | **DFMEA + AIAG-VDA** | | Manufacturing line | **PFMEA** | | Safety-critical (DO-178C, ISO 26262) | **FMEA + FTA + STPA** | | Software service | **Software-FMEA + chaos engineering** | | LLM / ML system | **ML-FMEA + red-team + evals** | | Quick triage | **Risk matrix (S × O)** | **기본값**: 매 AIAG-VDA 7-step + AP scoring (RPN deprecated). ## 🔗 Graph - 부모: [[Risk_Management|Risk-Management]] - 변형: [[DFMEA]] · [[PFMEA]] · [[FMECA]] - 응용: [[SRE]] - Adjacent: [[Chaos-Engineering]] ## 🤖 LLM 활용 **언제**: 매 new system 의 risk register 를 brainstorm; 매 architecture review 의 failure-chain 의 enumeration; 매 ML deployment 의 pre-mortem. **언제 X**: 매 emergent / interactive failure (매 complex software) — 매 STPA 의 더 적합. 매 statistical reliability 는 FTA + Markov. ## ❌ 안티패턴 - **RPN multiplication only**: 매 (10,1,1)=10 vs (2,5,1)=10 의 same — but severity 10 의 catastrophic. **AP matrix 사용.** - **Sev/Occ/Det 의 inconsistent scale**: 매 team-wide rubric 없으면 매 garbage. - **One-shot document**: 매 living document 가 아니면 매 outdated. 매 design change 의 trigger update. - **Skipping detection actions**: 매 only "add training" — 매 weak. 매 sensor / monitor / poka-yoke 의 추가. - **Software FMEA 의 component-only**: 매 interaction failures 의 missed — 매 STPA 의 complement. ## 🧪 검증 / 중복 - Verified (MIL-P-1629; AIAG-VDA FMEA Handbook 2019; SAE J1739; ISO 26262-9). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 placeholder | | 2026-05-10 | Manual cleanup — 7-step AIAG-VDA + 5 patterns + ML-FMEA |