Top Banner

of 18

Redes Bayesianas Aplicadas a La Ingeniería de Software

Oct 10, 2015

Download

Documents

arturochari
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Redes bayesianas aplicadas a la Ingeniera de Software

Redes bayesianas aplicadas a la Ingeniera de Software

Mtricas de Software | 2013

CHARI, ArturoAlumnos GOMEZ. FedericoVALDESOGO, NicolsWEHREN, MartnPresentacin del problemaEn algunas actividades de la ingeniera de software, se tratan con valores inciertos o probabilsticos. Por esta razn, la teora de la probabilidad ha sido utilizada en la ingeniera de software. En la actualidad, se utilizan modelos grficos que combinan la probabilidad y la teora de grafos en problemas dnde est presente la incertidumbre, las llamadas redes bayesianas.

Las redes bayesianas se adaptan a algunas actividades de la ingeniera de software dado que permiten modelar problemas donde no se tiene un completo conocimiento del dominio. Sin embargo, cuando se obtienen nuevos datos sobre la realidad, stos se introducen a la red actualizando el resto de las probabilidades.Una red bayesiana es un tipo especfico de modelo grfico, representado como un grafo dirigido y acclico. Los nodos son representaciones grficas de los objetos o eventos del mundo real.Una arista entre un par de nodos representa la relacin causal entre ellos.Las redes bayesianas asumen que un nodo depende solamente de sus padres, y que cada nodo est asociado a una tabla de probabilidades condicionales. Esta tabla define la probabilidad de cada posible estado que una variable puede llegar a asumir, respecto a los posibles estados en los que se puedan encontrar sus padres.

Caractersticas de las redes bayesianasRepresentacin grfica: las redes bayesianas permiten representar de manera grfica y explcita las relaciones entre las diferentes variables del domino, permitiendo as ver con claridad las relaciones causales entre las mismas, especialmente cuando se trata de problemas complejos.Modelado cualitativo y cuantitativo: la parte cualitativa es un componente subjetivo, que refiere al criterio o la opinin experta; mientras que la parte cuantitativa es un componente objetivo que refiere a utilizar datos concretos como los datos obtenidos de otros proyectos ya finalizados.Inferencia bidireccional: las redes bayesianas pueden hacer inferencia en ambos sentidos, es decir, las variables de entrada pueden ser usadas para predecir las variables de salida y viceversa. Fijando las variables de salida con los valores deseados, es posible predecir qu valores de las variables de entrada permiten generar dicha salida.Anlisis de sensibilidad: las redes bayesianas permiten llevar a cabo un anlisis de sensibilidad de determinadas variables de una manera fcil, simplemente modificando las evidencias.Incertidumbre: las redes bayesianas permiten utilizar valores con diferentes grados de incertidumbre (es decir, usar informacin incompleta) de manera clara y explcita, y aun as, alcanzar buenas predicciones.Valores de confianza: la salida de una red bayesiana es una distribucin de probabilidad y no un valor nico. Este tipo de informacin se puede usar para medir la confianza que se puede depositar en la salida de la red, lo cual es de relevancia si el modelo va a ser usado en la toma de decisiones.Las probabilidades antes de introducir evidencias se conocen como probabilidades a priori. Una vez introducidas nuevas evidencias, stas se propagan haciendo posible que se modifiquen la totalidad de las tablas de probabilidades condicionales de cada una de las variables interconectadas en la red. Las nuevas probabilidades calculadas se las conocen con como probabilidades a posteriori.A este proceso se lo conoce como inferencia probabilstica.

