Está en la página 1de 8

Ingeniera de software basado en agentes

Introduccin.Histricamente han ido apareciendo diferentes modelos de programacin de forma que cada modelo nuevo ha representado un mayor grado de abstraccin que el anterior. Dicha evolucin puede resumirse de forma aproximada en los siguientes hitos: La programacin orientada a la maquina con los primeros lenguajes de maquina basados en el algebra de Boole. La programacin estructurada la que, a travs del teorema de la estructura, plantea que cualquier programa puede crearse siguiendo tres estructuras bsicas: la secuencial, la decisional y la iterativa. La programacin modular, plantea considerar como elemento de diseo el mdulo como unidad mnima de anlisis. La programacin orientada a objetos que considera el mundo como un medio donde predominan los objetos y el paso de mensajes. La programacin basada en componentes, que recoge elementos fundamentales agrupados en los componentes para propiciar el diseo y desarrollo orientado a componentes. Programacin orientada a agentes, donde se considera que los sistemas multiagente constituyen el ncleo orientador de los procesos de solucin de problemas. Un agente es cualquier proceso computacional dirigido por el objetivo o capaz de interaccionar con su entorno de forma flexible y robusta En este sentido, un agente es un sistema informtico, situado en algn entorno, que percibe su medio ambiente y a partir de tales percepciones determina y ejecuta acciones de forma autnoma y flexible, estas acciones le permitan alcanzar sus objetivos, siendo capaz de modificar su entorno. Los agentes pueden ser considerados como sucesores del paradigma orientado a objetos, pero con algunas diferencias significativas como: Los objetos no tienen control sobre su estado interno, los agentes si. Los objetos no tienen iniciativa, los agentes si. Los agentes poseen actitud y el sentido de la orientacin, los objetos no. Los agentes son objetos proactivos. Los agentes se pueden comunicar con los humanos, como si fuesen humanos. Un agente puede cuestionar y aprender. La ingeniera del software orientada hacia agentes es una disciplina reciente que aplica tcnicas de ingeniera del software e inteligencia artificial, busca la construccin del anhelado software que piensa o el software con inteligencia. Este

paradigma ha tomando cada da ms y ms importancia ya que posee unas arquitecturas y caractersticas propias que no encajan fcilmente en ninguno de los paradigmas de ingeniera del software clsicos. La ingeniera del software orientada a agentes es una disciplina que proviene de la fusin entre la inteligencia artificial, la tecnologa de objetos y de componentes, sistemas distribuidos, sociedad y la ciencia del comportamiento entre otros. De la tecnologa de objetos rescata: mensajes entre objetos, encapsulamiento, clases y herencia. De los sistemas distribuidos considera: la distribucin de datos y procesos, conectividad, redes, protocolos, interoperabilidad e Internet. De la sociedad y la ciencia del comportamiento: interacciones entre humanos, roles, conductismo, cognitivismo. De la inteligencia artificial: representacin del conocimiento, razonamiento, aprendizaje y el enfoque de agente inteligentes. La ingeniera del software basada en agentes ha surgido en respuesta a la demanda de los requerimientos de los sistemas multiagente. Estos sistemas son esencialmente distribuidos y estn compuestos por un conjunto de agentes del software que interactan a fin de satisfacer sus objetivos. Si bien los sistemas multiagente son aplicados a una diversidad enorme de sistemas de computadoras comparten una serie de caractersticas, entre las que se mencionan: la informacin es distribuida, las entidades tienen conocimiento parcial, la computacin es asincrnica y no existe un sistema de control central. Los agentes del software son entidades computacionales autnomas que estn dirigidas por objetivos e insertas en un entorno que pueden percibir y actuar sobre l. Autonoma significa que las acciones ejecutadas por el agente no son explcitamente iniciadas por el usuario u otro agente; adems de que el agente persiste en el tiempo, es decir que no termina su ejecucin cuando ha finalizado una tarea, sino que contina observando su entorno, decidiendo qu accin ejecutar en el prximo instante de tiempo.

Desarrollo.En trminos generales, un agente es una entidad que acta, o tiene la autoridad para actuar, buscando satisfacer los intereses de otra. De la misma forma, en trminos de las ciencias de la computacin un agente es una entidad computacional que acta en favor de un usuario humano, entidad software u otro agente. Los agentes nacen de la investigacin en el terreno de la Inteligencia Artificial, y ms concretamente dentro del campo de la Inteligencia Artificial Distribuida. Es difcil encontrar una nica definicin consensuada de agente inteligente ya que de hecho el trmino agente siempre ha sido bastante controvertido en la literatura.

