Construcción de Software Orientado a Agentes con UML Federico Bergenti and Agostino Poggi Dipartimento di Ingegneria dell’Informazione, Università degli Studi di Parma Resumen Este capítulo introduce los conceptos básicos de ingeniería de software orientada a agentes mostrando los artefactos básicos que se introdujeron para analizar, diseñar e implementar Sistemas Multiagentes. En particular, se presenta un conjunto de diagramas orientados a agentes que dan soporte al modelamiento de: La arquitectura de un Sistema Multiagentes. La ontología seguida por los agentes. Los protocolos de interacción usados para coordinar agentes. Estos artefactos son descritos utilizando una notación basada en UML que saca provecho de los estereotipos para proveer semánticas orientadas a agentes a los diagramas de clases y colaboración. Introducción El software orientado a agentes parece tener las características necesarias para dar apoyo en el desarrollo de sistemas de software flexibles y abiertos, como lo son las aplicaciones Web. La decisión de OMG de dar estatus de grupo de interés al Agent Working Group, y en especial la creación de FIPA “Foundation for Intelligent Physical Agents” son una muestra del interés de la industria por este tema. La comunidad de tecnologías de agentes no ha llegado a un acuerdo acerca del significado de la palabra agente. En este artículo se restringe la abstracción de agente para expresar las características que hacen ideales a los agentes para el desarrollo de sistemas abiertos y flexibles. Este capítulo introduce los conceptos fundamentales de ingeniería de software orientada a agentes tomando la aproximación de mostrar los artefactos que el arquitecto puede explotar para modelar un sistema al nivel de abstracción de un agente. Se presentan los agentes de software, los principales trabajos en ingeniería de software orientada a agentes y como los diagramas de UML pueden ser utilizados como una base para la ingeniería de software orientada a agentes. Por último se tienen algunas conclusiones. Conclusiones La ingeniería de software está fundada en la posibilidad de modelar un sistema desde diferentes niveles de abstracción. La ingeniería de software orientada a agentes introduce un nuevo nivel, llamado el nivel agente, para permitir a los arquitectos de software describir un sistema en términos de las interacciones entre los agentes. En este nivel, un agente es considerado como una entidad atómica que se comunica con otros agentes para implementar la funcionalidad del sistema. Este trabajo introduce las bases de ingeniería de software orientado a agentes sacando provecho del punto de vista de los artefactos que se proveen a los arquitectos para modelar sistemas al nivel de agentes. Estos artefactos pueden ser producidos utilizando una notación basada en UML soportada por cualquier herramienta CASE que permita a los arquitectos utilizarla sin la necesidad de herramientas CASE habilitadas para agentes. Se introducen tres diagramas orientados a agentes para modelar los elementos básicos que caracterizan el nivel de abstracción de agentes: las interacciones entre los agentes y el ambiente, la arquitectura de un Sistema Multiagentes y la ontología seguida por los agentes. Los diagramas de casos de uso orientados a agentes son simples extensiones de los diagramas de casos de uso usuales que permiten introducir agentes y modelar sus interacciones con el usuario, con el ambiente y con el resto del sistema. Los diagramas de arquitectura permiten modelar la arquitectura del Sistema Multiagentes en términos de un conjunto de clases conectadas a través de relaciones. Cada clase está caracterizada por las acciones que se le pueden pedir que realice a un agente que pertenece allí. Las relaciones entre las clases pueden ser usadas para expresar la red de conocimiento que un agente puede construir en tiempo de ejecución. Los diagramas de ontología permiten construir un modelo del ambiente compuesto de entidades y relaciones. Estas relaciones pueden ser utilizadas para especificar los predicados que los agentes pueden utilizar para comunicarse y de esta manera los diagramas de ontología pueden ser utilizados para modelar el dominio del contenido de los mensajes.