Programación Orientada a Objetos Desarrollo de software orientado a objetos
|
|
- María Victoria Ortega Cruz
- hace 7 años
- Vistas:
Transcripción
1 Desarrollo de software orientado a objetos Definición Método de desarrollo de software que basa la arquitectura del sistema en módulos deducidos de los tipos de objetos que se manipulan, en lugar de basarse en la función o funciones a las que el sistema está destinado a asegurar. No preguntes primero qué hace el sistema, pregunta A QUIÉN LO HACE!! IAGP Orígenes El tiempo transcurrido entre el desarrollo convencional del software y el desarrollo orientado a objetos, no se solapa. Hay más de 25 años, surgió con el lenguaje Simula, en Noruega, aunque comercialmente se ha difundido recientemente. Simula es acrónimo de simulación lenguaje y fue creado para soportar simulaciones, por O. J. Dahl ykristen Nygaard. Su propósito fue la simulación de sistemas físicos complejos con muchos cientos de componentes. En Simula los módulos no se basan en procedimientos como en la programación convencional, sino en los objetos físicos que se modelan en la simulación. IAGP 2 1
2 Los objetos del mundo real pueden exhibir una variedad infinita de efectos sobre otros, creando, destruyendo, levantando, uniendo, comprando, doblándose, enviando, etc. Esta gran variedad suscita un problema: Cómo se pueden representar en software las diversas clases de interacciones? Los autores de Simula lograron una solución elegante a este problema: el mensaje. Los objetos interaccionan el uno con el otro con mensajes que piden que los objetos realicen sus métodos. Un mensaje es simplemente el nombre de un objeto seguido por el nombre de un método que el objeto sabe ejecutar. Si un método requiere alguna información adicional para saber qué hacer, el mensaje incluye la información como parámetros. IAGP 3 El objeto que inicia un mensaje se llama el remitente de ese mensaje, y el objeto que recibe el mensaje se llama el receptor. El hecho de que los métodos están asociados siempre a objetos específicos tiene un efecto secundario interesante que resulta ser ventajoso. Diversos objetos pueden responder al mismo mensaje genérico, pero cada objeto puede interpretar el mensaje de una manera distinta. Por ejemplo, un objeto camión podría poner enejecución su propia versión del mensaje mueve_a, al igual que una nave, un tren, un avión, una persona, o cualquier cosa que se mueva. En el mundo real la manera en que estos objetos determinan sus rutas, planean sus movimientos, y realizanestos desplazamientos se diferencia radicalmente, pero todos entenderían una petición común de ir a un destino especificado. IAGP 4 2
3 La capacidad de diversos objetos para responder al mismo mensaje de diversas maneras se llama polimorfismo, que en griego significa "muchas formas." El término puede intimidar, y el polimorfismo a menudo se considera un concepto avanzado en tecnología de objetos. Pero la idea básica no podía ser más simple: cada objeto puede tener una respuesta única al mismo mensaje. A veces, una simulación implica solamente un ejemplo de una clase particular de objeto. Sin embargo es mucho más común, necesitar más de un objeto de cadatipo. Esta posibilidad levanta otra preocupación: sería extremadamente ineficaz redefinir los mismos métodos en cada ocurrencia de ese objeto. IAGP 5 Aquí, otra vez, los autores de Simula aportaron una solución elegante: la clase. Una clase es una plantilla de software que define los métodos y las variables que se incluirán en untipo particular de objeto. Los métodos y las variables que hacen el objeto se definen solamente una vez, en la definición de la clase. Los objetos que pertenecen a una clase se llaman generalmente instancias de la clase y contienen solamente sus propios valores particulares para las variables. Un programa orientado a objetos (poo), se define de la forma: Objetos + Mensajes = Programa IAGP 6 3
4 IAGP 7 La programación orientada a objetos, se dice a menudo que es más natural que la programación tradicional, y es verdad en dos niveles. En un nivel, la POO es más natural porque permite que organicemos la información de la forma que nos es familiar, según lo ilustrado en las jerarquías de las clases. En otro nivel más profundo, es más natural porque refleja técnicas propias de la naturaleza para manejar complejidad. Es interesante fijarse en la estructura de organismos vivos para establecer un marco para entender la naturaleza adaptativa de los objetos. IAGP 8 4
5 Programa OO Clase Colección estructurada de clases Implementación de un TAD Objeto Una instancia de una clase Los objetos se comunican mediante mensajes IAGP Comparación con los seres vivos El bloque de edificio básico a partir del cual se componen los seres vivos es la célula. Las células son "paquetes orgánicos", como objetos, combinan la información relacionada y comportamiento. La mayoría de la información está contenida en moléculas de proteína, dentro del núcleo de la célula. El comportamiento, que puede extenderse desde conversión de energía al movimiento, es realizado por estructuras fuera del núcleo. Las células están rodeadas por una membrana que permite solamente ciertas clases de intercambios químicos con otras. Esta membrana protege el funcionamiento interno de la célula contra la intrusión exterior, y también oculta la complejidad, presentando un interfaz relativamente simple al resto del organismo. IAGP 10 5
6 Todas las interacciones entre las células ocurren a través de los mensajes químicos, reconocidos por la membrana de la célula y pasados a sutravés al interior de la célula. IAGP 11 Los objetos que contienen a otros, se llaman objetos compuestos, son importantes porque pueden representar estructuras más sofisticadas que los objetos simples. Unavión consiste en alas, motores, y otros componentes que son demasiado complejos para representarlos de forma simple. Colecciones de objetos Hay una clase especial de clases, a menudo llamada la colección de clases, que se puede encontrar en la biblioteca de clases en la mayoría de los lenguajes comerciales. Como el nombre sugiere, la función básica de una colección es recolectar juntos los objetos que se deben manejar como grupo. IAGP 12 6
7 En un avión, por ejemplo, no crearíamos una variable separada para cada objeto del asiento, agruparíamos todos los objetos del asiento en una colección y pondríamos una referencia a esa colección en un solo conjunto llamado variable. IAGP 13 Aunque los mecanismos reales de células y de objetos apenas podrían ser más diferentes, sus funciones son similares. Las células y los objetos encapsulan datos y comportamientos asociados; ambos tienen interfaces que definen qué señales responderán a su ambiente; ambos utilizan la comunicación basada en mensajes para ocultar complejidad; ambos se pueden organizar en una jerarquía de tipos especializados; y ambos proporcionan los bloques de edificio fundamentales para construir una variedad infinita de sistemas complejos. Esta semejanza, considerando la gran variedad de organismos vivos, demuestra claramente la flexibilidad de este acercamiento básico a a la construcción de sistemas complejos. IAGP 14 7
8 La naturaleza, después de todo, ha estado utilizando el acercamiento algunos miles de millones de años más que los diseñadores del software! Anatomía de los componentes de un mensaje Un mensaje consiste de tres partes: Un objeto receptor Un método que el receptor sabe ejecutar Un conjunto de parámetros que el método requiere para realizar su función IAGP 15 Respuestas a los mensajes En la mayoría de los sistemas, los mensajes requieren una cierta clase de respuesta del receptor. Esta respuesta es generalmente llamada valor de retorno, puede ser datos simples, valores u objetos. IAGP 16 8
9 La potencia de los polimorfismos, simplificación de programas Supónganos que estamos desarrollando un sistema que incluya instrumentos financieros tales como bonos y acciones. El sistema debe permitir que realicemos una variedad de operaciones tales como añadir una nueva acción, seguir el funcionamiento de varias clases de instrumentos, y supervisión del valor actual de la cartera en su totalidad. Nuestra primera clase es cartera, un objeto compuesto que contiene un objeto de la colección de objetos llamada instrumentos_financieros. Nuestro primer método es agregar, que toma un objeto instrumento financiero como su parámetro. IAGP 17 IAGP 18 9
10 2.3 Modularidad Modularidad Extensibilidad + Reutilización necesidad de arquitecturas flexibles hechas con componentes autónomos Programa modular: formado por un conjunto de módulos Módulo: unidad básica de descomposición de un sistema software Un método de construcción de software es modular si ayuda a producir sistemas software a partir de elementos autónomos interconectados por una estructura simple y coherente. IAGP 19 Modularidad: 5 criterios Cinco criterios, cinco reglas, cinco principios. Requisitos que debe satisfacer un método de construcción de software para merecer el nombre de modular: Permitir una descomposición modular Permitir una composición modular Producir módulos fáciles de comprender Favorecer la continuidad del software Protección modular IAGP 20 10
11 Descomposición modular Un método de construcción de software satisface la descomposición modular si permite la descomposición de un problema en un pequeño número de subproblemas menos complejos, conectados por una estructura simple, y que se pueden abordar por separado. Importante que las dependencias sean mínimas y que se conozcan. Ejemplo: Diseño Descendente Contra-ejemplo: Módulos de Inicialización IAGP 21 Composición modular Un método satisface la composición modular si favorece la producción de elementos software que pueden ser combinados para crear nuevos sistemas, posiblemente en un entorno diferente a aquel en el que se idearon. Relacionada con el objetivo de reutilización Independiente de la descomposición modular Ejemplos: Librerías de rutinas, Filtros de Unix Contra-ejemplo: Preprocesadores de lenguajes IAGP 22 11
12 Comprensión Modular Se satisface si facilita que quién lea un módulo pueda comprenderlo sin necesidad de acudir a otros módulos (en el peor de los casos a unos pocos módulos). Relacionado con el mantenimiento Contra-ejemplo: Dependencias secuenciales IAGP 23 Continuidad Modular Un método satisface la Continuidad Modular si se favorecen arquitecturas software en las que un cambio pequeño en la especificación origina un cambio en un solo módulo, o en un pequeño número de módulos. Relacionado con la extensibilidad Ejemplos: Constantes simbólicas y Principio de Acceso Uniforme Contra- ejemplos: Diseño de programas basado en la representación física de los datos y el uso de vectores estáticos IAGP 24 12
13 Protección Modular Un método satisface la Continuidad Modular si se originan arquitecturas en las que el efecto de una condición excepcional acaecida en tiempo de ejecución sólo afecta al módulo dónde se produce, o sólo se propaga a los módulos vecinos. Relacionado con la robustez Ejemplo: Módulos de entrada de datos comprueben su validez. Contra-ejemplo: Excepciones no disciplinadas. IAGP 25 Modularidad: 5 reglas De los criterios anteriores se derivan cinco reglas que se deben seguir para asegurar la modularidad Correspondencia directa Pocas conexiones entre módulos Intercambio de información intermodular mínimo Conexiones explícitas Ocultamiento de Información Las cuatro últimas se refieren a la comunicación entre módulos: uso o comparticiónde datos IAGP 26 13
14 2.4 Otras consideraciones Impacto de la POO Desarrollo más rápido. Mantenimiento barato Proceso de modelado más simple Diseños más claros y manejables Incremento productividad de programadores Inconveniente: Curva de aprendizaje Diseño con objetos diseño procedural Librerías bien diseñadas y fáciles de usar IAGP 27 Abstracción y modelado Modelado del problema: Proceso de abstracción Lenguajes O.O.: Representa elementos del marco del problema a resolver Código (solución): descripción del problema Objetos: Tienen su estado y pueden realizar operaciones IAGP 28 14
15 Características de la O.O. Todo es un objeto (alumno, factura, polígono) Programa: Conjunto de objetos. Se envían mensajes para decirse qué deben hacer Objetos pueden estar compuestos por otros Cada objeto es de un tipo (instancia de clase) Objetos de un mismo tipo pueden recibir los mismos mensajes IAGP 29 Interface de un objeto Elementos del problema: Entidad (Objeto) Objeto: Pertenece a una clase. Define sus características y comportamiento POO crea nuevos tipos e instancia los objetos necesarios de esos tipos modelado: Mapeo 1 a 1 Problema Solución Tipo: Interface. Informa de las peticiones que se pueden hacer a objetos de ese tipo IAGP 30 15
16 Encapsulación Programador: Dos puntos de vista Crear clases Crear clientes de esas clases Sólo muestra lo necesario para quien programa clientes. Oculta el resto Interface Qué solicitudes puedo hacer? Implementación: Realización de las tareas de la interface Envío de mensajes (ejecución de un método) IAGP 31 Tipos Abstractos de Datos Conjunto de objetos que ofrecen una serie de operaciones Abstracciones matemáticas: No se menciona cómo se implementan las operaciones Java permite la construcción de TAD's Mecanismos para la ocultación de detalles de implementación IAGP 32 16
17 Si se modifica la implementación: El programa que usa el TAD no se modifica Sólo cambian los métodos del TAD Cambios transparentes al resto del programa Operaciones soportadas por el TAD: Decisión de diseño (Programador del TAD) Ejemplos: Listas, conjuntos, grafos,... IAGP 33 Control de acceso Disponibilidad de métodos. Razones: El cliente no necesita ver lo que no le afecta (simplicidad) Modificaciones en la implementación sin afectar a la interface Cliente no afectado Niveles de acceso a miembros: public, private, protected: Quién puede hacer uso IAGP 34 17
18 Clase Subclase Paquete Todos private SI protected SI SI* SI public SI SI SI SI package SI SI IAGP 35 Reutilización Uso habitual: Instanciarun objeto de una clase Composición: Relación "tiene un" (has-a) Clases que contienen objetos de otras clases (member object) Objetos miembro: Privados si no son necesarios en la interface Herencia: Relación "es un" (is-a) Modificación (especialización) de una clase ya existente IAGP 36 18
19 Herencia Evita crear tipos (clases) nuevos por necesidad de similar funcionalidad El nuevo tipo es un duplicado del otro con añadidos y/o modificaciones Modificaciones en la clase original afectan a la clase hija Herencia: Es realmente necesaria? Composición mucho más habitual IAGP 37 Herencia: Subclases Nuevo tipo. Contiene todos los miembros del anterior Los miembros privados son inaccesibles Duplica el interfacede la original. Es del mismo tipo que la clase base Formas de modificar la nueva clase: Añadir nuevos métodos Cambiar el comportamiento de un método (override) IAGP 38 19
20 Herencia: Polimorfismo Objetos de clases derivadas se pueden tratar como de la clase base Permite código independiente del tipo. Fácil de escribir y entender Al añadir nuevos tipos: No hay que reescribir código Programas extensibles IAGP 39 Ejemplos: Polimorfismo: Mensaje a un objeto de tipo desconocido. Se ejecuta el método correcto No hay que especificarlo (en C++ virtual) Upcasting(Conversión a superclase) Ej. Figuras geométricas Enlace dinámico. Ej. Trabajadores y nóminas IAGP 40 20
21 Clases abstractas Subclases diferentes con un interfaceúnico Sólo se permiten objetos de subclases Métodos abstractos (sin implementación) Sólo en clases abstractas Interfaces: Impiden implementar cualquier función Sólo declaraciones Herencia diferente a clases (herencia múltiple) Las subclases "implementan" interfaces IAGP 41 Declaración de clases <acceso> class <nombre> { <miembros> // "members" } Miembros: Atributos: Variables de instancia, globales a la clase. Atributos de clase (información estática, compartida) Constructores. Código de inicialización Métodos. Comportamiento. IAGP 42 21
22 Constructores Se garantiza la inicialización de cada objeto (sus atributos) con un constructor Java invoca al constructor al crear el objeto La instanciación(new) reserva el lugar de almacenamiento e invoca al constructor Nombre del constructor = nombre de la clase Se encargan de todas las operaciones de inicialización necesarias. IAGP 43 Constructor: No tiene valor de retorno Una clase puede tener múltiples constructores Sobrecarga de constructores public class Coordenada { double x, y; public Coordenada(){ x = 0.0; y = 0.0; } public Coordenada (double v1, double v2){ x = v1; y = v2; } } IAGP 44 22
23 Constructor "por defecto". Sin parámetros. Clase sin constructor: El compilador crea un constructor "por defecto". Si hay constructores con argumentos, no se crea el "constructor por defecto". Ejemplo. Error si se invoca el constr. sin parámetros Constructores que invocan a otros constructores: llamada a this(...). Ejemplo. IAGP 45 La referencia this Referencia al objeto actual. Permite invocar métodos del objeto actual. No es necesario this para hacer eso Permite referenciar atributos del objeto actual Necesario si estanocultos por parámetros / variables de ámbito más local. Ejemplo. Permite devolver una ref. al objeto actual Permite invocaciones entre constructores IAGP 46 23
24 La llamada a super Referencia a la superclase de la que desciende la clase actual Reutilización de código por medio de herencia super invoca al comportamiento anterior. Además se puede añadir comportamiento adicional Implícita en constructores como 1ª instrucción en métodos: super.nombre_metodo() IAGP 47 Miembros de tipo static Miembros (métodos o atributos) implementados a nivel de clase Desde métodos static la referencia this no tiene sentido No se puede acceder a miembros no estáticos desde métodos estáticos static: Semántica de "ámbito global" Permite desarrollo de código sin usar POO IAGP 48 24
25 2.5 Lenguaje Smalltalk Surge en los años 1970, en el Centro de Investigación de Xeroxen Palo Alto (PARC) en EE.UU. Creado por Alan Kay, Adele Goldberg y Daniel Ingalls Influenciado por Simula y Lisp El objetivo del proyecto de Smalltalk es proporcionar soporte informatizado para el espíritu creativo Lenguaje de descripción (lenguaje de programación) que sirva como una interface entre los modelos mentales y los modelos en el ordenador, y además un lenguaje de interacción (interfaz de usuario) que traslade los sistemas de comunicación humana a los ordenadores IAGP 49 El sistema debería construirse con el mínimo nº de partes fijas y todas las partes deberían encontrarse en un marco uniforme. Un lenguaje para ordenadores debería: soportar el concepto de Objeto y proporcionar un medio uniforme para identificarlos. proporcionar un medio de clasificar los objetos y de crear nuevas clases con la misma base que las del núcleo. ser Independiente de la representación (polimorfismo) factorizar comportamiento común (herencia) La ejecución debería verse como una capacidad intrínseca de los objetos que pueden ser invocados de manera uniforme mediante el envío de mensajes. IAGP 50 25
26 Para que un lenguaje de desarrollo llegue a ser ampliamente aceptado deber ser estandarizado. A finales de 1993 se creó el Comité para la estandarización de SmalltalkX3J20. El primer borrador aparece a finales de % sintaxis/semántica y 50% Librerías de clases Fácil debido a la simplicidad del lenguaje Código de aplicaciones muy portable En 1995 se forma el STIC (SmallTalk Industry Council) una voz unificada para la comunidad Smalltalk IAGP 51 Los objetivos del STIC son: Lograr que Smalltalk sea el LOO elegido para el desarrollo de aplicaciones en la empresa Responder a las necesidades de la industria Smalltalk Favorecer la aparición de estándares Crear un punto de encuentro para la comunidad Smalltalk Apuntes sobre Smalltalk: IAGP 52 26
27 2.6 Ejemplo Polígonos y Rectángulos Tenemos la clase Poligono y necesitamos representar rectángulos. Debemos crear la clase Rectangulo partiendo de cero? Podemos aprovechar la existencia de similitudes y particularidades entre ambas clases IAGP 53 Un rectángulo tiene muchas de las características de un polígono (rotar, trasladar, vértices,..) Pero tiene características especiales (diagonal) y propiedades especiales (4 lados, ángulos rectos) Algunas características de polígono pueden implementarse más eficientemente class Rectangulo inherit Poligono feature...características específicas para rectángulos end IAGP 54 27
Programación Orientada a Objetos
Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Programación Orientada a Objetos Algoritmos y Programación II Junio, 2004 Las tecnologías de objetos hoy
Más detallesIntroducción a OOP. Programación Orientada a Objeto
Introducción a OOP Programación Orientada a Objeto Evolución Programación no Estructurada, Programación procedimental, Programación modular y Programación orientada a objetos. Programación no Estructurada
Más detallesUNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA
UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido
Más detallesProgramación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez
Programación Orientada a Objetos Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez Tabla de Contenido Historia. Filosofía del paradigma. Conceptos claves. Ventajas y desventajas. Lenguajes
Más detallesTema 1 Introducción al paradigma de programación orientado a objetos
Tema 1 Introducción al paradigma de programación orientado a objetos Programación Orientada a Objetos Curso 2013/2014 Contenido Paradigmas de programación vs. Lenguajes de programación. Evolución de los
Más detallesPROGRAMACION ORIENTADA A OBJETOS: Tema 2. Conceptos básicos de la Programación Orientada a Objetos
PROGRAMACION ORIENTADA A OBJETOS: Tema 2. Conceptos básicos de la Programación Orientada a Objetos Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina
Más detallesConceptos 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 detallesHerencia. Implementación en Java
Herencia Implementación en Java Herencia Concepto de Herencia Es el mecanismo que permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente
Más detallesProgramación Orientada a Objetos. Conceptos Básicos
Programación Orientada a Objetos Conceptos Básicos Programación Orientada a Objetos Paradigma de programación Un programa orientado a objetos está organizado como un conjunto de agentes en interacción
Más detallesAnálisis y Programación Orientada a Objetos
Análisis y Programación Orientada a Objetos Clase 2: Objetos y Clases Qué vamos a aprender Introducción a los conceptos de POO Metodología de Objetos: UML Lenguajes OO: C++, Java Entornos para POO: C++
Más detallesPRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández
PRINCIPIOS DE PROGRAMACIÓN Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández Objetivos específicos: Al termino de esta clase el alumno: Sabrá cuantos tipos de programación
Más detallesPNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos
PNFSI Asignatura: Desarrollo de Software Tema 1: Programación Orientada a Objetos Ing. Zamantha González Abril, 2008 Contenido Conceptos básicos Clase Objeto o instancia Atributos Métodos Constructores
Más detallesProgramación orientada a objetos
Programación orientada a objetos Dra. Elisa Schaeffer elisa@yalma.fime.uanl.mx 12 de febrero de 2007 MECAS512 Estructura de Datos en C++ PROGRAMACIÓN ORIENTADA A OBJETOS un paradigma de programación programa
Más detallesIMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA
IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O
Más detallesIntroducció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 detallesUniversidad Nacional del Santa E.A.P. Sistemas e Informática Microcomputación III
HERENCIA Se entiende por herencia el proceso por el que un objeto puede tomar características de otro objeto. La herencia Se puede usar de dos formas: 1. Cuando una clase escrita no llega a cubrir las
Más detallesUNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SOFTWARE 1. INFORMACIÓN GENERAL
Más detallesUNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SOFTWARE 1. INFORMACIÓN GENERAL
Más detalles! 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 smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesMetodologías en la Ingeniería del Software Métodos Orientados a Objetos
Metodologías en la Ingeniería del Software Métodos Orientados a Objetos García Departamento de Ciencias de la Computación Universidad de Alcalá Contenidos Historia Orientación a Objetos (OO) Problemas
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesobtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.
(a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma
Más detallesCada 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 detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia
Más detallesUnidad 2. Elementos Intermedios del Lenguaje
Unidad 2 Elementos Intermedios del Lenguaje Paradigmas de Programación Un paradigma de programación se refiere a la forma en que se entiende, diseña y desarrolla una aplicación Imperativo Declarativo Funcional
Más detallesacceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario
Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O en Java 1. Creación de clases y objetos 2.
Más detallesHERENCIA 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 detallesProgramación n de sistemas
Programación n de sistemas Orientación a Objetos en Java I. Programación Basada en objetos II. Programación orientada a objetos Ingeniería Telemática M. Carmen Fernández Panadero mcfp@it.uc3m.es
Más detallesImplementación de Componentes
Implementación de Componentes Concepto Un componente es una parte no trivial, casi independiente, y reemplazable de un sistema que llena claramente una funcionalidad dentro de un contexto en una arquitectura
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesUNIVERSIDAD 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 detallesTema 1.- Conceptos básicos de la OO
Tema 1.- Conceptos básicos de la OO 1. HISTORIA DE LOS CONCEPTOS... 2 2. OBJETOS Y MENSAJES... 3 3. CLASES DE OBJETOS... 5 4. HERENCIA... 8 5. OTROS CONCEPTOS... 9 6. DESARROLLO ORIENTADO A OBJETOS...
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Composición... 4 Herencia... 8 Herencia e Inicialización... 12 Constructor de Superclase...
Más detallesObjetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición.
(a) objetivos (b) terminología (c) polimorfismo (d) tipeo y herencia (e) vinculación dinámica de código (f) clases abstractas (g) soporte en JAVA (h) significado de la herencia (i) herencia y aserciones
Más detallesGuía práctica de estudio 08: Polimorfismo
Guía práctica de estudio 08: Polimorfismo 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 08: Polimorfismo
Más detallesFederico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detallesProgramación Orientada a Objetos
Programación Orientada a Objetos Teoría: Begoña Moros Valle Prácticas: Marcos Menárguez Tortosa Contenido Presentación contenido teórico Presentación contenido práctico Introducción a la Programación Orientada
Más detallesUAA-DSE Programación 2 / C++ Eduardo Serna-Pérez
6 Herencia y Polimorfismo La Herencia y el Polimorfismo son dos de los principales mecanismos de programación que caracterizan a la programación orientada a objetos. La herencia sustenta su mecanismo en
Más detallesPROGRAMACION 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 detallesModelo Dinámico del Diseño del Software y Representación en UML. UNIDAD 9 Análisis y Diseño de Sistemas de Información
Modelo Dinámico del Diseño del Software y Representación en UML UNIDAD 9 Análisis y Diseño de Sistemas de Información El Modelo Dinámico El objetivo del modelo Dinámico es presentar o describir el comportamiento
Más detalles! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java
Introducción a la programación orientada a objetos Curso de Programación en Java! Fundamentos de la POO! Comportamiento y estado! Clases y objetos en Java Contenidos Luis Guerra l.guerra@upm.es Enero 2012
Más detallesIntroducción al Lenguaje "C++"
UNIDAD 2 Introducción al Lenguaje "C++" 1.- La programación Orientada a Objetos. La Programación Orientada a Objetos no es un concepto nuevo, data de hace unas dos decadas. El origen de la Programación
Más detallesIntroducción a la Programación Orientada a Objetos
INSTITUTO MATEMÁTICO Y ACTUARIAL MEXICANO LICENCIATURA EN ACTUARÍA PROGRAMACIÓN Introducción a la Programación Orientada a Objetos Gerardo Avilés Rosas gaviles@imam.com.mx Programar Una tarea fácil? 2
Más detallesLenguajes de Programación I
Lenguajes de Programación I Orientación a Objetos Ernesto Hernández-Novich Copyright c 2006-2010 Módulos como abstracción de datos Los módulos conducen a un estilo de programación en el cual
Más detallesUnidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Más detallesProgramación. Orientada a Objetos. Prof. Angela Di Serio. Universidad Simón Bolívar Especialización en Telemática
Programación Orientada a Objetos Prof. Angela Di Serio Universidad Simón Bolívar Especialización en Telemática Agenda Clase 2 Qué es Orientado a Objetos? Conceptos: objeto, clase, instancias, mensajes
Más detallesConceptos fundamentales de Programación Orientada a Objetos. 1ª parte Programación Orientada a Objetos Tema 3: Conceptos fundamentales de POO
TEMA 3 1 Conceptos fundamentales de Programación Orientada a Objetos. 1ª parte CONTENIDOS 2 1. Introducción 2. Objetos 3. Clases 4. Instancias 5. Análisis y diseño OO Introducción 3 Qué es la POO? Un método
Más detallesPROGRAMACIÓN ORIETADA A OBJETOS
PROGRAMACIÓN ORIETADA A OBJETOS Categorías de PL Categorías Procedimental Declarativa Imperativa Estructurada Orientada a Objetos Funcional Lógica Programación Orientada a Objetos DATOS DATOS Métodos Métodos
Más detallesPROGRAMA JAVA SE (Standard Edition) MODALIDAD ONLINE
PROGRAMA JAVA SE (Standard Edition) MODALIDAD ONLINE JAVA SE (Standard Edition): El curso proporciona la base que necesita cualquier programador de Java, tanto en cuanto a las peculiaridades de la tecnología
Más detallesTipos Abstractos de Datos (TAD) Lección 1
Tipos Abstractos de Datos (TAD) Lección 1 Esquema Paradigmas de programación Definición de TAD Programación con TAD Ventajas de la programación con TAD Lectura recomendada: secciones 1.1 y 1.2 del libro
Más detallesModelado Estructural F E B R E R O,
Modelado Estructural F E B R E R O, 2 0 1 4 Modelado Estructural Sirve para describir los diferentes tipos y relaciones estáticas existentes entre los diferentes objetos de un sistema. A la hora de desarrollar
Más detallesProgramación Orientada a Objetos
Programación Orientada a Objetos Teoría: Begoña Moros Valle Prácticas: Marcos Menárguez Tortosa Contenido Presentación contenido teórico Presentación contenido práctico Introducción a la Programación Orientada
Más detallesTEMA 5. Agenda. Herencia
TEMA 5 Herencia V1.3 Manuel Pereira González Agenda Implementación Métodos Heredados vs Sobreescritos La Clase Object Resumen 1 Introducción Herencia Una clase (subclase ó clase hija) hereda la estructura
Más detallesCurso: Java SE (Standard Edition)
El curso proporciona la base que necesita cualquier programador de Java, tanto en cuanto a las peculiaridades de la tecnología que engloba Java SE, como del lenguaje de programación en sí. También se estudian
Más detallesTEMA 1: Orientación a Objetos, una técnica para mejorar la calidad del software. Programación Orientada a Objetos Curso 2009/2010
TEMA 1: Orientación a Objetos, una técnica para mejorar la calidad del software Programación Orientada a Objetos Curso 2009/2010 Índice Calidad del software Modularidad Reutilización Criterios para encontrar
Más detallesAcademia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos
Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a
Más detallesIntroducción código transversal
Introducción La aparición de la programación Orientada a Objetos (OO) tuvo un efecto dramático en el desarrollo de software. En la actualidad, los desarrolladores crean aplicaciones utilizando clases y
Más detallesAlgoritmos y Estructuras de Datos: Introducción a los TAD y los Algoritmos. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a los TAD y los Algoritmos Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
Más detallesClases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Más detallesCLASE 9 -HERENCIA Y POLIMORFISMO
CLASE 9 -HERENCIA Y POLIMORFISMO INTRODUCCIÓN Diferentes tipos de objetos con características y comportamiento comunes. lado1 lado2 lado3 color de línea color de relleno punto Triángulo Círculo radio color
Más detalles3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java
Capítulo III 3.1 Introducción a TDA y OO Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java Problemas en el Desarrollo de Grandes Programas ❶ Cómo organizar una pieza de software, de manera
Más detallesTema: Herencia en C#.
Programación II. Guía No. 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia en C#. Objetivos Crear clases a través de la herencia de clases existentes. Describir
Más detallesGuí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 detallesHíper introducción a Objetos
Híper introducción a Objetos Herman Schinca Clase 27 y última! 1 de Julio de 2011 Paradigma de Objetos Al igual que Funcional, se trata de una filosofía, de un paradigma, no de un lenguaje particular.
Más detallesProgramació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 detallesProgramació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 detallesUD 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS
UD 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Pedro J. Ponce de León Versión 0.8 Indice El progreso de la abstracción Definición de la abstracción Lenguajes de programación y niveles de abstracción
Más detallesTEMA 6: INTRODUCCIÓN A UML
TEMA 6: INTRODUCCIÓN A UML Por qué modelamos? El modelado es una parte central de todas las actividades que conducen a la producción de un software de calidad. Como tal la ingeniería software debe basarse
Más detallesDefiniciones en Orientación a Objetos
Definiciones en Orientación a Objetos Dr. Oldemar Rodríguez Rojas Escuela de Informática Paradigma Funcional Ø Se basan en la idea de que el Dominio de una Aplicación y los Requerimientos se pueden modelar,
Más detallesPROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
Más detallesProgramación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Más detallesProgramación Orientada o Objetos
Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon
Más detallesCAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.
1 UNIDAD 1: ORIENTACIÓN A OBJETOS. CAPÍTULO 1: INTRODUCCIÓN. HISTORIA. ESPÍRITU DEL PARADIGMA ORIENTADO A OBJETOS. CONCEPTOS BÁSICOS: OBJETO, ATRIBUTO, MÉTODO, MIEMBRO, MENSAJE, CLASE, EVENTO. CAPÍTULO
Más detallesPROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017
PROGRAMACION II Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017 ABSTRACCIÓN: Proceso mental e intelectual que ignora selectivamente partes
Más detallesConceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos 1
Conceptos ELO329: Diseño y Programación Orientados a Objetos ELO 329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego
Más detallesModelo de Orientación a Aspectos
Modelo de Orientación a Aspectos Noviembre, 2010 Ing. Sahyra Yépez Agenda Qué es el Modelo Orientado a Aspectos? Qué es un Aspecto? Programación Orientada a Aspectos Funcionamiento de POA Características
Más detallesClases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Más detallesINFORMÁTICA INDUSTRIAL
INFORMÁTICA INDUSTRIAL Programación Orientada a Objetos M. Abderrahim, A. Castro, J. C. Cas3llo Departamento de Ingeniería de Sistemas y Automá3ca 1. Introducción Características Generales La orientación
Más detallesIntroducción y conceptos de POO
Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Más detallesINTRODUCCION 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 detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Más detallesEdwin Andrés Cubillos Vega
PROGRAMACION ORIENTADA A OBJETOS Edwin Andrés Cubillos Vega Company LOGO Contenido Introducción Clases y Objetos Herencia Constructores y Destructores Polimorfismo Contenido Introducción Clases y Objetos
Más detallesContenido. Prefacio Orígenes de la programación orientada a objetos... 1
Prefacio... xv 1. Orígenes de la programación orientada a objetos... 1 1.1 La crisis del software... 1 1.2 Evolución del software... 3 1.3 Introducción a la programación orientada a procedimientos... 4
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesProgramación Orientada a Objetos
Programación Orientada a Objetos E.T.S.I. Informática Universidad de Málaga http://www.lcc.uma.es/ Contenido Introducción histórica Conceptos básicos de la Programación O. O. Conceptos avanzados de la
Más detallesTema 1. Introducción a la Programación Orientada a Objetos
Tema 1. Introducción a la Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias
Más detallesIván Bernal, PhD 4. Aplicaciones. C, Basic, Fortran. Lenguaje Ensamblador. Hardware. Hardware
Programación Orientada a Objetos Clase # 2 Introducción a la POO Jueves, 11 de Abril de 2002 Iván Bernal, Ph.D Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec Agenda Introducción al Diseño
Más detallesTema 1: Introducción a las Computadores y Lenguajes de. Programa
Tema 1: Introducción a las Computadores y Lenguajes de programación: Paradigmas de la programación. Programa Arquitectura del Computador Input Células de memoria Información (words) Dirección Output w
Más detallesINTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11
Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16
Más detallesProgramación orientada a objetos. Introducción
Programación orientada a objetos Clases: Polimorfismo Introducción El polimorfismo, en general, es la característica de un lenguaje orientado a objetos que permite que un mismo identificador de método
Más detallesUML: Diagrama de Clases
UML: Diagrama de Clases JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Entender el propósito de los diagramas de clases UML. Comprender la importancia de este tipo de diagramas para la
Más detallesPARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN. Carrera y plan: Analista Programador Universitario Plan 2008.
PARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN Identificación: Carrera y plan: Analista Programador Universitario Plan 2008. Asignatura: Programación Orientada a Objetos. Condiciones para el desarrollo de la
Más detallesTema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
Más detalles