SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Programación
Orientada a
Aspectos
paradigmas
¿Qué es POA?
Nuevo paradigma de programación
Enfoque estructurado: procedimientos o acciones
Enfoque orientado a objetos: datos encapsulados en clases
Existen funciones que son más difíciles de modularizar que otras, generando un
problema conocido como código diseminado.
La principal razón de que el código diseminado se presente es debida a las
diferentes formas que un servicio este disponible y la forma en que este es usado.
El código diseminado en una aplicación retrasa el
desarrollo, mantenimiento y evolución de un programa.
¿Por qué POA?
Existen conceptos que no pueden encapsularse
dentro de una unidad funcional, debido a que
atraviesan todo el sistema o varias partes de él,
como lo son la sincronización, el manejo de
memoria, el manejo de errores, perfiles,
seguridad o redes
Cronología Histórica
Primera generación: código spaghetti
Segunda y tercera generación: descomposición
funcional
Cuarta generación: descomposición en objetos
Quinta generación: descomposición en
aspectos
El Desarrollo
Orientado a Aspectos
Requiere de tres elementos básicos:
Un lenguaje para definir la funcionalidad b·sica, conocido como
lenguaje base o componente. Podría ser un lenguaje como C#, C++,
Java o Lisp.
Uno o varios lenguajes de aspectos, para especificar el
comportamiento de los aspectos. Como podrían ser COOL para
sincronización o RIDL para distribución.
Un tejedor de aspectos (aspect weaver) que produce una aplicación
que integra las funcionalidades de las clases y los aspectos. Tal
proceso se puede llevar acabo en tiempo de ejecución o en tiempo de
compilación.
Diferenciación
En una primera impresión, la programación orientada a aspectos y
la programación orientada a objetos pareciera que son en realidad
el mismo paradigma, no obstante, esta noción es errónea.
En la programación orientada a objetos los sistemas se modelan
como un conjunto de objetos que interactúan entre sÌ, sin embargo,
falla al modelar los conceptos que se entrecruzan.
La diferencia radica en que mientras la programación orientada a
aspectos se enfoca en los conceptos que se entrecruzan, la
programación orientada a objetos se enfoca en los conceptos
comunes.
sigue ->
Diferenciación
...hablemos mal de POA
Posibles choques entre el código funcional (expresado en el lenguaje base) y
el código de aspectos (expresados en los lenguajes de aspectos).
Posibles choques entre el código de aspectos y los mecanismos del lenguaje,
uno de los ejemplos más conocidos de este problema es la anomalía de
herencia.
Posibles choques entre los aspectos, un ejemplo clásico es tener dos aspectos
que trabajan perfectamente por separado pero al aplicarlos conjuntamente
resultan en un comportamiento anormal.
Los lenguajes orientados a aspectos actuales no cuentan con mecanismos
lingüísticos suficientemente poderosos para respetar por completo todos los
principios de diseño, como por ejemplo, el encapsulamiento.
Ventajas
Permite una implementación modularizada reduciendo el acoplamiento
entre sus partes.
El código es más limpio, menos duplicado, más fácil de entender y de
mantener.
Elimina los problemas causados por el código mezclado y el código
diseminado.
Mayor reutilización, los aspectos tienen mayores probabilidades de ser
reutilizados en otros sistemas con requerimientos similares.
Los sistemas son más adaptables a cambios, la separación de conceptos
permite agregar nuevos aspectos, modificarlos o removerlos fácilmente.
Conclusiones
La programación orientada a aspectos es un nuevo paradigma que
adolece de madurez y formalidad, necesita ser desarrollada más
exhaustivamente aun para consolidar sus conceptos.
La programación orientada a aspectos es el comienzo de un nuevo
paradigma, apenas se esta descubriendo su potencialidad, sus
problemas, y sus posibles soluciones, lo que nos hace pensar que es
una de las ramas con mayor futuro dentro de la ingeniería de
software.
Los lenguajes orientados a aspectos actuales, no cuentan con
mecanismos lingüísticos suficientemente poderosos para respetar por
completo todos los principios de diseño.
preguntas...

Más contenido relacionado

La actualidad más candente

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
 
Tabla coparativa paradigmas de la programacion
Tabla coparativa paradigmas de la programacionTabla coparativa paradigmas de la programacion
Tabla coparativa paradigmas de la programacion
Luis Enrique Sanchez
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
Wil Mer
 
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
Michael de la Cruz
 

La actualidad más candente (19)

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...
 
Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetos
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Desarrollon de applicaciones i
Desarrollon de applicaciones iDesarrollon de applicaciones i
Desarrollon de applicaciones i
 
Programacion estructurada.vol2
Programacion estructurada.vol2Programacion estructurada.vol2
Programacion estructurada.vol2
 
Tabla comparativa de paradigamas
Tabla comparativa de paradigamasTabla comparativa de paradigamas
Tabla comparativa de paradigamas
 
