>>>> GRUPO LIMIA <<<<
Miguel Casas del Río ([email protected])
Maite Molinos Iglesias ([email protected])
Belén Pereira García ([email protected])
INGENIERÍA DEL SOFTWARE
ORIENTADA A AGENTES
Introducción
Introducción
Avance hacia un enfoque realista respecto al
proceso de desarrollo del software.
Los modelos de desarrollo secuenciales suponen
que, con suficiente estudio y análisis, es posible
identificar los requisitos de un sistema antes de
comenzar con su diseño e implementación >
FALSO
Los requisitos de un sistema cambian con el
tiempo > DIFICULTAD
Introducción
Se han ido definiendo nuevos modelos evolutivos
donde el sistema se construye a través de una
serie de iteraciones.
Proporcionando incrementalmente nueva
funcionalidad al sistema.
Necesario paradigma que facilite la reutilización -
> orientación a objetos (clases, herencia y
composición).
Introducción
Casi todas las propuestas metodológicas
adaptan un modelo orientado a objetos.
Están apareciendo algunas propuestas para
aplicar metodologías ágiles, como la
Programación Extrema, en el desarrollo de
sistemas basados en agentes.
Metodologías Metodología: es un conjunto de guías para cubrir
todo el ciclo de desarrollo de un sistema.
Debe proveer: El ciclo de vida del proceso completo.
Un conjunto de conceptos y modelos.
Un conjunto de técnicas.
Un conjunto de métricas.
Aseguramiento de la calidad.
Estándares de codificación.
Consejos para la reutilización.
Guías para la administración de proyectos.
Metodologías Metodologías y notaciones de ingeniería de
software orientada a agentes: Ingenias.
MaSE.
Gaia.
AgentUML.
MADKiT.
ADELFE.
Mas-CommonKADS.
SemanticAgent.
Etc.
MaSE
MaSE
MaSE (Multi-agent systems Software
Engineering): abstracción del paradigma
orientado a objetos donde los agentes son
especializaciones de objetos.
Los agentes se coordinan unos con otros vía
conversaciones y actúan proactivamente para
alcanzar metas individuales y del sistema.
MaSE
Los agentes:
Son simplemente una abstracción que puede o no
poseer inteligencia.
Se gestionan igualmente dentro del mismo armazón.
Se ven como especializaciones de objetos.
El sistema se construye sobre tecnología
orientada a objetos y su aplicación a la
especificación y diseño de sistemas multi-agente.
MaSE
Análisis.
3 pasos:
Capturar los objetivos.
Aplicar los casos de uso.
Refinar roles.
MaSE
Capturar 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 según
su importancia en un diagrama de jerarquía de
objetivos.
Todos los objetivos son siempre de nivel de sistema.
El analista puede asociar un rol a cada objetivo (en
determinados casos).
MaSE
Capturar Objetivos.
MaSE
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 mínima comunicación necesaria entre
ellos.
MaSE
Refinar roles.
Asegurar:
Identificación de todos los roles necesarios.
El desarrollo de las tareas que definen el comportamiento y los
patrones de comunicación de los agentes.
Todos los objetivos son tenidos en cuenta asignando un rol a
cada uno.
Existen situaciones en las que conviene asignar más de un
objetivo a un mismo rol por motivos de eficiencia.
Los roles son captados en el modelo de roles.
MaSE
Diseño
Crear clases de agentes.
Construir conversaciones.
Ensamblar clases de agentes.
Diseño del sistema.
MaSE
Construir conversaciones.
Una conversación MaSE define un protocolo de
coordinación entre dos agentes.
Una conversación consiste en dos diagramas de clases de
comunicación, uno para el emisor y otro para el receptor.
Un diagrama de clases de comunicación es un par
de máquinas de estados finitos que definen una
conversación entre dos clases agente participantes.
MaSE
Ensamblar clases de agentes.
Se crea el interior de los agentes.
Se usa un lenguaje de modelado arquitectónico
que combina la naturaleza abstracta de los
lenguajes tradicionales de descripción con el
leguaje de restricción de objetos (especificación de
detalles de bajo nivel).
MaSE
Diseño del sistema.
En esta fase se decide la configuración final del
sistema a implementar.
Se define la arquitectura global del sistema
mediante diagramas de despliegue para mostrar el
número, tipo y localización de los agentes.
Se toman las decisiones de implementación que no
se habían tomado antes, como el lenguaje de
programación a usar o el “framework” para las
comunicaciones.
Herramientas que soportan
MaSE.
AgentTool
Es el software de soporte que actualmente implementa
los siete pasos del proceso MaSE.
Con soporte para transformar modelos de análisis en
modelos de diseño.
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 generación automática
de código.
MESSAGE E INGENIAS
MESSAGE MESSAGE (Methodology for Engineering Systems of
Software Agents) es una metodología orientada aldesarrollo de sistemas industriales, de media o granescala.
La metodología MESSAGE cubre las fases deAnálisis y Diseño y su contribución principal son losconceptos que utiliza, de un nivel de abstracciónsuperior al de las metodologías orientadas a objetos(nivel de conocimiento), y los diagramas para ilustrarestos conceptos en el modelo de análisis, añadidos alUML.
Integra de forma coherente los conceptos deorganización, tarea, rol y objetivo y aporta nuevosdiagramas como el diagrama de delegación, de flujode trabajo o de dominio, y otros similares a losaportados por otras metodologías, como el diagramade objetivos, tareas o interacciones.
MESSAGE
Conceptos:
Agente: es una entidad autónoma y atómica,capaz de prestar una función (potencialmente)útil. Esa capacidad funcional se la denominaservicio.
Rol: es una descripción externa de un agenteen un contexto particular. Un agente puededesempeñar varios roles, y un mismo rol puedeestar representado por varios agentes.
Organización: es un grupo de agentes quecooperan y con un propósito común.
Recursos: son las entidades no autónomas,utilizadas por los agentes. Se describen con losconceptos tradicionales de orientación aobjetos.
MESSAGE
Conceptos Tareas: son la unidad que representa la actividad en
el nivel de conocimiento, realizada por un solorealizador principal. Las tareas tienen dos situacionesque describen pre-condiciones y post-condiciones.Además, las tareas se pueden subdividir ensubtareas, ejecutadas (posiblemente) por otrosrealizadores. Como se considera a las tareas comomáquinas de estados (StateMachines), se utilizan losdiagramas de actividad de UML para describirlas.
Las interacciones: representan la segunda forma deactividad, junto con las tareas. Las interacciones, pordefinición, son realizadas por varios participantes ytienen un propósito que todos los participantespersiguen. Un protocolo de interacción(InteractionProtocol).
MESSAGE
MESSAGE utiliza las siguientes vistas:
Vista de Organización (OV). Muestra entidades
concretas (ConcreteEntities)
(Agentes, Organizaciones, Roles, Recursos) en el
sistema y su entorno y relaciones de alto nivel entre
ellos como agregación, poder, “conocimiento de”
(acquaintance).
Vista de Objetivo/Tarea (GTV). Muestra
objetivos, tareas, situaciones y sus dependencias.
Los objetivos y las tareas tienen atributos de tipo
situación que permiten crear dependencias
lógicas, mostrar división de objetivos y tareas, etc.
Las dependencias temporales se denotan con la
sintaxis de los diagramas de actividad de UML.
MESSAGE MESSAGE utiliza las siguientes vistas: Vista de Agente/Role (AV). Se representan los
objetivos del agente, tareas que sabe cómorealizar, recursos que utiliza, eventos a los queatiende, etc. En el siguiente diagrama se muestraun Diagrama de Delegación, además se utilizanDiagramas de Workflow y tablas-esquema.
Vista de Interacción (IV). Se representa eliniciador, el motivador, los colaboradores, lainformación relevante comunicada, los eventos quedispara, y efectos relevantes de la interacción.
Vista de Dominio (DV). Muestra los conceptosimportantes del dominio donde se desarrolla elSMA y sus relaciones.
MESSAGE El proceso de análisis de MESSAGE consiste en aplicar
sucesivamente una estrategia de refinamiento de losmodelos del sistema.
El nivel inicial de descomposición del sistema es el nivel0, que se ocupa de definir el sistema a desarrollar conrespecto a las entidades externas (sistemas, usuarios) yentorno. En este nivel se identifican las principalesentidades y sus relaciones. El sistema se ve como elconjunto de organizaciones que interactúan conrecursos, actores o otras organizaciones. Se construyenlas vistas de organización y vista de objetivos/tareas.
En el nivel 1, se estudia la estructura y el comportamientode entidades como laorganización, tareas, objetivos, dominio, etc.
Se pueden añadir más niveles para tratar otros aspectoscomo requisitos nofuncionales, rendimiento, distribución, tolerancia afallos, seguridad...
Ingenias
INGENIAS ha sido desarrollada a partir de los
resultados obtenidos en MESSAGE. INGENIAS
mejora MESSAGE en tres aspectos:
Integración de las vistas de diseño del s istema.
Integración de resultados de investigación.
Integración con el ciclo de vida de desarrollo de
software.
Ingenias Modelos Agente: describe las responsabilidades con tareas y
roles. También considera el control del agentedefiniendo sus objetivos y los estados mentales que serequieren durante su ejecución.
Organización: describe el marco en el que existen losagentes, los recursos, las tareas y el propósito delsistema. Para definir la organización hay que considerarsu estructura, relaciones sociales y funcionalidad. Laestructura determina la arquitectura del sistema. Sedescribe en términos de grupos y flujos de trabajo. Losflujos de trabajo relacionan tareas, los recursosasociados a las mismas y sus responsabilidades.
Entorno: define los sensores y actuadores de losagentes. También identifica los recursos, agentes yaplicaciones existentes con las que tienen queinteractuar los agentes.
Ingenias Modelos Tareas y Objetivos: este punto de vista está influenciado
por el principio de racionalidad y su principal propósito esjustificar la ejecución d e tareas en función de losobjetivos. También proporciona la descomposición detareas y objetivos. Para relacionar ambos, hay relacionesespecializadas que determinan la información que esnecesaria para considerar que un objetivo se hasatisfecho o no. Finalmente, este punto de vista detallaaspectos de bajo nivel de las tareas, como los recursosque necesitan para su ejecución, los módulos de softwareque utilizan y sus entradas y salidas.
Interacciones: describen cómo se produce lacoordinación entre los agentes. Esta descripción va másallá de los que serían los diagramas de secuencia ocolaboración en UML ya que muestran también lamotivación de los participantes en la interacción. Para elloincluyen información del estado mental que requieren losagentes en su ejecución, así como las tareas queejecutarán. Esto permite justificar a nivel de diseño porqué los agentes participan en una interacción y por qué
Ingenias
Ingenias Herramientas que soportan Ingenias: INGENIAS cuenta con un entorno de desarrollo
integrado (IDE) que incorpora una herramienta deespecificación y un generador de código.
La herramienta de especificación se ha construidocon la herramienta METAEDIT+ que procesa losmeta-modelos que define INGENIAS, generandoeditores particularizados. Se está desarrollando unaversión distribuible de estos meta-modelos.
La generación de código se basa en una sustituciónde texto avanzada, contemplandovariables, repeticiones y órdenes. Está hecha enJava, aunque es posible en cualquier lenguajegracias a la utilización de lenguajes demarcado, aplicables a cualquier documento detexto.
La metodología GAIA
La metodología GAIA
Considera un sistema basado en agentes como
una sociedad u organización.
Especialmente indicada para:
La organización de la estructura del sistema no
varía en el tiempo.
Con agentes heterogéneos.
Pocos tipos de agentes.
Cada agente realiza un uso importante de recursos.
La metodología GAIA
La especificación de requerimientos
independiente del de análisis y diseño del
sistema.
La metodología GAIA
Conceptos abstractos (entidades que no tienen
por qué tener una imagen directa de sí mismos
sobre la implementación).
Conceptos concretos (entidades que tienen un
reflejo directo de sí mismas en la implementación
del sistema).
La metodología GAIA - Roles
GAIA está basada en el concepto de roles.
Una organización consta de una colección de
roles.
Los roles mantienen ciertas relaciones entre ellos
y forman parte de patrones de interacción
institucionalizados con otros roles.
La metodología GAIA - Roles
Cada rol se define mediante cuatro atributos:
Responsabilidades del agente (funcionalidad)
Propiedades dinámicas: estados positivos que debe
alcanzar, dadas ciertas condiciones del entorno.
Propiedades de seguridad: estados que se mantienen a lo
largo de la ejecución (invariantes).
Permisos (E/S y o generación de información, la
cuál es necesaria para llevar a cabo las
responsabilidades)
Tareas asociadas (actividades que realiza
independiente, sin interactuar con otros agentes).
Protocolos: interacciones asociadas que definen
el modo en el que se comunican con otros agentes.
Análisis – Modelo de roles
El modelo de roles define los principales roles
que aparecen en el sistema junto con sus
propiedades definitorias (descripción abstracta).
Los permisos/derechos asociados con el rol
Las responsabilidades del rol.
Tareas asociadas.
Análisis – Modelo de
interacciones
El modelo de interacciones define las
interacciones y dependencias. Los protocolos de
describen mediante las propiedades siguientes:
Objetivo.
Iniciador.
Receptor.
Entradas.
Salidas.
Procesamiento.
Fase de análisis – Paso 1 Identificar los roles en el sistema: lista de
roles, cada uno descrito de manera informal.
Una lista de posibles roles para el ejemplo:
Atendedor.
Buscador.
Seleccionador.
Geolocalizador.
Calculador de distancias.
Descripción informal del rol Seleccionador:
Rol Seleccionador: es el encargado de determinar cuáles de los candidatos que cumplen con los requisitos de búsqueda para ser presentados al usuario.
Fase de análisis – Paso 2 Modelo de interacciones: identificar y documentar los
protocolos.
Una lista posible de protocolos:
Ubicar candidatos.
Georreferenciar candidato.
Seleccionar candidatos.
Determinar distancia entre dos candidatos.
Definición de un protocolo:
Fase de análisis – Paso 3 Modelo de roles con la información anterior.
Esquema de definición de un rol:
Fase de análisis – Paso 4
Repetir los pasos 2 y 3 hasta obtener el nivel de
detalle deseado.
Diseño – Modelo de agentes
El modelo de agentes: define los tipos de agente,
número de instancias de cada tipo (se creará en
tiempo de ejecución) y rol.
Los tipos de agentes se crean por agregación de roles.
El diseñador empaqueta todos aquellos que guardan
relación entre sí.
La notación en forma de árbol, permite definir los tipos
de manera jerárquica: si un tipo está compuesto por
varios subtipos, es que está compuesto por los roles
incluidos en cada subtipos. Cada hoja se corresponde
con los roles del modelo de roles mientras que el resto
de nodos son tipos de agente.
El número de instancias se indica con un intervalo
(m…n) encima de la entidad
Diseño – Modelo de servicios
El modelo de servicios: define los servicios del
agente asociados a cada rol y las propiedades de
los mismos.
Un servicio es una función de un agente y se define
Entradas
Salidas
Pre-condiciones
Post-condiciones
Las entradas y salidas derivarán del modelo de
interacción.
Las pre-condiciones y post-condiciones representan
restricciones sobre estos servicios, y son derivadas
de las propiedades de seguridad del rol.
Diseño – Modelo de
conocimiento
El modelo de conocimiento: define los flujos de
comunicación entre los tipos de agentes.
Para ello se utiliza la notación de grafos dirigidos,
en los que los nodos representan los tipos de
agente y los arcos a caminos de comunicación.
Fase de diseño – Paso 1
Crear el modelo de agentes juntando roles en
tipos de agente y formando una jerarquía.
Una posible identificación de roles:
Atendedor → 1.
Buscador → * (una por cada nivel de búsqueda).
Seleccionador → 1.
Geolocalizador → 1.
Calculador de distancias → 1.
Fase de diseño – Paso 2
Crea el modelo de servicios con las
actividades, protocolos y propiedades dinámicas
y de seguridad de los roles.
Un modelo se servicios para uno de los roles:
Fase de diseño – Paso 3
Crear un modelo de conocidos a partir del
modelo de interacción y el de agentes.
Un modelo se servicios para el ejemplo sería:
Fase de implementación
GAIA propone aplicar técnicas de diseño OO.
GAIA sólo busca especificar cómo una sociedad
de agentes colabora para alcanzar los objetivos
del sistema, y qué se requiere de cada uno para
lograr dichos objetivos.
Por lo tanto, nos quedamos en un nivel de
abstracción bastante alto.
GAIA pretende conseguir desacoplar GAIA de las
distintas soluciones de implementación de
agentes pero no se ha demostrado.
Variante GAIA
GAIA con Abstracciones Organizacionales.
En la fase de análisis, se introducen reglas
organizacionales que impactarán en la fase de
diseño sobre los modelos de roles e interacciones
de la fase de análisis.
En la fase de diseño, se detalla la estructura
organizacional, aplicando cuando es posible el uso
de patrones organizacionales.
Variante GAIA
Facilita trabajar con sistemas más complejos donde
existan reglas organizacionales:
Sistemas abiertos en los que es necesario establecer
políticas de seguridad y validación.
Sistemas grandes donde es necesario agrupar los
agentes en organizaciones.
.. etc.
Permite establecer propiedades a nivel de
organización.
Simplifica la arquitectura de sistemas multi-
agente, eliminando la necesidad de creación de roles
específicos, para tratar esta serie de
propiedades, habituales en el mundo real que se
pretende modelar.
Conclusiones
Conclusiones
¿cuál es la metodología que debemos utilizar o
cuál es la mejor metodología?
La respuesta no es sencilla ya que cada
metodología parte de un concepto distinto de
agente y cada una de ellas se especializa en áreas
concretas de trabajo.
Una posible solución es partir de la propia
experiencia del desarrollador.
Conclusiones
MaSe
para desarrolladores acostumbrado al proceso
unificado y herramientas de orientación a objetos
ya que les puede resultar más familiar.
Conclusiones
INGENIAS
Esta sería la metodología más apropiada si lo que
se quiere es conducir y razonar el análisis y diseño
utilizando los conceptos específicos de los
sistemas.
Conclusiones
GAIA
Si lo que se busca es un enfoque más orientado a
agente se puede escoger una metodología como
GAIA que nos da una visión más superficial del
sistema sin entrar en detalles de diseño e
implementación.
Top Related