Programación Orientada A Aspectos:POA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación Orientada A Aspectos:POA"

Transcripción

1 Programación Orientada A Aspectos:POA Ejemplos con AspectJ con eclipse Carlos A. Escobar González. [email protected]

2 CONTENIDO Introducción. Programación orientada a aspectos (POA). Conceptos básicos Lenguajes de Aspectos AspectJ

3 INTRODUCCIÓN Técnicas de programación imperativa Código donde no existía separación de conceptos, datos y funcionalidad se mezclaban sin una línea divisoria clara. Funciones y datos entremezclados. Etapa código spaghetti Software= Datos(formas) + Funciones(colores)

4 INTRODUCCIÓN Programación Funcional Luego se aplicó la llamada descomposición funcional, divide y vencerás, identificando partes como funciones que definen en el dominio del problema. Ventaja: fácil integrar funciones. Desventajas: datos compartidos, y datos esparcidos por todo el código. Software= Datos(formas) + Funciones(colores)

5 INTRODUCCIÓN Programación OO Principio de descomposición, se ajusta mejor a problemas del dominio real. Ventaja: fácil integrar nuevos datos. Desventajas: Funciones esparcidas por todo el código. Software= Datos(formas) + Funciones(colores)

6 INTRODUCCIÓN Separación de Incumbencias(separation of concerns) Incumbencias: diferentes temas, asuntos o aspectos de los que es necesario ocuparse para resolver un problema determinado. Ejemplos: La función específica de la aplicación, persistencia, distribución, replicación, sincronización, logging, autenticación, seguridad, entre otros. Objetivo: calidad de Software (adaptabilidad, fácil mantenimiento, reusabilidad y extensibilidad)

7 INTRODUCCIÓN Incumbencias Transversales(crosscuting concerns) Conceptos diseminados en el código atravesando partes del sistema no relacionados en el modelo. Ejemplos: Logging o registro de la actividad de una aplicación, acceso a base de datos, temas relacionados con la seguridad, concurrencia, etc.

8 INTRODUCCIÓN Logging en apache tomcat(no es modular) Líneas rojas: código que maneja Logging No está en un solo lugar No siempre en número pequeño de lugares

9 INTRODUCCIÓN Problemas de Diseño código disperso (scattered code) Un mismo servicio es invocado de manera similar desde muchas partes del programa código enmarañado (tangled code). Una misma operación tiene que acceder a varios servicios (logging, locking, transporte, presentación, autenticación, seguridad, etc), además de cumplir con su función específica.

10 INTRODUCCIÓN Una Solución POA. Código disperso y enredado Aspectos

11 PROGRAMACIÓN ORIENTADA A ASPECTOS Programación Orientada a Aspectos (POA) es un paradigma cuya intención es permitir una adecuada modularización de las aplicaciones, posibilitando mejor separación de incumbencias. Separa componentes de aspectos creando un mecanismo para abstraerlos y componerlos para formar todo el sistema. AOP, Aspect-Oriented Programming o AOSD, por Aspect-Oriented Software Development Introducido por colaboración de: Cristina Lopes y Karl J. Lieberherr con Gregor Kiczales y su grupo

12 PROGRAMACIÓN ORIENTADA A ASPECTOS Un componente es aquella propiedad que se puede encapsular claramente en un procedimiento(un objeto, un método, un API), mientras que un aspecto no se puede encapsular en un procedimiento con los lenguajes tradicionales. Descomposición en Aspectos Software= Datos(formas) + Funciones(colores)

13 PROGRAMACIÓN ORIENTADA A ASPECTOS ASPECTO: Cada funcionalidad común se encapsulará en una entidad (Aspecto). Unidad modular del programa que aparece en otras unidades funcionales del programa (G. Kiczales). Una incumbencia transversal modularizada. Los aspectos son propiedades que afectan al rendimiento o la semántica de los componentes. Ejemplos: los patrones de acceso a memoria, la sincronización de procesos concurrentes, el manejo de errores, etc.

14 PROGRAMACIÓN ORIENTADA A ASPECTOS Fundamentos de la POA Un lenguaje para definir la funcionalidad básica, conocido como lenguaje base. El mismo puede ser un lenguaje imperativo, o no. Por ejemplo C++, Java, PHP, Python, Perl, etc. Uno o varios lenguajes de aspectos, para especificar el comportamiento de los distintos aspectos. Algunos ejemplos son AspectJ, AspectC, phpaspect, Aspyct, Aspect, Cool, RIDL, etc. Un tejedor de aspectos, del inglés weaver, que se encarga de combinar los lenguajes (componentes y aspectos) en tiempo de ejecución o de compilación.

