SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Mtro. José Antonio Sandoval Acosta
PROGRAMACIÓN ORIENTADA A OBJETOS
Unidad 1
PROGRAMACIÓN ORIENTADA A OBJETOS
Competencia de la unidad:
Comprende y aplica los conceptos del paradigma de
programación orientada a objetos para modelar situaciones de
la vida real.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué es un objeto?
• Un objeto es una entidad física o abstracta que tiene un
comportamiento antes ciertos estímulos, tanto externos como
de otros objetos específicos que se encuentran dentro del
sistema.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué se puede considerar como objeto?
- Persona
- Equipo Hardware
- Materiales
- Información
- Software
- Procesos
- Procedimientos
PROGRAMACIÓN ORIENTADA A OBJETOS
Objeto Físico: Horno
Operaciones asociadas:
• Encendido
• Apagado
PROGRAMACIÓN ORIENTADA A OBJETOS
Objeto Abstracto: Cola
Operaciones asociadas:
• Agregar elemento
• Eliminar elemento
• Verificar si está vacía
• Verificar si está llena
• Primer elemento de la cola
• Siguiente elemento de la cola
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
Del objeto “Vehículo de Motor” mencione cuales son sus operaciones
asociadas e identifique al menos 3 tipos:
PROGRAMACIÓN ORIENTADA A OBJETOS
Identidad de un objeto
• Cada objeto tiene su propia identidad que lo distingue de los demás
objetos. En otras palabras, dos objetos distintos no son iguales
aunque todos los valores de sus atributos sean idénticos.
PROGRAMACIÓN ORIENTADA A OBJETOS
• La programación orientada a objetos o POO (OOP según sus siglas en
inglés) es un paradigma de programación que usa objetos y sus
interacciones, para diseñar aplicaciones y programas informáticos.
• Está basado en varias técnicas incluyendo:
• Herencia
• Abstracción
• Polimorfismo y
• Encapsulamiento
PROGRAMACIÓN ORIENTADA A OBJETOS
Clases y Objetos
• Una clase es básicamente un plano para un tipo de datos personalizado.
Cuando se define una clase, se utiliza cargándola en la memoria.
• Una clase que se ha cargado en la memoria se denomina objeto o
instancia.
PROGRAMACIÓN ORIENTADA A OBJETOS
Las características principales de los objetos
son:
• Encapsulación: combinación en una sola
estructura los datos, procedimientos y
funciones que los manipulan para formar un
nuevo tipo - el objeto.
• Permite que la información de un objeto
permanezca oculta para el mundo exterior.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica
Del objeto “vehículo de motor” menciona los datos, procedimientos y
funciones que lo conforman:
PROGRAMACIÓN ORIENTADA A OBJETOS
• Herencia: Definición de un objeto y luego uso del mismo para construir una
jerarquía de objetos descendientes, con cada descendiente heredando
acceso a todo el código y datos del ancestro.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica
Del objeto “vehículo de motor” menciona al menos 3 tipos heredados y de
cada tipo al menos 2 subtipos heredados:
PROGRAMACIÓN ORIENTADA A OBJETOS
• Polimorfismo: Dada una acción un nombre que es compartido hacia
arriba y abajo en una jerarquía de objetos, con cada objeto en la jerarquía
implementando la acción de una manera apropiada a sí mismo.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica
De los 3 tipos de vehículos de motor que ya mencionaste describe como
realizan sus acciones básicas cada uno, diferenciándolos de los demás tipos:
PROGRAMACIÓN ORIENTADA A OBJETOS
• Abstracción: Es la encargada desde
el punto de vista de la
programación orientada a objetos
expresa las características
esenciales de un objeto, las cuales
distinguen al objeto de los demás.
Además de distinguir entre los
objetos provee límites
conceptuales.
• Entonces se puede decir que la
encapsulación separa las
características esenciales de las no
esenciales dentro de un objeto.
PROGRAMACIÓN ORIENTADA A OBJETOS
Aplicando
abstracción
Objetos polígonos
Clase polígono
Atributos
Vértices
Colordelborde
Colorde relleno
Operaciones
Dibujar
Borrar
Mover
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica
De los 3 tipos de vehículos de motor que ya mencionaste describe sus
componentes que son ocultados al exterior y por lo tanto resultan abstractos:
PROGRAMACIÓN ORIENTADA A OBJETOS
Tarea 1:
• Dibuje una jerarquía de vehículos para pasajeros (bicicleta, motocicleta,
automóvil, etc.)
• Comience con el diseño de un mapa conceptual de la Programación
Orientada a Objetos.
PROGRAMACIÓN ORIENTADA A OBJETOS
Modelado de Clases y Objetos con UML
PROGRAMACIÓN ORIENTADA A OBJETOS
• El lenguaje UML (en inglés, Unified Modeling Language) es un
lenguaje para la:
• Especificación,
• Visualización,
• Construcción, y
• Documentación de las partes de un sistema de software.
• Consiste en una colección de las mejores prácticas de ingeniería que
mostraron ser exitosas en el modelado de sistemas complejos.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Fue creado en 1996, por el Object Mangement Group (www.omg.org) con
sucesivas modificaciones y agregados para permitir mayor funcionalidad,
gracias al aporte y la participación de empresas como IBM, Hewlett
Packard, Microsoft, Unisys y Oracle, entre otras.
• Es un lenguaje predominantemente visual, que consiste de varios
diagramas, cada uno modelando un parte esencial del sistema a construir.
PROGRAMACIÓN ORIENTADA A OBJETOS
DIAGRAMA DE CLASES
• Las clases son dibujadas con un rectángulo, dividido en tres partes:
• El nombre de la clase,
• Los atributos, y
• Las operaciones correspondientes.
• Puede agregarse también una división en donde se especifican las
responsabilidades de esa clase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Representación de una clase
PROGRAMACIÓN ORIENTADA A OBJETOS
• El nombre de la clase debe ser lo menos ambiguo posible, usualmente
un sustantivo.
• Atributos: Los atributos describen las características de los objetos.
• Poseen un tipo, que nos indica qué clase de atributo es. Si bien existen
ciertos tipos primitivos, como enteros, booleanos y reales, cualquier tipo
puede ser usado, incluso otras clases.
PROGRAMACIÓN ORIENTADA A OBJETOS
• La restricción más importante es que los atributos son visibles
únicamente por la clase que los contiene.
• La sintaxis de declaración es la siguiente:
<nombre>:<tipo> < = valor_inicial >
• El dato valor_inicial es opcional y permite inicializar los atributos
directamente en la declaración.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Las operaciones son utilizadas para manipular los atributos o realizar
consultas.
• La sintaxis para describir una operación es la siguiente:
<nombre_operación>(<parámetros>):<tipo_resultado>
PROGRAMACIÓN ORIENTADA A OBJETOS
• A diferencia de los atributos, las operaciones pueden tener diferente
visibilidad hacia otras clases, la cual se denota entre llaves a la izquierda de
la declaración.
• Todas las operaciones están agrupadas de acuerdo a los estereotipos
• <<comando>>,
• <<consulta>> o
• <<constructor>> de acuerdo a su función en la clase.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Las responsabilidades son las obligaciones de una clase y son definidas
por el usuario.
• Si bien, existe un compartimiento dentro de la clase para la
especificación de las responsabilidades, éstas son de carácter opcional.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Dependiendo del nivel de detalle que queremos alcanzar en el modelo, se
pueden obviar algunas de las divisiones del gráfico de clases.
• Esto permite simplificar el diagrama completo, de acuerdo al nivel de
abstracción necesario. Puede utilizarse, por ejemplo
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
• Realice representación de clase de una persona con sus atributos básicos y
operaciones (al menos 3 de cada uno)
PROGRAMACIÓN ORIENTADA A OBJETOS
Notas en el diagrama:
• A los gráficos de clases se les puede agregar notas o comentarios sobre
algún aspecto interesante de la clase.
• Estas notas pueden incluir observaciones sobre la clase, alguna
restricción de uso, e incluso el pseudo-código de algunas operaciones.
• Se grafican por medio de un rectángulo con la esquina superior derecha
plegada, como si fuera una hoja, y se une con una línea al elemento de la
clase al cual corresponde la nota.
PROGRAMACIÓN ORIENTADA A OBJETOS
Representación de las Notas
PROGRAMACIÓN ORIENTADA A OBJETOS
Las relaciones más importantes entre clases que utilizaremos son:
• Asociaciones,
• Agregaciones,
• Dependencia, y
• Generalización.
PROGRAMACIÓN ORIENTADA A OBJETOS
Asociación (Conexión entre clases)
• Una asociación es una conexión entre clases. Significa que los objetos de
dos clases tendrán un vínculo bidireccional en común, el cual puede
interpretarse como “para cada X existe un Y”.
• Se representa por medio de una línea continua entre dos clases.
PROGRAMACIÓN ORIENTADA A OBJETOS
Multiplicidad
• Se utiliza multiplicidad cuando no necesariamente los vínculos entre
objetos son de uno a uno.
• Se especifica en cada extremo del vínculo, a través de un rango, cuántos
objetos pueden estar vinculados.
PROGRAMACIÓN ORIENTADA A OBJETOS
• El diagrama anterior indica que cada programador tendrá varias
computadoras (posiblemente ninguna), y que cada computadora será usada
por al menos un programador.
PROGRAMACIÓN ORIENTADA A OBJETOS
Rangos
• Algunos ejemplos de rangos son los siguientes:
Cuando no se especifica ningún rango, se asume el valor uno (1) por defecto.
Puede agregarse una flecha a la línea, indicando la dirección del vínculo:
PROGRAMACIÓN ORIENTADA A OBJETOS
Agregaciones (Posee/contiene)
• Agregación es un caso especial de asociación. Indica que una o más clases
(clases componentes) forman parte de otra clase (clase agregada).
• Se denota con un rombo en uno de los extremos del vínculo, aquél que
corresponde a la clase agregada.
• Puede interpretarse como “posee (o contiene) un”.
PROGRAMACIÓN ORIENTADA A OBJETOS
• En la agregación, la multiplicidad de la clase agregada debe ser cero o uno
(0..1), pero en las clases que conforman las partes puede ser un rango
cualquiera.
Aquí, el diagrama indica que una ventana de Windows puede contener
uno o más botones.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Otra posible forma de representar la agregación entre clases es incluir el
gráfico de una clase (el agregado) dentro del gráfico de otra. Por ejemplo;
PROGRAMACIÓN ORIENTADA A OBJETOS
• Si el agregado requiere especificar multiplicidad, escribimos el rango
correspondiente en la esquina superior derecha de la clase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica: Agregaciones (Posee/contiene)
• Identifique en un automóvil al menos 3 agregaciones que no sean las ya
mencionadas.
PROGRAMACIÓN ORIENTADA A OBJETOS
Dependencia (relación de uso)
• Es una relación de uso entre dos clases (una usa a la otra). Esta relación es
la más básica entre clases y comparada con los demás tipos de relación, la
mas débil.
Representación UML
• Se representa con una flecha discontinua que parte desde una clase y
apunta a otra. El sentido de la flecha nos indica quien usa a quien.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica: Dependencia (relación de uso)
• Identifique en una computadora que relación de dependencia tiene con
otros objetos.
PROGRAMACIÓN ORIENTADA A OBJETOS
Generalizaciones (Herencia/Especificación)
• La generalización es la relación entre una clase más general y un clase más
específica.
• La clase más especifica (denominada subclase) es consistente con la clase
más general (denominada superclase), y contiene información adicional.
• La generalización permite la especialización de las clases, es decir, en este
caso la superclase hereda todas sus características a la subclase.
PROGRAMACIÓN ORIENTADA A OBJETOS
Generalizaciones Se denota con un triángulo en el extremo del vínculo
correspondiente al elemento más general. La relación puede interpretarse
informalmente como “es un”.
• El diagrama indica que un taxi es una clase particular de autos, con una
patente (placa) extra y un código utilizado por la empresa. Son heredados
de la clase Auto todos los demás atributos, como la patente oficial, el
modelo, el motor, etc.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Cuando una clase posee más de una subclase, pueden organizarse en
forma de árbol de la siguiente manera:
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de Generalizaciones
• Identifique de un objeto avión al menos 3 generalizaciones con
sus respectivos atributos.
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo:
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de diagrama de clases:
PROGRAMACIÓN ORIENTADA A OBJETOS
Evidencia de aprendizaje 1:
• Genera la clase vehículo con todos sus atributos, acciones y hereda al menos
3 tipos de vehículos.
• A cada objeto heredado genera sus asociaciones, agregaciones, rangos,
multiplicidad, generalizaciones, etc. (entre 1 y 3 de cada una).
• Entregar trabajo individual con el diagrama completo en papel.
PROGRAMACIÓN ORIENTADA A OBJETOS
Instituto Tecnológico Superior de Guasave
RÚBRICA PARA EVIDENCIAS GRÁFICAS
Carrera:
Asignatura:
Tema:
Alumno/equipo:
DIMENSIONES O CRITERIOS A
EVALUAR
% POR
CRITERIO
%
OBTENIDO
OBSERVACIONES (anotar razones por las que no se alcanzó el porcentaje más
alto)
REDACCIÓN Y ORTOGRAFÍA 20%
Utiliza las reglas ortográficas básicas. 10
Claridad y continuidad del contenido. 10
FORMATO Y CONTENIDO 80%
Utiliza los elementos gráficos vistos en
clase
15
Ordena los elementos gráficos de manera
visual y entendible
15
Traza las relaciones de los gráficos
correctamente
10
Los elementos gráficos son fáciles de
interpretar
10
Se identifican claramente la idea principal
y las ideas secundarias
15
Se identifican claramente las jerarquías
existentes
15
Total de Puntos Obtenidos

