SlideShare una empresa de Scribd logo
6
Lo más leído
paradigmas




Programación
 Orientada a
  Aspectos
¿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

PPTX
Modelo vista controlador
PPT
Clase 3 Modelo Entidad Relacion
PDF
diferencias y semejansas p2p y cliente servidor gabriel caro
PPTX
Cisco packet tracer
DOCX
Bases de datos distribuidas heterogéneas
DOCX
Proyecto de Implementación de una Red
PDF
La organizacion como sistema
PPTX
Presentación "Internet de las cosas: la revolución IoT"
Modelo vista controlador
Clase 3 Modelo Entidad Relacion
diferencias y semejansas p2p y cliente servidor gabriel caro
Cisco packet tracer
Bases de datos distribuidas heterogéneas
Proyecto de Implementación de una Red
La organizacion como sistema
Presentación "Internet de las cosas: la revolución IoT"

La actualidad más candente (15)

DOCX
IMPLEMENTACION DE UNA BASE DE DATOS
PPTX
Importancia de uml y bpmn
PPTX
Aplicaciones prácticas de las arquitecturas orientadas al servicio
PPTX
TRANSACCIONES
PPTX
Interbloqueo sistemas operativos
PPTX
Caso práctico
PPTX
Metodologia de James A. Senn
PPTX
Modelo Entidad Relación
PPTX
CONEXIONES DE REDES
PPTX
Base de datos propiedades acid
PPT
Modelo Entidad Relación Extendido.
PPTX
Bases de datos jerarquicas
PDF
Tutorial-StarUML.pdf
PDF
Bucle for.pdf
PPTX
Arquitectura de redes
IMPLEMENTACION DE UNA BASE DE DATOS
Importancia de uml y bpmn
Aplicaciones prácticas de las arquitecturas orientadas al servicio
TRANSACCIONES
Interbloqueo sistemas operativos
Caso práctico
Metodologia de James A. Senn
Modelo Entidad Relación
CONEXIONES DE REDES
Base de datos propiedades acid
Modelo Entidad Relación Extendido.
Bases de datos jerarquicas
Tutorial-StarUML.pdf
Bucle for.pdf
Arquitectura de redes
Publicidad

Destacado (20)

DOCX
Retos del Egresado de Ingeniería Civil ante el paradigma de la sustentabilida...
PPTX
Logs y auditoría
PPTX
PARADIGMA IMPERATIVO
PPTX
Introducción a la Programación Orientada a Aspectos
PPT
Programacion Orientada a Aspectos
PDF
Desarrollo de Software Orientado a Aspectos
PPTX
Paradigma Orientado a Objetos
PPTX
Modelos de software ventajas y desventajas
PPTX
Sistemas informacion Com Doc
PPTX
Programacion Orientada a Eventos
PDF
Introduccion al paradigma de la programacion orientado a objetos original
PPT
Desarrollo de Software Orienta a Objetos
PDF
Paradigmas de programacion
PPTX
Desarrollo de software basado en componentes
DOCX
Modelos de desarrollo de software
PPTX
modelos del proceso del software
ODP
Curso Avanzado Seguridad Logs
PPT
Programación III (Java) - 05 Genericos y Colecciones - java6-7
PDF
Preguntas Swap Andrade Granda
DOCX
Qué es la swap
Retos del Egresado de Ingeniería Civil ante el paradigma de la sustentabilida...
Logs y auditoría
PARADIGMA IMPERATIVO
Introducción a la Programación Orientada a Aspectos
Programacion Orientada a Aspectos
Desarrollo de Software Orientado a Aspectos
Paradigma Orientado a Objetos
Modelos de software ventajas y desventajas
Sistemas informacion Com Doc
Programacion Orientada a Eventos
Introduccion al paradigma de la programacion orientado a objetos original
Desarrollo de Software Orienta a Objetos
Paradigmas de programacion
Desarrollo de software basado en componentes
Modelos de desarrollo de software
modelos del proceso del software
Curso Avanzado Seguridad Logs
Programación III (Java) - 05 Genericos y Colecciones - java6-7
Preguntas Swap Andrade Granda
Qué es la swap
Publicidad

Similar a Programación Orientada a Aspectos (POA) (20)

PDF
Programación
PPTX
Técnicas de programación
PPTX
DOCX
Tabla comparativa
PPT
Programación rientada a Aspectos - David Burbano
DOCX
Programación estructurada
DOCX
Programacin estructurada
DOCX
PDF
Programacion Orientada a Objetos (poo)
PPTX
Programacion para principiantes niño.pptx
DOCX
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
PDF
Tema1 desarrollo de software basado en componentes
PDF
Desarrollo de software basado en componentes
PDF
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
PDF
programación orientada a aspectos español
 
PPT
Fundamentos de programacion
PPS
Analisis Y DiseñO Orientado Objetos
PPT
Programación Orientada a Aspectos - Fernando Córdoba
DOCX
Programación modular
Programación
Técnicas de programación
Tabla comparativa
Programación rientada a Aspectos - David Burbano
Programación estructurada
Programacin estructurada
Programacion Orientada a Objetos (poo)
Programacion para principiantes niño.pptx
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tema1 desarrollo de software basado en componentes
Desarrollo de software basado en componentes
1.1. conceptualizacion de_tecnologia_orientada_a_objetos_y_programacion_tradi...
programación orientada a aspectos español
 
Fundamentos de programacion
Analisis Y DiseñO Orientado Objetos
Programación Orientada a Aspectos - Fernando Córdoba
Programación modular

Más de Walter Javier Franck (8)

PDF
Sintesis lean
PDF
Clusters de Desarrollo
PDF
Estándares de Desarrollo de Software
PDF
Listening Clock
PDF
Wfranck listening trends
PDF
Wfranck tags tube
PDF
11559081 moody
PDF
Charlas abiertaspythonlatribu2010
Sintesis lean
Clusters de Desarrollo
Estándares de Desarrollo de Software
Listening Clock
Wfranck listening trends
Wfranck tags tube
11559081 moody
Charlas abiertaspythonlatribu2010

Último (20)

PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
clase auditoria informatica 2025.........
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
taller de informática - LEY DE OHM
PDF
Maste clas de estructura metálica y arquitectura
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPT
Que son las redes de computadores y sus partes
Plantilla para Diseño de Narrativas Transmedia.pdf
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Influencia-del-uso-de-redes-sociales.pdf
clase auditoria informatica 2025.........
Calidad desde el Docente y la mejora continua .pdf
historia_web de la creacion de un navegador_presentacion.pptx
introduccion a las_web en el 2025_mejoras.ppt
SAP Transportation Management para LSP, TM140 Col18
Propuesta BKP servidores con Acronis1.pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Diapositiva proyecto de vida, materia catedra
Presentación de Redes de Datos modelo osi
Sesion 1 de microsoft power point - Clase 1
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
taller de informática - LEY DE OHM
Maste clas de estructura metálica y arquitectura
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Que son las redes de computadores y sus partes

Programación Orientada a Aspectos (POA)

  • 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.