Buenos días,
Supongo que MTBF significa tiempo medio entre fallas. La palabra "falla" a menudo crea cierta confusión: MTBF comúnmente mide el "tiempo de actividad" - períodos entre fallas.
Para calcular el tiempo medio entre fallas, es necesario hacer un seguimiento de los momentos en los que se resolvieron las fallas y cuando comenzaron. La distancia de tiempo entre la resolución y el inicio de una falla es el período de tiempo entre eventos de falla: tiempo de actividad.
La suma de todos los períodos de tiempo entre eventos de falla dividida por el número de eventos de falla te proporcionará un tiempo medio entre fallas en el período de tiempo que estás considerando para la evaluación.
UP ------>| |--------------->| |------------->|
falló activo falló activo falló
ABAJO |===========>| |=========>| |===>
Tiempo => 0 --------- 10 ------------- 20 -------- 25 ---------- 50 ----
En el ejemplo anterior tenemos dos períodos completos de operación, 10 unidades de 10 a 20 y 25 unidades de 25 a 50. Entonces aquí tenemos 35 unidades de tiempo de actividad (entre fallas) y dos ciclos de falla que conducen a 35 / 2 => 17.5 unidades de tiempo entre fallas.
Para complicar más las cosas, algunas organizaciones necesitan considerar no solo el estado binario de tiempo de inactividad versus tiempo de actividad, sino también considerar cuándo el componente o sistema necesitaba estar operativo. Si se resuelve una falla en un componente o sistema, pero el tiempo de actividad no comienza, entonces la suma final de las duraciones de tiempo de inactividad <> suma de tiempos de actividad.
En cuanto a tus cálculos, dado que no tengo conocimiento sobre el diseño específico de la tabla Z de tu cliente, no puedo confirmar definitivamente tu seudocódigo. Confío en que puedas utilizar la explicación anterior junto con tu conocimiento del diseño de tu tabla Z para alcanzar un nivel de confianza.