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