Malfunzionamentos y daños Fulvio Corno, Maurizio Rebaudengo, Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica
Sumario Los malfuncionamientos Los daños Los errores Los modelos de daño y de error. F.Corno, M. Rebaudengo, M. Sonza Reorda 2
Sumario Los malfuncionamientos Los daños Los errores Los modelos de daño y de error. F.Corno, M. Rebaudengo, M. Sonza Reorda 3
F.Corno, M. Rebaudengo, M. Sonza Reorda 4 Malfuncionamientos Es posible que durante el ciclo de vida de un producto se verifique un malfuncionameinto (falla), definido como la situación en la cual el servicio prestado no respeta las especificaciones
F.Corno, M. Rebaudengo, M. Sonza Reorda 5 Malfuncionamientos Es posible que durante el ciclo de vida de un producto se verifique un malfuncionameinto (falla), definido como la situación en la cual el servicio prestado no respeta las especificaciones Las especificaciones proveen indicaciones acerca de la misión, es decir La función debe ser desempeñada por el producto La duración o período de tiempo durante el cuál eso debe suceder
Clasificación de los malfuncionemientos Los malfuncionamientos pueden ser clasificados con base en 3 parámetros independientes entre ellos: Malfuncionemientos estáticos o dinámicos Malfuncionamientos persistentes o temporales Malfuncionamientos consistentes o inconsistentes F.Corno, M. Rebaudengo, M. Sonza Reorda 6
F.Corno, M. Rebaudengo, M. Sonza Reorda 7 Malfuncionamientos estáticos o dinámicos Los sistemas, en muchas ocasiones, implican cálculos que producen resultados con una cierta distribución de tiempo Si losresultadossonerrados, se tiene un malfuncionamiento estático Si los resultados son correctos, pero son producidos en tiempos errados, entonces se tiene un malfuncionamiento dinámico.
F.Corno, M. Rebaudengo, M. Sonza Reorda 8 Ejemplo Considere el proceso que produce las señales que se deben enviar a una pantalla: Si el proceso envía datos equivocados, se tiene un malfuncionamiento e estático Si el proceso envía datos correctos, pero en momentos equivocados (de modo que la pantalla no permite visualizar) se tiene un malfuncionamiento dinámico.
F.Corno, M. Rebaudengo, M. Sonza Reorda 9 Malfuncionamiento persistente o temporal Se distinguen con base en la duración del malfuncionamiento. Si la duración del malfuncionamiento es significativa con respecto a aquel de la misión del producto, entonces se tiene un malfuncionamiento persistente. Si la duración es breve, el malfuncionamiento es temporal.
Ejemplo Considere un distribuidor de bebidas Si el sistema deja de funcionar, o para de proveer un cierto servicio, se tiene un malfuncionamiento persistente Si el sistema ocasionalmente no provee un cierto servicio, que después retorna autonomamente, entonces se tiene un malfuncionamiento temporal. F.Corno, M. Rebaudengo, M. Sonza Reorda 10
Malfuncionamientos consistentes e inconsistentes Se distinguen con base en la percepción que tienen diferentes usuarios del malfuncionamiento. Si el malfuncionamiento es percibido de igual forma por todos los usuarios, entonces se dice que es consistente. De otro modo es inconsistente; en tal caso, se habla también de malfuncionamiento bizantino. F.Corno, M. Rebaudengo, M. Sonza Reorda 11
F.Corno, M. Rebaudengo, M. Sonza Reorda 12 Ejemplo Considere el sistema informativo de un banco. En cierto momento, un malfuncionamiento hace que un servicio no se preste correctamente: Si ningún usuario puede usar el servicio, el malfuncionamiento es consistente Si algunos usuarios pueder usar el servicio, y otros no, el malfuncionamiento es inconsistente.
Otras clasificaciones Otro parámetro usado para clasificar un malfuncionamiento se relaciona con su gravedad. Se pueden tener malfuncionamientos: Benignos, si pueden ser ignorados Serios, si perjudican la misión Catastroficos, si causan la interrupción de la misión o daños graves al ambiente. F.Corno, M. Rebaudengo, M. Sonza Reorda 13
Sommario Los malfuncionamientos Los daños Los errores Los modelos de daño y de error. F.Corno, M. Rebaudengo, M. Sonza Reorda 14
Daños Un daño (fault) es la causa de un malfuncionamiento Desde el momento en el que se observa el efecto del daño (o sea el malfuncionamiento), puede ser extremamente complicado llegar al daño partiendo del malfuncionamiento F.Corno, M. Rebaudengo, M. Sonza Reorda 15
F.Corno, M. Rebaudengo, M. Sonza Reorda 16 Defectos y bugs Si el daño implica componentes de hardware o de softwarese se habla de defectos o de bugs, respectivamente.
Clasificación de los daños La clasificación se puede hacer con base en dos parámetros: El origen del daño, es decir: Dónde se ha verificado el daño? Cuando se ha verificado el daño? Quién ha causado el daño? La naturaleza del daño, es decir: El tipo La intención La duración. F.Corno, M. Rebaudengo, M. Sonza Reorda 17
Origen: Dónde? Los daños se pueden dividir en Daños internos: involucran el producto y surgen durante su ciclo de vida (especificación, diseño, producción, uso) Daños externos: involucran a usuarios o a ambientes no-funcionales. Se puede llamar también perturbaciones, agresiones o molestias. F.Corno, M. Rebaudengo, M. Sonza Reorda 18
Ejemplos de daños internos Un error software en el código de una aplicación Un daño hardware en un componente electrónico. F.Corno, M. Rebaudengo, M. Sonza Reorda 19
F.Corno, M. Rebaudengo, M. Sonza Reorda 20 Ejemplos de daños externos Se deben a comportamientos externos no previstos Del usuario: por ejemplo el control de la inyección de un motor recibe órdenes no permitidas Del ambiente no funcional: por ejemplo la temperatura sube más allá del límite, interrumpiendo el funcionamiento de los componentes electrónicos. Las radiaciones ionizantes son otro ejemplo de daño externo causado por un ambiente no funcional.
Origen: Cuando? Un daño puede verificarse: Durante la fase de especificación Durante el Diseño Durante la producción Durante la fase operativa. Los daños que se verifican durante las tres primeras fases se pueden llamar daños de creación. Nótese que un malfuncionamiento puede verificarse sólo durante la fase operativa, sin importar cuando sucedió el daño. F.Corno, M. Rebaudengo, M. Sonza Reorda 21
Origen: Cuando? Un daño puede verificarse: Durante la fase de especificación Durante el Diseño Durante la producción En el momento en que las específicaciones Los daños que representan se verifican la durante referencia las tres primeras fases se pueden llamar daños de contra creación. la cual se verifican los malfuncionamientos, Nótese que malfuncionamiento se trata puede esencialmente verificarse sólo de durante daños la que fase llevan operativa, a sin especificaciones importar cuando sucedió incompletas el daño. o inconsistentes. F.Corno, M. Rebaudengo, M. Sonza Reorda Durante la fase operativa. 22
F.Corno, M. Rebaudengo, M. Sonza Reorda 23 Origen: Cuando? Un daño puede verificarse: Durante la fase de especificación Durante el Diseño Durante la producción Durante la fase operativa. Los daños que se verifican durante las tres Correspondes primeras fases a bugs se pueden en el diseño, llamar daños de causados creación. por errores humanos o bugs Nótese en los que instrumentos un malfuncionamiento usados. puede verificarse sólo durante la fase operativa, sin importar cuando sucedió el daño.
F.Corno, M. Rebaudengo, M. Sonza Reorda 24 Origen: Cuando? Un daño puede verificarse: Durante la fase de especificación Durante el Diseño Durante la producción Durante la fase operativa. Los daños que se verifican durante las tres En losprimeras componentes fases se pueden hardware, llamar daños se trata de de defectos creación. de fabricación. En losnótese componentes que un malfuncionamiento software parten de puede cambios en verificarse sólo durante la fase operativa, sin el ambiente importar de cuando ejecución, sucedió debidos el daño. por ejemplo al cambio de procesador, o al sistema operativo.
F.Corno, M. Rebaudengo, M. Sonza Reorda 25 Pueden ser daños debidos a: Uso incorrecto Perturbaciones provenientes del mundo externo Origen: Cuando? Un daño puede verificarse: Durante la fase de especificación Durante el Diseño Durante la producción Durante la fase operativa. Los daños que se verifican durante las tres primeras fases se pueden llamar daños de creación. Nótese que un malfuncionamiento puede verificarse sólo durante la fase operativa, sin importar cuando sucedió el daño. da quando si è verificato il relativo guasto.
Origen: Quién? Un daño puede ser causado por: Una intervención humana errada durante las tres primeras fases (especificación, diseño, producción) Un bug en un instrumento de software usado durante las tres primeras fases Un problema tecnológico durante tales fases Una intervención humana errada por parte de un usuario o del ambiente durante la fase operativa. F.Corno, M. Rebaudengo, M. Sonza Reorda 26
Naturaleza: Tipo Un daño puede ser Funcional: es el daño que se relaziona con el cómo el producto ha sido especificado, diseñado, producido o usado. Los malfuncionamientos resultantes se conocen como sistémicos. Tecnológico: el daño involucra la implementación del producto, en la fase operativa. Los malfuncionamientos resultantes se llaman de interrupción (disruptive). F.Corno, M. Rebaudengo, M. Sonza Reorda 27
Naturaleza: Intención Daños accidentales Daños intencionales, debidos a una agresión humana voluntaria (intrusión, sabotaje, piratería) F.Corno, M. Rebaudengo, M. Sonza Reorda 28
Naturaleza: Intención Daños accidentales Daños intencionales, debidos a una agresión humana voluntaria (intrusión, sabotaje, piratería) Para algunos productos los daños intencionales pueden ser los más críticos porque ponen en riesgo el valor del producto. En el caso de las smart-card, que deben resistir los daños intencionales que buscan leer los datos almacenados. F.Corno, M. Rebaudengo, M. Sonza Reorda 29
Naturaleza: Duración Daños permanentes, o estáticos Daños temporales, o dinámicos, que se pueden dividir en Daños transitorios, debidos a causas externas Daños intermitentes, debidos a causas internas. F.Corno, M. Rebaudengo, M. Sonza Reorda 30
F.Corno, M. Rebaudengo, M. Sonza Reorda 31 Por ejemplo un daño debido a una partícula alfa que golpea un circuito y cambia al valor de un bit en un elemento de memoria. Naturaleza: duración Daños permanentes, o estáticos Daños temporales, o dinámicos, que se pueden dividir en Daños transitorios, debidos a causas externas Daños intermitentes, debidos a causas internas.
F.Corno, M. Rebaudengo, M. Sonza Reorda 32 Naturaleza: duración Daños permanentes, o estáticos Daños temporales, o dinámicos, que se pueden dividir en Daños transitorios, debidos a causas externas Daños intermitentes Por ejemplo un daño debido a cross-talk entre dos pistas de una tarjeta.
Sumario Los malfuncionamientos Los daños Los errores Los modelos de daño y de error. F.Corno, M. Rebaudengo, M. Sonza Reorda 33
Errores Un daño puede manifestarse, sobretodo, como una modificación del estado del sistema; tal modificación se llama error Eventualmente, el error podrá producir posteriormente un malfuncionamiento. F.Corno, M. Rebaudengo, M. Sonza Reorda 34
Propagación Un daño se manifiesta dentro de un módulo, se transforma en error y después se propaga hacia otros módulos, hasta alcanzar las salidas del sistema, produciendo un malfuncionamiento. El análisis de los caminos de propagación de los daños puede permitir el mejoramiento de la confiabilidad de un producto. F.Corno, M. Rebaudengo, M. Sonza Reorda 35
F.Corno, M. Rebaudengo, M. Sonza Reorda 36 Ciclo de vida de un daño (I) Fase I: durmiente o pasivo. Está presente en el sistema, pero no produce ningún efecto. Fase II: activo, es decir ha producido un error Fase III: el error se ha propagato dentro del sistema y ha producido un malfuncionamiento.
F.Corno, M. Rebaudengo, M. Sonza Reorda 37 Latencia (I) La latencia de un daño es el tiempo entre la ocurrencia del daño y su manifestación bajo la forma de malfuncionamiento.
Latencia (II) El valor de la latencia de un daño depende de El módulo que contiene el daño: si el módulo se usa frecuentemente, la latencia es baja El momento de ocurrencia deldaño: si el daño aparece en un módulo mientras este se encuentra activo, la latencia es baja Eluso que hace el sistema del módulo afectado por el daño: si los resultados producidos por tal módulo son usados frecuentesmente por el sistema, la latencia es baja El nivel de observación: de acuerdo a cuánto es observado el módulo afectado por el daño, la latencia F.Corno, M. Rebaudengo, M. Sonza Reorda puede ser más o menos baja. 38
Inercia Un malfuncionamiento puede producir consecuencias en la misión del producto. Se define inercia el período entre la ocurrencia de un malfuncionamiento y el inicio de las consecuecias sobre la misión. F.Corno, M. Rebaudengo, M. Sonza Reorda 39
Ciclo de vida de un daño (II) Fase I: durmiente o pasivo. Está presente en el sistema, pero no produce ningún efecto. Fase II: activo, es decir ha producido un error Fase III: el error se ha propagato dentro del sistema y ha producido un malfunzionamento. Fase IV: el malfuncionamiento produce una consecuencia F.Corno, M. Rebaudengo, M. Sonza Reorda 40
Latencia e inercia Nótese que Un valor elevado de inercia siempre es positivo Un valor elevado de latencia puede producir efectos negativos porque facilita la acumulación de daños y errores, que pueden enmascararse unos a otros. F.Corno, M. Rebaudengo, M. Sonza Reorda 41
Resumen Efectos internos Effetti externos daño error malfunc. consecuencia F.Corno, M. Rebaudengo, M. Sonza Reorda latencia inercia t 42
Sommario Los malfuncionamientos Los daños Los errores Los modelos de daño y de error. F.Corno, M. Rebaudengo, M. Sonza Reorda 43
F.Corno, M. Rebaudengo, M. Sonza Reorda 44 Modelos de daño/error Los posibles daños y errores son muchos para ser agrupados y considerados exhaustivamente. Es preferible identificar propiedades comunes y considerar modelos de daños (o de error), que representan todos los daños que satisfacen tales propiedades. Las propriedades pueden ser Propiedades físicas (o estructurales) Propiedades comportamentales.
F.Corno, M. Rebaudengo, M. Sonza Reorda 45 Modelos de daño/error Los posibles daños y errores son muchos para ser agrupados y considerados exhaustivamente. Es preferible identificar Loa daños propiedades se caracterizan comunes por y considerar modelos propiedades de daños físicas (o de específicas error), que representan todos los daños que satisfacen tales propiedades. Las propriedades pueden ser Propiedades físicas (o estructurales) Propiedades comportamentales.
F.Corno, M. Rebaudengo, M. Sonza Reorda 46 Modelos de daño/error Los posibles daños y errores son muchos para ser agrupados y considerados exhaustivamente. Es preferible Los identificar errorespropiedades son caracterizados comunes por y considerar modelos propiedades de daños comportamentales (o de error), que representan específicas. todos los daños que satisfacen tales propiedades. Las propriedades pueden ser Propiedades físicas (o estructurales) Propiedades comportamentales.
F.Corno, M. Rebaudengo, M. Sonza Reorda 47 Modelo de daño Un modelo de daño, identifica un conjunto de daños caracterizados por ciertas propiedades físicas/estructurales, definidas sobreciertomodeloestructural.
F.Corno, M. Rebaudengo, M. Sonza Reorda 48 Modelo de error Un modelo de error identifica un conjunto de daños caracterizados por la misma propiedad en un conjunto de estados del sistema.
F.Corno, M. Rebaudengo, M. Sonza Reorda 49 Modelos de daño/error para hardware Los modelos de error pueden ser clasificados de modo general usando los siguientes atributos Lógicos o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos.
F.Corno, M. Rebaudengo, M. Sonza Reorda 50 Modelos de daño/error para hardware Los modelos de error lógicos corresponden a transformaciones entre valores lógicos (de 0 a 1 i viceversa) Los no lógicos transforman valores Los modelos de error pueden ser clasificados lógicos de modo en valores general no lógicos. usando los siguientes atributos Lógicos o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos.
F.Corno, M. Rebaudengo, M. Sonza Reorda 51 Modelos de daño/error para Los modelos de error estáticos transforman pernanentemente un valor en otro. Los dinamicos transforman temporalmente el valor de una señal (que retorna al valor correcto) por ejemplo hardware Los modelos de error pueden ser clasificados de modo general usando los siguientes atributos debido a oscilaciones indeseadas. Lógicos o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos.
F.Corno, M. Rebaudengo, M. Sonza Reorda 52 Modelos de daño/error para Los modelos de error permanentes modifican definitivamente la función de cierto elemento (hard errors). Los temporales modifican normalmente solo el valor de una señal en un instante, ningún componente pierda la propia capacidad de operar correctamente Lógicos (soft errors). o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos. hardware Los modelos de error pueden ser clasificados sin que de modo general usando los siguientes atributos
F.Corno, M. Rebaudengo, M. Sonza Reorda 53 Modelos de daño/error para hardware Los modelos de error únicos afectan el funcionamiento de un solo elemento (por ejemplo un transistor, una puerta lógica). Los multiples afectan más elementos Los modelos de error pueden ser clasificados de modo general usando los siguientes atributos simultáneamente. Lógicos o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos.
F.Corno, M. Rebaudengo, M. Sonza Reorda 54 Modelos de daño/error para hardware Los modelos simetricos tienen un comportamiento idéntico sin importar Los modelos de error pueden ser el valor involucrado (0 o 1) clasificados de modo general usando los siguientes atributos Los asimétricos dependen del valor involucrado. Lógicos o no lógicos Estáticos o dinámicos Permanentes o temporales Únicos o múltiples Simétricos o asimétricos.
Modelos de daño/error para hardware (II) Entre los principales se tienen: Único fijo en 0/1 Corto (o puente) y abierto Fijo en ON y fijo en OFF Retardo SEU. F.Corno, M. Rebaudengo, M. Sonza Reorda 55
Modelos de daño/error para hardware (II) Entre los principales se tienen: Único fijo en 0/1 Corto (o puente) y abierto Fijo en ON y fijo en OFF Retardo SEU. Se define a nivel de puertas lógicas. Implica que una señal se fije permanentemente en el valor 0 o 1 F.Corno, M. Rebaudengo, M. Sonza Reorda 56
F.Corno, M. Rebaudengo, M. Sonza Reorda 57 Modelos de daño/error para hardware (II) Entre los principales se tienen: Único fijo en 0/1 Corto (o puente) y abierto Fijo en ON y fijo en OFF Retardo SEU. Se define a nivel eléctrico. Implica que dos conexiones estén permanentemente cortocircuitadas (short) o que una conexión esté abierta (open).
F.Corno, M. Rebaudengo, M. Sonza Reorda 58 Modelos de daño/error para hardware (II) Entre los principales se tienen: Se define a nivel de Único fijo en 0/1 transistor Corto (o puente) y abiertoimplica que un Fijo en ON y fijo en OFF transistor esté permanentemente Retardo fijo en el mismo SEU. estado (ON) o en el estado opuesto (OFF).
F.Corno, M. Rebaudengo, M. Sonza Reorda 59 Se define a nivel de puertas lógicas. Implica que cambie el valor de retardo asociado a cierto componente (por ejemplo una Único fijo en puerta 0/1 lógica) Modelos de daño/error para hardware (II) Entre los principales se tienen: Corto (o puente) y abierto Fijo en ON y fijo en OFF Retardo SEU.
F.Corno, M. Rebaudengo, M. Sonza Reorda 60 Modelos de daño/error para hardware (II) Se define a nivel de puertas lógicas o de registros. Implica el cambio de un valor en un momento dado en un elemento de memoria (Single Event Upset). Entre los principales se tienen: Único fijo en 0/1 Corto (o puente) y abierto Fijo en ON y fijo en OFF Retardo SEU.
Modelos de daño/error para el software También en este caso los modelos de error se pueden clasificar en general a través de 3 atributos: Estáticos o dinámicos Permanentes o temporales Únicos o múltiples. F.Corno, M. Rebaudengo, M. Sonza Reorda 61
F.Corno, M. Rebaudengo, M. Sonza Reorda 62 Modelos de error a nivel de código fuente Se definen desde el compilador usando la lista de controles sintácticos que él ejecuta sobre el código fuente
F.Corno, M. Rebaudengo, M. Sonza Reorda 63 Modelos de error a nivel de código fuente Están vionculados a la semántica del linguaje. Ejemplos: Una función no devuelve un valor Un parámetro de entrada para un subprograma no asume un valor en el momento de la llamada Un parámetro de salida de un subprograma no asume un valor en el momento de regreso Una variable asume un valor que no es compatible con el tipo que se le ha asignado Un task llama a otro, pero este otro no existe.
Modelos de error a nivel de código ejecutable Se trata de violaciones a las propriedades de un código ejecutable Ejemplos: La ejecución de un procedimiento no termina con la instrucción RETURN El stack cae en overflow. F.Corno, M. Rebaudengo, M. Sonza Reorda 64