15 PROGRAMACIÓN ORIENTADA A ASPECTOS Estructura de un Programa Orientado a Aspectos

16 PROGRAMACIÓN ORIENTADA A ASPECTOS Programa Lenguaje Programa de componentes Programa de aspectos Programa de aspectos Lenguaje Lenguaje Lenguaje base de aspectos de aspectos Compilador/Intérprete Tejedor (Weaver) Ejecutable Ejecutable Estructura tradicional Estructura con aspectos

17 PROGRAMACIÓN ORIENTADA A ASPECTOS Programa Base TEJEDOR Sistema Final aspectos

18 PROGRAMACIÓN ORIENTADA A ASPECTOS class Framew orks sistema base Sistema aspectual «merge» «flow» BD

19 PROGRAMACIÓN ORIENTADA A ASPECTOS Conceptos básicos Aspect (aspecto) es la funcionalidad que se cruza a lo largo de la aplicación y que se va a implementar de forma modular y separada del resto del sistema. Joint point (punto de enlace) es el punto de ejecución dentro del sistema donde un aspecto puede ser conectado. Puede ser una llamada a un método, el lanzamiento de una excepción o la modificación de un campo. Pointcut (punto de corte) define los Advice (consejos) que se aplicarán a cada punto de enlace.

20 PROGRAMACIÓN ORIENTADA A ASPECTOS Conceptos básicos Advice (consejo) es la implementación del aspecto. Introducciones (introduction) permiten cambiar la estructura de clases de un programa agregando o extendiendo interfaces y clases con nuevos atributos, constructores o métodos

21 LENGUAJES DE ASPECTOS Lenguajes de aspectos de dominio específico: soportan uno o más de los aspectos mencionados en secciones anteriores (distribución, coordinación, manejo de errores, etc), pero no pueden soportar otros aspectos distintos de aquellos para los que fueron diseñados. Restringen el lenguaje base. Ejemplo: COOL (aspectos de sincronización) y RIDL (aspectos de distribución) define qué datos y cómo éstos son enviados en invocaciones de métodos entre distintos ambientes de ejecución

