Métodos de Análisis Probabilísticos 1. Introducción Los métodos probabilísticos son utilizados como una herramienta para medir cuan confiable puede ser un software. Existe una gran cantidad de sistemas de software que presentan diferentes niveles de complejidad, teniendo como consecuencia que exista mayor riesgo en el desempeño de este. Para el cálculo de la Fiabilidad de un software existen dos métodos: Analítico el cual incluye fórmulas matemáticas, simulación de escenarios. Gráfico que abarca ensayos de larga duración o acelerados. Los métodos analíticos permiten que la realización de una arquitectura de software logre un nivel de confiabilidad específico. Estos métodos consisten en representar cada uno de los parámetros del modelo mediante funciones de distribución probabilísticas, y ofrecen un análisis de la incertidumbre de los parámetros del modelo mucho mejor que el que se podría llevar a cabo con métodos determinísticos. Las distribuciones presentadas dependen de datos obtenidos en base a la observación, y del proceso de estimación utilizado. Los resultados que se obtienen con los métodos probabilísticos se pueden representar mediante una nube de puntos que representa la distribución, como se muestra en la siguiente figura: La fiabilidad es expresada por la probabilidad de que un dispositivo cumpla una función requerida en las condiciones de utilización y para un período de tiempo determinado¨. Probabilidad: es la relación número de casos favorables número de casos posibles asociada a un tiempo t. Se denomina R (t) = P (cumplir una misión) = P (buen funcionamiento) 2. Ventajas y Desventajas Ventajas: Permite compartir probabilidades que al ser correctas se comparte a los correspondientes niveles inferiores. Ofrecen un análisis de la incertidumbre de los parámetros del modelo mejor que el análisis determinísticos. Desventajas: Sus resultados resultan ser una aproximación y no un dato preciso ya que se basa en probabilidades. 3. Clasificación de Métodos de Análisis Probabilísticos Existen 2 clases de métodos para evaluar confiabilidad: los métodos de simulación estocástica y los métodos de análisis. De los métodos de simulación estocástica el más conocido es el de Monte Carlo y, entre los métodos de análisis se tienen los procesos continuos de Markov. 1. Método de Monte Carlo: Consiste en la simulación de un número considerable de situaciones, generadas en forma aleatoria, donde los índices de confiabilidad corresponden a los valores de los momentos en las distribuciones de probabilidad. Existen 2 versiones: a. Método de Monte Carlo secuencial: simula cronológicamente cada hora del año y el estado actual depende de los estados anteriores. (Sistema con memoria). b. Método de Monte Carlo no secuencial: simula aleatoriamente todas las horas del año y el estado actual no depende del anterior. (Sistema sin memoria). La ventaja principal de este método es la facilidad que ofrece de poder tener en cuenta cualquier variable aleatoria y cualquier contingencia y la posibilidad de adoptar políticas de operación similares a las reales. Sin embargo, por ser un método estocástico hay preferencia por los métodos de análisis, dado que es mucho más fácil su manejo. 2. Método de Markov: La mayoría de los métodos analíticos están basados en los procesos continuos de Markov. Un sistema de software se considera como un sistema reparable, como aquel que al fallar un elemento, éste es reemplazado o reparado, dependiendo de la naturaleza del elemento en cuestión. De esta manera se restablece la condición de operación normal del sistema. Así entonces, el sistema es continuo en el tiempo, con estados discretos finitos, ajustándose muy bien a una representación por medio de procesos continuos de Markov. El método de Markov permite obtener, con una excelente precisión, la probabilidad de que el sistema resida en cualquiera de sus estados posibles, no la probabilidad de falla en un punto del sistema (que es lo que se desea). A pesar de esta buena característica, resulta un método poco atractivo, debido a que la cantidad de estados posibles en un sistema crece dramáticamente a medida que aumenta el número de elementos que lo componen. Si la modelación de componentes considera sólo dos estados para cada uno de ellos (falla y operación), el diagrama de espacio de estados contiene 2^n estados posibles. 3. Técnica de frecuencia y duración: Nos brinda información acerca de la frecuencia de encontrarse en un estado determinado y la duración promedio de residencia en dicho estado, ya que estos datos entregan mucha más información que una simple probabilidad. La probabilidad de que un elemento este en operación está dada por: P(op)= m/(m+r) donde, m es el tiempo promedio de operación y r es el tiempo promedio de reparación. Siendo la frecuencia de un ciclo es 1/T (periodo) y T = m+r; es decir que la frecuencia de encuentro en un estado determinado está dada por la probabilidad de encontrarse en el estado, por la tasa de partida desde dicho estado. La aplicación de esta técnica para sistemas de cualquier tamaño puede resumirse en lo siguiente: i. Evaluar las probabilidades límites de estado. ii. Evaluar la frecuencia de encuentro en un estado iii. Evaluar la duración media de cada estado. La duración media de residencia en cada estado de los estados acumulados, se obtiene mediante la expresión: m c = prob. acumulada para el estado i/ frec. de encuentro en el estado i. 4. Análisis de árbol de fallas: El árbol de fallas es un diagrama lógico que muestra las interrelaciones entre el evento no deseado en un sistema (efecto) y las razones para el evento (causas). Las razones pueden ser condiciones ambientales, errores humanos, eventos normales que se espera que ocurran en la vida del sistema, y fallas de componentes específicos. Así, un árbol construido coherentemente muestra las diferentes combinaciones de fallas y otros eventos los cuales pueden guiar a un evento no deseado. La descripción del evento no deseado siempre nos deberá dar respuesta a las preguntas; ¿Qué?, ¿Dónde? y ¿Cuándo? Así: Que: Describe que tipo de evento no deseado ocurre. Donde: Describe donde el evento no deseado ocurre. Cuando: Describe cuando el evento no deseado ocurre. La importancia de la confiabilidad de un componente en un sistema depende de dos factores: 1. La localización del componente en el sistema. 2. La confiabilidad del componente. En la actualidad, el análisis de arboles de falla es una de las técnicas de uso común para elaborar estudios rigurosos de riesgo, y de confiabilidad. Simulación Monte Carlo Tiempo de consultas a servidores en paralelo Supongamos que desde un ordenador cliente se realiza consultas SQL a bases de datos situadas en dos servidores distintos. Nuestro objetivo será estimar el tiempo esperado (tiempo medio) que deberemos esperar para recibir la respuesta de ambos servidores. Dada la complejidad de la consulta que queremos realizar, y basándonos en experiencias anteriores, se calcula que el tiempo necesario para que cada uno de los servidores responda a la misma sigue una distribución normal con los parámetros (media y desviación estándar, en minutos) que se indican a continuación: Pediremos a Excel que genere valores pseudo-aleatorios provenientes de dichas distribuciones. Asimismo, usaremos la función MAX para obtener el tiempo de respuesta (que será el máximo de los tiempos de respuesta de cada servidor), y la función SI para determinar qué servidor ha sido el más rápido en responder: Usaremos también las funciones CONTAR y CONTAR.SI para contar el número de iteraciones y el número de veces que un servidor es más rápido que el otro: Finalmente, las funciones PROMEDIO, DESVEST, e INTERVALO.CONFIANZA nos servirán para obtener, respectivamente, el tiempo muestral medio (esperado) de respuesta, la desviación estándar de la muestra (observaciones que generaremos), y un intervalo de confianza, a un nivel del 95%, para el tiempo medio (este intervalo nos permitirá saber si nuestra estimación es buena o si, por el contrario, necesitaremos más iteraciones). Una vez introducidas las fórmulas anteriores, bastará con seleccionar y “arrastrar” hacia abajo el rango de celdas G3:J3, con lo que se generarán nuevas iteraciones. En la imagen siguiente se muestra el resultado obtenido al generar 2.077 iteraciones. Observar que el tiempo medio estimado de respuesta es de 22,9 minutos, y podemos asegurar, con un nivel de confianza del 95%, que dicho tiempo medio estará entre 22,8 y 23,0 minutos. Finalmente, se observa también que el servidor 1 ha respuesto más rápido que el servidor 2 en el 67% de las iteraciones. Referencias: Mathematical and Statistical Methods in Reliability (Quality, Reliability and Engineering Statistics) – Bo H Lindqvist & Kjell A Doksum