Caractersticas.Distintos autores (Wooldridge & Jennings, 1995; Franklin & Graesser, 1997) han optado por dar una lista de caractersticas que debe exhibir un agente para poder considerarse inteligente: Autonoma. Los agentes operan sin la intervencin directa de cualquier otra entidad ya que poseen cierto control sobre sus acciones. Habilidad Social. Los agentes se comunican y colaboran con otras entidades, incluidos otros agentes. Reactividad. Los agentes perciben el entorno y reaccionan a los cambios de ste de forma apropiada. Proactividad. Los agentes muestran un comportamiento orien-tado a objetivos por el cual son capaces de tomar la iniciati-va. Capacidad de inferencia. Los agentes pueden tomar decisiones basndose en su conocimiento actual sobre ellos mismos, su entorno y sus objetivos generales. Persistencia temporal. Los agentes tienen atributos a modo de identidad y de estado interno que se mantienen y evolucionan durante el tiempo. Se puede afirmar que tampoco existe un consenso general sobre en qu medida estas habilidades han de estar presentes dentro del agente, y que, de-pendiendo del tipo de aproximacin utilizado para disear e implementar el agente, algunas caractersticas estarn ms presentes que otras. Si bien es cierto que habitualmente estos son los elementos que comnmente se conside-ran aceptados para poder considerar a un agente como inteligente, otras habilidades complementarias son observables: Personalidad. Un agente puede mostrar cualidades que mues-tran un carcter propio. Adaptabilidad. Un agente puede aprender basndose en la expe-riencia y modificar su comportamiento futuro en base a ello. Movilidad. Un agente puede migrar, transportando su compor-tamiento y estado interno, del dispositivo o nodo en el que reside a otro. Un agente que posee esta ltima habilidad recibe el nombre de agente mvil y aunque stos muestran atractivas ventajas (Lange & Oshima, 1999) son tambin cuestionados debido a los problemas de seguridad que presentan y a que dichas ventajas pueden conseguirse mediante otros medios (Chess, Harrison, & Kershenbaum, 1997). Cabe destacar que un agente mvil no tiene nada que ver con el tipo de dispositivo en el que reside. Es decir, que un agente no es mvil por residir en una PDA o en un telfono mvil, sino por su capacidad de migrar entre dispositivos, sean stos mviles o no. No obstante, aunque como hemos dicho no existe una definicin con-sensuada de qu es un agente, en este trabajo vamos a optar por una visin del agente como sistema que tomaremos prestada de la Inteligencia Artificial clsica. Desde un punto de vista clsico de la Inteligencia

Artificial, un agente puede verse como un sistema que en vez de trabajar dentro del nivel simblico (es decir, mediante expresiones, frmulas, variables), es capaz de trabajar en el nivel de conocimiento (Newell, 1982). Los componentes dentro del nivel de conocimiento se caracterizan por tener un grado de abstraccin mayor y se dividen en objetivos y acciones. De esta forma, un agente est compuesto por un conjunto de acciones que es capaz de realizar y un conjunto de objetivos que le es necesario satisfacer. El medio dentro del nivel de conocimiento es, como apunta Newell, obviamente el conocimiento. Finalmente, la principal ley de comportamiento que gobierna al agente es el denominado Principio de Racionalidad: Las acciones de un agente son seleccionadas para lograr sa-tisfacer los objetivos de dicho agente. Una caracterstica importante es que el agente normalmente no dispo-ne informacin total de lo que pasa a su alrededor, sino que dispone de cono-cimiento parcial del mundo, de forma similar a lo que le ocurre a cualquier persona. Con el fin de cumplir el Principio de Racionalidad, el agente es ca-paz de utilizar el conocimiento que tiene sobre s mismo y el entorno que le rodea para poder seleccionar las acciones ms apropiadas.

Anlisis y diseo de agentes.Las metodologas de desarrollo informales para el anlisis y desarrollo de sistemas basados en agentes pueden ser ampliamente divididos en dos grupos: Las que tienen su inspiracin en el desarrollo orientado a objetos, y extienden metodologas orientadas a objetos existentes o las adaptan para los propsitos de la Ingeniera de Software Orientada a Agentes. Las que adaptan la ingeniera de conocimiento u otras tcnicas. Como ejemplos de la primera se tienen la AAII Methodology de Kinny et al, Gaia de Wooldrige et al, Agent UML de Odell et al. Como representantes de la segunda se tienen DESIRE de Treur et al, Cassiopeia de Collinot et al y una especificacin en el lenguaje Z realizada por Luck and dInverno. De entre estas explicaremos mejor MaSE de manera breve y sencilla tomando en cuenta que de igual manera se mencionara otros en la presentacin y que lo mostramos para analizar mas a fondo las metodologas para el desarrollo de este tipo de software basado en agentes