Pasos para la construccin de una red bayesianaUna vez que se tenga un buen conocimiento del dominio, se deben identificar las variables de inters, junto con sus posibles valores. Es un proceso lento y complejo, por el hecho de que adems de tener que comprender bien el dominio del problema, los datos seleccionados deben ser vlidos para que los datos resultantes tambin lo sean.Una vez identificadas y seleccionadas las variables de inters pertenecientes al dominio, se debe decidir si cada una de ellas ser utilizada como variable de entrada, su tipo y si se requiere de una discretizacin o no.Luego, se debe definir la topologa de la red, es decir, las relaciones causales entre las variables. Las tcnicas de minera de datos pueden ayudar en la bsqueda de redes, pero generalmente se necesita la opinin de expertos del dominio.Posteriormente, hay que definir las tablas de probabilidad para cada uno de los nodos de la red. Puede que sea de utilidad apoyarse en la minera de datos, si es que existen bases de datos del dominio.Ya creada la red bayesiana es necesaria la evaluacin y verificacin de su utilidad. Con este propsito se utiliza el anlisis de sensibilidad, que permite comprobar cmo varan los resultados de algunas variables ante cambios en los valores de algunas evidencias de ciertas variables.

Pasos para la construccin de una red bayesianaEs posible automatizar el proceso de creacin de las redes bayesianas, aunque no es posible hacerlo en su totalidad porque el experto debe intervenir en:

El proceso de preparacin de los datos, es decir, de seleccionar cules son los datos de relevancia sobre el dominio y cules sern las fuentes de las que se obtendrn dichos datos, para que las herramientas a utilizar puedan manipularlos.El proceso de seleccin y limpieza, que consiste en hacer una seleccin ms fina de las variables de relevancia, discretizar datos (si se lo requiere), como as tambin de decidir cuales datos son anmalos.El proceso de minera de datos, que es donde se aplican algoritmos para la creacin de las redes bayesianas, se compone de dos tareas principales:Introduccin del mejor modelo cualitativo partiendo de los datos y/o conocimiento previo de los expertos del dominio.Estimacin de las tablas de probabilidad: una vez que la estructura ha sido definida, se definen las tablas de probabilidad, que se basan en las frecuencias obtenidas de los datos.

El proceso de interpretacin de los resultados.

Asimilacin y explotacin de los resultados.

Aplicaciones de las BBN en la ingeniera de software Estimacin de esfuerzo y calidad: Fenton y Neil propusieron el uso de redes bayesianas teniendo en cuenta factores tales como las habilidades de los programadores y de los analistas, la complejidad en el diseo y los mtodos/procedimientos usados (en la produccin), para as generar predicciones ms exactas. Ms exactas en cuanto a otros modelos como los basados en el tamao y basados en la complejidad, argumentando que estos ltimos no ofrecen una prediccin eficiente.Con frecuencia, para medir la calidad de los productos de software, se usan medidas como:El nmero de defectos encontrados en las pruebas.El nmero de defectos encontrados por los usuarios.El nmero de defectos encontrados en las fases finales de prueba, y que podran haberse encontrado con anterioridad.

Pruebas de software: las redes bayesianas juegan un rol de testeo sobre el proyecto, dando respuestas a preguntas del tipo qu pasa si?, que ayudan a los lderes de proyecto y administradores en la toma de decisiones.

Aplicaciones de las BBN en la ingeniera de software Fiabilidad: Fenton ha desarrollado proyectos en los que se utilizan las redes bayesianas para la estimar la fiabilidad y la seguridad de sistemas en distintos mbitos. Entre ejemplos de estos proyectos podemos mencionar: DATUM (Dependability Assessment of Safety Critical Systems Throught Unification of Measurable Evaluacin de la confiabilidad de sistemas de seguridad crticos a travs de la unificacin de lo medible)SERENE (SafEty and Risk Evaluation using Bayesian Networks Seguridad y evaluacin de riesgos usando redes bayesianas)