Tabla coparativa paradigmas de la programacion
Tabla coparativa paradigmas de la programacionTabla coparativa paradigmas de la programacion
Tabla coparativa paradigmas de la programacion
 
Comparacion pe y poo
Comparacion pe y pooComparacion pe y poo
Comparacion pe y poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Aplicaciones robustas con Programación Orientada a Aspectos
Aplicaciones robustas con Programación Orientada a AspectosAplicaciones robustas con Programación Orientada a Aspectos
Aplicaciones robustas con Programación Orientada a Aspectos
 
Sesion 2
Sesion 2Sesion 2
Sesion 2
 
Fundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareFundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de Software
 
Fundamentos Básicos del Diseño de Software.
Fundamentos Básicos del Diseño de Software.Fundamentos Básicos del Diseño de Software.
Fundamentos Básicos del Diseño de Software.
 
Ti034 cp-co CASO PRÁCTICO
Ti034 cp-co CASO PRÁCTICOTi034 cp-co CASO PRÁCTICO
Ti034 cp-co CASO PRÁCTICO
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
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
 
Resumen interfaces
Resumen interfacesResumen interfaces
Resumen interfaces
 
Paradigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a ObjetosParadigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a Objetos
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
 

Destacado

Histoire du Saint-Graal Fr. 9123
Histoire du Saint-Graal Fr. 9123Histoire du Saint-Graal Fr. 9123
Histoire du Saint-Graal Fr. 9123
Julie Grenon-Morin
 
Histoire du Saint-Graal fr. 110
Histoire du Saint-Graal fr. 110Histoire du Saint-Graal fr. 110
Histoire du Saint-Graal fr. 110
Julie Grenon-Morin
 
Number Types and Properties.pdf
Number Types and Properties.pdfNumber Types and Properties.pdf
Number Types and Properties.pdf
LomasAlg1
 
KENYA WHITE-Resume
KENYA WHITE-ResumeKENYA WHITE-Resume
KENYA WHITE-Resume
Kenya White
 

Destacado (20)

1 prog orientadaobjetos
1 prog orientadaobjetos1 prog orientadaobjetos
1 prog orientadaobjetos
 
Jornalizacion
JornalizacionJornalizacion
Jornalizacion
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
Normas iso
Normas isoNormas iso
Normas iso
 
Les nymphes de la période héllénique
Les nymphes de la période hélléniqueLes nymphes de la période héllénique
Les nymphes de la période héllénique
 
Morgane
MorganeMorgane
Morgane
 
white card
white cardwhite card
white card
 
Vasculities
VasculitiesVasculities
Vasculities
 
Lancelot du lac Fr. 1422
Lancelot du lac Fr. 1422Lancelot du lac Fr. 1422
Lancelot du lac Fr. 1422
 
Tristan de Léonois Fr. 114
Tristan de Léonois Fr. 114Tristan de Léonois Fr. 114
Tristan de Léonois Fr. 114
 
Histoire du Saint-Graal Fr. 9123
Histoire du Saint-Graal Fr. 9123Histoire du Saint-Graal Fr. 9123
Histoire du Saint-Graal Fr. 9123
 
Histoire du Saint-Graal fr. 110
Histoire du Saint-Graal fr. 110Histoire du Saint-Graal fr. 110
Histoire du Saint-Graal fr. 110
 
Number Types and Properties.pdf
Number Types and Properties.pdfNumber Types and Properties.pdf
Number Types and Properties.pdf
 
Les nymphes de la post-Antiquité
Les nymphes de la post-AntiquitéLes nymphes de la post-Antiquité
Les nymphes de la post-Antiquité
 
Tristan de Léonois Fr. 750
Tristan de Léonois Fr. 750Tristan de Léonois Fr. 750
Tristan de Léonois Fr. 750
 
KENYA WHITE-Resume
KENYA WHITE-ResumeKENYA WHITE-Resume
KENYA WHITE-Resume
 
Orientacion a Objetos para Dummies
Orientacion a  Objetos para DummiesOrientacion a  Objetos para Dummies
Orientacion a Objetos para Dummies
 
UCT - Photography 1
UCT - Photography 1UCT - Photography 1
UCT - Photography 1
 
Histoire de la belle Mélusine
Histoire de la belle MélusineHistoire de la belle Mélusine
Histoire de la belle Mélusine
 
Conceptos iso 9000 2005
Conceptos iso 9000 2005Conceptos iso 9000 2005
Conceptos iso 9000 2005
 

Similar a Programación

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
2008PA2Info3
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
winny_arias
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
Kurt_williams
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentes
Gary Araujo Viscarra
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo)
Maîck Ddz
 
programación orientada a aspectos español
programación orientada a aspectos  españolprogramación orientada a aspectos  español
programación orientada a aspectos español
El
 
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
Juan Morales
 
