Introducción a la programación orientada a aspectos.

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
Fundamentos de Diseño de Software INFT.1
Enfoques de desarrollo
Sistema operativo Componentes de un sistema operativo
PROGRAMACION ORIENTADA A OBJETOS
Metodologías orientadas a objetos
‘‘ERP’’ Enterprice Resourse Planning .
INSTITUTO TECNOLOGICO DE MINATITLAN
Programación Orientada a Objetos (P.O.O.)
Tipos de Datos Abstractos Modularidad
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Programación Orientada a Objetos Encapsulamiento.
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Ingeniería del Software
Fundamentos de Programación
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
VHDL.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Diseño del Software Diseño de datos Diseño arquitectónico
Mediator (Mediador) Trabajo realizado por: Guillermo Palacios Pelayo
Ingeniería de Software
Viviana Poblete López Módulo: Modelo de Datos

Programación Orientada a Aspectos (POA)
Ingeniería de Software Orientado a Objetos
Fundamentos de Programación
Bases de Datos Orientadas a Objetos (BDOO)
Unidad VI Documentación
Metodologías Orientadas a Objetos Maestría de Ingeniería Telemática Universidad del Azuay Sesión 2.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
INGENIERÍA DE SOFTWARE
FRAMEWORK VS Código fuente
Tema 1: Introducción a la Ingeniería de Software
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Desarrollo de Software Orientado a Objetos (deficiencias)
Programación Orientada a Objetos (P.O.O.)
PROGRAMACION ORIENTADA A OBJETOS
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
I.- Introducción a los sistemas de información
Diseño de Sistemas.
Introducción a UML Departamento de Informática Universidad de Rancagua
1.4 CLASIFICACION DE LA TECNOLOGIA EN EL DESARROLLO DEL SOFTWARE
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
TIPOS DE PRUEBAS DEL SOFTWARE
Jairo Pinto Ing. sistemas
Programación orientada a objetos
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
FUNDAMENTOS DE PROGRAMACION
Tecnicas del Mantenimiento del Software
Preocupaciones del Analista Programador & Usuarios
Carolina Rangel Felipe Montaño Alexis García
INGENIERIA DE SOFTWARE
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
SISTEMAS DE INFORMACION GEOGRAFICA (SIG) Néstor Acosta Rodríguez Código: 7137.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

Introducción a la programación orientada a aspectos. Universidad del Azuay Maestría en Telemática Sesión 3

Desventajas: Unidades de descomposición no tratan aspectos como: No se considera gestión de memoria Coordinación Distribución Ejecución en tiempo real.

Desventajas: Sincronización Distribución Manejo de errores Optimización de memoria Gestión de la seguridad

Consecuencia: Nos encontramos con problemas de programación en los cuales ni las técnicas funcionales, ni las orientadas a objeto son suficientes para capturar todas las decisiones de diseño que el programa debe implementar.

Consecuencias: Las técnicas tradicionales no soportan bien la separación de competencias para aspectos distintos de la funcionalidad básica de un sistema, y esta situación claramente tiene un impacto negativo en la calidad del software.

P.O.A. La programación orientada a aspectos (POA) es una nueva metodología de programación que aspira a soportar la separación de competencias para los aspectos antes mencionados. Intenta separar los componentes y los aspectos unos de otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos para formar todo el sistema.

P.O.A. (2) Lo que se persigue es implementar una aplicación de forma eficiente y fácil de entender. POA es un desarrollo que sigue al paradigma de la orientación a objetos, soporta la descomposición orientada a objetos, además de la procedimental y la descomposición funcional. A pesar de esto, POA no se puede considerar como una extensión de la POO, ya que puede utilizarse con los diferentes estilos de programación antes mencionados.

P.O.A.(3) El estado actual de la investigación en POA es análogo al que había hace veinte años en la programación orientada a objetos.

Historia 1991. Equipo Demeter. Programación adaptativa. C ristina Lopes propuso sincronización e invocación remota como nuevos bloques. 1995. Equipo Demeter introduce el término. P.O.A. presentado por Gregor Kiczales y su grupo & Cristina Lopes.

Objetivos: Separar conceptos: Minimizar las dependencias entre ellos: cada decisión se tome en un lugar concreto. Minimizar las dependencias entre ellos: pérdida del acoplamiento entre los distintos elementos.

Ventajas de la P.O.A. Un código menos enmarañado, más natural y más reducido. Una mayor facilidad para razonar sobre las materias, ya que están separadas y tienen una dependencia mínima. Más facilidad para depurar y hacer modificaciones en el código. Se consigue que un conjunto grande de modificaciones en la definición de una materia tenga un impacto mínimo en las otras. Se tiene un código más reutilizable y que se puede acoplar y desacoplar cuando sea necesario.

¿Qué es un aspecto? 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).

¿Qué es un aspecto? De manera más informal podemos decir que los aspectos son la unidad básica de la POA, y pueden definirse como las partes de una aplicación que describen las cuestiones claves relacionadas con la semántica esencial o el rendimiento. También pueden verse como los elementos que se diseminan por todo el código y que son difíciles de describir localmente con respecto a otros componentes.

Diferencia entre componente y aspecto Se puede diferenciar entre un componente y un aspecto viendo al primero como aquella propiedad que se puede encapsular claramente en un procedimiento, mientras que un aspecto no se puede encapsular en un procedimiento con los lenguajes tradicionales.

Justificación Las técnicas orientadas a objetos y las técnicas procedimentales de programación no son suficientes para capturar con claridad importantes desiciones de diseño que debe implementar el programa.

Justificación Las decisiones que difícilmente son capturadas por las OOP y POP se denominan aspectos. La técnica de P.O.A. Permite especificar claramente aspectos tales como asilamiento, composición y reutilización del código.

Fundamentos El proceso del diseño del software: Dividir un sistema en partes pequeñas. Los lenguajes permiten definir abstracciones de las subunidades del sistema. La composición de abstracción permite construir el sistema en su totalidad. La abstracción y composición debe soportar con claridad las unidades de diseño del sistema.

Fundamentos Lenguajes procedimentales generales (GP). Descomposición Funcional: Dividen el sistema en unidades de comportamiento o función. Muchas de estas funciones pueden no ser del todo funcionales.

Programación Orientada a Aspectos Se evalúan tres implementaciones: Fácil de entender pero ineficiente Eficiente pero difícil de entender POA: fácil y eficiente. Procesamiento de imágenes en blanco y negro.

Procesamiento de imágenes en blanco y negro. Imágenes pasan por filtros para producir una salida. Fácil de desarrollar y mantener Uso eficiente de memoria Formal: para ampliar libre de errores en el programa. Eficiente: optimizar almacenamiento de memoria y direccionamiento.

Bibliografía Antonia Mª Reina Quintero, Visión General de la Programación Orientada a Aspectos. Departamento de Lenguajes y Sistemas Informáticos. Facultad de Informática y Estadística Universidad de Sevilla. (2000).