Interfaces grficas e interaccin con el usuario: existieron proyectos donde se han utilizado redes bayesianas para mejorar la interaccin entre los usuarios y los productos de software, como el proyecto Lumire de Microsoft. El asistente de Microsoft Office cuando el usuario utilizaba la ayuda.Desventajas de las redes bayesianasEstructura: puede ser difcil definir la estructura de una red bayesiana compleja, incluso hasta para los expertos del dominio pudiendo crear desigualdades entre el modelo construido y el problema en cuestin.Variables ocultas: puede ocurrir que el modelo construido no tenga en cuenta una o ms relaciones entre las variables, por el hecho de que sean poco evidentes en el problema.Probabilidades consistentes: las redes bayesianas son sensibles a las inconsistencias, y slo son tiles si se puede confiar en sus resultados. Adems, una mala estimacin de los parmetros puede distorsionar toda la red invalidando los resultados.

Cuando se construyen redes bayesianas utilizando tcnicas de minera de datos, suelen existir fuentes de error, como por ejemplo la discretizacin de variables, valores perdidos, etc.Proyecto LumireEl proyecto Lumire se inici con el fin de desarrollar mtodos y una arquitectura para el razonamiento acerca de las necesidades de los usuarios cuando stos utilizan un producto de software. La base de Lumire son modelos bayesianos que capturan las relaciones de incertidumbre entre las necesidades de un usuario por un lado, y por otro, las observaciones sobre el estado del software, la secuencia de acciones llevadas a cabo por el usuario en el transcurso del tiempo, y las palabras que ste utiliza en cada consulta.

Proyecto LumireSe encontr que los modelos bayesianos pueden ser eficaces en el diagnstico de las necesidades de un usuario y pueden proporcionar mejoras tiles en las aplicaciones de software cuando se los incorporan.

Se tuvo inters en la aplicacin de modelos bayesianos para modelar las necesidades de los usuarios porque tales permiten dominar problemas en los que interviene la incertidumbre.

Proyecto LumireSe muestra una reducida red bayesiana que representa la dependencia entre una pausa despus de una actividad y la probabilidad de que el usuario deseara recibir asistencia. De acuerdo con el modelo, un usuario que est en el estado de recepcin de asistencia, cambiara la distribucin de la probabilidad de la observacin de pausas en actividad. El estado de desear la asistencia tambin influye en la probabilidad de detectar una bsqueda reciente a travs de varios mens.

Proyecto LumireSe muestra una vista desde alto nivel de la arquitectura de Lumiere aplicada a la herramienta Excel. Los eventos son transformados en observaciones representables en un modelo bayesiano. Un sistema de control (en la figura control system) analiza peridicamente una cola de eventos y lleva a cabo una inferencia.

Problema | Estimacin de defectos El problema involucra la cantidad de defectos presentes en un producto de softwareEl objetivo es estimar la cantidad de defectos que son encontrados en dicho producto desde el proceso de su construccin hasta que llega a las manos del cliente.Se busca que el software cumpla con los requisitos especificados y con la menor cantidad de defectos posibles, es decir, un producto que adems de satisfacer ciertas necesidades, sea de calidad.Problema | Estimacin de defectos Variables

Los defectos insertados son aquellos que se introducen descuidadamente durante el proceso de desarrollo (especialmente en la codificacin) del producto de software. Los defectos detectados son aquellos defectos que son encontrados en el cdigo durante la etapa de testeo.

Los defectos residuales son aquellos defectos insertados que no han sido detectados en la etapa de testeo, es decir, que an se encuentran presentes en el software.

Los defectos operacionales son aquellos defectos que se encuentran presentes en el producto de software al momento que es entregado al cliente, y son detectados por ste.

Problema | Estimacin de defectos Variables

La complejidad del problema refiere a la complejidad natural del dominio del problema para la que el producto de software es desarrollado.El esfuerzo en el diseo es el grado de empeo que se aplica al diseo y desarrollo del producto de software.El esfuerzo en el testing es el grado de empeo que se aplica a la deteccin de defectos en el producto de software.El uso operacional es el grado de uso que el cliente le da al producto de software cuando se encuentra en produccin.

Problema | Estimacin de defectos

Red bayesiana resultante