Sunteți pe pagina 1din 6

PARADIGMA “ORIENTADO A ASPECTOS”

La definición de aspecto ha evolucionado a lo largo del tiempo, pero con la que se trabaja
actualmente es la siguiente: Un aspecto es una unidad modular que se disemina por la
estructura de otras unidades funcionales. Los aspectos existen tanto en la etapa de diseño
como en la de implementación. Un aspecto de diseño es una unidad modular del diseño
que se entremezcla en la estructura de otras partes del diseño. Un aspecto de programa o
de código es una unidad modular del programa que aparece en otras unidades modulares
del programa (G. Kiczales).
Los aspectos no suelen ser unidades de descomposición funcional del sistema, sino
propiedades que afectan al rendimiento o la semántica de los componentes. Algunos
ejemplos de aspectos son, los patrones de acceso a memoria, la sincronización de
procesos concurrentes, el manejo de errores, etc.

con los aspectos se capturan conceptos técnicos tales como la persistencia, la gestión de
errores, la sincronización o la comunicación de procesos. Estos aspectos se escriben
utilizando lenguajes de descripción de aspectos especiales

 COOL es un lenguaje de dominio específico creado por Xerox [2] cuya finalidad es
la sincronización de hilos concurrentes. El lenguaje base que utiliza es una versión
restringida de Java, ya que se han de eliminar los métodos wait, notify y notifyAll, y
la palabra clave synchronized para evitar que se produzcan situaciones de
duplicidad al intentar sincronizar los hilos en el aspecto y en la clase.
 En AspectJ, un aspecto es una clase, exactamente igual que las clases Java, pero
con una particularidad, que pueden contener unos constructores de corte, que no
existen en Java. Los cortes de AspectJ capturan colecciones de eventos en la
ejecución de un programa. Estos eventos pueden ser invocaciones de métodos,
invocaciones de constructores, y excepciones de señales y gestión. Los cortes no
definen acciones, sino que describen eventos.

PARADIGMA “orientada a sistemas multiagente”


Un agente es todo aquello que puede considerarse que percibe su ambiente mediante
sensores y que responde o actúa en tal ambiente por medio de efectores [RUS96]. Un
agente racional es una entidad física (robot) o virtual (software), capaz de actuar de manera
correcta, lo cual quiere decir, que al obtener una serie de percepciones del entorno en el
que se encuentra, y teniendo en cuenta sus recursos y conocimientos, el agente selecciona
la acción más adecuada para cumplir sus objetivos buscando alcanzar el mejor desempeño
[FER99].
Un SMA es un conjunto organizado de agentes que interactúan de forma cooperativa para
lograr de manera colectiva un objetivo global.
Basándonos en la definición de SMA dada por Ferber, un SMA está compuesto por los
siguientes elementos:
•Ambiente: Espacio en el que perciben y actúan los agentes, el cual generalmente
tiene volumen (E).
•Objetos: Conjunto de entes pasivos, situados en E (O). Estos pueden ser afectados
por los agentes.
•Agentes (A): Conjunto de entes activos. Los Agentes forman parte del conjunto de
objetos (A c 0).
•Relaciones entre los objetos (agentes) (R): Conjunto de relaciones que vinculan a
los objetos, y por lo tanto a los agentes entre sí.
•Operaciones: Acciones para que los Agentes puedan percibir, producir, consumir,
transformar y manipular objetos.
•Operadores: Representan la aplicación de las operaciones y la reacción del mundo
en los intentos de modificación por parte de los agentes.

Jason es una plataforma para el desarrollo de los sistemas multiagente. - Estado de


desarrollo: Activo - Escrito en: Java - Sistema operativo: Windows, Mac, Linux -
Disponible: Código abierto - Sitio web: jason.sf.net
JADE [9, 2] es un entorno que simplifica
la implementacion de sistemas multiagente mediante una capa de soporte (middle-
ware) que respeta las especificaciones FIPA [7] y con un conjunto de herramientas
para el desarrollo y debugging. La arquitectura de comunicacion ofrece mensajes
flexibles y eficientes, mientras que JADE crea y maneja una cola de mensajes ACL
entrantes; los agentes pueden acceder su cola mediante una combinacion de varios
modos: blocking, polling, timeout y pattern matching
PARADIGMA “funcional”
Cuando nos encontramos desarrollamos software utilizando este paradigma,
estaremos trabajando principalmente con funciones, evitaremos los datos mutables,
así como el hecho de compartir estados entre funciones.
Con este paradigma las funciones serán tratadas como ciudadanos de primera
clase. Las funciones podrán ser asignadas a variables además podrán ser utilizadas
como entrada y salida de otras funciones.
A las funciones que puedan tomar funciones como parámetros y devolver funciones
como resultado serán conocidas como función de orden superior.
La programación funcional es un paradigma declarativo. Nos enfocaremos en "qué"
estamos haciendo y no en "cómo" se está haciendo (enfoque imperativo). Esto
quiere decir que nosotros expresaremos nuestra lógica sin describir controles de
flujo; no usaremos ciclos o condicionales.

SCALA: Es un lenguaje de programación multi-paradigma diseñado para expresar


patrones comunes de programación que integra características de lenguajes
funcionales y orientados a objetos. La implementación actual corre en la máquina
virtual de Java y es compatible con las aplicaciones Java existentes

Haskell: Es un lenguaje de programación estandarizado multi-propósito puramente


funcional con semánticas no estrictas y fuerte tipificación estática.

S-ar putea să vă placă și