MaSE.Caractersticas. MaSE (Multi-agent systems Software Engineering): abstraccin del paradigma orientado a objetos donde los agentes son especializaciones de objetos. Los agentes se coordinan unos con otros va conversaciones y actan proactivamente para alcanzar metas individuales y del sistema.

En este los agentes son simplemente una abstraccin que puede o no poseer inteligencia, se gestionan igualmente dentro del mismo armazn y se ven como especializaciones de objetos. El sistema se construye sobre tecnologa orientada a objetos y su aplicacin a la especificacin y diseo de sistemas multi-agente. Anlisis.Se siguen tres pasos: Capturar los objetivos.El analista debe cumplir 2 tareas: identificar y estructurar los objetivos. A partir de los documentos de requerimientos se extraen los objetivos principales del sistema. Sin tener en cuenta las actividades o desarrollos que llevan hasta estos. Estos objetivos son analizados y estructurados segn su importancia en un diagrama de jerarqua de objetivos. Todos los objetivos son siempre de nivel de sistema. El analista puede asociar un rol a cada objetivo (en determinados casos). Aplicar los casos de uso.Paso para convertir objetivos en roles y tareas asociadas. El analista estructura los casos de uso en diagramas de secuencia mostrando la secuencia de eventos entre roles. Se define la mnima comunicacin necesaria entre ellos. Refinar roles.-

Asegurar: Identificacin de todos los roles necesarios. El desarrollo de las tareas que definen el comportamiento y los patrones de comunicacin de los agentes. Todos los objetivos son tenidos en cuenta asignando un rol a cada uno. Existen situaciones en las que conviene asignar ms de un objetivo a un mismo rol por motivos de eficiencia. Los roles son captados en el modelo de roles. Diseo. Construir conversaciones. Una conversacin MaSE define un protocolo de coordinacin entre dos agentes. Una conversacin consiste en dos diagramas de clases de comunicacin, uno para el emisor y otro para el receptor. Un diagrama de clases de comunicacin es un par de mquinas de estados finitos que definen una conversacin entre dos clases agente participantes Ensamblar clases de agentes. Se crea el interior de los agentes. Se usa un lenguaje de modelado arquitectnico que combina la naturaleza abstracta de los lenguajes tradicionales de descripcin con el leguaje de restriccin de objetos (especificacin de detalles de bajo nivel). Diseo del sistema. En esta fase se decide la configuracin final del sistema a implementar. Se define la arquitectura global del sistema mediante diagramas de despliegue para mostrar el nmero, tipo y localizacin de los agentes. Se toman las decisiones de implementacin que no se haban tomado antes, como el lenguaje de programacin a usar o el framework para las comunicaciones. AgentTool es el software de soporte que actualmente implementa los siete pasos del proceso MaSE.

Con soporte para transformar modelos de anlisis en modelos de diseo, permite crear de modo visual todos los diagramas del proceso de desarrollo, pudiendo realizar cualquiera de los 7 pasos en el orden que se prefiera. Dispone de una base de conocimiento persistente, un verificador de conversaciones y generacin automtica de cdigo.

Conclusiones.La ingeniera del software orientada hacia agentes es una disciplina reciente que aplica tcnicas de ingeniera del software e inteligencia artificial, busca la construccin del anhelado software que piensa o el software con inteligencia. Cul es la metodologa que debemos utilizar o cul es la mejor metodologa? La respuesta no es sencilla ya que cada metodologa parte de un concepto distinto de agente y cada una de ellas se especializa en reas concretas de trabajo. Una posible solucin es partir de la propia experiencia del desarrollador.

UNIVERSIDAD SALESIANA DE BOLIVIA


INGENIERIA DE SISTEMAS

INGENIERIA DE SOFTWARE BASADO EN AGENTES


ESTUDIANTE: FERNANDEZ RODRIGUEZ JUAN CARLOS MAYTA CAMARGO NEYDA SEGURONDO CABRERA DIEGO GABRIEL MIRANDA VARGAS JOSE ALEJANDRO

MATERIA:INGENIERIA DE SOFTWARE

FECHA:

25/06/2013

LA PAZ- BOLIVIA 2013

También podría gustarte