Proyecto De Tecnica De Programacioin I I
Proyecto De Tecnica De Programacioin  I IProyecto De Tecnica De Programacioin  I I
Proyecto De Tecnica De Programacioin I I
AmistadLealtad
 

Similar a Programación (20)

Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
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 estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Poovb
PoovbPoovb
Poovb
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentes
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo) Programacion Orientada a Objetos (poo)
Programacion Orientada a Objetos (poo)
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
programación orientada a aspectos español
programación orientada a aspectos  españolprogramación orientada a aspectos  español
programación orientada a aspectos español
 
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado Objetos
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Herrera poveda quilachamin_paper
Herrera poveda quilachamin_paperHerrera poveda quilachamin_paper
Herrera poveda quilachamin_paper
 
Progra
PrograProgra
Progra
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Proyecto De Tecnica De Programacioin I I
Proyecto De Tecnica De Programacioin  I IProyecto De Tecnica De Programacioin  I I
Proyecto De Tecnica De Programacioin I I
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 

Más de Tensor

Más de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Programación

  • 2. ¿Qué es POA? Nuevo paradigma de programación Enfoque estructurado: procedimientos o acciones Enfoque orientado a objetos: datos encapsulados en clases Existen funciones que son más difíciles de modularizar que otras, generando un problema conocido como código diseminado. La principal razón de que el código diseminado se presente es debida a las diferentes formas que un servicio este disponible y la forma en que este es usado. El código diseminado en una aplicación retrasa el desarrollo, mantenimiento y evolución de un programa.
  • 3. ¿Por qué POA? Existen conceptos que no pueden encapsularse dentro de una unidad funcional, debido a que atraviesan todo el sistema o varias partes de él, como lo son la sincronización, el manejo de memoria, el manejo de errores, perfiles, seguridad o redes
  • 4. Cronología Histórica Primera generación: código spaghetti Segunda y tercera generación: descomposición funcional Cuarta generación: descomposición en objetos Quinta generación: descomposición en aspectos
  • 5. El Desarrollo Orientado a Aspectos Requiere de tres elementos básicos: Un lenguaje para definir la funcionalidad b·sica, conocido como lenguaje base o componente. Podría ser un lenguaje como C#, C++, Java o Lisp. Uno o varios lenguajes de aspectos, para especificar el comportamiento de los aspectos. Como podrían ser COOL para sincronización o RIDL para distribución. Un tejedor de aspectos (aspect weaver) que produce una aplicación que integra las funcionalidades de las clases y los aspectos. Tal proceso se puede llevar acabo en tiempo de ejecución o en tiempo de compilación.
  • 6. Diferenciación En una primera impresión, la programación orientada a aspectos y la programación orientada a objetos pareciera que son en realidad el mismo paradigma, no obstante, esta noción es errónea. En la programación orientada a objetos los sistemas se modelan como un conjunto de objetos que interactúan entre sÌ, sin embargo, falla al modelar los conceptos que se entrecruzan. La diferencia radica en que mientras la programación orientada a aspectos se enfoca en los conceptos que se entrecruzan, la programación orientada a objetos se enfoca en los conceptos comunes. sigue ->
  • 8. ...hablemos mal de POA Posibles choques entre el código funcional (expresado en el lenguaje base) y el código de aspectos (expresados en los lenguajes de aspectos). Posibles choques entre el código de aspectos y los mecanismos del lenguaje, uno de los ejemplos más conocidos de este problema es la anomalía de herencia. Posibles choques entre los aspectos, un ejemplo clásico es tener dos aspectos que trabajan perfectamente por separado pero al aplicarlos conjuntamente resultan en un comportamiento anormal. Los lenguajes orientados a aspectos actuales no cuentan con mecanismos lingüísticos suficientemente poderosos para respetar por completo todos los principios de diseño, como por ejemplo, el encapsulamiento.
  • 9. Ventajas Permite una implementación modularizada reduciendo el acoplamiento entre sus partes. El código es más limpio, menos duplicado, más fácil de entender y de mantener. Elimina los problemas causados por el código mezclado y el código diseminado. Mayor reutilización, los aspectos tienen mayores probabilidades de ser reutilizados en otros sistemas con requerimientos similares. Los sistemas son más adaptables a cambios, la separación de conceptos permite agregar nuevos aspectos, modificarlos o removerlos fácilmente.
  • 10. Conclusiones La programación orientada a aspectos es un nuevo paradigma que adolece de madurez y formalidad, necesita ser desarrollada más exhaustivamente aun para consolidar sus conceptos. La programación orientada a aspectos es el comienzo de un nuevo paradigma, apenas se esta descubriendo su potencialidad, sus problemas, y sus posibles soluciones, lo que nos hace pensar que es una de las ramas con mayor futuro dentro de la ingeniería de software. Los lenguajes orientados a aspectos actuales, no cuentan con mecanismos lingüísticos suficientemente poderosos para respetar por completo todos los principios de diseño.