Introducción a la Orientación a Objetos
|
|
- Eugenia Suárez Correa
- hace 7 años
- Vistas:
Transcripción
1 Introducción a la Orientación a Objetos
2 Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO Hoy. Época dorada de la OO. Si yo tuviera que vender mi gato (al menos a un informático), no diría que es amable y autosuficiente y que se alimenta de ratones: más bien diría que está orientado a objetos Roger King 2
3 Metodologías y OO Presente en todas las fases de la metodología de desarrollo: Análisis Diseño Implementación Validación Mantenimiento 3
4 Breve historia de UML Representar artefactos en metodologías OO 1990s: - James Rumbaugh: OMT, Grady Booch: Booch's method, Ivar Jacobson: OOSE - Unified Modelling Language (UML) ISO/IEC 19501:2005 Information technology Open Distributed Processing Unified Modeling Language (UML) Version UML es el estándar adoptado por la industria Última versión: UML 2.0 (2.1.x) 4
5 OO desde la Programación Estructurada OO como evolución del concepto de TAD - Un objeto es una entidad simple - Los sistemas complejos se forma estableciendo relaciones entre objetos - Una aplicación es un conjunto de objetos que interactúan entre sí mediante paso de mensajes - El control de la aplicación viene dado por el orden en que se envían los mensajes 5
6 OO y Paso de Mensajes (i) Paso de mensajes - Un objeto envía un mensaje a otro, invocando una operación - El receptor ejecuta el método correspondiente y devuelve el resultado controladorpedidos 1: validarpago() pasareladepago 2: enviarpedido() almacen 6
7 OO y Paso de Mensajes (ii) Paso de mensajes - Visión ortodoxa Cada objeto es un thread de ejecución independiente Paso de mensajes = mensajes entre threads - Implementaciones actuales Inicialmente un único thread Paso de mensajes = llamada a función Manejo explícito de threads y RPCs 7
8 Visión General de la OO - Problemas que pretende resolver la OO: Mantenimiento Extensibilidad Reutilización - Cómo? Idea inicial: las entidades (objetos) del dominio son la parte más estable del sistema - Características básicas de la OO: Abstracción. El objeto representa entidades cercanas al dominio del problema, no a la máquina Encapsulación. El objeto oculta su información, los demás objetos acceden a su información a través de una interface definida por él (concepto de caja negra) 8
9 Ejercicio Identificar posibles objetos en una aplicación de mensajería instantánea Qué problemas propios de la OO nos hemos encontrado? - Identificar objetos - Establecer atributos y métodos 9
10 Introducción a UML (i) - Es en su mayoría un lenguaje gráfico - Cubre análisis, diseño, despliegue - Extensible, sus componentes son opcionales - Abierto a interpretación (p.e. implementar un diseño) 10
11 Introducción a UML (ii) Distintos tipos de diagramas para expresar distintos aspectos del desarrollo: - Diagrama de casos de uso - Diagrama de clases, de paquetes, de componentes - Diagrama de secuencia, de colaboración, de actividad, de estados - Diagrama de despliegue -... Especificación: ~ páginas 11
12 Introducción a UML (iii) Herramientas de UML - Papel y lápiz - Software de dibujo especializado - Herramienta integrada en un entorno de desarrollo 12
13 Propiedades de los objetos (i) Objeto: "encapsulamiento de un conjunto de operaciones (métodos) que pueden ser invocados externamente, y de un estado que recuerda el efecto de los servicios" "Análisis y diseño detallado de Aplicaciones informáticas de gestión" [Piattini et al., 1996] 13
14 Propiedades de los objetos (i) Estado - Viene dado por el valor de sus atributos - Cambia a medida que se ejecuta el programa unalista - items = [ abc, foo, bar ] - last = 3 - it =2 + añadir(item:string) + borrar(item:string) + elemento_en(i:int):string + siguiente():string 14
15 Propiedades de los objetos (ii) Identidad - Cada objeto tiene identidad propia, independientemente de su estado. unalista otralista - items = [ abc, foo, bar ] - last = 3 - it = 2 - items = [ abc, foo, bar ] - last = 3 - it = 2 15
16 Propiedades de los objetos (iii) Comportamiento - Todo objeto posee un conjunto de métodos que determinan su comportamiento unalista unalistaordenada - items = [ abc, foo, bar ] - last = 3 - it = 2 - items = [ abc, bar, foo ] - last = 3 - it = 2 + añadir(item:string) + borrar(item:string) + elemento_en(i:int):string + siguiente():string + añadir(item:string) + borrar(item:string) + elemento_en(i:int):string + siguiente():string 16
17 Propiedades de los objetos (iv) Tiempo de vida - El objeto existe durante un período finito de tiempo. - La mayoría una parte de la ejecución del programa 17
18 Resumen OO cubre el ciclo de desarrollo completo - Encapsulación Objeto - Encapsula: Características: - Abstracción Atributos Métodos - Propiedades: Paso de mensajes UML Estado Identidad Comportamiento Tiempo de vida 18
19 LOO basado en prototipos o clases Basado en prototipos - Javascript, self,... - Menos populares (salvo javascript) - Un objeto se crea duplicando otro objeto existente Basado en clases - Java, C#, C++, Ruby, Smalltalk, Eiffel,... - Más extendidos - Los objetos se crean a partir de clases 19
20 Clases Clase: definición abstracta de un objeto. conjunto de, plantilla, definición de,... Una clase es una descripción de un conjunto de objetos que manifiestan los mismos atributos, operaciones, relaciones y la misma semántica (Object Modelling and Design [Rumbaught et al., 1991]) Una clase es un conjunto de objetos que comparten una estructura y un comportamiento comunes [Booch G., 1994] 20
21 Especificación de una clase Definición de una clase: - Nombre de la clase - Lista de atributos - Lista de métodos 21
22 Clases. Problemas de diseño No Bajo acoplamiento Clases sin métodos 22
23 Visibilidad (i) Visibilidad de atributos y métodos - Público - Privado Los atributos públicos rompen la encapsulación selectores / modificadores (getters / setters) métodos públicos: interface (contrato) 23
24 Visibilidad (ii) Ámbitos especiales: - Protegido (#) - Paquete (~) Solucionan problemas de implementación, no de diseño 24
25 Instanciación Crear un objeto (instancia) a partir de la definición de una clase 25
26 Clases. Convenciones Nombres de las clases - Guía de estilo. P.e. CamelCase - Singular - Sustantivos Nombres de los atributos - Privados comenzando por subrayado _ 26
27 Paquetes (i) Un paquete (package) es una agrupación de clases relacionadas. Favorece el reuso y la creación de librerías. Los LOO suelen tener soporte de paquetes. 27
28 Paquetes (ii) Estereotipos y relaciones entre paquetes 28
29 Relaciones (i) Permiten - Intercambio de mensajes - Composiciones complejas de objetos Tipos de relaciones - Dependencia - Generalización - Asociación - Agregación / composición 29
30 Relaciones (ii) Datos de una relación - Cardinalidad - Navegabilidad - Restricciones 30
31 Asociación Relación de tipo general 31
32 Implementación de asociaciones Las relaciones se implementan como atributos según su cardinalidad => referencia - 0..n => colección (lista, array,...) Los atributos no se especifican en el diseño Práctica común: - nombre del atributo = papel en la relación 32
33 Paso de mensajes Mensaje: nombre + argumentos Un mensaje invoca una operación - Cada operación se corresponde con un método - Distintos objetos implementan la operación mediante métodos con implementaciones distintas - En general, los mensajes son síncronos - Los LOO implementan el paso de mensajes como llamadas a función 33
34 Diagrama de secuencia Secuencia temporal de envío de mensajes - Muestra un caso concreto 34
35 Agregación y composición (i) Relación es_parte_de - Jerarquía todo / parte - Permite la creación de estructuras complejas - El objeto base delega en sus agregados Composición vs. agregación - es_parte_de completo / incompleto - Tiempo de vida vinculado Implementación: equivalente asociaciones 35
36 Agregación y composición (ii) 36
37 Generalización (i) Relación es_un - Jerarquía generalización / especialización - Permite la herencia entre clases - Jerarquía de clases. Superclases, subclases Las clases hijas heredan atributos y métodos de la clase padre y ancestros. Pueden redefinir y añadir atributos y métodos. 37
38 Generalización (ii) Especialización - Un objeto de la clase hija puede usarse en los mismos lugares que un objeto de la clase padre, pero no viceversa - Punto de extensión Generalización - Las clases hija heredan de las clases ancestros - Factorizan elementos de diseño e implementación 38
39 Herencia Simple vs. Múltiple Simple: una única superclase Múltiple: varias superclases Problemas de la herencia múltiple - Herencia repetida Heredar de dos clases con el mismo ancestro - Conflicto de nombres Heredar de dos clases con atributos o métodos con el mismo nombre 39
40 Problemas de la Herencia Múltiple 40
41 Herencia (i) Evolución del ejemplo: 41
42 Herencia (ii) Cuidado: no romper la encapsulación 42
43 Herencia (iii) Problema: interface de CartaRol 43
44 Herencia (iv) La interface de la raíz es la parte visible a los clientes de la jerarquía 44
45 Herencia (v) 45
46 Herencia (vi) Las relaciones también se heredan 46
47 Clase abstracta Clase que no tiene instancias Puede tener métodos sin implementar Permite - Definir interfaces comunes para las subclases - Factorizar atributos y métodos comunes Clase concreta - No abstracta, puede tener instancias - Debe implementar los métodos abstractos heredados 47
48 Clase abstracta (ii) 48
49 Clase abstracta (iii) 49
50 Generalización vs. Agregación (i) Generalización Agregación - Usa la herencia - Usa la delegación - Estática, en tiempo de diseño - Dinámica, en tiempo de ejecución - Basado en el concepto de clase - Independiente del concepto de clase - La herencia es implícita - La delegación es explícita - Relación es_un - Relación es_parte_de 50
51 Generalización vs. Agregación (ii) Delegación vs. herencia 51
52 Generalización vs. Agregación (iii) vs. 52
53 Generalización vs. Agregación (iv) vs. 53
54 Interfaces (i) Declaración de métodos públicos También elemento de OO Caso extremo de clase abstracta - Sin atributos - Todos los métodos abstractos 54
55 Interfaces (ii) Una clase realiza una interface - Similar a la especialización - Si no es abstracta debe implementar todos los métodos definidos en la interface Una clase puede implementar múltiples interfaces - Alternativa a la herencia múltiple - Permite mayor flexibilidad en diseños complejos 55
56 Interfaces (iii) 56
57 Tipos y subtipos (i) Clases e Interfaces definen tipos - Especialización y realización crean subtipos - Si B es un subtipo de A La interface de un objeto de tipo B contiene la interface definida en el tipo A Un objeto de tipo B puede representar los mismos papeles que un objeto de tipo A, pero no viceversa Polimorfismo - Un subtipo puede redefinir métodos - Un objeto puede realizar varios tipos 57
58 Tipos y subtipos (ii) Polimorfismo en Lenguajes OO - Precisan dynamic dispatch La selección del método sólo se puede resolver en tiempo de ejecución - Ejemplo (diagrama de clases Baraja/Carta): Carta c c = new NaipeEspañol() c.nombre() c = new CartaRol() c.nombre() método(c:carta) c.nombre() 58
59 Sobrecarga Otra forma de polimorfismo Métodos con el mismo nombre y distinta firma En general es considerado pernicioso - Mismo nombre para distintas operaciones 59
60 Dependencia Relación débil entre clases. Expresa: - Uso como parámetro, resultado - Instanciación 60
61 Constructores, destructores Constructor - Se ejecuta tras crear un objeto - Inicializa el estado del objeto - Puede tener argumentos Destructor - Se ejecuta antes de eliminar una instancia - Libera recursos 61
62 Referencias Referencia a objetos - Independiente de la localización en memoria - Un objeto puede tener múltiples referencias - En LOO, las variables contienen referencias Carta c1 Carta c2 c1 = new NaipeEspañol() c2 = c1 c1 = new NaipeEspañol() 62
63 Garbage collector Gestión de memoria explícita - C++ Gestión de memoria implícita - javascript, java, ruby,... - Garbage collector 63
64 Metaclases Metaclases - Las clases son ciudadanos de primer orden - Objetos que representan clases - Introspección 64
Programació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 detallesIngeniería de Software. UML.
Ingeniería de Software. Unified Modeling Language UML. Ingeniería de Software. UML Página 0 Qué es el UML? The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing,
Más detallesContenido. 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 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 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 detallesUnified modeling language
Unified modeling language UML es un lenguaje para la especificación, visualización, construcción y documentación de documentos de sistemas de software. Es independiente del lenguaje de implementación y
Más detallesUML El Lenguaje Unificado de Modelado Grady Booch, Jim Rumbaugh e Ivar Jacobson
UML El Lenguaje Unificado de Modelado Grady Booch, Jim Rumbaugh e Ivar Jacobson El lenguaje UML es un estándar OMG diseñado para visualizar, especificar, construir y documentar software orientado a objetos.
Más detallesReutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
Más detallesContenido. 1 Qué es un diagrama de clase? 2 Elementos de un diagrama de clase. 3 Clase, atributo, método y visibilidad. 4 Agregación y composición
* 1 Contenido 1 Qué es un diagrama de clase? 2 Elementos de un diagrama de clase 3 Clase, atributo, método y visibilidad 4 Agregación y composición 5 Generalización e interface 6 Organización de clases
Más detallesReutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
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 detallesIngeniería de Software
Ingeniería de Software ANÁLISIS Y DISEÑO DE SISTEMAS CON Auxiliar: Andrés Neyem aneyem@dcc.uchile.cl Oficina 418 de Doctorado Auxiliar - 10 de Abril de 2007 Repaso Historia de los lenguajes de modelamiento
Más detallesA3F. Objetos (uso) Carlos Fontela
Objetos (uso) Carlos Fontela cfontela@fi.uba.ar Temario Objetos y mensajes Objetos y clases Estado, comportamiento, identidad Historia hacia la POO POO vs. procedural 2c2009 2 Operando sobre objetos (Smalltalk)
Más detallesDiagramas de clases de UML
Diagramas de clases de UML Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Qué es UML? v UML ( Unified Modeling Language ) es un
Más detallesIntroducción a la orientación a objetos y a UML
Introducción a la orientación a objetos y a UML El lenguaje unificado de modelado. Manual de referencia. James Rumbaugh, Ivar Jacobson, Grady Booch. Ed. Addison Wesley, 2000 El proceso unificado de desarrollo,
Más detallesTema: Programación Orientada a Objetos
Estructura de datos y Programación / Programación I Tema: Programación Orientada a Objetos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 Qué es Programación Orientada a Objetos (POO)? Es un paradigma
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. 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 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. 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 detallesUML. (Unified Modeling Language) Lenguage Unificado de Modelado
1 (Unified Modeling Language) Lenguage Unificado de Modelado Antonio J. Sierra 1 Índice Historia Introducción Objetivos del modelo Críticas Modelo Conceptual de Clases Diagrama de Clases 2 2 Historia (I)
Más detallesReutilización con delegación, herencia y polimorfismo
Reutilización con delegación, herencia y polimorfismo Carlos Fontela cfontela@ @fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición
Más detallesA3F. Objetos (uso) Carlos Fontela
Objetos (uso) Carlos Fontela cfontela@fi.uba.ar Temario Objetos y mensajes Objetos y clases Estado, comportamiento, identidad Paquetes Historia hacia la POO POO vs. procedural 2c2009 2 Operando sobre 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 VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesCLA. Diagramas de clases en Métrica V3
CLA Diagramas de clases en Métrica V3 1 Diagramas de clases Qué es? Representa la estructura y comportamiento de cada uno de los objetos del sistema y sus relaciones con los demás objetos. Objetivos? Representar
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 detallesTema 3. Diagramas de Clases y Objetos C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA
Tema 3. Diagramas de Clases y Objetos C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L É N M E L I Á N BAT I STA J O S É MARCOS
Más detallesUniversidad Salesiana de Bolivia
Universidad Salesiana de Bolivia Ingeniería de Sistemas I DATOS DE IDENTIFICACIÓN PLAN DE DISCIPLINA GESTIÓN II - 2015 INSTITUCIÓN UNIVERSITARIA: Universidad Salesiana de Bolivia RECTOR: Dr. Rvdo. P. Thelian
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 detallesCapítulo 16. Diagrama de Clases UML
Capítulo 16. Diagrama de Clases UML Florentino TORRES M. CINVESTAV-Tamaulipas 15 de Oct del 2012 Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70 1 Capítulo 16. Diagrama de Clases UML Aplicando
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 detallesUML. Copyright 1998 J. Navón
UML Copyright 1998 Es un lenguaje completo para capturar el conocimiento sobre un sujeto y expresar este conocimiento con el propósito de comunicación Se aplica a a la modelación de sistemas Resultado
Más detallesTema 1. Introducción a UML C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A
Tema 1. Introducción a UML C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L É N M E L I Á N BAT I STA J O S É MARCOS M O R
Más detallesProgramación Orientada a Objetos (POO)
Programación Orientada a Objetos (POO) Introducción La programación orientada a objetos es una técnica de programación en la cual expresamos el código en términos relacionados a como vemos las cosas en
Más detallesPATRONES 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 detallesAplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
Más detallesMODULO IV. Análisis y Diseño de Sistemas de Información INF-162 IV. UML. 4.1 Introducción
MODULO IV Análisis y Diseño de Sistemas de Información INF-162 IV. UML 4.1 Introducción Facilitador: Miguel Cotaña 11 de Octubre 2010 1 QUÉ ES UML? UML = Unified Modeling Language Un lenguaje de propósito
Más detallesDiagrama de Clases I: asociaciones
Programación Orientada a Objetos Diagrama de Clases I: asociaciones Ing. Julio Ernesto Carreño Vargas MsC. Concepto de diagrama de clases Modelo de Dominio Un modelo conceptual explica los conceptos más
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 detallesIntroducción a la Orientación a Objetos
Introducción a la Orientación a Objetos Fernando Bellas Permuy Departamento de Tecnologías de la Información y las Comunicaciones (TIC) Universidad de A Coruña http://www.tic.udc.es/~fbellas fbellas@udc.es
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 detallesConceptos Básicos. Programación Orientada a Objetos 2
Programación Orientada a Objetos Conceptos Básicos de Objetos Ing. Julio Ernesto Carreño Vargas MsC. Conceptos Básicos Las aproximaciones ADOO y POO, proveen a los objetos como el principal medio para
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 detallesIngeniería del Software Orientada a Objetos. Unidad 5: Conceptos del Paradigma Orientado a Objetos
Ingeniería del Software Orientada a Objetos Unidad 5: Conceptos del Paradigma Orientado a Objetos Por qué la Orientación a Objetos? Proximidad de los conceptos de modelado respecto de las entidades del
Más detalles1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:
Análisis y Diseño O.O. Preguntas del diseño : Cómo podrían asignarse responsabilidades a las clases de los objetos? Cómo podrían interactuar los objetos? Qué deberían hacer las clases? Patrones : Ciertas
Más detallesProgramación Orientada a Objetos GUÍA DOCENTE Curso
Programación Orientada a Objetos GUÍA DOCENTE Curso 2010-2011 Titulación: Grado en ingeniería informática 801G Asignatura: Programación Orientada a Objetos 801205012 Materia: Módulo: M3 Programación Carácter:
Más detallesProgramación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia
Tema 5.- Herencia 1. Herencia múltiple en C++: ambigüedad de nombres...2 2. Herencia en SMALLTALK...4 2.1. Determinación de los métodos a ejecutar: self y super...4 2.2. Herencia de métodos y variables
Más detallesPrincipios de la Tecnología de Objetos
Principios de la Tecnología de Objetos Unified Modeling Language Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación
Más detallesDerechos 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 detallesDIAGRAMA DE CLASES EN UML
DIAGRAMA DE CLASES EN UML Mg. Juan José Flores Cueto jflores@usmp.edu.pe Ing. Carmen Bertolotti Zuñiga cbertolotti@usmp.edu.pe INTRODUCCIÓN UML (Unified Modeling Language) es un lenguaje que permite modelar,
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 detallesTema 5. Herencia. Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada
Tema 5 Herencia Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada Qué es la Herencia? Propiedad de que las instancias de una clase hija tengan acceso a la estructura de datos* y
Más detallesProgramación Orientada a Objetos GUÍA DOCENTE Curso
Programación Orientada a Objetos GUÍA DOCENTE Curso 2010-2011 Titulación: Grado en Matemáticas 701G Asignatura: Programación Orientada a Objetos 701206012 Materia: Módulo: M2 Informática Carácter: Obligatorio
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS
CONCEPTOS GENERALES PROGRAMACIÓN ORIENTADA A OBJETOS XAVIER CALDERÓN H. CONCEPTOS Paradigma: Palabra de origen griego que significa modelo o patrón. Paradigma de Programación: Propuesta de una comunidad
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 detallesLas redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:
Redes Semánticas Redes semánticas La lógica como lenguaje de representación tiene dificultades prácticas Son necesarios mecanismos mas intuitivos y fáciles de usar La psicología cognitiva afirma: La representación
Más detallesPROGRAMA 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 detallesUML. Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior
Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior MODELADO DE DATOS CON 2 MODELADO DE DATOS La forma en la que representamos los datos para trabajar con ellos. Depende en gran
Más detallesUNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA EAP INGENIERIA INFORMATICA CICLO ACADEMICO 2003 II SILABO
UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA EAP INGENIERIA INFORMATICA CICLO ACADEMICO 2003 II SILABO 1. INFORMACION GENERAL 1.01. Nombre de la Asignatura : Diseño de Sistemas de Información 1.02.
Más detallesTEMA 4. PROCESO UNIFICADO
TEMA 4. PROCESO UNIFICADO Definición El Proceso Unificado de Desarrollo Software es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura
Más detallesPrincipios de la Tecnología de Objetos
Principios de la Tecnología de Objetos Conceptos básicos de la Orientación a Objetos Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones
Más detallesTaller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Más detallesProgramación en Java. Horario: 3:00 PM 7:00PM
Horario: 3:00 PM 7:00PM Temario Lección 1: Orientación a objetos Lección 2: Creando una aplicación Java Lección 3: Creando Clases Lección 4: Programando en OO Lección 5: Manejo de excepciones Lección 6:
Más detallesTema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011
Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas
Más detallesIntroducció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 detallesTEMA 4. PROCESO UNIFICADO
TEMA 4. PROCESO UNIFICADO Diseño El objetivo final del diseño es producir un Modelo Lógico del sistema a implementar. Diferencia entre Análisis y Diseño del Proceso Unificado Modelo de Análisis Modelo
Más detallesDiseño estructural y propuesta de actividades. Desarrollo de software, metodología de proyectos IT, licenciatura en informática o afines
Formato 1 UNIVERSIDAD DE GUADALAJARA FASE 1 1. DATOS GENERALES DEL CURSO Nombre del curso Programación orientada a objetos Programa al que pertenece Créditos y horas Horas teoría 35 Horas práctica 70 Eje
Más detallesCapí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 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 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 SISTEMAS 1. INFORMACIÓN GENERAL
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 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 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 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 detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesProgramación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia
Programación orientada a objetos Capítulo 8 Mejora de las estructuras mediante herencia Clases y objetos de DoME Modelo de objetos Modelo de clases Crítica de la v1 de DoME - Duplicación de código - Las
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 detallesDefiniciones. 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 detallesINGENIERIA DE SOFTWARE ING. FRANCISCO RODRIGUEZ
INGENIERIA DE SOFTWARE ING. FRANCISCO RODRIGUEZ Ingeniería de Software Tema 4 Lenguaje de Modelado Unificado UML Ing. Francisco Rodríguez Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
Más detallesPROGRAMA ANALÍTICO DE ASIGNATURA
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO COORDINACIÓN DE DOCENCIA DIRECCIÓN DE PLANEACIÓN Y DESARROLLO EDUCATIVO PROGRAMA ANALÍTICO DE ASIGNATURA 1.- DATOS GENERALES 1.1 INSTITUTO: CIENCIAS BÁSICAS E
Más detallesGUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Más detallesUNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS VALLES PROGRAMA DE ESTUDIO PROGRAMACIÓN ORIENTADA A OBJETOS I.- DATOS GENERALES DEL PROGRAMA DE ESTUDIOS 1.- Nombre de la Asignatura: DISEÑO Y PROGRAMACIÓN
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 detallesCC61J / CC Taller de UML Apuntes de Clase
CC61J / CC5404 - Taller de UML Apuntes de Clase Prof. Andrés Muñoz Ordenes 14 de marzo de 2012 Agenda Presentaciones Docente Participantes Curso Introducción Motivación Qué es UML? Historia Características
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 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 detallesMODULO IV. Análisis y Diseño de Sistemas de Información INF-162 IV. UML. 4.1 Introducción
MODULO IV Análisis y Diseño de Sistemas de Información INF-162 IV. UML 4.1 Introducción Facilitador: Miguel Cotaña 17 de Mayo 2012 1 QUÉ ES UML? Un diagrama UML es una representación gráfica parcial (vista)
Más detallesPROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra
PROGRAMA DE CURSO Código Nombre CC3002 Metodologías de Diseño y Programación Nombre en Inglés Design and programming methodologies SCT Unidades Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de
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 detallesANÁLISIS Y DISEÑO ORIENTADO A OBJETOS
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS OBJETIVOS GENERALES Analizar, Diseñar e Implementar Sistemas Computacionales utilizando el Paradigma de la Orientación a Objetos a través del conocimiento de su sustentación
Más detallesINGENIERIA DE SOFTWARE. Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2017
INGENIERIA DE SOFTWARE Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2017 CONCEPTOS: En general, dentro de un Desarrollo OO se distinguen tres
Más detallesPresentación de la Asignatura.
INGENIERÍA DEL SOFTWARE I Tema 0 Presentación de la Asignatura www.ctr.unican.es/asignaturas/is1/ Profesorado Michael González Harbour (teoría, responsable asignatura) E-mail: mgh@unican.es Web: http://www.ctr.unican.es/
Más detallesPor qué están fallando los sistemas de información (SI)?
INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Por qué están fallando los sistemas de información (SI)? Desarrollos de software tienen unos costes incontrolados Los fabricantes de hardware obtienen unos
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS SEBASTIÁN DAVID MORENO BERNAL CRISTIAN CAMILO ORJUELA VELANDIA LENGUAJES DE PROGRAMACIÓN 24/04/2017 1. Introducción 2. Historia 3. Filosofía del paradigma 4. Conceptos
Más detallesIntroducción a la Orientación a Objetos
Introducción a la Orientación a Objetos Objetivo Describir el Paradigma de Orientación a Objetos incluyendo los conceptos relacionados al análisis, diseño y programación Temas a Tratar Paradigmas de Programación
Más detallesClases (construcción)
Clases (construcción) Carlos Fontela cfontela@fi.uba.ar Temario Implementación de clases Atributos Métodos y propiedades Constructores Excepciones Diseño contractual TDD o diseño guiado por las pruebas
Más detalles