Ingeniería de software orientado a agentes

Anuncio
Ingeniería de software orientado a agentes
ECSDI
LSI-FIB-UPC c b e a
Curso 2015/2016
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
1 / 53
Índice
1
Ingeniería de software
2
Ingeniería de software orientada a agentes
3
Metodologías de software
4
Metodologías de software orientadas a agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
2 / 53
Ingeniería de software
1
Ingeniería de software
2
Ingeniería de software orientada a agentes
3
Metodologías de software
4
Metodologías de software orientadas a agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
3 / 53
Ingeniería de software
Ingeniería de software
Abstracciones
El concepto de proceso de información ha ido cambiado con el
tiempo:
Años 70, programación estructurada y la idea de modularización
basada en el encapsulamiento de la información
Las dos últimas décadas se han interesado en métodos,
herramientas y tecnologías para el desarrollo de software
La programación orientada a objetos es el paradigma dominante
actual en el desarrollo de software
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
4 / 53
Ingeniería de software
Ingeniería de software
Abstracciones
La evolución en conceptos, modelos, metodologías, tecnologías y
herramientas fuerza a las compañías a afrontar cambios radicales
en el punto de vista conceptual y metodológico
Los desarrolladores necesitan un mayor nivel de abstracción y
herramientas capaces de abordar aplicaciones software cada vez
más complejas
El paradigma de orientación a objetos no puede ser considerado
la última respuesta en esta tendencia, es solo un paso más
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
5 / 53
Ingeniería de software
Ingeniería de software
Abstracciones
El software trata con entidades abstractas que tienen su
contraparte en la realidad
Números, fechas, nombres, personas, documentos, ...
¿En qué términos debemos modelarlos en el software?
Datos, funciones, objetos, agentes, ...
¿Cuáles son las abstracciones que debemos usar en el software?
Dependerá de las tecnologías que tengamos disponibles
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
6 / 53
Ingeniería de software
Ingeniería de software
Hacia la ingeniería de software basada en agentes
Sistemas computacionales
Pasado: Sistemas centralizados, modelos de programación
monolítico
Presente: Sistemas distribuidos, heterogéneos, escalables,
abiertos, modelo de programación distribuido
Desarrollo de software
Pasado: Modelo de desarrollo en cascada
Presente: Modelo incremental, ágil, procesos de desarrollo
experimentales
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
7 / 53
Ingeniería de software
Ingeniería de software
Hacia la ingeniería de software basada en agentes
El desarrollo de software basado en agentes se plantea como una
nueva perspectiva para el análisis y síntesis de sistemas software
La orientación a agentes subsume los conceptos soportados por
los previos paradigmas de programación y en particular los de la
programación orientada a objetos.
Elevan el nivel de abstracción
Son un aproximación prometedora al desarrollo de software
complejo.
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
8 / 53
Ingeniería de software orientada a agentes
1
Ingeniería de software
2
Ingeniería de software orientada a agentes
3
Metodologías de software
4
Metodologías de software orientadas a agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
9 / 53
Ingeniería de software orientada a agentes
Software y Sistemas Complejos
El software industrial es complejo por naturaleza
Esto es debido a la complejidad de las tareas que resuelve
La ingeniería de software es la encargada de proveer estructuras,
abstracciones y técnicas que permitan atacar esa complejidad
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
10 / 53
Ingeniería de software orientada a agentes
Software y Sistemas Complejos
Regularidades
Los sistemas complejos están formados por una jerarquía de
subsistemas interrelacionados (se descomponen en sistemas más
simples)
La elección de los componentes primitivos es relativamente
arbitraria (depende de los objetivos y necesidades)
Podemos distinguir entre las interacciones intra-sistema (más
frecuentes y predecibles) e inter-sistema (menos frecuentes)
Los sistemas jerárquicos evolucionan más rápidamente que los
no jerárquicos
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
11 / 53
Ingeniería de software orientada a agentes
Software y Sistemas Complejos
Estas características hacen que los sistemas complejos sean
casi-separables
Lo que no los hace totalmente separables son las interacciones
inter-sistema
Algunas de estas interacciones son predecibles en tiempo de
diseño, pero otras no
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
12 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Sistemas Complejos: Características
Los problemas complejos son de naturaleza descentralizada
Tiene múltiples puntos de control de ejecución (subproblemas)
Tienen múltiples perspectivas sobre el problema y múltiples
objetivos (según los subsistemas)
Los diferentes subsistemas deben interaccionar para obtener sus
objetivos y resolver sus dependencias
A través de mensajes (de alto a bajo nivel)
Mediante interacciones sociales (coordinación, cooperación,
negociación)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
13 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Abstracciones/Desarrollo
Abstracciones del desarrollo de software orientado a agentes:
Componentes autónomos que buscan unos objetivos definidos
Componentes que interaccionan a alto nivel para cumplir esos
objetivos
Componentes que se organizan socialmente
Componentes que pueden cambiar su relaciones dinámicamente
Componentes que se pueden ver a diferentes niveles de
granularidad
El desarrollo se basa en la agregación de componentes de
manera jerárquica con una filosofía de abajo a arriba
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
14 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Roles vs Tareas
Asignamos tareas al software (p. ej.: Software para subasta de
mercancías)
El qué y el cómo se especifican por adelantado (casos de uso,
escenarios)
No son tolerables los cambios en los requerimientos
Asignamos roles a los agentes (p. ej.: Agente subastador)
El qué es especificado por adelantado, el cómo se determina
dinámicamente (librería de métodos)
Son tolerables cambios en los requerimientos
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
15 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Inter-acción vs intra-acción
Los sistemas software complejos son sistemas casi-separables
Aunque algunas interacciones pueden determinarse en tiempo de
diseño, algunas no se pueden
Las aproximaciones tradicionales a la ingeniería del software
pueden tratar bien las intra-acciones
La aproximación basada en agentes es necesaria para tratar las
inter-acciones entre componentes software
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
16 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Inter-acción vs intra-acción
La inter-acción se ve como organización social:
De relaciones entre pares a relaciones jerárquicas
De relaciones puntuales a relaciones a largo plazo
Esto permite caracterizarla y describirla de manera abstracta
facilitando el análisis
Esto permite agrupar diferentes componentes y usarlos como
una unidad facilitando la descomposición
Esto permite usar en el análisis y desarrollo métodos/protocolos
bien conocidos en organizaciones sociales
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
17 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Inter-acción vs intra-acción
Casa de
Subastas
Admisión
Productos
Anuncio
Productos
Reputación
Subastador
Pagos
Comprador
Vendedor
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
18 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Comportamiento Emergente
Es imposible determinar todas las posibles inter-acciones en
tiempo de diseño
Los agentes tienen la capacidad de decidir como reaccionar y
resolver las interacciones en tiempo de ejecución (flexibilidad)
Tomando decisiones sobre situaciones imprevistas
Tomando decisiones sobre interacciones erróneas
Pidiendo asistencia a otros agentes
El comportamiento del agente no esta predeterminado
completamente, es el resultado de la interacción dinámica entre
los diferentes participantes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
19 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Comportamiento Emergente - Ejemplo
En un sistema de comercio electrónico:
Agentes compradores determinan que pueden obtener un mejor
precio si se coaligan y hacen compras más grandes en lugar de
compras individuales
Coalición
Mercado
Comprador
Comprador
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
20 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Comunicación a nivel simbólico
Comunicación:
Software: Comunicación a nivel de señal
Agentes: Comunicación a nivel simbólico
Los agentes persiguen objetivos y necesitan que otros agentes
persigan objetivos relacionados (delegación)
Los agentes necesitan llegar a acuerdos
Los agentes necesitan tomar decisiones organizacionales
Los agentes necesitan comunicarse sus creencias/conocimiento
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
21 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Comunicación a nivel simbólico
Para que un mensaje sea entendido, los agentes deben asignar
algún significado a las constantes usadas en el mensaje
Requeriremos una Ontología para hacer la correspondencia
entre una constante y un significado
Paso de mensajes dinámico
Los agentes deben primero descubrir si comparten un
conocimiento mutuo de las constantes del dominio para poder
continuar la comunicación (comparten la ontología)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
22 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Conocimiento mutuo
Los sistemas software necesitan poseer un conocimiento mutuo
completo para poder interaccionar (todo esta predeterminado)
Los agentes software pueden tener (o no) conocimiento mutuo
completo acerca de:
Los objetivos de otros agentes
Sus estrategias (acciones que pueden usar)
Sus utilidades (beneficio de sus acciones)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
23 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Conocimiento mutuo
Interacciones basadas en el supuesto de completo conocimiento
se clasifican como cooperación y coordinación
Todos los agentes buscan un fin comun
Lo agentes necesitan delegar objetivos para cumplir su cometido
En muchos casos la suposición de conocimiento completo puede
no ser cierta: competición
Solo algunos agentes pueden cumplir su cometido (p.ej.:
recursos limitados)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
24 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Indeterminismo: Toma de decisiones
Los puntos de decisión de los sistemas software son deterministas
Cuando el razonamiento se basa en un único flujo de control
asumimos consecuencias a largo plazo (objetivos finales)
Los agentes software (inteligentes) están dotados de mecanismos
de razonamiento
La Toma de decisiones involucra múltiples flujos de control:
Pensamos también en consecuencias inmediatas
Reaccionamos a estímulos
Planteamos objetivos a corto plazo
Replanteamos objetivos a largo plazo
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
25 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Abstracciones
Agentes, entidades autónomas, elementos de control
independientes, situación en un entorno, interacción entre ellas.
Entorno, mundo de entidades y recursos que el agente percibe,
controla, explota o consume.
Roles e interacciones, funcionalidades, actividades,
responsabilidades y patrones de interacción.
Reglas de organización, restricciones a roles e interacciones, o
relaciones entre roles y entre protocolos (sistemas
abiertos/cerrados).
Estructuras y patrones de organización, topología de
interacción entre patrones, régimen de control de actividades
(eficiencia, robustez, grado de abertura).
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
26 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Computación orientada a agentes
Dos visiones diferenciadas sobre desarrollo de agentes:
1
El punto de vista de la inteligencia artificial (fuerte):
Un sistema multiagente es una sociedad de individuos (agentes
software inteligentes) que interaccionan intercambiando
conocimiento y negociando entre ellos para lograr sus propios
intereses o un objetivo global.
2
El punto de vista de la ingeniería de software (débil):
Un sistema multiagente es un sistema software compuesto por
múltiples elementos de control independientes y encapsulados
(agentes) interaccionando entre ellos en el contexto de una
aplicación específica.
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
27 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Visión de la ingeniería del software
Se focaliza en las características de los agentes que tienen
impacto en el desarrollo de software:
Concurrencia, interacción, múltiples elementos de control
La inteligencia puede verse como una forma particular de
control independiente, las conversaciones como una forma
particular de interacción.
Es más general:
Diferentes sistemas software, incluso si no se conciben como
basados en agentes, pueden caracterizarse en términos de
sistemas multiagente débiles
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
28 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Característica básicas de los agentes
Autonomía y proactividad (delegación de responsabilidades)
Encapsulamiento del control como dimensión de la modularidad
Conceptualmente más simple de abarcar que un único (o
múltiples e interdependientes) elemento de control
Consciente del contexto
Separación clara entre las partes computacionales del sistema
(agentes) y los recursos del entorno
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
29 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Característica básicas de los agentes
Interactividad
No hay un único protocolo de interacción
Comunicación, coordinación
Interacción colaborativa o competitiva
Protocolo de interacción como una dimensión adicional del
desarrollo de software (computation as interaction)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
30 / 53
Ingeniería de software orientada a agentes
Ingeniería de software orientada a agentes
Característica adicionales de los agentes
Dimensión social (definición de protocolos, organizaciones)
Entornos abiertos (necesidad de estándares, infraestructuras que
soporten la interacción)
Control de agentes egoístas, comportamientos maliciosos y
agentes programados incorrectamente
Aprendizaje y capacidades adaptativas (mejorar la efectividad de
las acciones, adaptación al cambio en el entorno)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
31 / 53
Metodologías de software
1
Ingeniería de software
2
Ingeniería de software orientada a agentes
3
Metodologías de software
4
Metodologías de software orientadas a agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
32 / 53
Metodologías de software
Metodologías de software
Definen el marco conceptual de la metodología
Definen las abstracciones a usar para modelar el software:
Orientada a datos, flujos, objetos, ...
Introducen una disciplina el proceso de desarrollo
Qué producir y cuando
Qué artefactos producir
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
33 / 53
Metodologías de software
Proceso del software: Actividades
Actividades genéricas en todos los procesos de software
Especificación, qué debería hacer el sistema y cuales son las
restricciones de desarrollo
Desarrollo, proceso de producción del sistema software
Validación, comprobar que el software es lo que el cliente quiere
Evolución, cambiar el software en respuesta a los cambios
¿Cuál es el proceso del software ideal?
No existe un proceso ideal
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
34 / 53
Metodologías de software
Procesos del software
Diferentes sistemas requieren diferentes procesos de desarrollo,
por ejemplo:
En sistemas de software en tiempo real se ha de especificar todo
completamente desde el principio
En dominios en los que los requerimientos pueden ir cambiando
dinámicamente la especificación y el desarrollo suelen ir la vez
Eso quiere decir que el conjunto genérico de actividades puede
organizarse de diferentes maneras y ser descrito a diferentes
niveles de detalle para diferentes tipos de software
Procesos inadecuados puede reducir la calidad y utilidad del
producto
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
35 / 53
Metodologías de software
Modelos de procesos del software
Un modelo de proceso de software es una representación
simplificada de un proceso de software presentada desde una
perspectiva específica
Un modelo de proceso indica:
1
Alrededor de qué fases debe organizarse el proceso y en que
orden deben ejecutarse
2
Cuando deben ocurrir las interacciones y coordinaciones entre el
trabajo de las diferentes fases
Básicamente define un esqueleto alrededor del cual organizar y
detallar un proceso real
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
36 / 53
Metodologías de software
Metodologías de software
Procesos genéricos
En cascada, fases separadas de especificación y desarrollo
Desarrollo iterativo, especificación, desarrollo y validación están
entrelazados
Ingeniería basada en componentes, el sistema se construye a
partir de componentes existentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
37 / 53
Metodologías de software
Metodologías de software
Definición
Una metodología de software es el conjunto de guías que cubren
el ciclo de vida completo del desarrollo del sistema técnica y
organizativamente:
Ciclo de vida completo del proceso
Conjunto comprensible de conceptos y modelos
Conjunto completo de técnicas (reglas, guías, heurísticas)
Conjunto de entregables
Lenguaje de modelado
Conjunto de métricas
Control de calidad
Estándares de codificación (y otros)
Guías para la organización del desarrollo
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
38 / 53
Metodologías de software orientadas a agentes
1
Ingeniería de software
2
Ingeniería de software orientada a agentes
3
Metodologías de software
4
Metodologías de software orientadas a agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
39 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
La computación basada en agentes cambia la forma en la que
los sistemas complejos y distribuidos son conceptualizados e
implementados introduciendo nuevas abstracciones
Los lenguajes de modelado y metodologías previas no son
suficientes para el modelado de los sistemas basado en agentes
Son necesarias metodologías nuevas y específicas para el
desarrollo de estos sistemas:
Definiendo el conjunto de abstracciones necesarias
Adaptando las metodologías existentes o creando nuevas
Produciendo nuevas herramientas de desarrollo
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
40 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Deben estar centradas en las abstracciones específicas de
agentes
Usar por ejemplo metodologías orientadas a objetos produciría
falta de alineamiento entre las abstracciones
Pueden incluir también abstracciones más complejas:
Sobre las que modelar el software y organizar el proceso de
desarrollo (roles, organizaciones, responsabilidades, creencias,
deseos, intenciones, ...)
Que no tienen porque trasladarse directamente a entidades
concretas del sistema (p.ej. un rol es un aspecto de un agente,
no un agente)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
41 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Fase de análisis
La fase de análisis consiste en entender:
Cuáles son los actores principales que interaccionan en el
sistema
Cómo el sistema interacciona con esos actores
Qué tiene que hacer el sistema (globalmente)
En la fase de análisis vemos el sistema como una entidad cerrada
para no anticipar decisiones de diseño
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
42 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Fase de análisis
Asociamos agentes con las entidades de los escenarios que se
analizan
Dentro de esos escenarios asignamos:
Roles, responsabilidades y capacidades
Patrones de interacción entre agentes
El objetivo es tener una visión neutra del problema
Hay metodologías específicas que no usan la palabra agente para
denotar las entidades en la fase de análisis
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
43 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Fase de análisis
Analogía cinematográfica
Agentes software = Actores representando papeles
Casos de uso = Guión
Ingeniero de software = Productor/director
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
44 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Fase de diseño
La fase de diseño ha de incluir al menos:
Cuáles son los principales componentes que interaccionan
dentro del sistema
Cuáles son las responsabilidades y capacidades de cada
componentes del sistema
Cómo los componentes interaccionan para implementar el
sistema (su arquitectura)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
45 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Fase de diseño
En AOP se asocia agentes con los componentes que se usan
para construir el sistema
A partir de ahí se refinan:
Roles, responsabilidades y capacidades
Patrones de interacción entre agentes
A diferencia del análisis, hay que escoger qué agentes usar y
como interaccionan
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
46 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Metodologías relevantes
GAIA: desarrollo como el diseño de una organización
TROPOS: enfocada especialmente en el análisis de
requerimientos
ADELFE: desarrollo de agentes adaptativos
PASSI: metodología paso a paso de requerimientos a código
que integra modelos de diseño y conceptos de orientación a
objetos e inteligencia artificial
Prometheus: se focaliza en el diseño organizacional y en el de
la arquitectura interna del agente (diseño de sistemas de agentes
BDI)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
47 / 53
Metodologías de software orientadas a agentes
Extensiones de metodologías orientadas a objetos
Parece apropiado construir métodos y herramientas para software
orientado a agentes por encima de los de orientación a objetos
Permite una transición más suave en la migración entre estas
tecnologías
Mejora la accesibilidad a las metodologías y herramientas de
orientación a agentes a la comunidad actual de desarrolladores
en orientación a objetos
UML es un formalismo bastante extendido en la representación
de software OO
Ha habido diferentes intentos de extender UML para incluir
conceptos de agentes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
48 / 53
Metodologías de software orientadas a agentes
AUML
AUML (Agent Unified Modeling Language) se basa en UML
(revisado por el grupo de modelado de FIPA)
UML 2.0 extendido con:
Clase especial agente
Concepto de roles
Diagramas de interacción de protocolos de agentes
Protocolos en capas, imbricados, entrelazados
Extendiendo los diagramas de comportamiento para adecuarlos
al concepto de rol
Siendo un avance aun quedan elementos que no se pueden
representar satisfactoriamente
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
49 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Más allá de los agentes
Estas metodologías no solo sirven para agentes
Muchos de los sistemas software actuales tienen características
similares a las de los agentes y los sistemas multiagente
Pueden utilizarse por ejemplo en:
Servicios web y aplicaciones en internet
Cloud computing / GRID computing
Sistemas P2P
Redes de sensores (Internet of Things)
Aplicaciones para la Future Internet
Obviamente AOSE puede estar a un nivel de abstracción
excesivo para sistemas simples
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
50 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
¿Están para quedarse?
Como un paso más en la evolución de la ingeniería del software
AOSE es el paso siguiente natural en la evolución de un amplio
conjunto de paradigmas de ingeniería de software como
orientación a objetos, patrones de diseño y diseño basado en
componentes
Apropiado para sistemas abiertos, en red y sistemas distribuidos
Sus características está alineadas con el desarrollo en este tipo
de entornos (p. ej.: Internet)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
51 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Próximo paso en la IS
¿Reemplazará a la orientación a objetos?
No, AOSE suplementa OO y se beneficia de ello
Similaridades:
Ambas aceptan el principio de encapsulamiento y ocultación de
información y reconocen la importancia de las interacciones
Diferencias:
OO da mínimo soporte para especificar y manejar relaciones
organizacionales (relaciones se definen solo como herencia
jerárquica)
Objetos encapsulan estado y comportamiento, no encapsulan
toma de decisiones sobre las acciones
Los objetos al ser pasivos son menos escalables
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
52 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Próximo paso en la IS
¿Reemplazará a la orientación a objetos?
No, AOSE suplementa OO y se beneficia de ello
Similaridades:
Ambas aceptan el principio de encapsulamiento y ocultación de
información y reconocen la importancia de las interacciones
Diferencias:
OO da mínimo soporte para especificar y manejar relaciones
organizacionales (relaciones se definen solo como herencia
jerárquica)
Objetos encapsulan estado y comportamiento, no encapsulan
toma de decisiones sobre las acciones
Los objetos al ser pasivos son menos escalables
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
52 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Próximo paso en la IS
¿Reemplazará a la orientación a objetos?
No, AOSE suplementa OO y se beneficia de ello
Similaridades:
Ambas aceptan el principio de encapsulamiento y ocultación de
información y reconocen la importancia de las interacciones
Diferencias:
OO da mínimo soporte para especificar y manejar relaciones
organizacionales (relaciones se definen solo como herencia
jerárquica)
Objetos encapsulan estado y comportamiento, no encapsulan
toma de decisiones sobre las acciones
Los objetos al ser pasivos son menos escalables
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
52 / 53
Metodologías de software orientadas a agentes
Metodologías orientadas a agentes
Problemas
Los agentes han de perseguir unos objetivos globales y
reaccionar a las interacciones con el entorno
Hay que encontrar un equilibrio entre estas dos actividades
Como consecuencia es, hasta cierto punto, impredecible qué
objetivos se alcanzarán y cuando
Los agentes deciden en tiempo de ejecución sus interacciones
Incertidumbre sobre qué interacciones sucederán, con quién o
cuándo
Incertidumbre sobre el resultado de una interacción
La composición de agentes que interaccionan puede resultar en
comportamientos que no se pueden predecir a priori
(comportamiento emergente)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de software orientado a agentes
Curso 2015/2016
53 / 53
Descargar