Demo Blog

Programación de SMA (Post #3)

por Estévez , etiquetas: , , ,

Metodologías para el desarrollo de sistemas multiagente (parte#1)

De entre las metodologías existentes, se ha seleccionado un conjunto utilizando tres criterios: 
  • utilización de diferentes vistas para la especificación del sistema,
  • incorporar la idea de proceso de desarrollo,
  • e integrar técnicas de ingeniería y teoría de agentes.
De acuerdo con estos criterios, se han identificado SIETE metodologías.
  1. La primera es la ingeniería de vocales (vowel engineering) [Demazeau 95] que fue una de las primeras en considerar diferentes aspectos (agentes, entorno, interacciones y organización) en el desarrollo de SMA.
  2. La segunda es MAS-CommonKADS [Iglesias 98][Iglesias et al. 98b] que, debido a su origen (CommonKADS [Tansley et al. 93]), se trata de una metodología orientada al desarrollo utilizando experiencia en sistemas expertos.
  3. A continuación el diseño basado en BDI [Kinny et al. 97] que ha influido notablemente en la forma de concebir el control de los agentes.
  4. Después, se estudian dos metodologías soportadas por herramientas: ZEUS [Nwana et al. 99]
  5. y MaSE [DeLoach 01].
  6. Seguidamente, se estudia GAIA [Wooldridge al. 00], de gran influencia, que estudia la definición de vistas en una metodología y trata de integrarse en un ciclo de vida de software tipo cascada.
  7. Por último, INGENIAS [Gomez et al. 02][Gomez 02], creada a partir del trabajo de MESSAGE [Caire et al. 02] en la que el autor de este trabajo participó activamente.
vowel engineering
Se trata de la metodología seguida en el grupo MAGMA [MAGMA 03]. El término vowel engineering viene de que el sistema final depende de la ordenación y agrupamiento de aspectos identificados por cuatro vocales: A (por agentes), E(por entorno), I (por interacciones) y O (por organización). Para cada aspecto, se utilizan componentes y técnicas específicas. Para representar agentes se u desde simples autómatas hasta complejos sistemas basados en conocimiento.

El propósito de Vowel engineering es lograr librerías de componentes que den soluciones al diseño de cada uno de estos aspectos, para que posteriormente, el diseñador seleccione un modelo de agente, un modelo de entorno, un modelo de interacciones y modelos de organización a instanciar (ver figura 1).

El proceso de desarrollo es el punto debil de esta metodología. Vowel Enginering solo proporciona las vocales como resumen de elementos a considerar en el desarrollo y un conjunto de tecnologías aplicadas.


MAS-CommonKADS
La metodología CommonKADS gira alrededor del modelo de experiencia y está pensada para desarrollar sistemas expertos que interactúen con el usuario. De hecho considera sólo dos agentes básicos: el usuario y el sistema.

MAS-CommonKADS ha sido la primera en plantear un desarrollo de SMA integrado con un ciclo de vida de software, concretamente el espiral dirigido por riesgos [Pressman 82]. Propone siete modelos para la definición del sistema: agente, tareas, experiencia, coordinación, comunicación, organización y diseño. Cada modelo presenta referencias a la teoría sobre la que se basa. El modelo en sí parte de una descripción gráfica que luego se complementa con explicaciones en lenguaje natural de cada elemento. Existe por cada modelo una descripción de las dependencias respecto de otros modelos y de las actividades involucradas.

Es exhaustiva como pocas a la hora de detallar el sistema y además es consecuente con que el proceso de desarrollo en la mayoría de los casos es más complejo que un conjunto de pasos.

Esta metodología ha sido la primera en incorporar la idea de proceso de ingeniería en el sentido de Pressman [Pressman 82]. De hecho, describe con bastante detalle cómo se debe definir el sistema teniendo en cuenta las dependencias entre los modelos.


BDI
Las arquitecturas BDI se inspiran en un modelo cognitivo del ser humano [Bratman 87]. Según esta teoría, los agentes utilizan un modelo del mundo, una representación de cómo se les muestra el entorno. El agente recibe estímulos a través de sensores ubicados en el mundo. Estos estímulos modifican el modelo del mundo que tiene el agente (representado por un conjunto de creencias). Para guiar sus acciones, el agente tiene Deseos. Un deseo es un estado que el agente quiere alcanzar a través de intenciones. Éstas son acciones especiales que pueden abortarse debido a cambios en el modelo del mundo.

En esta metodología, la integración con el ciclo de vida de software es reducida. Los autores proponen una serie concreta de pasos para generar los modelos. Estos pasos se repiten haciendo que los modelos, que capturan los resultados del análisis, sean progresivamente elaborados, revisados y refinados.


Existen dependencias entre los diferentes modelos que dificultan el proceso de generación de los modelos que describen el SMA. Como solución proponen un proceso iterativo e incremental (idea también reflejada en el Proceso Racional Unificado [Jacobson et al. 99]) con realimentaciones. Sin embargo, la forma en que tienen lugar estas realimentaciones no se llega a mostrar con detalle.

Como en las anteriores metodologías, se echa de menos la presencia de herramientas de soporte. Sin embargo, los modelos formales que se pueden encontrar tras esta metodología constituyen una referencia obligada para aquellos interesados en la integración de teorías de agentes y las prácticas de ingeniería.


MaSE (Multi-agent systems Software Engineering)
Parte del paradigma orientado a objetos y asume que un agente es sólo una especialización de un objeto. La especialización consiste en que los agentes se coordinan unos con otros vía conversaciones y actúan proactivamente para alcanzar metas individuales y del sistema.

El proceso de desarrollo en MaSE es un conjunto de pasos, la mayoría de los cuales se ejecutan dentro de la herramienta que soporta MaSE, AgentTool. El análisis en MaSE consta de tres pasos: capturar los objetivos, capturar los casos de uso y refinar roles. Como productos de estas etapas se esperan: diagramas de objetivos, que representan los requisitos funcionales del sistema; diagramas de roles, que identifica roles, tareas asociadas a roles y comunicaciones entre roles y entre tareas; y casos de uso, mostrados no como diagrama sino como una enumeración de los casos de uso considerados con la posibilidad de usar diagramas de secuencia para detallarlos.

La herramienta de soporte, agentTool [DeLoach 01], permite generar código automáticamente a partir de la especificación del sistema, que en MaSe es el conjunto final de diagramas. La generación de código es independiente del lenguaje de programación utilizado, ya que se realiza recorriendo las estructuras de datos generadas en la especificación y generando texto como salida.
0 comentarios más...

0 comentarios

Publicar un comentario

Buscando algo?

Usa el cuadro de abajo para buscar:

Si aún así no encuentras lo que buscas por favor déjanos un comentario...