Ingeniería de Software Orientada a Agentes:
un ejemplo usando Tropos
Carlos Cares1,2
ccares @ lsi.upc.edu
1 2
Departamento de Ingeniería de Sistemas Universidad de La Frontera
Departament de Llenguatges i Sistemes Informatics Universitat Politécnica de Catalunya
Exposición Invitada
Ingeniería de Software Orientada a
Agentes
Ingeniería de Software
“La
ingeniería de software
es la
disciplina de ingeniería relacionada con
todos los aspectos de la producción de
Ingeniería de Software
Incluye:
1. Levantamiento de Requerimientos 2. Análisis de Requerimientos
3. Diseño de Solución Organizacional 4. Diseño de Solución de Software 5. Diseño de Software
6. Implementación 7. Prueba (Testing) 8. Mantención
Ingeniería de Software Orientada a
Agentes
Ingeniería de Software
Requiere:
1. Representación y Seguimiento de un Proceso (p.e. PERT, GANTT, Diagramas de Tarea UML) 2. Uno o varios Lenguajes de Diseño (p.e. Diagrama
Ingeniería de Software Orientada a Agentes
Wooldridge M., Cincarani P.Agent-Oriented Software Engineering: The State of the Art. First International Workshop, AOSE 2000, Limerick, Ireland, June 10, 2000. LNCS 2001; vol 1957 p.1-28.
Es cuando se realizan las tareas de la
ingeniería de software usando como clave
de abstracción el concepto de agente
Ingeniería de Software Orientada a
Agentes
El Concepto de Agente
Un agente es una pieza de software
que “disfruta” de propiedades como
autonomía
,
reactividad
,
proactividad
Agente (Autonomía)
Autonomía
significa que el agente
tiene un estado interno que no es
accedible a otros (agentes o
humanos). El agente define su actuar
de acuerdo a este estado interno.
Ingeniería de Software Orientada a
Agentes
Agente (Autonomía)
Reactividad
se basa en el supuesto
que el agente se encuentra en un
ambiente y tiene la habilidad de
reaccionar a los cambios que ocurren
en él.
Agente (Proactividad)
Proactividad
significa que un agente
tiene sus propios objetivos y, por lo
tanto, puede tomar las iniciativas
acorde a las metas que tiene la
intención de cumplir.
Ingeniería de Software Orientada a
Agentes
Agente (Habilidad Social)
Habilidad Social
es la característica
que permite interactuar (con humanos
o con otros agentes) y conformar actos
de grupo ya sea para cooperar o
Ingeniería de Software Orientada a Agentes
Requiere:
1. Representación y Seguimiento de un Proceso
2. Uno o varios Lenguajes de Diseño donde el concepto clave de abstracción es el concepto de agente
Ingeniería de Software Orientada a
Agentes
TROPOS Una Metodología Orientada a Agentes
Etapas
t
Actor Social Nuevo Sistema Componentes Agentes Etapa temprana de Requerimientos Etapa tardía de Requerimientos Diseño de la Arquitectura Diseño Detallado Implemen-taciónTROPOS Una Metodología Orientada a Agentes
Lenguaje de Modelación
Actores Role Position Agent Actor Elementos Intencionales Goal Softgoall Task ResourceAn actor and its boundary
Ingeniería de Software Orientada a
Agentes
TROPOS Una Metodología Orientada a Agentes
Lenguaje de Modelación
Some Dependencies
Task-dependency Goal-dependency
Intentional Relationships
--Un ejemplo académico-didáctico
Primera Competencia en Sistemas Multiagente Basados en Lógica Computacional del 2005: First CLIMA Contest
(Computational Logic in MultiAgent-systems)
Principal Problema:
Disminuir la distancia conceptual entre metodologías orientada a agentes y la implementación de agentes de software.
Problema para ejemplificar propuesta:
Un conjunto de agentes recolectores de comida, jugando diferentes roles, y cooperando para maximizar la comida recolectada en un ambiente virtual
Ingeniería de Software Orientada a
Agentes
Un ejemplo de ambiente
Una malla de
20 x 20
Un ejemplo de ambiente
Comida
• Las celdas pueden contener comida • La comida es producida
por el ambiente
• La comida es posicionada al azar
• Hay comida inicialmente en el ambiente
Ingeniería de Software Orientada a
Agentes
Un ejemplo de ambiente
Un ejemplo de ambiente
Agents
• Pueden “ver” la existencia de comida sólo en su celda actual • Pueden recoger la comida • Pueden intercambiar
información si están en posiciones adyacentes • Deben juntar comida en el
depósito
Ingeniería de Software Orientada a
Agentes
Etapa de Tardía de Requerimentos en TROPOS
Ingeniería de Software Orientada a
Agentes
Ingeniería de Software Orientada a
Agentes
Diseño Detallado en TROPOS (Parcial)
Ingeniería de Software Orientada a
Agentes
Ejecución
Conclusiones del Programa
Los agentes son autónomosy no tienen un control central.
Esto se refleja que dos o más agentes van tras una misma pieza de comida. Incluso si ya ha sido recogida.
Los agentes son reactivos, si van por una pieza de comida,
pero se encuentran con otra, recogen la actual y luego tratan de alcanzar la original
Los agentes son proactivos, buscan comida
autónomamente sin esperar información externa.
Los agentes tienen habilidades sociales, comparten la
información y el estado parcial de la malla que ellos manejan
Ingeniería de Software Orientada a
Agentes
Conclusiones Generales
La complejidad de sistemas distribuidos puede ser abordada desde la Ingeniería de Software Orientada a Agentes y en particular usando Tropos.
La metáfora de diseño de Tropos es útil tanto para el
diseño de software como para la representación de sistemas organizacionales
Tropos ofrece un lenguaje intuitivo para la modelación de
sistemas y organizaciones
Es factible generar interpretaciones del Diseño Detallado