![Page 1: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/1.jpg)
Metodología de la Programación Orientada a
ObjetosIng. Juan Carlos Pizarro Martínez
M.A. Martha Rangel Esquivel
![Page 2: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/2.jpg)
¿Qué es Orientado a Objetos? El termino OO, significa que el software es
organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos relacionados.
Los objetos se utilizan para representar objetos del mundo real, como pueden ser: productos, clientes y ordenes de compra. La idea básica es definir objetos de software que puedan interactuar unos con otros como lo hacen en el mundo real.
![Page 3: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/3.jpg)
La OO es especialmente adecuada para realizar determinadas aplicaciones, sobre todo realización de prototipos
Las aplicaciones orientadas a objetos son más sencillas de mantener
Razones fundamentales que están influyendo en la importancia de la POO
![Page 4: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/4.jpg)
Los mecanismos de encapsulamiento de POO soportan un alto grado de reutilización de código, incrementándose con la herencia y agregación.
Interfaces de usuario visuales
![Page 5: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/5.jpg)
POO Vs Programación Estructurada La POO es un modelo de lenguaje de
programación organizado alrededor de “objetos” en lugar de “acciones” y datos en lugar de lógica.
Históricamente, un programa era visto como un procedimiento lógico que tomaba entradas, las procesaba, y producía salidas.
entradas salidaproceso
![Page 6: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/6.jpg)
El reto era el como escribir la lógica, no como definir los datos.
La programación orientada a objetos se enfoca en que lo que importa son los objetos que queremos manipular, no la lógica que se requiere para manipularlos.
![Page 7: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/7.jpg)
La orientación a objetos obliga a reconsiderar nuestro pensamiento sobre la computación, y sobre cómo se estructura la información dentro de la computadora.
Metodología de la Programación Orientada a Objetos
![Page 8: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/8.jpg)
Es una metodología de desarrollo de software
que se enfoca en el paradigma de la POO
1. Nuestro mundo es un conjunto de agentes/objetos colaborando uno con otros.
2. El software se debe organizar de acuerdo a la estructura de mundo real.
Esto incrementa el entendimiento y evolución del software
Paradigmas de la MOO
![Page 9: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/9.jpg)
Nuestro mundo es un conjunto de agentes/objetos colaborando uno con otros.
Paradigma # 1
Ingenieros
Científicos
Escuelas
Fabricas
Empleados
Presidente
![Page 10: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/10.jpg)
El software se debe organizar de acuerdo a la estructura de mundo real.
Paradigma # 2
Objetos deDiseño
Objetos deLaboratorio
ObjetoAdministraciónde fabricas
ObjetoEmpleados
Objeto de Manejode Información
![Page 11: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/11.jpg)
Son elementos del mundo real a describir◦ Elementos de comportamiento autónomo
Objeto = atributos + operaciones + comportamientos
Atributos: datos del objeto Operaciones: para cambiar y/o hacer referencia
a los atributos Comportamientos: Al recibir estímulos
(eventos) realizan operaciones, cambian de estado y activan eventos.
Son Objetos Encapsulados
Objetos Computacionales
![Page 12: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/12.jpg)
Objetos
![Page 13: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/13.jpg)
Como describimos el mundo real?Concepto de clase + relación entre clases
Clase como conjunto de “objetos similares” en el mundo
Descripción del Mundo Real
![Page 14: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/14.jpg)
La abstracción consiste en aislar un elemento del resto de los elementos que lo acompañan.
Abstracción
![Page 15: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/15.jpg)
Las personas normalmente comprenden el mundo construyendo modelos mentales de partes del mismo; tratan de comprender cosas con las que pueden interactuar.
Los modelos mentales abstraen características de un objeto para nuestra comprensión, mientras que ignoran características irrelevantes.
Este proceso de abstracción es psicológicamente necesario y natural.
La Abstracción como proceso natural mental
![Page 16: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/16.jpg)
La abstracción es crucial para comprender este complejo mundo.
La abstracción es esencial para el funcionamiento de una mente humana normal.
La abstracción es una herramienta muy potente para tratar la complejidad.
La abstracción es la clave para diseñar buen software.
![Page 17: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/17.jpg)
Los objetos van desde seres humanos (descritos por el nombre, dirección, etc.) a edificios, pisos (de los cuales se puede describir sus atributos) hasta pequeños componentes del escritorio de una computadora (como botones y scroll bars).
Ejemplos de Objetos
![Page 18: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/18.jpg)
Objetos y Clases
![Page 19: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/19.jpg)
Clases y Objetos
![Page 20: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/20.jpg)
Jerarquía de Clase, Herencia, “es un”◦ Generalización / Especialización◦ Mamífero :, Chango :, Humano
Composición, Agregación, “tiene un”◦ Automóvil = llantas + carrocería + motor
Asociación, relación general entre clases◦ Empleado – (trabaja en) – Empresa
Dependencia
Relaciones entre Clases
![Page 21: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/21.jpg)
Herencia – “es un”
![Page 22: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/22.jpg)
Composición – “tiene un”
![Page 23: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/23.jpg)
Asociación / relación
![Page 24: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/24.jpg)
Dependencia
![Page 25: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/25.jpg)
Análisis / Diseño Orientado a Objetos (ADOO)
Programación Orientada a Objetos
Aspectos principales en la MOO
![Page 26: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/26.jpg)
Proceso típico de desarrollo Orientado a Objetos
![Page 27: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/27.jpg)
Permite una representación más directa de un modelo del mundo real en el código
Programación Orientada a Objetos
![Page 28: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/28.jpg)
Mejora la Productividad. La reutilización de componentes existentes acelera el proceso de desarrollo.
Las reducciones de código van desde un 40% con respecto a la programación estructurada.
Entrega de sistemas de alta calidad. El sistema se construye de componentes existentes debidamente validados y probados.
Beneficios de la POO
![Page 29: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/29.jpg)
Reducción del costo de mantenimiento. Los cambios se enfocan únicamente en los objetos afectados, sin necesidad de realizar cambios en todo el sistema.
Administración de la complejidad. Con la orientación a objetos, una solución compleja se puede dividir en varios componentes de menor complejidad que el todo.
![Page 30: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/30.jpg)
Probablemente la parte difícil de la creación de software orientado a objetos es:
Identificar las clases necesarias y el modo en que interactúan entre si.
![Page 31: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/31.jpg)
Los lenguajes orientados a objetos proveen la abstracción por medio de clases. Las clases definen las propiedades y métodos de un tipo de objeto.
Ejemplo: Puede crear una abstracción de un perro con características como, color, altura y peso, y acciones como ladrar y morder.
Las características representan las propiedades y las acciones los métodos.
Abstracción en la POO
![Page 32: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/32.jpg)
Practiquemos la Abstracción
estudiante
persona
maestro
empleado
![Page 33: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/33.jpg)
Identificación de clases/objetos
![Page 34: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/34.jpg)
Sigamos practicando…
![Page 35: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/35.jpg)
Identificación de clase/objetos
![Page 36: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/36.jpg)
Una mas…
![Page 37: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/37.jpg)
Objeto/ Composición /Relaciones
ventana
botones
Caja de texto
menu
![Page 38: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/38.jpg)
Lenguajes de Programación
![Page 39: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/39.jpg)
ALGOL
Simula
Smalltalk
ActorObject Pascal
Objective-C
C
C++
Pascal
Ada
Ada-95
Delphi
Basic
Java
Visual Basic
C#
![Page 40: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/40.jpg)
Es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90.
Java
![Page 41: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/41.jpg)
La sintaxis de Java se deriva en gran medida de C /C++, Pero a diferencia de éste todo en Java es un objeto.
Elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de apuntadores o memoria.
Permite Multihilos
![Page 42: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/42.jpg)
Es independiente de la plataforma, programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware.
La portabilidad es técnicamente difícil de lograr, y el éxito de Java en ese campo ha sido el simplificar su logro.
Distribuido bajo la licencia GNU GPL (software Libre)
![Page 43: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/43.jpg)
Programas que pueden ser empotrados en una página Web
Programas autonomos llamados aplicaciones Java
Tipos de programas en Java
![Page 44: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/44.jpg)
Programas que pueden ser empotrados en una página Web (Applets, Servlets)
Programas autonomos llamados aplicaciones Java
Tipos de programas en Java
![Page 45: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/45.jpg)
Programas que pueden ser empotrados en una página Web (Applets, Servlets)
Programas autonomos llamados aplicaciones Java Aplicaciones de consola
Tipos de programas en Java
![Page 46: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/46.jpg)
Programas que pueden ser empotrados en una página Web (Applets, Servlets)
Programas autonomos llamados aplicaciones Java Aplicaciones de consola Aplicaciones con ventanas
Tipos de programas en Java
![Page 47: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/47.jpg)
Versiones Java
![Page 48: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/48.jpg)
Proceso de compilación
![Page 49: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/49.jpg)
Proceso de compilación en un Programa C++
![Page 50: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/50.jpg)
Proceso de compilación en un Programa Java
![Page 51: Metodología de la Programación Orientada a Objetos](https://reader034.vdocuments.mx/reader034/viewer/2022051401/568150ae550346895dbec6b9/html5/thumbnails/51.jpg)
Estructura de directorios en Java