Este es un tema avanzado. La configuración de riesgo predeterminada ya está establecida, por lo que no necesita cambiar nada para empezar a trabajar con KF.
Truke KF calcula un valor numérico de riesgo y una clase de riesgo discreta para cada evento. Ambos se derivan de un único elemento de configuración de riesgo que se edita desde el panel de administración en `/admin/conf`. No existe un archivo de configuración separado — la configuración vive en la base de datos, tiene versiones como cualquier otro elemento de KF, y su historial es la pista de auditoría de todos los cálculos de riesgo realizados.
Esta página explica el formato de configuración y presenta varios ejemplos listos para usar.
Vaya a Admin → Configuración (`/admin/conf`). La página muestra el cuerpo de la configuración actual como texto plano. Haga clic en el icono de edición para abrir el editor. Al guardar, se crea una nueva revisión. Los eventos creados antes del guardado conservan su interpretación de riesgo original; la reevaluación siempre usa la revisión de configuración que estaba vigente en el momento en que se creó el evento.
La configuración se escribe en OGDL — el mismo formato basado en indentación que se usa en el resto de KF. Las líneas que comienzan con `#` son comentarios. Los valores de cadena que contienen espacios deben encerrarse entre comillas dobles.
Las secciones de nivel superior son:
| Sección | Obligatoria | Propósito |
|---|---|---|
meta | no | Nombre, versión, descripción, parámetros globales |
severity | sí | Escala de severidad y etiquetas |
occurrence | sí | Escala de probabilidad de ocurrencia y etiquetas |
detection | no | Escala de detección o controlabilidad |
controllability | no | Escala de controlabilidad (alternativa a detección) |
risk_labels | sí | Clases de riesgo con nombre y colores de visualización |
matrices | sí | Una o más matrices de riesgo; exactamente una está activa |
metameta name "Mi configuración de riesgo" version 1 description "Configuración de riesgo personalizada para fabricación de widgets" min_probability 1e-9
La escala de severidad usa la transformación identity — los valores entran en la fórmula sin cambios. El rango es `-1,0 .. abierto` (los valores pueden superar ligeramente 1,0 para etiquetas de seguridad crítica). Los valores negativos representan oportunidades (resultados positivos); los valores positivos representan amenazas.
severity
range -1.0 .. open
transform identity
labels
OPP2
value -0.5
title "Oportunidad significativa"
OPP1
value -0.1
title "Oportunidad menor"
1
value 0.1
title "Muy menor"
5
value 0.5
title Moderada
10
value 1.0
title Peligrosa
Las etiquetas se listan en orden de valor creciente. El orden importa: los predicados de regla que usan S>=etiqueta comparan posiciones ordinales en esta lista, no valores numéricos.
Dos etiquetas que comparten el mismo valor son alias y deben listarse consecutivamente. Cualquier nombre es válido como entrada y ambos producen el mismo resultado. Ejemplo: ISO 26262 usa etiquetas S1`–`S3 que comparten valores con las etiquetas de severidad numéricas.
La escala de ocurrencia usa la transformación log_normalized, que mapea una probabilidad en el rango `(0, 1]` a una escala lineal `[0, 1]` usando la fórmula:
\[ O_{norm} = \frac{\log_{10}(O) - \log_{10}(O_{min})}{-\log_{10}(O_{min})} \]
donde \(O_{min}\) es min_probability de la sección meta (o el valor de etiqueta más pequeño si no se establece min_probability). Esto da a las probabilidades bajas una resolución significativa — sin la transformación logarítmica, la diferencia entre 1 ppm y 1 FIT sería invisible.
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
E1
value 0.001
title "Muy rara"
E2
value 0.01
title Rara
E3
value 0.1
title Ocasional
E4
value 1.0
title Frecuente
El límite superior debe ser exactamente 1,0. El valor de etiqueta más pequeño debe ser `> 0` (o se debe establecer min_probability).
La detección representa la probabilidad de que un fallo sea identificado antes de causar daño. Acepta los mismos formatos de entrada numérica que la ocurrencia y normalmente se procesa con una transformación identity cuando se usa como estimación directa de probabilidad. Algunas metodologías (AIAG-VDA) usan una escala inversa donde números altos de detección significan detección deficiente; use la transformación inverse para ese caso.
detection
range 0.0 .. 1.0
transform identity
labels
D1
value 0.9
title "Casi cierta"
D2
value 0.5
title Moderada
D3
value 0.1
title "Improbable"
La controlabilidad representa la capacidad de controlar o mitigar un evento. La transformación inverse convierte "capacidad de control" (alto = bueno) en "no controlabilidad" (alto = contribución de riesgo alta):
controllability
range 0.0 .. 1.0
transform inverse
labels
C1
value 0.9
title Manejable
C2
value 0.5
title Difícil
C3
value 0.1
title Incontrolable
Las etiquetas de riesgo son las clasificaciones de salida. Cada una tiene un nombre, un color hexadecimal y un título de visualización opcional:
risk_labels
CRIT
color #b30000
title Crítico
HIGH
color #e64500
title Alto
MED
color #f0a020
title Medio
LOW
color #f0d020
title Bajo
NEGL
color #c0c0c0
title Negligible
Los nombres de etiqueta usados en las reglas de la matriz deben declararse aquí. El orden es el orden de visualización en la interfaz.
Para incluir etiquetas de oportunidad, agréguelas con tonos verdes:
OPP_LOW
color #a0d0a0
title "Oportunidad menor"
OPP_MED
color #40a060
title "Oportunidad moderada"
OPP_HIGH
color #006030
title "Oportunidad significativa"
La sección matrices contiene una o más definiciones de matriz. El campo selected nombra la matriz activa. Cambiar de matriz es una edición de una línea y queda completamente auditado en el historial de revisiones de configuración.
matrices
selected default
default
title "Riesgo S+O log-aditivo"
formula "(S + O) / 2"
resolution first_match
rules
CRIT "R>=0.5"
HIGH "R>=0.25"
MED "R>=0.05"
LOW "R>0"
catch_all NEGL
Variables de la fórmula:
| Variable | Significado |
|---|---|
| `S` | Severidad (magnitud; el signo se gestiona automáticamente) |
| `O` | Ocurrencia, post-transformación |
| `D` | Detección, post-transformación |
| `C` | Controlabilidad, post-transformación |
La fórmula puede usar `+`, `-`, `*`, `/`, paréntesis, literales numéricos y `|...|` para valor absoluto (raramente necesario — el signo se separa automáticamente).
Separación de signo. Como la severidad puede ser negativa (oportunidad), la fórmula siempre opera sobre la magnitud de S, y el signo se reaplicar al resultado. Una fórmula `(S + O) / 2` con severidad OPP2 (-0,5) y ocurrencia E3 (0,1, normalizada ≈ 0,67) da R ≈ −0,59, que una regla `"R<-0.25"` coincidiría como una oportunidad fuerte.
Las reglas usan resolución first_match — gana la primera regla que coincide. Las reglas terminan con un retorno alternativo catch_all obligatorio.
Los predicados tienen dos formas:
R>=0.5 — compara la puntuación de riesgo calculada con un umbral numérico.S>=MED — compara la posición ordinal de la etiqueta elegida con una etiqueta de referencia. Esto es independiente de los valores numéricos y de la transformación.Múltiples predicados en una regla se unen por AND:
OPP_LOW "R<0, R>=-0.05"
Para los campos de ocurrencia y detección, los usuarios pueden escribir una medida con una unidad en lugar de seleccionar una etiqueta. El sistema la convierte a probabilidad y selecciona la etiqueta más cercana:
| Unidad | Conversión | Ejemplo |
|---|---|---|
| `%` | ÷ 100 | `"5 %"` → 0,05 |
ppm | ÷ 10⁶ | `"1000ppm"` → 0,001 |
FIT | ÷ 10⁹ | `"1000000 FIT"` → 0,001 |
El espacio entre el número y la unidad es opcional. Establecer `min_probability 1e-9` en meta alinea el límite inferior de la transformación con 1 FIT.
Adecuada para riesgo general de producto, AMFE de proceso o gestión de calidad. Cuatro niveles de severidad, cuatro niveles de ocurrencia, sin escala de detección.
meta
name "Riesgo S+O simple"
version 1
severity
range 0.0 .. open
transform identity
labels
1
value 0.1
title Menor
5
value 0.5
title Moderada
8
value 0.8
title Seria
10
value 1.0
title Crítica
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
E1
value 0.001
title "Muy rara"
E2
value 0.01
title Rara
E3
value 0.1
title Ocasional
E4
value 1.0
title Frecuente
risk_labels
HIGH
color #e64500
title Alto
MED
color #f0a020
title Medio
LOW
color #f0d020
title Bajo
NEGL
color #c0c0c0
title Negligible
matrices
selected default
default
title "S+O log-aditivo"
formula "(S + O) / 2"
resolution first_match
rules
HIGH "R>=0.4"
MED "R>=0.1"
LOW "R>0"
catch_all NEGL
Agregue etiquetas de severidad negativas para oportunidades y etiquetas de riesgo adicionales para el lado positivo del espectro de riesgo.
meta
name "S+O con oportunidades"
version 1
min_probability 1e-9
severity
range -1.0 .. open
transform identity
labels
OPP3
value -1.0
title "Oportunidad catastrófica"
OPP2
value -0.5
title "Oportunidad significativa"
OPP1
value -0.1
title "Oportunidad menor"
1
value 0.1
title "Muy menor"
5
value 0.5
title Moderada
10
value 1.0
title Peligrosa
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
E1
value 0.001
title "Muy rara"
E2
value 0.01
title Rara
E3
value 0.1
title Ocasional
E4
value 1.0
title Frecuente
risk_labels
CRIT
color #b30000
title Crítico
HIGH
color #e64500
title Alto
MED
color #f0a020
title Medio
LOW
color #f0d020
title Bajo
NEGL
color #c0c0c0
title Negligible
OPP_LOW
color #a0d0a0
title "Oportunidad menor"
OPP_MED
color #40a060
title "Oportunidad moderada"
OPP_HIGH
color #006030
title "Oportunidad significativa"
matrices
selected default
default
title "Riesgo S+O log-aditivo"
formula "(S + O) / 2"
resolution first_match
rules
CRIT "R>=0.5"
HIGH "R>=0.25"
MED "R>=0.05"
LOW "R>0"
OPP_LOW "R<0, R>=-0.05"
OPP_MED "R<-0.05, R>=-0.25"
OPP_HIGH "R<-0.25"
catch_all NEGL
Configuración automotriz completa con alias de severidad compatibles con ISO 26262, escala de ocurrencia anclada a 1 FIT y una matriz alternativa conservadora para revisión de seguridad crítica.
meta
name "Configuración de riesgo automotriz predeterminada"
version 1
description "Escalas alineadas con AIAG-VDA, riesgo log-aditivo con separación de signo"
min_probability 1e-9
severity
range -1.0 .. open
transform identity
labels
OPP3
value -1.0
title "Oportunidad catastrófica"
OPP2
value -0.5
title "Oportunidad significativa"
OPP1
value -0.1
title "Oportunidad menor"
1
value 0.1
title "Muy menor"
5
value 0.5
title Moderada
10
value 1.0
title Peligrosa
S1
value 1.0
title "Lesión leve"
S2
value 1.1
title "Lesión grave"
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
E1
value 0.001
title "Muy rara"
E2
value 0.01
title Rara
E3
value 0.1
title Ocasional
E4
value 1.0
title Frecuente
risk_labels
CRIT
color #b30000
title Crítico
HIGH
color #e64500
title Alto
MED
color #f0a020
title Medio
LOW
color #f0d020
title Bajo
NEGL
color #c0c0c0
title Negligible
OPP_LOW
color #a0d0a0
title "Oportunidad menor"
OPP_MED
color #40a060
title "Oportunidad moderada"
OPP_HIGH
color #006030
title "Oportunidad significativa"
matrices
selected default
default
title "Riesgo S+O log-aditivo"
formula "(S + O) / 2"
resolution first_match
rules
CRIT "R>=0.5"
HIGH "R>=0.25"
MED "R>=0.05"
LOW "R>0"
OPP_LOW "R<0, R>=-0.05"
OPP_MED "R<-0.05, R>=-0.25"
OPP_HIGH "R<-0.25"
catch_all NEGL
conservative
title "Umbrales más estrictos (revisión de seguridad)"
formula "(S + O) / 2"
resolution first_match
rules
CRIT "R>=0.35"
HIGH "R>=0.15"
MED "R>=0.03"
LOW "R>0"
OPP_LOW "R<0, R>=-0.03"
OPP_MED "R<-0.03, R>=-0.15"
OPP_HIGH "R<-0.15"
catch_all NEGL
Para cambiar a la matriz conservadora, cambie `selected default` a `selected conservative` y guarde. Todos los nuevos eventos usarán los umbrales conservadores; los eventos existentes conservan su clasificación original.
Agregue detección cuando los modos de fallo puedan interceptarse antes de causar daño y desee que la eficacia de detección reduzca el riesgo calculado.
meta
name "Riesgo S+O+D"
version 1
min_probability 1e-9
severity
range -1.0 .. open
transform identity
labels
OPP1
value -0.1
title "Oportunidad menor"
1
value 0.1
title "Muy menor"
5
value 0.5
title Moderada
10
value 1.0
title Peligrosa
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
E1
value 0.001
title "Muy rara"
E2
value 0.01
title Rara
E3
value 0.1
title Ocasional
E4
value 1.0
title Frecuente
detection
range 0.0 .. 1.0
transform identity
labels
D1
value 0.9
title "Casi cierta"
D2
value 0.5
title Moderada
D3
value 0.1
title "Improbable"
risk_labels
CRIT
color #b30000
title Crítico
HIGH
color #e64500
title Alto
MED
color #f0a020
title Medio
LOW
color #f0d020
title Bajo
NEGL
color #c0c0c0
title Negligible
matrices
selected default
default
title "S+O ponderado por detección"
formula "(S + O) / 2 * (1 - D/2)"
resolution first_match
rules
CRIT "R>=0.4"
HIGH "R>=0.2"
MED "R>=0.05"
LOW "R>0"
catch_all NEGL
Aquí la detección D1 (0,9) reduce el riesgo hasta un 45%; D3 (0,1) lo reduce solo un 5%.
Las reglas también pueden activarse basándose en posiciones de etiqueta en lugar de valores R calculados. Esto es útil cuando una etiqueta de severidad específica debe desencadenar siempre una clase de riesgo determinada independientemente de la probabilidad:
rules
CRIT "S>=10" # cualquier evento con severidad 10 o superior es siempre Crítico
HIGH "R>=0.25"
MED "R>=0.05"
LOW "R>0"
catch_all NEGL
El predicado S>=10 compara la posición ordinal de la etiqueta de severidad elegida con la posición de la etiqueta llamada 10 en la escala de severidad. Se activa cuando la severidad elegida está en esa etiqueta o después en el orden de declaración.
Es posible codificar tanto el sistema de Prioridad de Acción AIAG-VDA como el ASIL de ISO 26262 en una sola configuración, de modo que la clasificación se enrute por evento según las etiquetas que elija el analista. Dos nuevas características hacen esto posible:
class en etiquetas — etiqueta un subconjunto de etiquetas como pertenecientes a un grupo con nombre (p. ej. `class asil`). Las etiquetas dentro de una clase deben estar ordenadas monótonamente entre sí; no se impone ninguna restricción de orden entre clases. Esto permite que las etiquetas ASIL lleven sus valores físicos auténticos sin conflicto con los valores de las etiquetas AP.| Dimensión | Entradas ASIL | Entradas AIAG-VDA AP |
|---|---|---|
| Severidad | S1, S2, S3 (con `class asil`) | 1 – 10 |
| Ocurrencia | E1–E4 (con `class asil`) | 1 – 10 (tasa de ocurrencia) |
| Tercera entrada | C1, C2, C3 (controlabilidad) | 1 – 10 (detección) |
| Salida | QM / ASIL A–D | AP: Baja / Media / Alta |
Las etiquetas ASIL aparecen después de las etiquetas AP en la lista plana (S1=1,0, S2=1,1, S3=1,2 se sitúan naturalmente por encima del techo del rango AP de 1,0). El enrutamiento usa S:asil — un predicado de clase que es verdadero para cualquier etiqueta etiquetada `class asil` y falso para todas las demás.
meta
name "AIAG-VDA AP + ISO 26262 ASIL combinados"
version 2
min_probability 1e-9
severity
range 0.0 .. open
transform identity
labels
# Etiquetas de severidad AIAG-VDA AP (ordinales 0–9)
1
value 0.1
title "1 – Sin efecto"
2
value 0.2
3
value 0.3
4
value 0.4
5
value 0.5
6
value 0.6
7
value 0.7
title "7 – Alto, vehículo operable"
8
value 0.8
9
value 0.9
title "9 – Peligroso con advertencia"
10
value 1.0
title "10 – Peligroso sin advertencia"
# Etiquetas ASIL ISO 26262 — class asil, valores ≥ 1,0, ordinales 10–12
# S1 y AP "10" comparten el valor 1,0 pero no son alias (clases diferentes)
S1
value 1.0
class asil
title "S1 – Lesión leve"
S2
value 1.1
class asil
title "S2 – Lesión grave"
S3
value 1.2
class asil
title "S3 – Riesgo para la vida"
occurrence
range 0.0 .. 1.0
transform log_normalized
labels
# Etiquetas de ocurrencia AIAG-VDA AP (ordinales 0–9)
1
value 0.0000007
title "O1 – ≤1 en 1.500.000"
2
value 0.000007
title "O2 – 1 en 150.000"
3
value 0.00007
title "O3 – 1 en 15.000"
4
value 0.0005
title "O4 – 1 en 2.000"
5
value 0.003
title "O5 – 1 en 400"
6
value 0.012
title "O6 – 1 en 80"
7
value 0.05
title "O7 – 1 en 20"
8
value 0.12
title "O8 – 1 en 8"
9
value 0.33
title "O9 – 1 en 3"
10
value 1.0
title "O10 – ≥1 en 2"
# Etiquetas de exposición ASIL ISO 26262 — class asil, ordinales 10–13
# Fracciones de exposición auténticas de ISO 26262; no se requiere monotonicidad entre clases
E1
value 0.001
class asil
title "E1 – Exposición muy baja (<1%)"
E2
value 0.01
class asil
title "E2 – Exposición baja (1–10%)"
E3
value 0.1
class asil
title "E3 – Exposición media (10–90%)"
E4
value 0.9
class asil
title "E4 – Exposición alta (>90%)"
detection
range 0.0 .. 1.0
transform identity
labels
1
value 0.05
title "D1 – Casi cierta"
2
value 0.15
3
value 0.25
4
value 0.35
5
value 0.45
6
value 0.55
7
value 0.65
8
value 0.75
9
value 0.85
10
value 0.95
title "D10 – Incertidumbre absoluta"
controllability
range 0.0 .. 1.0
transform identity
labels
C1
value 0.01
title "C1 – Simplemente controlable"
C2
value 0.50
title "C2 – Normalmente controlable"
C3
value 0.99
title "C3 – Difícil de controlar"
risk_labels
ASIL_D
color #7b0000
title "ASIL D"
ASIL_C
color #b30000
title "ASIL C"
ASIL_B
color #e64500
title "ASIL B"
ASIL_A
color #f0a020
title "ASIL A"
QM
color #a0d0a0
title "Gestión de Calidad"
AP_H
color #b30000
title "AP: Alta"
AP_M
color #f0a020
title "AP: Media"
AP_L
color #f0d020
title "AP: Baja"
NEGL
color #c0c0c0
title Negligible
matrices
selected combined
combined
title "AIAG-VDA AP + ISO 26262 ASIL"
formula "0"
resolution first_match
rules
# Eventos ASIL: when "S:asil" se activa para cualquier etiqueta de severidad con class asil
# Entradas: severidad S1–S3, ocurrencia E1–E4, controlabilidad C1–C3
# Reglas derivadas de ISO 26262 Parte 3, Tabla B.1, más restrictivas primero
when "S:asil"
ASIL_D "S>=S3, O>=E4, C>=C3"
ASIL_C "S>=S3, O>=E4, C>=C2"
ASIL_C "S>=S3, O>=E3, C>=C3"
ASIL_C "S>=S2, O>=E4, C>=C3"
ASIL_B "S>=S3, O>=E4"
ASIL_B "S>=S3, O>=E3, C>=C2"
ASIL_B "S>=S3, O>=E2, C>=C3"
ASIL_B "S>=S2, O>=E4, C>=C2"
ASIL_B "S>=S2, O>=E3, C>=C3"
ASIL_B "S>=S1, O>=E4, C>=C3"
ASIL_A "S>=S3, O>=E3"
ASIL_A "S>=S3, O>=E2, C>=C2"
ASIL_A "S>=S3, O>=E1, C>=C3"
ASIL_A "S>=S2, O>=E4"
ASIL_A "S>=S2, O>=E3, C>=C2"
ASIL_A "S>=S2, O>=E2, C>=C3"
ASIL_A "S>=S1, O>=E4, C>=C2"
ASIL_A "S>=S1, O>=E3, C>=C3"
catch_block QM
# Eventos AP: no se necesita guardia de bloque — los eventos ASIL quedan completamente consumidos arriba.
# Las comparaciones ordinales contra nombres de etiquetas AP excluyen naturalmente las etiquetas ASIL:
# ordinal("9") = 8 < ordinal(S1) = 10, así que "S>=9" no puede activarse para S1/S2/S3
# si de algún modo escapan del bloque when.
# Entradas: severidad 1–10, ocurrencia 1–10, detección 1–10
AP_H "S>=9"
AP_H "S>=7, O>=7, D>=7"
AP_H "S>=5, O>=9, D>=9"
AP_M "S>=7, O>=4"
AP_M "S>=5, O>=7, D>=5"
AP_M "S>=3, O>=9, D>=8"
AP_L "S>=5, O>=4"
AP_L "S>=3, O>=7"
AP_L "S>=1"
catch_all NEGL
Verificaciones contra ISO 26262 Tabla B.1: S2+E3+C2 → ASIL_B ✓ (entra en `when "S:asil"`, coincide con `S>=S2, O>=E3, C>=C2`). S3+E4+C3 → ASIL_D ✓ (primera regla dentro del bloque). S1+E1+C1 → QM ✓ (ninguna regla ASIL específica coincide, se activa `catch_block QM`).
1. Sin valores de marcador de posición. S1=1,0, S2=1,1, S3=1,2 llevan sus magnitudes de severidad auténticas de ISO 26262; se sitúan naturalmente en o por encima del techo del rango AP (AP "10" = 1,0). E1–E4 llevan fracciones de exposición auténticas de ISO 26262 (0,001–0,9); no se aplica ninguna restricción de monotonicidad entre clases.
2. El enrutamiento por clase es estructural. S:asil es verdadero para cualquier etiqueta con `class asil`; no depende de valores de etiqueta ni de posiciones ordinales. Agregar o reordenar etiquetas dentro de una clase no rompe silenciosamente el enrutamiento.
3. La clasificación AP es una aproximación. La tabla AP auténtica de AIAG-VDA es una consulta discreta 3D (S×O×D). Las nueve reglas AP anteriores aproximan la estructura de la tabla. Los equipos que requieran conformidad AP exacta deben ampliar la sección AP para enumerar las condiciones de contorno completas como reglas ordinales ordenadas.
4. Convención de entrada. Los eventos ASIL proporcionan S1/S2/S3 + E1/E2/E3/E4 + C1/C2/C3. Los eventos AP proporcionan 1–10 para los tres de S, O, D. El sistema no impone esto — mezclar tipos de etiquetas produce un resultado pero no tiene sentido.
5. Los valores de controlabilidad representan no controlabilidad. C1=0,01 (contribución de riesgo baja), C3=0,99 (contribución de riesgo alta). Esto es opuesto a la lectura habitual de los números C en ISO 26262, donde C mayor significa más controlable. Los predicados ordinales son correctos independientemente de cómo se lean los valores.
El sistema valida la configuración en cada guardado. Los errores graves (como una regla catch_all faltante, un problema de ordenación de umbrales en una escala, o una regla que hace referencia a una etiqueta no declarada) impiden que el guardado se complete y se informan con un número de línea. Las advertencias (reglas muertas, un catch_all que domina la mayor parte de la matriz, cobertura de rango parcial) se muestran pero no bloquean el guardado.