Un enfoque multi-agente para la asistencia en la toma de decisiones de diseño de Software - Musante, Matías Adrián (2016)
La construcción de sistemas de software es una de las disciplinas más prolíficas de los últimos tiempos, debido a los constantes avances tecnológicos y una masiva tendencia hacia la automatización e informatización de tareas. En este contexto, y sobre todo en aquellos sistemas que presentan una complejidad considerable, o cuyo funcionamiento es crítico para el éxito de una actividad, resulta de gran importancia la toma correcta de decisiones de diseño por parte de los ingenieros a fines de obtener aplicaciones de calidad, que cumplan con los requerimientos establecidos, reduzcan costos por replanificación y re-trabajo y, por ejemplo en sistemas de tiempo real, eviten resultados desastrosos. Una situación típica se da cuando se debe elegir un patrón de arquitectura para satisfacer un conjunto de requerimientos de atributos de calidad predefinidos, donde la evaluación de los patrones candidatos dependerá de varios factores tales como las prioridades de los atributos de calidad, los intereses de los stakeholders involucrados y el costo de la aplicación de los diferentes patrones. En este contexto, las herramientas de asistencia al desarrollo de software (herramientas CASE) adquieren gran relevancia, dado que facilitan el análisis de las diferentes alternativas de diseño contemplando todas las posibles variables influyentes [Díaz-Pace y Campo, 2008]. El enfoque Design-Bots, recientemente materializado por la aplicación Architect, es un ejemplo de este tipo de herramientas. Actualmente, el soporte para el análisis de diversos aspectos de la arquitectura incluido en Architect no contempla la problemática en forma global. En este caso, cada agente evalúa una porción de la arquitectura (de acuerdo al escenario de calidad asociado al agente) y realiza una propuesta; finalmente es el usuario de la herramienta quién deberá decidir cuál sería la alternativa más conveniente de acuerdo a sus preferencias. Es conocido que la utilización de protocolos multi-agente permite desarrollar sistemas expertos que producen soluciones aceptables para problemáticas complejas [Wooldridge y Jennings, 1995]. Puntualmente, los protocolos de negociación multi-lateral pueden ajustarse convenientemente a la problemática de evaluar una arquitectura considerando los tradeoffs existentes en la especificación de la misma. Párrafo extraído de la tesis de grado a modo de resumen.