Modelos de fiabilidad del software

Para modelizar la fiabilidad del software, se deben considerar primero los principales factores que le afecten : Introducción de fallos, eliminación de fallos y entorno. La introducción de fallos depende principalmente de las características del código desarrollado y de las características del proceso de desarrollo. La característica del código más significativa es el tamaño. Entre las características del proceso del desarrollo se encuentran las tecnologías y las herramientas de ingeniería del software usadas, y el nivel de experiencia del personal.

Se puede desarrollar código para añadir posibilidades o para eliminar fallos. La eliminación de fallos depende del tiempo, del perfil operativo. Como algunos los anteriores factores son de naturaleza probabilística y se dan en el tiempo, los modelos de fiabilidad del software generalmente se formúlan en términos de procesos aleatorios.

Los modelos de fiabilidad del software entran en dos grandes categorías :

  1. Modelos que predicen la fiabilidad como una función cronológica del tiempo (calendario).
  2. Modelos que predicen la fiabilidad como una función del tiempo de procesamiento transcurrido (tiempo de ejecución de CPU).

Se han propuesto modelos estocásticos mucho más sofisticados para la fiabilidad del software:

  • Validez predictiva. La posibilidad de que el modelo prediga el comportamiento de fallo futuro basándose en los datos obtenidos de las fases de prueba y de operación.
  • Capacidad. La posibilidad de que el modelo genere datos que puedan ser fácilmente aplicados a los esfuerzos de desarrollo de software industriales.
  • Calidad de suposiciones. La plausibilidad de las suposiciones en las que se basan los fundamentos matemáticos del modelo cuando se llega a los límites de esas suposiciones.
  • Aplicabilidad. El grado en que se puede aplicar un modelo de fiabilidad en diferentes terrenos y tipos de aplicación del software.
  • Simplicidad. El grado en que el conjunto de datos que soportan el modelo es directo; el grado en que el enfoque y las matemáticas son intuitivos; el grado en que se puede automatizar el enfoque general.
  • Seguridad del software. La seguridad del software es una actividad de garantía de calidad del software que se centra en la identificación y evaluación de los riesgos potenciales que pueden producir un impacto negativo en el software y hacer que falle el sistema completo.

Como parte de la seguridad del software, se puede dirigir un proceso de análisis y modelización. Inicialmente, se identifican los riesgos y se clasifican por su importancia y su grado de riesgo. Cuando se han identificado estos riesgos del sistema, se utilizan técnicas de análisis para asignar su gravedad y su probabilidad de ocurrencia. Para que se efectivo, se tiene que analizar el software en el contexto del sistema completo.

El análisis del árbol de fallos construye un modelo gráfico de las combinaciones secuenciales y concurrentes de los sucesos que pueden conducir a un suceso o estado del sistema peligroso. Mediante un árbol de fallos bien desarrollado, es posible observar las consecuencias de una secuencia de fallos interrelacionados que ocurren en diferentes componentes del sistema. La lógica de tiempo real (LTR) construye un modelo del sistema mediante la especificación de los sucesos y las acciones correspondientes.

El modelo suceso-acción se puede analizar mediante operaciones lógicas para probar las valoraciones de seguridad de los componentes del sistema y su temporización. Se pueden usar los modelos de redes de Petri para determinar los riesgos más peligrosos. Cuando se han identificado y analizado los riesgos, se pueden especificar requisitos del software relacionados con la seguridad. La espeficación puede contener una lista de sucesos no deseables y la respuestas del sistema deseadas a dichos sucesos.

Fuente: Apunte Administración de servicios de cómputo del Instituto tecnológico de la Paz