SlideShare a Scribd company logo
1 of 54
IAGP  1 Programación Orientada a Objetos 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  2 Programación Orientada a Objetos 2.1 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  3 Programación Orientada a Objetos 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  4 Programación Orientada a Objetos 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 en ejecució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 realizan estos desplazamientos se diferencia radicalmente, pero todos entenderían una petición común de ir a un destino especificado.
IAGP  5 Programación Orientada a Objetos 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 cada tipo. Esta posibilidad levanta otra preocupación:  sería extremadamente ineficaz redefinir los mismos métodos en cada ocurrencia de ese objeto.
IAGP  6 Programación Orientada a Objetos 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 un tipo 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  7 Programación Orientada a Objetos
IAGP  8 Programación Orientada a Objetos 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.  ,[object Object]
 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  9 Programación Orientada a Objetos Programa OO Colección estructurada de clases Clase Implementación de un TAD Objeto Una instancia de una clase Los objetos se comunican mediante mensajes
IAGP  10 Programación Orientada a Objetos 2.2 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  11 Programación Orientada a Objetos 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 su través al interior de la célula.
IAGP  12 Programación Orientada a Objetos Los objetos que contienen a otros, se llaman objetos compuestos, son importantes porque pueden representar estructuras más sofisticadas que los objetos simples. Un avió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  13 Programación Orientada a Objetos 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  14 Programación Orientada a Objetos 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  15 Programación Orientada a Objetos ¡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:   ,[object Object]
 Un método que el receptor sabe ejecutar
 Un conjunto de parámetros que el método requiere para realizar su función,[object Object]
IAGP  17 Programación Orientada a Objetos 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  18 Programación Orientada a Objetos
IAGP  19 Programación Orientada a Objetos 2.3 Modularidad Modularidad ,[object Object],arquitecturas flexibles hechas con componentes autónomos ,[object Object]
 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.,[object Object]
 Permitir una composición modular
 Producir módulos fáciles de comprender
 Favorecer la continuidad del software
 Protección modular,[object Object]
Contra-ejemplo: Módulos de Inicialización,[object Object]
 Independiente de la descomposición modular
 Ejemplos: Librerías de rutinas, Filtros de Unix
 Contra-ejemplo: Preprocesadores de lenguajes,[object Object]
 Contra-ejemplo: Dependencias secuenciales,[object Object]
 Ejemplos:Constantes simbólicas y Principio de Acceso Uniforme ,[object Object],Diseño de programas basado en la representación física de los datos y el uso de vectores estáticos
IAGP  25 Programación Orientada a Objetos 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. ,[object Object]
 Ejemplo: Módulos de entrada de datos comprueben su validez.
 Contra-ejemplo: Excepciones no disciplinadas.,[object Object]
 Pocas conexiones entre módulos
 Intercambio de información intermodular mínimo
 Conexiones explícitas
 Ocultamiento de InformaciónLas cuatro últimas se refieren a la comunicación entre módulos: uso o compartición de datos
IAGP  27 Programación Orientada a Objetos 2.4 Otras consideraciones Impacto de la POO ,[object Object]
 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,[object Object]
 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,[object Object]
 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)

More Related Content

What's hot

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjoelnicolasv
 
Programacion a objetos estructurados
Programacion a objetos estructuradosProgramacion a objetos estructurados
Programacion a objetos estructuradosMichael Hinostroza
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosmercysalvatierra
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POOjvaldes9928
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ISILVA19_PAMELA
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herenciaPedro Alvarez
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosJonathan Abel
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosMarcelo Brocel
 
diapositiva de base de datos
diapositiva de base de datos diapositiva de base de datos
diapositiva de base de datos thelegendary
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamientograchika
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosmaikitejeda
 

What's hot (18)

Programacion orientado a objetos
Programacion orientado a objetosProgramacion orientado a objetos
Programacion orientado a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion a objetos estructurados
Programacion a objetos estructuradosProgramacion a objetos estructurados
Programacion a objetos estructurados
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Cspr
CsprCspr
Cspr
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POO
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
diapositiva de base de datos
diapositiva de base de datos diapositiva de base de datos
diapositiva de base de datos
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Similar to Programacion o o

Actividad nº 7
Actividad nº 7Actividad nº 7
Actividad nº 7marcos_77
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a ObjetosMegaMono
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAgapito26
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosJuan Carlos Riva
 
Programacion estructurada en objetos
Programacion estructurada en objetosProgramacion estructurada en objetos
Programacion estructurada en objetosAngel Ordoñez
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosCarlos Esteves
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosCarlos Esteves
 
Programación orientada a objeto
Programación orientada a objetoProgramación orientada a objeto
Programación orientada a objetoHRS1993
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionANGIEZAMBRANO57
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1Scott Chavez
 
Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objetokcarbache
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptjuan gonzalez
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaMarcos Acosta
 

Similar to Programacion o o (20)

Conceptos Basicos de POO
Conceptos Basicos de POOConceptos Basicos de POO
Conceptos Basicos de POO
 