Weitere ähnliche Inhalte

Ähnlich wie Introducción a la PPO

Ähnlich wie Introducción a la PPO (20)

Compu 1
Compu 1Compu 1
Compu 1
 
tecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdftecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdf
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Guia flash
Guia flashGuia flash
Guia flash
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetos
 
0 todo
0 todo0 todo
0 todo
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
Semana-ADS-03.pdf
Semana-ADS-03.pdfSemana-ADS-03.pdf
Semana-ADS-03.pdf
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 

Kürzlich hochgeladen

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 

Kürzlich hochgeladen (6)

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 

Introducción a la PPO

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO Instituto Tecnológico Superior de Guasave Ingeniería en Sistemas Computacionales Mtro. José Antonio Sandoval Acosta PROGRAMACIÓN ORIENTADA A OBJETOS
  • 2. Unidad 1 PROGRAMACIÓN ORIENTADA A OBJETOS Competencia de la unidad: Comprende y aplica los conceptos del paradigma de programación orientada a objetos para modelar situaciones de la vida real.
  • 3. PROGRAMACIÓN ORIENTADA A OBJETOS ¿Qué es un objeto? • Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
  • 4. PROGRAMACIÓN ORIENTADA A OBJETOS ¿Qué se puede considerar como objeto? - Persona - Equipo Hardware - Materiales - Información - Software - Procesos - Procedimientos
  • 5. PROGRAMACIÓN ORIENTADA A OBJETOS Objeto Físico: Horno Operaciones asociadas: • Encendido • Apagado
  • 6. PROGRAMACIÓN ORIENTADA A OBJETOS Objeto Abstracto: Cola Operaciones asociadas: • Agregar elemento • Eliminar elemento • Verificar si está vacía • Verificar si está llena • Primer elemento de la cola • Siguiente elemento de la cola
  • 7. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica: Del objeto “Vehículo de Motor” mencione cuales son sus operaciones asociadas e identifique al menos 3 tipos:
  • 8. PROGRAMACIÓN ORIENTADA A OBJETOS Identidad de un objeto • Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
  • 9. PROGRAMACIÓN ORIENTADA A OBJETOS • La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. • Está basado en varias técnicas incluyendo: • Herencia • Abstracción • Polimorfismo y • Encapsulamiento
  • 10. PROGRAMACIÓN ORIENTADA A OBJETOS Clases y Objetos • Una clase es básicamente un plano para un tipo de datos personalizado. Cuando se define una clase, se utiliza cargándola en la memoria. • Una clase que se ha cargado en la memoria se denomina objeto o instancia.
  • 11. PROGRAMACIÓN ORIENTADA A OBJETOS Las características principales de los objetos son: • Encapsulación: combinación en una sola estructura los datos, procedimientos y funciones que los manipulan para formar un nuevo tipo - el objeto. • Permite que la información de un objeto permanezca oculta para el mundo exterior.
  • 12. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica Del objeto “vehículo de motor” menciona los datos, procedimientos y funciones que lo conforman:
  • 13. PROGRAMACIÓN ORIENTADA A OBJETOS • Herencia: Definición de un objeto y luego uso del mismo para construir una jerarquía de objetos descendientes, con cada descendiente heredando acceso a todo el código y datos del ancestro.
  • 14. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica Del objeto “vehículo de motor” menciona al menos 3 tipos heredados y de cada tipo al menos 2 subtipos heredados:
  • 15. PROGRAMACIÓN ORIENTADA A OBJETOS • Polimorfismo: Dada una acción un nombre que es compartido hacia arriba y abajo en una jerarquía de objetos, con cada objeto en la jerarquía implementando la acción de una manera apropiada a sí mismo.
  • 16. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica De los 3 tipos de vehículos de motor que ya mencionaste describe como realizan sus acciones básicas cada uno, diferenciándolos de los demás tipos:
  • 17. PROGRAMACIÓN ORIENTADA A OBJETOS • Abstracción: Es la encargada desde el punto de vista de la programación orientada a objetos expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás. Además de distinguir entre los objetos provee límites conceptuales. • Entonces se puede decir que la encapsulación separa las características esenciales de las no esenciales dentro de un objeto.
  • 18. PROGRAMACIÓN ORIENTADA A OBJETOS Aplicando abstracción Objetos polígonos Clase polígono Atributos Vértices Colordelborde Colorde relleno Operaciones Dibujar Borrar Mover
  • 19. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica De los 3 tipos de vehículos de motor que ya mencionaste describe sus componentes que son ocultados al exterior y por lo tanto resultan abstractos:
  • 20. PROGRAMACIÓN ORIENTADA A OBJETOS Tarea 1: • Dibuje una jerarquía de vehículos para pasajeros (bicicleta, motocicleta, automóvil, etc.) • Comience con el diseño de un mapa conceptual de la Programación Orientada a Objetos.
  • 21. PROGRAMACIÓN ORIENTADA A OBJETOS Modelado de Clases y Objetos con UML
  • 22. PROGRAMACIÓN ORIENTADA A OBJETOS • El lenguaje UML (en inglés, Unified Modeling Language) es un lenguaje para la: • Especificación, • Visualización, • Construcción, y • Documentación de las partes de un sistema de software. • Consiste en una colección de las mejores prácticas de ingeniería que mostraron ser exitosas en el modelado de sistemas complejos.
  • 23. PROGRAMACIÓN ORIENTADA A OBJETOS • Fue creado en 1996, por el Object Mangement Group (www.omg.org) con sucesivas modificaciones y agregados para permitir mayor funcionalidad, gracias al aporte y la participación de empresas como IBM, Hewlett Packard, Microsoft, Unisys y Oracle, entre otras. • Es un lenguaje predominantemente visual, que consiste de varios diagramas, cada uno modelando un parte esencial del sistema a construir.
  • 24. PROGRAMACIÓN ORIENTADA A OBJETOS DIAGRAMA DE CLASES • Las clases son dibujadas con un rectángulo, dividido en tres partes: • El nombre de la clase, • Los atributos, y • Las operaciones correspondientes. • Puede agregarse también una división en donde se especifican las responsabilidades de esa clase.
  • 25. PROGRAMACIÓN ORIENTADA A OBJETOS Representación de una clase
  • 26. PROGRAMACIÓN ORIENTADA A OBJETOS • El nombre de la clase debe ser lo menos ambiguo posible, usualmente un sustantivo. • Atributos: Los atributos describen las características de los objetos. • Poseen un tipo, que nos indica qué clase de atributo es. Si bien existen ciertos tipos primitivos, como enteros, booleanos y reales, cualquier tipo puede ser usado, incluso otras clases.
  • 27. PROGRAMACIÓN ORIENTADA A OBJETOS • La restricción más importante es que los atributos son visibles únicamente por la clase que los contiene. • La sintaxis de declaración es la siguiente: <nombre>:<tipo> < = valor_inicial > • El dato valor_inicial es opcional y permite inicializar los atributos directamente en la declaración.
  • 28. PROGRAMACIÓN ORIENTADA A OBJETOS • Las operaciones son utilizadas para manipular los atributos o realizar consultas. • La sintaxis para describir una operación es la siguiente: <nombre_operación>(<parámetros>):<tipo_resultado>
  • 29. PROGRAMACIÓN ORIENTADA A OBJETOS • A diferencia de los atributos, las operaciones pueden tener diferente visibilidad hacia otras clases, la cual se denota entre llaves a la izquierda de la declaración. • Todas las operaciones están agrupadas de acuerdo a los estereotipos • <<comando>>, • <<consulta>> o • <<constructor>> de acuerdo a su función en la clase.
  • 30. PROGRAMACIÓN ORIENTADA A OBJETOS • Las responsabilidades son las obligaciones de una clase y son definidas por el usuario. • Si bien, existe un compartimiento dentro de la clase para la especificación de las responsabilidades, éstas son de carácter opcional.
  • 31. PROGRAMACIÓN ORIENTADA A OBJETOS • Dependiendo del nivel de detalle que queremos alcanzar en el modelo, se pueden obviar algunas de las divisiones del gráfico de clases. • Esto permite simplificar el diagrama completo, de acuerdo al nivel de abstracción necesario. Puede utilizarse, por ejemplo
  • 33. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica: • Realice representación de clase de una persona con sus atributos básicos y operaciones (al menos 3 de cada uno)
  • 34. PROGRAMACIÓN ORIENTADA A OBJETOS Notas en el diagrama: • A los gráficos de clases se les puede agregar notas o comentarios sobre algún aspecto interesante de la clase. • Estas notas pueden incluir observaciones sobre la clase, alguna restricción de uso, e incluso el pseudo-código de algunas operaciones. • Se grafican por medio de un rectángulo con la esquina superior derecha plegada, como si fuera una hoja, y se une con una línea al elemento de la clase al cual corresponde la nota.
  • 35. PROGRAMACIÓN ORIENTADA A OBJETOS Representación de las Notas
  • 36. PROGRAMACIÓN ORIENTADA A OBJETOS Las relaciones más importantes entre clases que utilizaremos son: • Asociaciones, • Agregaciones, • Dependencia, y • Generalización.
  • 37. PROGRAMACIÓN ORIENTADA A OBJETOS Asociación (Conexión entre clases) • Una asociación es una conexión entre clases. Significa que los objetos de dos clases tendrán un vínculo bidireccional en común, el cual puede interpretarse como “para cada X existe un Y”. • Se representa por medio de una línea continua entre dos clases.
  • 38. PROGRAMACIÓN ORIENTADA A OBJETOS Multiplicidad • Se utiliza multiplicidad cuando no necesariamente los vínculos entre objetos son de uno a uno. • Se especifica en cada extremo del vínculo, a través de un rango, cuántos objetos pueden estar vinculados.
  • 39. PROGRAMACIÓN ORIENTADA A OBJETOS • El diagrama anterior indica que cada programador tendrá varias computadoras (posiblemente ninguna), y que cada computadora será usada por al menos un programador.
  • 40. PROGRAMACIÓN ORIENTADA A OBJETOS Rangos • Algunos ejemplos de rangos son los siguientes: Cuando no se especifica ningún rango, se asume el valor uno (1) por defecto. Puede agregarse una flecha a la línea, indicando la dirección del vínculo:
  • 41. PROGRAMACIÓN ORIENTADA A OBJETOS Agregaciones (Posee/contiene) • Agregación es un caso especial de asociación. Indica que una o más clases (clases componentes) forman parte de otra clase (clase agregada). • Se denota con un rombo en uno de los extremos del vínculo, aquél que corresponde a la clase agregada. • Puede interpretarse como “posee (o contiene) un”.
  • 42. PROGRAMACIÓN ORIENTADA A OBJETOS • En la agregación, la multiplicidad de la clase agregada debe ser cero o uno (0..1), pero en las clases que conforman las partes puede ser un rango cualquiera. Aquí, el diagrama indica que una ventana de Windows puede contener uno o más botones.
  • 43. PROGRAMACIÓN ORIENTADA A OBJETOS • Otra posible forma de representar la agregación entre clases es incluir el gráfico de una clase (el agregado) dentro del gráfico de otra. Por ejemplo;
  • 44. PROGRAMACIÓN ORIENTADA A OBJETOS • Si el agregado requiere especificar multiplicidad, escribimos el rango correspondiente en la esquina superior derecha de la clase.
  • 45. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica: Agregaciones (Posee/contiene) • Identifique en un automóvil al menos 3 agregaciones que no sean las ya mencionadas.
  • 46. PROGRAMACIÓN ORIENTADA A OBJETOS Dependencia (relación de uso) • Es una relación de uso entre dos clases (una usa a la otra). Esta relación es la más básica entre clases y comparada con los demás tipos de relación, la mas débil. Representación UML • Se representa con una flecha discontinua que parte desde una clase y apunta a otra. El sentido de la flecha nos indica quien usa a quien.
  • 47. PROGRAMACIÓN ORIENTADA A OBJETOS Práctica: Dependencia (relación de uso) • Identifique en una computadora que relación de dependencia tiene con otros objetos.
  • 48. PROGRAMACIÓN ORIENTADA A OBJETOS Generalizaciones (Herencia/Especificación) • La generalización es la relación entre una clase más general y un clase más específica. • La clase más especifica (denominada subclase) es consistente con la clase más general (denominada superclase), y contiene información adicional. • La generalización permite la especialización de las clases, es decir, en este caso la superclase hereda todas sus características a la subclase.
  • 49. PROGRAMACIÓN ORIENTADA A OBJETOS Generalizaciones Se denota con un triángulo en el extremo del vínculo correspondiente al elemento más general. La relación puede interpretarse informalmente como “es un”. • El diagrama indica que un taxi es una clase particular de autos, con una patente (placa) extra y un código utilizado por la empresa. Son heredados de la clase Auto todos los demás atributos, como la patente oficial, el modelo, el motor, etc.
  • 50. PROGRAMACIÓN ORIENTADA A OBJETOS • Cuando una clase posee más de una subclase, pueden organizarse en forma de árbol de la siguiente manera:
  • 51. PROGRAMACIÓN ORIENTADA A OBJETOS Ejemplo de Generalizaciones • Identifique de un objeto avión al menos 3 generalizaciones con sus respectivos atributos.
  • 52. PROGRAMACIÓN ORIENTADA A OBJETOS Ejemplo:
  • 53. PROGRAMACIÓN ORIENTADA A OBJETOS Ejemplo de diagrama de clases:
  • 54. PROGRAMACIÓN ORIENTADA A OBJETOS Evidencia de aprendizaje 1: • Genera la clase vehículo con todos sus atributos, acciones y hereda al menos 3 tipos de vehículos. • A cada objeto heredado genera sus asociaciones, agregaciones, rangos, multiplicidad, generalizaciones, etc. (entre 1 y 3 de cada una). • Entregar trabajo individual con el diagrama completo en papel.
  • 55. PROGRAMACIÓN ORIENTADA A OBJETOS Instituto Tecnológico Superior de Guasave RÚBRICA PARA EVIDENCIAS GRÁFICAS Carrera: Asignatura: Tema: Alumno/equipo: DIMENSIONES O CRITERIOS A EVALUAR % POR CRITERIO % OBTENIDO OBSERVACIONES (anotar razones por las que no se alcanzó el porcentaje más alto) REDACCIÓN Y ORTOGRAFÍA 20% Utiliza las reglas ortográficas básicas. 10 Claridad y continuidad del contenido. 10 FORMATO Y CONTENIDO 80% Utiliza los elementos gráficos vistos en clase 15 Ordena los elementos gráficos de manera visual y entendible 15 Traza las relaciones de los gráficos correctamente 10 Los elementos gráficos son fáciles de interpretar 10 Se identifican claramente la idea principal y las ideas secundarias 15 Se identifican claramente las jerarquías existentes 15 Total de Puntos Obtenidos