Descargar

Programación Orientada a Aspectos

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red Metas de esta presentación Transmitir los conceptos fundamentales de la Programación Orientada a Aspectos Mostrar las bondades de utilizar esta forma de desarrollar aplicaciones. Mostrar Diferentes tipos de enfoques para el entretejido.

    edu.red Asumimos Conocimientos de Programación Orientada a Objetos Conceptos básicos temas como Seguridad de Aplicaciones, Trasabilidad, Cache, Persistencia, Transaccionalidad. Reflexion, .NET Remoting, Proxies Dinámicos. Emisión de Código usando CodeEmit

    edu.red Agenda Límites de OOP AOP al rescate Beneficios Estado del arte

    edu.red Ingeniería de Sistemas (revisitada) Un sistema complejo puede verse como una implementación combinada de múltiples áreas de interés (concerns) Lógica de negocio, performance, persistencia, trazabilidad, debugging, autenticación, seguridad de hilos, chequeo de errores, etc Comprensibilidad, mantenibilidad, facilidad de evolución, etc

    edu.red Límites de OOP

    public class Banco { // declaraciones varias

    public double ProcesarDebito(long cuentaId, double monto) { // apertura de demarcacion transaccional

    try { // recupero de la cuenta // validaciones de negocio // logica de negocio asociada al débito // persistencia del nuevo estado // traceo del movimiento para auditoria // cierre exitoso de la transacción (commit) return nuevo saldo cuenta; } catch (Excepcion e) { // traceo de la excepcion para auditoría // cierre anormal de la transacción (rollback) // relanzamiento de la excepcion para las capas superiores } }

    // declaraciones de otros métodos de negocio }

    (Gp:) Transaccionalidad

    (Gp:) Persistencia

    (Gp:) Trazabilidad

    edu.red Límites de OOP (cont.) OOP cumplió todas las promesas por las que fue concebido Modelar la aplicación dentro del esquema de objetos que colaboran entre sí Encapsular detalles de implementación detrás de interfaces El Polimorfismo proveyó una interfaz y una conducta común a conceptos relacionados La Herencia permitió que componentes más específicos cambien conductas particulares sin necesidad de acceder a la implementación de los conceptos de base

    edu.red Límites de OOP (cont.) No obstante, OOP no se adecua lo suficiente para conducir un comportamiento repartido entre varios módulos –a menudo no relacionados entre sí-

    edu.red Síntomas del agotamiento de OOP Código enredado El desarrollador debe pensar en todos los intereses a la vez Código desperdigado

    edu.red Implicancias del agotamiento de OOP Implementación pobre de intereses Productividad baja Reusabilidad disminuida Código de calidad empobrecida Evolución difícil

    edu.red AOP al rescate En 1997, Gregor Kiczales junto a otros científicos del laboratorio de investigación de Xerox (Palo Alto) elaboraron el documento Aspect-Oriented Programming En el mismo analizaban el límite de OOP, ofreciendo AOP como un nuevo paradigma de programación También, iniciaron el proyecto AspectJ: una implementación de AOP basada en Java y extensiones que completaban el nuevo paradigma

    Partes: 1, 2
    Página siguiente