22 LENGUAJES DE ASPECTOS Lenguajes de aspectos de dominio general: diseñados 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. Ejemplo: AspectJ que utiliza Java como Base. Aspect ( Perl phpaspect ( Php Aspyct AOP ( Python SpringFramework 2.5 ( AspectC, AspectC++, AspectS de Squeak/Smalltalk

23 PROGRAMACIÓN ORIENTADA A ASPECTOS Ventajas: Código menos enmarañado, más natural y más reducido. Mayor facilidad para razonar sobre los conceptos, ya que están separados y tienen una dependencia mínima. Facilidad en depurar y modificar el código. Modificaciones grandes en la definición de una materia tenga un impacto mínimo en las otras. Código más reusable y que se puede acoplar y desacoplar cuando sea necesario.

24 PROGRAMACIÓN ORIENTADA A ASPECTOS Desventajas: El diseño de los puntos de enlace entre los aspectos es más complejo. Se debe tener en cuenta el análisis de nuevas características dentro del desarrollo de sistemas. Surgen nuevos problemas de choque entre el lenguaje base y el lenguaje funcional. Pueden existir problemas de herencia de un aspecto a otro.

25 ASPECTJ (I) AspectJ es una extensión orientada a aspectos de Java que permite el diseño modular de incumbencias transversales. El proyecto AspectJ Development Tools desarrollado por Eclipse ofrece una herramienta basada en el apoyo a DSOA con AspectJ: AJDT.

26 aspect MyCrosscuttingConcern{ } //Attributes //Methods //Poincuts //Advices ANATOMÍA DE UN ASPECTO

27 JOINPOINTS (I) Los puntos de unión son puntos en la ejecución de un programa. Es importante recalcar que los puntos de unión no son posiciones en el código fuente (ni dentro de una instrucción, ni entre instrucciones), sino en la ejecución del programa Método de ejecución Método de llamado Construcción de objetos

28 JOINPOINTS (II) Método de ejecución El joinpoint por método de ejecución identifica ciertas ejecuciones de métodos en el programa. La firma es la siguiente: execution(method_modifiers ClassName.MethodName(ParametersNumber))

29 JOINPOINTS (III) Método de llamado El joinpoint por método de llamado identifica ciertos llamados de métodos en el programa. La diferencia con el joinpoint por método de ejecución es el contexto: este joinpoint accede al contexto del llamado y no mira el contexto de ejecución La firma es la siguiente: call(method_modifiers ClassName.MethodName(ParametersNumber))

30 JOINPOINTS (IV) Joinpoint de construcción Este joinpoint identifica las construcciones de objetos en el programa. La firma puede ser como sigue: call(new(classname (ParametersNumber))) execution(new(classname (ParametersNumber)))

31 POINTCUTS (I) Basados en la enumeración explícita de un conjunto de firmas de métodos. Por ejemplo: call(void MiClase.metodoX(int)) Elige cada punto de enlace que es un llamado (call) al método con la firma void MiClase.metodoX(int)- es decir, el método void metodox de MiClase con un único parámetroint.

32 POINTCUTS (II) Un pointcut puede componerse de otros pointcuts con and, or, y not (&&,, y!). Por ejemplo: call(void MiClase.metodoX(int)) Call(void MiClase.metodoY(int)) Elige cada punto de unión que es un llamado al método metodox(int)o al método metodoy de MiClase con un único parámetro int.

33 POINTCUTS (III) Los pointcuts pueden identificar los puntos de enlace de muchos tipos diferentes. Por ejemplo: call(void MiClase.metodoX(int)) call(void MiClase.metodoY(int)) call(void MiOtraClase.metodoXY(int,int)) call(void TuClase.metodoZ(MiClase)) call(void TuClase.metodoW(MiClase)); selecciona cada punto de enlace que es una llamada a uno de los cinco métodos.

34 POINTCUTS (IV) En el ejemplo el pointcut mi_pointcut captura todos los puntos de enlace. pointcut mi_pointcut(): call(void MiClase.metodoX(int)) call(void MiClase.metodoY(int)) call(void MiOtraClase.metodoXY(int,int)) call(void TuClase.metodoZ(MiClase)) call(void TuClase.metodoW(MiClase));

35 POINTCUTS (V) Property-based crosscutting AspectJ también proporciona mecanismos que permiten especificar un pointcut en términos de propiedades de métodos distintos de su nombre exacto; usando un comodín (*) en ciertos campos del nombre del método.

36 POINTCUTS (VI) Por ejemplo: call(void MiClase.metodo*(..)) Selecciona cada punto de unión que es un llamado a un método sin valor de retorno definido en MiClase cuyo nombre inicia con "metodo" sin importar los parámetros del método. Implica el llamado de los métodosmetodox ymetodoy

37 ADVICE (I) Para implementar efectivamente el comportamiento transversal, usamos advice. Es el comportamiento adicional que se añade a la estructura de ejecución; permite definir qué hacer, es un mecanismo similar a un método de una clase. Reúne un pointcut (para elegir puntos de enlace) y un cuerpo de código (para que se ejecute en cada uno de los puntos de enlace).

38 ADVICE (II) Before advice Se ejecuta antes de que se alcance un punto de enlace; before(): mi_pointcut() { // cuerpo adicional }

39 ADVICE (III) After advice en un punto de enlace particular se ejecuta después de que el programa proceda con ese punto de enlace. after(): mi_pointcut() { } // cuerpo adicional

40 package ejemplo; public class HW { private String mensaje; public HW() { this.mensaje = Hello World ; } public void setmensaje(string M) { this.mensaje = M; } public String getmensaje() { return this.mensaje; } public void showmensaje() { System.out.println(this.mensaje); } } EJEMPLO public class HelloWorld { public static void main(string[] args) { HW H; H= new HW(); H.showMensaje(); } } public aspect Aspecto { pointcut mensajesaimprimir() : call (void HW.showMensaje()); before(): mensajesaimprimir() { System.out.println( Hola a todos"); } after(): mensajesaimprimir() {System.out.println( Chao a todos"); } }

41 JAVA BASE EJEMPLO

42 COOL

43 ASPECTJ EJEMPLO

44 Conclusión Se trata de permitir que los programadores escriban programas que, en todo lo que sea posible, se parezcan a su diseño Gregor Kiczales

45 RECURSOS +Info sobre POA: Eclipse: AJDT:

46 APLAUSOS G R A C I A S

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar

Más detalles

AOD: Una Introducción. (clase 19) Ingeniería de Software II

AOD: Una Introducción. (clase 19) Ingeniería de Software II AOD: Una Introducción (clase 19) Ingeniería de Software II Agenda Un poco de historia El problema de la separación de concerns Propuesta de AOP Aspectos de AOD Qué significa hacer AOD hoy? Anatomía de

Más detalles

PROGRAMACIÓN ORIENTADA A ASPECTOS

PROGRAMACIÓN ORIENTADA A ASPECTOS PROGRAMACIÓN ORIENTADA A ASPECTOS SÉPTIMO CICLO INFORMÁTICA Universidad Técnica Particular de Loja Resumen 1. INTRODUCCIÓN La programación orientada a aspectos pretende dar solución a las tareas o eventos

Más detalles

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad

Más detalles

Facultad de Informática de la Universidad de Murcia PROYECTO INFORMÁTICO. Programación Orientada a Aspectos Una experiencia práctica con AspectJ

Facultad de Informática de la Universidad de Murcia PROYECTO INFORMÁTICO. Programación Orientada a Aspectos Una experiencia práctica con AspectJ Facultad de Informática de la Universidad de Murcia PROYECTO INFORMÁTICO Programación Orientada a Aspectos Una experiencia práctica con AspectJ Alumno Salvador Manzanares Guillén [email protected] Director

Más detalles

Spring AOP Versión 2.x

Spring AOP Versión 2.x Spring AOP Versión 2.x 4 de Abril de 2008 1 SPRING FRAMEWORK 2.X Spring -AOP 2 SPRING FRAMEWORK 2.X 3 SPRING FRAMEWORK 2.X Croscutting Concern Introducción AOP Con programación orientada a objetos las

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Comparación entre las Herramientas Aspect J y Javassist para Programación Orientada a Aspectos

Comparación entre las Herramientas Aspect J y Javassist para Programación Orientada a Aspectos Comparación entre las Herramientas Aspect J y Javassist para Programación Orientada a Aspectos Javier Bustos Jiménez Departamento de Ciencias de la Computación (DCC) Universidad de Chile. [email protected]

Más detalles

Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales.

Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales. Qué es SGBD? Es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión

Más detalles

Modulo 11. Clases y Objetos en Java

Modulo 11. Clases y Objetos en Java El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4 Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..

Más detalles

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN

Más detalles

Utilización de programación orientada a aspectos en aplicaciones enterprise

Utilización de programación orientada a aspectos en aplicaciones enterprise Universidad de Buenos Aires - Facultad de Ingeniería Propuesta de tesis de grado en Ingeniería en Informática Utilización de programación orientada a aspectos en aplicaciones enterprise Alumno: Nicolás

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

Más detalles

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas ADyA Hay para todos los gustos Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Híbridos (Lisp, Visual

Más detalles

Derechos de Acceso: COMPOSICION

Derechos de Acceso: COMPOSICION CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:

Más detalles

Programación Orientada a Aspectos

Programación Orientada a Aspectos Programación Orientada a Aspectos La definición de "Programación Orientada a Aspectos" (AOP) es similar a cualquier otra que se pueda leer acerca de una nueva tecnología que pretenda solventar los problemas

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el

Más detalles

Bases de datos 1. Teórico: Introducción

Bases de datos 1. Teórico: Introducción Bases de datos 1 Teórico: Introducción Conceptos generales Base de Datos: Es un conjunto de datos relacionados Representa algún aspecto del mundo real Es construida para un propósito específico Database

Más detalles

ARQUITECTURAS DE SOFTWARE

ARQUITECTURAS DE SOFTWARE ARQUITECTURAS DE SOFTWARE 1. DEFINICIÓN: La arquitectura de software de un programa o de un sistema computacional está definida por la estructura, comprendida por los elementos de software, las propiedades

Más detalles

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 24 Veracruz, Ver. Creación de un objeto Una

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles

20483 Programación en C#

20483 Programación en C# 20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo Tutorial Contenido 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo 1. El proceso Fases soportadas por UML Análisis de requisitos de usuario Análisis de requisitos de software Diseño de la plataforma

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables

Más detalles

Lenguaje de Programación

Lenguaje de Programación Introducción a C/C++() UG Introducción a C/C++() Universidad de Guanajuato Sesión 18 Introducción a C/C++() Qué es un? Un entorno de desarrollo integrado o (acrónimo en inglés de integrated development

Más detalles

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

INTRODUCCION A LA PROGRAMACION EN JAVA

INTRODUCCION A LA PROGRAMACION EN JAVA Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Java 1 y 2 Diferencias entre Java1 y Java2 Mejoras en las interficies gráficas (Swing) Amplias mejoras en las librerías

Más detalles

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.

Más detalles

ESET Secure Authentication

ESET Secure Authentication ESET Secure Authentication Comparativa de API frente a SDK Versión del documento 1.0 ESET Secure Authentication 2 Resumen ESET Secure Authentication proporciona una compatibilidad de fábrica para distintas

Más detalles

Arquitectura de Manejadores de Base de Datos

Arquitectura de Manejadores de Base de Datos Arquitectura de Manejadores de Base de Datos Bases de Datos 2 - Tecnologo de Informatica Outline 1 Arquitectura de DBMS Modelos de Datos Arquitectura en 3 niveles e Independencia de datos Lenguajes e Interfaces

Más detalles

Capítulos 2 y 5: Modelación con UML y Modelo Objeto

Capítulos 2 y 5: Modelación con UML y Modelo Objeto Capítulos 2 y 5: Modelación con UML y Modelo Objeto Agenda Recordar: Modelo de Sistema: modelo objeto + modelo funcional + modelo dinámico Ultima Clase: Modelo Objeto Definir el concepto de Modelo de Clases

Más detalles

Programación orientada a objetos en PHP. Lic. Nancy Michelle Torres Villanueva

Programación orientada a objetos en PHP. Lic. Nancy Michelle Torres Villanueva Programación orientada a objetos en PHP 1 POO Modelo de programación que basa su esquema de pensamiento, análisis y diseño en interacciones entre objetos. Cada objeto tiene un comportamiento definido y

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?

Más detalles

Desarrollo Software Gran Escala

Desarrollo Software Gran Escala Desarrollo Software Gran Escala Herramientas de Desarrollo (Parte 3: Generadores y Constructores) Diferentes tipos de herramientas Controladores de versión Ambientes de desarrollo Pruebas y Depuración

Más detalles

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

Prueba N o 1. Programación II

Prueba N o 1. Programación II UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.

Más detalles

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1 RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1 ANTES QUE NADA DEFINIR QUE ES UNA BASE DE DATOS: Una base de datos es una colección estructurada de datos, Un sistema de base de datos es una colección de

Más detalles

Fundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software

Fundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software República Bolivariana de Venezuela Ministerio de Educación Superior Fundación Misión Sucre Aldea Fray Pedro de Agreda Fundamentos Programación Orientada a Objetos ( POO ) - Parte I 1 Contenido Qué es

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A. SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:

Más detalles

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general

Más detalles

Construcciones del Lenguaje Java

Construcciones del Lenguaje Java Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.

Más detalles

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases

Más detalles

Guía práctica de estudio 04: Clases y objetos

Guía práctica de estudio 04: Clases y objetos Guía práctica de estudio 04: Clases y objetos Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 04: Clases y

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona

Más detalles

Ejercicio 2 Hola Mundo con Spring Framework Curso de Spring Framework

Ejercicio 2 Hola Mundo con Spring Framework Curso de Spring Framework www.globalmentoring.com.mx Curso de Spring Framework Ejercicio 2 Hola Mundo con Spring Framework Objetivo del Ejercicio El objetivo del ejercicio es configurar un proyecto HolaMundo con Spring Framework.

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Agenda..NET C# Laboratorio #1

Agenda..NET C# Laboratorio #1 PROGRAMACIÓN III Agenda.NET C# Laboratorio #1 .NET Qué es.net? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier

Más detalles

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra [email protected] Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia

Más detalles

1

1 Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus

Más detalles

Definición. Mónica E. García García Feb 07

Definición. Mónica E. García García Feb 07 Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere

Más detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época

Más detalles

Cuales son los 6 lenguajes de programacion mas usados actualmente. Cuales son los 6 lenguajes de programación mas usados actualmente.

Cuales son los 6 lenguajes de programacion mas usados actualmente. Cuales son los 6 lenguajes de programación mas usados actualmente. Cuales son los 6 lenguajes de programacion mas usados actualmente Cuales son los 6 lenguajes de programación mas usados actualmente. Java Es un lenguaje de programación con el cual podemos realizar cualquier

Más detalles

Utilización de programación orientada a aspectos en aplicaciones enterprise

Utilización de programación orientada a aspectos en aplicaciones enterprise Tesis de grado en Ingeniería en Informática Utilización de programación orientada a aspectos en aplicaciones enterprise Tesista: Nicolás Martín Paez Directora: Lic. Rosita Wachenchauzer Fecha: Noviembre

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Elementos Diagramas de Clases Clase:

Elementos Diagramas de Clases Clase: Diagramas de Clases Un diagrama de clases o estructura estática muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos.

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

Programación y Algoritmia

Programación y Algoritmia Programación y Algoritmia Un enfoque práctico y didáctico para el diseño de algoritmos 3 Acciones y Funciones Lic. Oscar Ricardo Bruno, MDU Contenido Acciones y Funciones 3 Introducción 3 Modularizacion

Más detalles

Tema 7: Polimorfismo. Índice

Tema 7: Polimorfismo. Índice Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia

Más detalles

Tutorial básico del entorno de desarrollo Eclipse.

Tutorial básico del entorno de desarrollo Eclipse. Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente

Más detalles

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies. Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo

Más detalles

Unidad I. Introducción al Lenguaje Java. Ing. José Luis Llamas Cárdenas

Unidad I. Introducción al Lenguaje Java. Ing. José Luis Llamas Cárdenas Unidad I Introducción al Lenguaje Java Ing. José Luis Llamas Cárdenas 1.1 Conceptos de POO Objeto o Informalmente, un objeto representa una entidad del mundo real o Entidades Físicas (Ej.: Vehículo, Casa,

Más detalles

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional Programming Language Popularity: The TCP Index for December, 2012 La noción de clase en C++ C++ fue

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Programación con Visual C#

Programación con Visual C# Programación con Visual C# Duración: 40.00 horas Descripción Visual C# es uno de los lenguajes de programación desarrollados por Microsoft, basado en la programación orientada a objetos. Es imprescindible

Más detalles

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto ! Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 2004 Veracruz, Ver. Relación entre clases

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos Cristina Cachero Castro Pedro J. Ponce de León Amador Estela Saquete Boró Departamento de lenguajes y sistemas informáticos Universidad de Alicante Índice

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

Especificación de Uso. Servicios Web Externos API Servicio Licencias Ed. Superior V-0.1

Especificación de Uso. Servicios Web Externos API Servicio Licencias Ed. Superior V-0.1 Especificación de Uso Servicios Web Externos API Servicio Licencias Ed. Superior V-0.1 Coordinación Nacional de Tecnología Información e Innovación Ministerio de Educación de Chile Fecha: 27/Octubre/2011

Más detalles

Estructuras de Datos Clase 1 - Introducción

Estructuras de Datos Clase 1 - Introducción Estructuras de Datos Clase 1 - Introducción Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Trivia

Más detalles

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para

Más detalles

Estructura de un programa en Java

Estructura de un programa en Java 1 Estructura de un programa en Java Clases y Objetos Como lo hemos mencionado anteriormente Java es un programa orientado a objetos, lo cual quiere decir que se compone solamente de objetos. Un objeto

Más detalles

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos) Clases y Objetos Las clases están compuestas por un conjunto de miembros (datos y funciones) también se conocen como (atributos y métodos) Una clase se usa como el modelo que deben seguir los objetos Un

Más detalles

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc. Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. [email protected] DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado

Más detalles

Pruebas de escritorio

Pruebas de escritorio Pruebas de escritorio Es un proceso que consiste en hacer seguimiento a un algoritmo recorriendo sus líneas simulando el funcionamiento del procesador del computador. Ejemplo: Realizar un algoritmo que

Más detalles

Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta

Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta Sandra Casas y Cecilia Fuentes Zamorano UARG, Universidad Nacional de la Patagonia Austral Campus Universitario, Piloto Riversa s/n

Más detalles

Nombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta)

Nombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta) Nombres, Ligaduras, Chequeo de Tipos y Alcance Luis Garreta [email protected] (Basados en el libro de Robert Sebesta) 1 Nombres, Ligaduras, Chequeo de Tipos y Alcance Nombres Variables El concepto

Más detalles

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático Andrés Pastorini TRIA Tecnólogo Informático Un servicio web expone un conjunto de servicios para ser consumidos a través de la red. En otras palabras, un servicio web especifica un conjunto de operación(funciones

Más detalles

Programación páginas web con PHP

Programación páginas web con PHP Programación páginas web con PHP Duración: 65 horas Objetivos: Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte

Más detalles