Actividad nº 7
Actividad nº 7Actividad nº 7
Actividad nº 7
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a Objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programacion estructurada en objetos
Programacion estructurada en objetosProgramacion estructurada en objetos
Programacion estructurada en objetos
 
Tc2 301403 21
Tc2 301403 21Tc2 301403 21
Tc2 301403 21
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Unidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POOUnidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POO
 
Programación orientada a objeto
Programación orientada a objetoProgramación orientada a objeto
Programación orientada a objeto
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1
 
Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objeto
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
 

Recently uploaded

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 

Recently uploaded (20)

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 

Programacion o o

  • 1. IAGP 1 Programación Orientada a Objetos 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!!
  • 2. IAGP 2 Programación Orientada a Objetos 2.1 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.
  • 3. IAGP 3 Programación Orientada a Objetos 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.
  • 4. IAGP 4 Programación Orientada a Objetos 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 en ejecució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 realizan estos desplazamientos se diferencia radicalmente, pero todos entenderían una petición común de ir a un destino especificado.
  • 5. IAGP 5 Programación Orientada a Objetos 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 cada tipo. Esta posibilidad levanta otra preocupación: sería extremadamente ineficaz redefinir los mismos métodos en cada ocurrencia de ese objeto.
  • 6. IAGP 6 Programación Orientada a Objetos 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 un tipo 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
  • 7. IAGP 7 Programación Orientada a Objetos
  • 8.
  • 9. 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.
  • 10. IAGP 9 Programación Orientada a Objetos Programa OO Colección estructurada de clases Clase Implementación de un TAD Objeto Una instancia de una clase Los objetos se comunican mediante mensajes
  • 11. IAGP 10 Programación Orientada a Objetos 2.2 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.
  • 12. IAGP 11 Programación Orientada a Objetos 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 su través al interior de la célula.
  • 13. IAGP 12 Programación Orientada a Objetos Los objetos que contienen a otros, se llaman objetos compuestos, son importantes porque pueden representar estructuras más sofisticadas que los objetos simples. Un avió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.
  • 14. IAGP 13 Programación Orientada a Objetos 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.
  • 15. IAGP 14 Programación Orientada a Objetos 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.
  • 16.
  • 17. Un método que el receptor sabe ejecutar
  • 18.
  • 19. IAGP 17 Programación Orientada a Objetos 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.
  • 20. IAGP 18 Programación Orientada a Objetos
  • 21.
  • 22. Módulo: unidad básica de descomposición de un sistema software
  • 23.
  • 24. Permitir una composición modular
  • 25. Producir módulos fáciles de comprender
  • 26. Favorecer la continuidad del software
  • 27.
  • 28.
  • 29. Independiente de la descomposición modular
  • 30. Ejemplos: Librerías de rutinas, Filtros de Unix
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. Ejemplo: Módulos de entrada de datos comprueben su validez.
  • 36.
  • 37. Pocas conexiones entre módulos
  • 38. Intercambio de información intermodular mínimo
  • 40. Ocultamiento de InformaciónLas cuatro últimas se refieren a la comunicación entre módulos: uso o compartición de datos
  • 41.
  • 43. Proceso de modelado más simple
  • 44. Diseños más claros y manejables
  • 45. Incremento productividad de programadores
  • 46. Inconveniente: Curva de aprendizaje
  • 47. Diseño con objetos  diseño procedural
  • 48.
  • 49. Lenguajes O.O.: Representa elementos del marco del problema a resolver
  • 50. Código (solución): descripción del problema
  • 51.
  • 52. Programa: Conjunto de objetos. Se envían mensajes para decirse qué deben hacer
  • 53. Objetos pueden estar compuestos por otros
  • 54. Cada objeto es de un tipo (instancia de clase)
  • 55.
  • 56. Objeto: Pertenece a una clase.
  • 57. Define sus características y comportamiento
  • 58. POO crea nuevos tipos e instancia los objetos necesarios de esos tipos
  • 59. modelado: Mapeo 1 a 1 Problema  Solución
  • 60.
  • 62. Crear clientes de esas clases
  • 63. Sólo muestra lo necesario para quien programa clientes. Oculta el resto
  • 64. Interface  ¿Qué solicitudes puedo hacer?
  • 65. Implementación: Realización de las tareas de la interface
  • 66.
  • 68. No se menciona cómo se implementan las operaciones
  • 69. Java permite la construcción de TAD's
  • 70.
  • 71. El programa que usa el TAD no se modifica
  • 72. Sólo cambian los métodos del TAD
  • 73. Cambios transparentes al resto del programa
  • 75. Decisión de diseño (Programador del TAD)
  • 76.
  • 77. El cliente no necesita ver lo que no le afecta (simplicidad)
  • 78. Modificaciones en la implementación sin afectar a la interface  Cliente no afectado
  • 79. Niveles de acceso a miembros:
  • 80.
  • 81.
  • 82. Composición: Relación "tiene un" (has-a)
  • 83. Clases que contienen objetos de otras clases (member object)
  • 84. Objetos miembro: Privados si no son necesarios en la interface
  • 85. Herencia: Relación "es un" (is-a)
  • 86.
  • 87. El nuevo tipo es un duplicado del otro con añadidos y/o modificaciones
  • 88. Modificaciones en la clase original afectan a la clase hija
  • 89. Herencia: ¿Es realmente necesaria?
  • 90.
  • 91. Los miembros privados son inaccesibles
  • 92. Duplica el interface de la original. Es del mismo tipo que la clase base
  • 93. Formas de modificar la nueva clase:
  • 94. Añadir nuevos métodos
  • 95.
  • 96. Permite código independiente del tipo.
  • 97. Fácil de escribir y entender
  • 98. Al añadir nuevos tipos:
  • 99. No hay que reescribir código
  • 100.
  • 101. Mensaje a un objeto de tipo desconocido.
  • 102. Se ejecuta el método correcto
  • 103. No hay que especificarlo (en C++ virtual)
  • 104. Upcasting (Conversión a superclase)
  • 105. Ej. Figuras geométricas
  • 107.
  • 108. Sólo se permiten objetos de subclases
  • 109. Métodos abstractos (sin implementación)
  • 110. Sólo en clases abstractas
  • 112. Impiden implementar cualquier función
  • 114. Herencia diferente a clases (herencia múltiple)
  • 115.
  • 116. Variables de instancia, globales a la clase.
  • 117. Atributos de clase (información estática, compartida)
  • 118. Constructores. Código de inicialización
  • 119.
  • 120. Java invoca al constructor al crear el objeto
  • 121. La instanciación (new) reserva el lugar de almacenamiento e invoca al constructor
  • 122. Nombre del constructor = nombre de la clase
  • 123.
  • 124. Una clase puede tener múltiples constructores
  • 125. Sobrecarga de constructorespublic class Coordenada { double x, y; public Coordenada(){ x = 0.0; y = 0.0; } public Coordenada (double v1, double v2){ x = v1; y = v2; } }
  • 126.
  • 127. Clase sin constructor: El compilador crea un constructor "por defecto".
  • 128. Si hay constructores con argumentos, no se crea el "constructor por defecto". Ejemplo.
  • 129. Error si se invoca el constr. sin parámetros
  • 130. Constructores que invocan a otros constructores:
  • 131.
  • 132. Permite invocar métodos del objeto actual.
  • 133. No es necesario this para hacer eso
  • 134. Permite referenciar atributos del objeto actual
  • 135. Necesario si estan ocultos por parámetros / variables de ámbito más local. Ejemplo.
  • 136. Permite devolver una ref. al objeto actual
  • 137.
  • 138. Reutilización de código por medio de herencia
  • 139. super invoca al comportamiento anterior.
  • 140. Además se puede añadir comportamiento adicional
  • 141. Implícita en constructores como 1ª instrucción
  • 142.
  • 143. Desde métodos static la referencia this no tiene sentido
  • 144. No se puede acceder a miembros no estáticos desde métodos estáticos
  • 145. static: Semántica de "ámbito global"
  • 146.
  • 147. Creado por Alan Kay, Adele Goldberg y Daniel Ingalls
  • 148. Influenciado por Simula y Lisp
  • 149. “El objetivo del proyecto de Smalltalk es proporcionar soporte informatizado para el espíritu creativo”
  • 150.
  • 151. “Un lenguaje para ordenadores debería:
  • 152. soportar el concepto de Objeto y proporcionar un medio uniforme para identificarlos.
  • 153. proporcionar un medio de clasificar los objetos y de crear nuevas clases con la misma base que las del núcleo.
  • 154. ser Independiente de la representación (polimorfismo)
  • 155. factorizar comportamiento común (herencia)”
  • 156.
  • 157. A finales de 1993 se creó el Comité para la estandarización de Smalltalk X3J20.
  • 158. El primer borrador aparece a finales de 1995
  • 159. 50% sintaxis/semántica y 50% Librerías de clases
  • 160. Fácil debido a la simplicidad del lenguaje
  • 161. Código de aplicaciones muy portable
  • 162. En 1995 se forma el STIC (SmallTalk Industry Council) “una voz unificada para la comunidad Smalltalk”
  • 163.
  • 164. Responder a las necesidades de la industria Smalltalk
  • 165. Favorecer la aparición de estándares
  • 166. Crear un “punto de encuentro” para la comunidad Smalltalkhttp://www.stic.org Apuntes sobre Smalltalk: http://www.um.es/informatica/alumnos/apuntes/tercero/poo/smalltalk.ppt
  • 167.
  • 168.
  • 169. Pero tiene características especiales (diagonal) y propiedades especiales (4 lados, ángulos rectos)
  • 170. Algunas características de polígono pueden implementarse más eficientementeclass Rectangulo inherit Poligono feature ...Características específicas para rectángulos end