SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Programación Orientada a Aspectos Fernando Darío Córdoba M Cod: 06042019
Introducción ,[object Object]
Historia ,[object Object],[object Object],[object Object]
¿Qué es un aspecto? ,[object Object],[object Object]
[object Object]
En la siguiente figura, se muestra un programa como un todo formado por un conjunto  de aspectos más un modelo de objetos. Con el modelo de objetos  se recoge la funcionalidad básica, mientras que el resto de aspectos recogen características de rendimiento.
Comparación de la apariencia que presenta un programa tradicional con la que muestra un programa orientado a aspectos en la que se confrontan la estructura de un programa tradicional (parte izquierda) con la de uno orientado a aspectos (parte derecha).
Si el rectángulo de traza más gruesa representa el código de un programa , se puede apreciar que la estructura del programa tradicional está formada por una serie de bandas horizontales. Cada banda está rellena utilizando una trama distinta., y cada trama representa una funcionalidad. El programa orientado a aspectos, sin embargo, esta formado por tres bloques compactos, cada uno de los cuales representa un aspecto o competencia dentro del código. Como se puede observar, en la versión tradicional estos mismos bloques de funcionalidad quedan repartidos por todo el código, mientras en que la versión orientada  a aspectos tenemos un programa más compacto y modularizado, teniendo cada aspecto su propia competencia.
Fundamentos de la programación orientada a aspectos ,[object Object]
Puntos de enlace   Los  puntos de enlace  son una clase especial de interfaz entre los aspectos y los módulos del lenguaje de componentes. Son los lugares del código en los que éste se puede aumentar con comportamientos adicionales. Estos comportamientos se especifican en los aspectos. Tejedor El tejedor (del término inglés weaver) se encarga de mezclar los diferentes mecanismos de abstracción y composición que aparecen en los lenguajes de aspectos y componentes ayudándose de los puntos de enlace.
Para tener un programa orientado a aspectos necesitamos definir los siguientes elementos: ,[object Object],[object Object],[object Object]
Estructura de una implementación en los lenguajes tradicionales. En las aplicaciones tradicionales, bastaba con un compilador o intérprete que tradujera nuestro programa escrito en un lenguaje de alto nivel a un código directamente entendible por la máquina.
Estructura de una implementación en los lenguajes de aspectos. En las aplicaciones orientadas a aspectos, además del compilador, hemos de tener el tejedor, que nos combine el código que implementa la funcionalidad básica, con los distintos módulos que implementan los aspectos, pudiendo estar cada aspecto codificado  con un lenguaje distinto.
Tejiendo clases y aspectos ,[object Object],[object Object],[object Object]
Entrelazado dinámico. Una precondición o requisito para que se pueda realizar un entrelazado dinámico es que los aspectos existan de forma explícita tanto en tiempo de compilación como en tiempo de ejecución. Para conseguir esto, tanto los aspectos como las estructuras entrelazadas se deben modelar como objetos y deben mantenerse en el ejecutable. Dado un interfaz de reflexión, el tejedor es capaz de añadir, adaptar y borrar aspectos de forma dinámica, si así se desea, durante la ejecución.
Lenguajes de Aspectos de Propósito General vs. Dominio Específico. ,[object Object],[object Object]
Los lenguajes de aspectos de propósito general   se diseñaron para ser utilizados con cualquier clase de aspecto, no solamente con aspectos específicos. Por lo tanto, no pueden imponer restricciones en el lenguaje base. Principalmente soportan la definición separada de los aspectos proporcionando unidades de aspectos. Normalmente tienen el mismo nivel de abstracción que el lenguaje base y también el mismo conjunto de instrucciones. Un ejemplo de este tipo de lenguajes es AspectJ, que utiliza Java como base, y las instrucciones de los aspectos también se escriben en Java. Si contrastamos estos dos enfoques, propósito general versus propósito específico, se tiene que los lenguajes de aspectos de propósito general no pueden cubrir completamente las necesidades. Tienen un severo inconveniente: Permiten la separación del código, pero no garantizan la separación de funcionalidades, es decir, que la unidad de aspecto solamente se utiliza para programar el aspecto. Sin embargo, esta es la idea central de la programación orientada a aspectos.
Un lenguaje de dominio específico: COOL ,[object Object],[object Object],[object Object],[object Object]
Un lenguaje de propósito general: AspectJ ,[object Object],[object Object],[object Object]
Disciplinas relacionadas con POA. Por último, hay muchas disciplinas y campos de investigación relacionados de alguna manera con la orientación a aspectos, algunos persiguen los mismos objetivos, de los cuales tenemos. Transformación de programas El objetivo que persigue la transformación de programas es similar al de la orientación a aspectos. Busca el poder escribir programas correctos en un lenguaje de más alto nivel, y luego, transformarlos de forma mecánica en otros que tengan un comportamiento idéntico, pero cuya eficiencia sea mucho mejor. Con este estilo de programación algunas propiedades de las que el programador quiere implementar se escriben en un programa inicial.
Programación subjetiva ,[object Object],[object Object],[object Object]
Conclusiones ,[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano2008PA2Info3
 
Programación
ProgramaciónProgramación
ProgramaciónTensor
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...jose francisco arenas jimenez
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmasalithu1
 
P R O G R A M A C I O N O R I E N T A D A
P R O G R A M A C I O N  O R I E N T A D AP R O G R A M A C I O N  O R I E N T A D A
P R O G R A M A C I O N O R I E N T A D Achayna
 
Tabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionTabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionMarioS1093
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.carmenmc2017
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion Anel Sosa
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaAngeles Rivera
 
Grupo 12-objetos-compuestos
Grupo 12-objetos-compuestosGrupo 12-objetos-compuestos
Grupo 12-objetos-compuestoszeta2015
 
9 anulacion
9   anulacion9   anulacion
9 anulacionzeta2015
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradavnslgars
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradakcarbache
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructuradoAgapito26
 

Was ist angesagt? (20)

Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano
 
Programación
ProgramaciónProgramación
Programación
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmas
 
P R O G R A M A C I O N O R I E N T A D A
P R O G R A M A C I O N  O R I E N T A D AP R O G R A M A C I O N  O R I E N T A D A
P R O G R A M A C I O N O R I E N T A D A
 
Tabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionTabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacion
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructurada
 
Grupo 12-objetos-compuestos
Grupo 12-objetos-compuestosGrupo 12-objetos-compuestos
Grupo 12-objetos-compuestos
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 
Lenguaje de programacion mike alvarado
Lenguaje de programacion mike alvaradoLenguaje de programacion mike alvarado
Lenguaje de programacion mike alvarado
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
9 anulacion
9   anulacion9   anulacion
9 anulacion
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programacion estructurado
Programacion estructuradoProgramacion estructurado
Programacion estructurado
 

Ähnlich wie Programación Orientada a Aspectos - Fernando Córdoba

Ähnlich wie Programación Orientada a Aspectos - Fernando Córdoba (20)

Herrera poveda quilachamin_paper
Herrera poveda quilachamin_paperHerrera poveda quilachamin_paper
Herrera poveda quilachamin_paper
 
Int a la computacion
Int a la computacionInt a la computacion
Int a la computacion
 
Evoluciýýn de la programaciýýn
Evoluciýýn de la programaciýýnEvoluciýýn de la programaciýýn
Evoluciýýn de la programaciýýn
 
Lenguaje de programacion de c++
Lenguaje de programacion de c++Lenguaje de programacion de c++
Lenguaje de programacion de c++
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Informe lpi
Informe lpiInforme lpi
Informe lpi
 
Introduccion a la Programación I parte
Introduccion a la Programación I parte Introduccion a la Programación I parte
Introduccion a la Programación I parte
 
Introduccion a la programación I Parte
Introduccion a la programación I Parte Introduccion a la programación I Parte
Introduccion a la programación I Parte
 
cuestionario
cuestionariocuestionario
cuestionario
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Lenguajesprog
LenguajesprogLenguajesprog
Lenguajesprog
 
Programacion Basica
Programacion Basica Programacion Basica
Programacion Basica
 
Presentación de programacion
Presentación  de programacionPresentación  de programacion
Presentación de programacion
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Cuaderno3
Cuaderno3Cuaderno3
Cuaderno3
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Diapositiva informatica nidia
Diapositiva informatica nidiaDiapositiva informatica nidia
Diapositiva informatica nidia
 
Poa Borrador
Poa BorradorPoa Borrador
Poa Borrador
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 

Mehr von 2008PA2Info3

UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera2008PA2Info3
 
JUnit - Germán Domínguez
JUnit - Germán DomínguezJUnit - Germán Domínguez
JUnit - Germán Domínguez2008PA2Info3
 
JUnit - Pablo Calvache
JUnit - Pablo CalvacheJUnit - Pablo Calvache
JUnit - Pablo Calvache2008PA2Info3
 
SCRUM - César Ortiz
SCRUM - César OrtizSCRUM - César Ortiz
SCRUM - César Ortiz2008PA2Info3
 
Java Fx - Santiago Vejarano
Java Fx - Santiago VejaranoJava Fx - Santiago Vejarano
Java Fx - Santiago Vejarano2008PA2Info3
 
Modelado de redes de telecomunicaciones con UML - Leonardo Nieto
Modelado de redes de telecomunicaciones con UML - Leonardo NietoModelado de redes de telecomunicaciones con UML - Leonardo Nieto
Modelado de redes de telecomunicaciones con UML - Leonardo Nieto2008PA2Info3
 
SCRUM - Osiris López
SCRUM - Osiris LópezSCRUM - Osiris López
SCRUM - Osiris López2008PA2Info3
 
Formalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid MuñozFormalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid Muñoz2008PA2Info3
 
Java Fx - Alejandro Sotelo
Java Fx - Alejandro SoteloJava Fx - Alejandro Sotelo
Java Fx - Alejandro Sotelo2008PA2Info3
 
Scripting Integration en Java 6 - Daniel E. Jaramillo
Scripting Integration en Java 6 - Daniel E. JaramilloScripting Integration en Java 6 - Daniel E. Jaramillo
Scripting Integration en Java 6 - Daniel E. Jaramillo2008PA2Info3
 
Perfiles UML - Paola Morales
Perfiles UML - Paola MoralesPerfiles UML - Paola Morales
Perfiles UML - Paola Morales2008PA2Info3
 
SCRUM - Víctor Orobio
SCRUM - Víctor OrobioSCRUM - Víctor Orobio
SCRUM - Víctor Orobio2008PA2Info3
 
Estándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina OrtegaEstándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina Ortega2008PA2Info3
 
Extensiones UML para aplicaciones web - Rocío Santiago
Extensiones UML para aplicaciones web - Rocío SantiagoExtensiones UML para aplicaciones web - Rocío Santiago
Extensiones UML para aplicaciones web - Rocío Santiago2008PA2Info3
 
Programación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro SolanoProgramación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro Solano2008PA2Info3
 
UML para sistemas de tiempo real - Marcela Folleco
UML para sistemas de tiempo real - Marcela FollecoUML para sistemas de tiempo real - Marcela Folleco
UML para sistemas de tiempo real - Marcela Folleco2008PA2Info3
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado2008PA2Info3
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes2008PA2Info3
 
Aplicaciones web - Gonzalo Acte
Aplicaciones web - Gonzalo ActeAplicaciones web - Gonzalo Acte
Aplicaciones web - Gonzalo Acte2008PA2Info3
 
Estándares de calidad del software - Andrés Mera
Estándares de calidad del software - Andrés MeraEstándares de calidad del software - Andrés Mera
Estándares de calidad del software - Andrés Mera2008PA2Info3
 

Mehr von 2008PA2Info3 (20)

UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera
 
JUnit - Germán Domínguez
JUnit - Germán DomínguezJUnit - Germán Domínguez
JUnit - Germán Domínguez
 
JUnit - Pablo Calvache
JUnit - Pablo CalvacheJUnit - Pablo Calvache
JUnit - Pablo Calvache
 
SCRUM - César Ortiz
SCRUM - César OrtizSCRUM - César Ortiz
SCRUM - César Ortiz
 
Java Fx - Santiago Vejarano
Java Fx - Santiago VejaranoJava Fx - Santiago Vejarano
Java Fx - Santiago Vejarano
 
Modelado de redes de telecomunicaciones con UML - Leonardo Nieto
Modelado de redes de telecomunicaciones con UML - Leonardo NietoModelado de redes de telecomunicaciones con UML - Leonardo Nieto
Modelado de redes de telecomunicaciones con UML - Leonardo Nieto
 
SCRUM - Osiris López
SCRUM - Osiris LópezSCRUM - Osiris López
SCRUM - Osiris López
 
Formalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid MuñozFormalización en UML - Ingrid Muñoz
Formalización en UML - Ingrid Muñoz
 
Java Fx - Alejandro Sotelo
Java Fx - Alejandro SoteloJava Fx - Alejandro Sotelo
Java Fx - Alejandro Sotelo
 
Scripting Integration en Java 6 - Daniel E. Jaramillo
Scripting Integration en Java 6 - Daniel E. JaramilloScripting Integration en Java 6 - Daniel E. Jaramillo
Scripting Integration en Java 6 - Daniel E. Jaramillo
 
Perfiles UML - Paola Morales
Perfiles UML - Paola MoralesPerfiles UML - Paola Morales
Perfiles UML - Paola Morales
 
SCRUM - Víctor Orobio
SCRUM - Víctor OrobioSCRUM - Víctor Orobio
SCRUM - Víctor Orobio
 
Estándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina OrtegaEstándares calidad del software - Cristina Ortega
Estándares calidad del software - Cristina Ortega
 
Extensiones UML para aplicaciones web - Rocío Santiago
Extensiones UML para aplicaciones web - Rocío SantiagoExtensiones UML para aplicaciones web - Rocío Santiago
Extensiones UML para aplicaciones web - Rocío Santiago
 
Programación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro SolanoProgramación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro Solano
 
UML para sistemas de tiempo real - Marcela Folleco
UML para sistemas de tiempo real - Marcela FollecoUML para sistemas de tiempo real - Marcela Folleco
UML para sistemas de tiempo real - Marcela Folleco
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
 
Aplicaciones web - Gonzalo Acte
Aplicaciones web - Gonzalo ActeAplicaciones web - Gonzalo Acte
Aplicaciones web - Gonzalo Acte
 
Estándares de calidad del software - Andrés Mera
Estándares de calidad del software - Andrés MeraEstándares de calidad del software - Andrés Mera
Estándares de calidad del software - Andrés Mera
 

Kürzlich hochgeladen

#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Kürzlich hochgeladen (20)

#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

Programación Orientada a Aspectos - Fernando Córdoba

  • 1. Programación Orientada a Aspectos Fernando Darío Córdoba M Cod: 06042019
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. En la siguiente figura, se muestra un programa como un todo formado por un conjunto de aspectos más un modelo de objetos. Con el modelo de objetos se recoge la funcionalidad básica, mientras que el resto de aspectos recogen características de rendimiento.
  • 7. Comparación de la apariencia que presenta un programa tradicional con la que muestra un programa orientado a aspectos en la que se confrontan la estructura de un programa tradicional (parte izquierda) con la de uno orientado a aspectos (parte derecha).
  • 8. Si el rectángulo de traza más gruesa representa el código de un programa , se puede apreciar que la estructura del programa tradicional está formada por una serie de bandas horizontales. Cada banda está rellena utilizando una trama distinta., y cada trama representa una funcionalidad. El programa orientado a aspectos, sin embargo, esta formado por tres bloques compactos, cada uno de los cuales representa un aspecto o competencia dentro del código. Como se puede observar, en la versión tradicional estos mismos bloques de funcionalidad quedan repartidos por todo el código, mientras en que la versión orientada a aspectos tenemos un programa más compacto y modularizado, teniendo cada aspecto su propia competencia.
  • 9.
  • 10. Puntos de enlace Los puntos de enlace son una clase especial de interfaz entre los aspectos y los módulos del lenguaje de componentes. Son los lugares del código en los que éste se puede aumentar con comportamientos adicionales. Estos comportamientos se especifican en los aspectos. Tejedor El tejedor (del término inglés weaver) se encarga de mezclar los diferentes mecanismos de abstracción y composición que aparecen en los lenguajes de aspectos y componentes ayudándose de los puntos de enlace.
  • 11.
  • 12. Estructura de una implementación en los lenguajes tradicionales. En las aplicaciones tradicionales, bastaba con un compilador o intérprete que tradujera nuestro programa escrito en un lenguaje de alto nivel a un código directamente entendible por la máquina.
  • 13. Estructura de una implementación en los lenguajes de aspectos. En las aplicaciones orientadas a aspectos, además del compilador, hemos de tener el tejedor, que nos combine el código que implementa la funcionalidad básica, con los distintos módulos que implementan los aspectos, pudiendo estar cada aspecto codificado con un lenguaje distinto.
  • 14.
  • 15. Entrelazado dinámico. Una precondición o requisito para que se pueda realizar un entrelazado dinámico es que los aspectos existan de forma explícita tanto en tiempo de compilación como en tiempo de ejecución. Para conseguir esto, tanto los aspectos como las estructuras entrelazadas se deben modelar como objetos y deben mantenerse en el ejecutable. Dado un interfaz de reflexión, el tejedor es capaz de añadir, adaptar y borrar aspectos de forma dinámica, si así se desea, durante la ejecución.
  • 16.
  • 17. Los lenguajes de aspectos de propósito general se diseñaron para ser utilizados con cualquier clase de aspecto, no solamente con aspectos específicos. Por lo tanto, no pueden imponer restricciones en el lenguaje base. Principalmente soportan la definición separada de los aspectos proporcionando unidades de aspectos. Normalmente tienen el mismo nivel de abstracción que el lenguaje base y también el mismo conjunto de instrucciones. Un ejemplo de este tipo de lenguajes es AspectJ, que utiliza Java como base, y las instrucciones de los aspectos también se escriben en Java. Si contrastamos estos dos enfoques, propósito general versus propósito específico, se tiene que los lenguajes de aspectos de propósito general no pueden cubrir completamente las necesidades. Tienen un severo inconveniente: Permiten la separación del código, pero no garantizan la separación de funcionalidades, es decir, que la unidad de aspecto solamente se utiliza para programar el aspecto. Sin embargo, esta es la idea central de la programación orientada a aspectos.
  • 18.
  • 19.
  • 20. Disciplinas relacionadas con POA. Por último, hay muchas disciplinas y campos de investigación relacionados de alguna manera con la orientación a aspectos, algunos persiguen los mismos objetivos, de los cuales tenemos. Transformación de programas El objetivo que persigue la transformación de programas es similar al de la orientación a aspectos. Busca el poder escribir programas correctos en un lenguaje de más alto nivel, y luego, transformarlos de forma mecánica en otros que tengan un comportamiento idéntico, pero cuya eficiencia sea mucho mejor. Con este estilo de programación algunas propiedades de las que el programador quiere implementar se escriben en un programa inicial.
  • 21.
  • 22.