SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
Didier Fabián Granados Muñoz

Sesión No. 4 – Programación Orientada a Objetos
Agosto 26 de 2008
 Se originan y apoyan a partir de modelos de programación ó
  desarrollos tecnológicos.
 Se soportan en mayor o menor grado en los principios de
  ingeniería.
 Las necesidades del negocio contribuyen a su fortalecimiento.
 Generalmente son evolucionistas: apropian las fortalezas de
  enfoques anteriores.
 Análisis y diseño estructurado como
  evolución de la programación
  estructurada (Orientada a procesos /
  Orientada a datos)
    Modularidad alrededor de la
     funcionalidad
 Análisis y diseño orientado a objetos
  como evolución de la programación
  orientada a objetos
    Modularidad alrededor de las entidades
     relevantes del problema
    Énfasis en reutilización (herencia)
    Énfasis en cohesión y acoplamiento
Datos




Procedimientos
“Universo de objetos responsables que
se comunican por medio de mensajes para
         cumplir unos objetivos”
IHacerReserva


                               Contenedor
                                                              <<comp_espec>>
                                                              SistemaReservas
                                                                                 ITomarReserva

Desarrollo basado en              <<comp_espec>>

componentes CBSE                 SistemaFacturacion
                                                      IFacturacion

(Component Based                              <<comp_espec>>          IClienteAdm
Software Engineering)                            ClienteAdm



                                                                       <<comp_espec>>
                                                                           HotelAdm

                                                                                          IHotelAdm




• Se hace énfasis en separación de la interfaz (contrato) de la implementación.
• Los servicios provistos por el contenedor (middleware) facilitan la
instanciación de los objetos concretos encargados de prestar los servicios
Portal de
                                                 Servicios Integrados
                                                                        Desarrollo Orientado a
Sistema
                                                                          Servicios (SODA)
 Batch
                                                                                Cluster de
                                                                              Servidores de
                                                                               Aplicaciones




          Base de
           Datos




                    Servidor de
                     Procesos
                       (BPM)


                                  Aplicaciones
                                    Legadas


  Énfasis en definición de funcionalidades de granularidad
  gruesa, denominadas servicios, que interactúa con
  aplicaciones y otros servicios a través de modelos de
  comunicación basado en mensajes débilmente acoplados.
Desarrollo orientado a aspectos
  Aproximación que permite analizar los asuntos de interés de un
  sistema (concerns) y detectar la funcionalidad transversal
  (crosscutting concerns) en más de un punto del sistema.
Bueno… y qué es un paradigma?
           Un paradigma es un conjunto de teorías generales,
suposiciones, leyes o técnicas de que se vale una escuela de
 análisis o comunidad científica para evaluar todas las cosas.
“Un paradigma es un conjunto de
creencias compartidas o de sabiduría
  convencional acerca de las cosas”.
                          Thomas Kuhn.
Bueno… y entonces…
 Es un paradigma de la programación
  de computadores.
 Hace referencia al conjunto de
  teorías, estándares, modelos y
  métodos que permiten organizar el
  conocimiento.
 Proporciona un medio bien definido
  para visualizar el dominio del
  problema.
 Implementa en un lenguaje de
  programación la solución a ese
  problema.
En otras palabras…
 La Programación Orientada a Objetos es intentar llevar a un
  programa de computador una visión de un problema que sea
  lo más cercana posible a la realidad, de acuerdo al ámbito en el
  que se desarrolla el mismo.
Programación Estructurada
 Conocida como programación
  tipo “spaguetti”.
 El código spaguetti es un término
  peyorativo para los programas de
  computación que tienen una
  estructura de control de flujo
  compleja e incomprensible.
 Se deriva del hecho que este tipo
  de código parece asemejarse a un
  plato de spaguettis, es decir, un
  montón de hilos intrincados y
  anudados.
Programación Estructurada
 El elemento básico es la función.
 Presta atención al conjunto de
   acciones que manipulan el flujo de
   datos (desde la situación inicial a la
   final)


Programación Orientada a Objetos
 El elemento básico es el objeto.
 Presta atención a la interrelación que
   existe entre los datos y las acciones a
   realizar con ellos.
El mundo está lleno de objetos reales, los
cuales se pueden representar como tales
en una solución computarizada.
Por ejemplo… un automóvil
¿Qué características puede tener?


 Color
 Marca
 Clase
 Línea
 Modelo
 Placa
 Carrocería
 Cilindraje
Y… ¿qué tal algo más familiar?
Un computador tiene, entre otras cosas:


 Marca
 Disco duro
 Procesador
 Memoria
 Teclado
 Mouse
 Monitor
 Parlantes
O ustedes mismos…
  Un estudiante tiene muchas características,
  entre ellas:


 Nombre
 Apellidos
 Edad
 Teléfono
 Dirección
 Carrera
 …
Los objetos enunciados anteriormente no solo tienen
sus características. También tienen la capacidad de
ejecutar diferentes acciones.
Un automóvil puede…

 Correr
 Hacer ruido
 Encender las luces
 Bajar vidrios
 Limpiar su parabrisas
 Frenar
 Pitar
 Estacionarse
Por un computador se puede…

 Iniciar su sistema operativo
 Mostrar los archivos
 Ejecutar programas
 Navegar por internet
 Colocar música
 Escribir documentos
 Ver fotografías
 Chatear...
Un estudiante puede…

 Hablar
 Leer
 Escribir
 Hacer preguntas
 Desplazarse
 Ver
 Escuchar
 …
 La POO brinda a través de sus herramientas, la
  facilidad de concebir, analizar, modelar, diseñar e
  implementar el mundo real de manera fiel a como se
  presenta en la realidad.
 La POO trata de amoldarse al modo de pensar del
  hombre y no al de la máquina.
 Cada forma de pensar y ver el mundo es diferente,
  sin embargo no se trata de programar orientado a
  objetos, se trata de programar bien aprovechando
  las ventajas de POO.
Clase   Objeto
 “Una clase representa a
  un conjunto de objetos
  que comparten estructura
  y comportamiento
  común” [Booch].

 Es el molde o plantilla
  con el que se puede
  construir objetos. En
  otras palabras, son
  abstracciones de objetos.
 Un objeto es cualquier cosa. Y es
  en serio! Un objeto es cualquier
  cosa de la cual podamos emitir
  un concepto, o descripción.

 En términos formales de la POO,
  un objeto es una instancia de
  una clase, llamando instanciar al
  hecho de producir y completar un
  objeto llenando con valores sus
  atributos.
Características o atributos


 Son los campos o propiedades de una
   clase.
 Ayudan a definir su estructura y permite
   diferenciarlo de otros objetos.
 Se define con un identificador y un tipo,
   el cual indica los valores que puede
   almacenar.
 El conjunto de valores de los campos
   definen el estado del objeto.
Acciones o Comportamientos


 Servicios, Métodos, Funciones o
  Procedimientos.
 Estos son los servicios que provee
  una clase, la forma en que es posible
  comunicarse con un objeto.
 Son la implementación algoritmos que representa una
  operación o función que un objeto realiza.
 El conjunto de los métodos de un objeto determinan su
  comportamiento.
Clase: Automóvil

 Atributos            Acciones
    Color               Correr
    Marca               Hacer ruido
    Clase               Encender las luces
    Línea               Bajar vidrios
    Modelo              Limpiar su
    Placa                parabrisas
    Carrocería          Frenar
    Cilindraje          Pitar
    No. de Puertas      Estacionarse

                                               Automóvil
Esta es la clase


             Automóvil


Y estos son objetos o instancias de la clase Automóvil:




   Mazda 3               Chevrolet Aveo           Renault Twingo
   Instanciación
    Es la acción de construir un objeto de una clase.


   ¿Cómo se hace en POO?
    Generalmente se utiliza la palabra clave “new”.

        Clase instancia = new Clase();
    Esto no necesariamente aplica para todas las clases, pues hay tipos que
    no se dejan instanciar… pero eso se verá luego.
Automovil




            Automovil Mazda3 = new Automovil()
Estado del Objeto: Chevrolet Aveo

 Atributos        Acciones
    Rojo            Correr
    Chevrolet       Hacer ruido
    Particular      Encender las luces
    Aveo GTI        Bajar vidrios
    2009            Limpiar su
    MON377           parabrisas
    Hatchback       Frenar
    1600            Pitar
    3 puertas       Estacionarse

                                           Chevrolet Aveo
Estado del Objeto: Renault Twingo

 Atributos        Acciones
    Gris            Correr
    Renault         Hacer ruido
    Particular      Encender las luces
    Twingo U        Bajar vidrios
    2007            Limpiar su
    FGW924           parabrisas
    Hatchback       Frenar
    1600            Pitar
    3 puertas       Estacionarse

                                           Renault Twingo
Encapsulamiento [1]


   Consiste en ocultar los detalles de
    la implementación de un objeto,
    a la vez que se provee una
    interfaz pública por medio de sus
    métodos permitidos.


   También se define como la
    propiedad de los objetos de
    permitir acceso a su estado
    solamente a través de su interfaz
    o de relaciones preestablecidas
    con otros objetos.
Encapsulamiento [2]


 Tipos de encapsulamiento.


    Privado: Atributo o método con
     el acceso privado solo puede ser
     modificado por medio de los
     métodos del mismo objeto que
     lo contiene. De esta manera si
     tenemos un atributo y queremos
     cambiar su valor con un método
     de otro objeto nos dará error de
     acceso.
                                        Lo que está dentro de
                                          la casa es privado
Encapsulamiento [3]


 Tipos de encapsulamiento.


    Público: Un método o atributo
     publico puede ser accedido y
     usado desde cualquier objeto, sin
     restricciones, desde cualquier
     parte del programa.




                                         Puertas, ventanas, techo…
                                           los ve todo el mundo
Encapsulamiento [4]


 Tipos de encapsulamiento.


    Protegido: Un atributo o
     método protegido es accesible
     por el objeto en sí y por sus
     clases derivadas, las que heredan
     de el.

    El concepto de herencia se verá a
     continuación…
                                         Los vidrios de las ventanas
                                         están protegidos por rejas
Herencia [1]


 Es uno de los mecanismos de la
   programación orientada a objetos,
   por medio del cual una clase se deriva
   de otra, compartiendo los atributos y
   métodos de la primera.
 La clase desde la cual se hace la
  derivación se llama superclase o
   clase padre, de manera que extiende
   su funcionalidad.
 La clase derivada se llama clase hija
  o subclase.
Herencia [2]
Un ejemplo sencillo…

                          Medios de Transporte




Automóvil
                                                   Barco



                Motocicleta             Avioneta
Herencia [3]
O algo más complejo…
                           Animales
                                             Reptiles



               Mamíferos              Aves
Polimorfismo


 Una misma operación puede
  realizarse de formas distintas en
  clases distintas. La semántica es
  común pero la implementación varía
  en cada clase.
 Así como la herencia está relacionada
  con las clases y su jerarquía, el
  polimorfismo se relaciona con los
  métodos.
Sobrecarga de métodos


 Es la capacidad que posee una clase
  de tener varios métodos con el
  mismo nombre y con igual retorno,
  pero que se diferencian en sus           cambiarColor(negro)
  argumentos.
 De esta manera el objeto al que se
  envía el mensaje sabe que método es
  el que debe de ejecutar.
 Pueden comportarse de forma
  distinta según la naturaleza de estos
  argumentos.                             cambiarColor(rojo, gris)
 Tipificación

  Es la aplicación de las características de la clase al objeto, de tal
  manera que los objetos de distintos tipos no pueden
  intercambiarse, o sólo se pueden intercambiar en forma
  restringida.


  Existen diferentes formas de tipificación:
      Tipificación estática: se hace en tiempo de compilación.
      Tipificación fuerte:
      Asociación dinámica: se hace en tiempo de ejecución.
 Concurrencia

  Es la propiedad que distingue a un objeto activo de otro que no
  está activo. Se puede considerar el activar al mismo tempo a
  varios objetos realizando diferentes tareas para un mismo
  proceso.


 Persistencia

  Es la propiedad que tiene un objeto de trascender en el tiempo,
  ya que continúa existiendo después de que su creador deja de
  existir, o en el espacio, donde el objeto sigue existiendo aún y
  cuando no exista el espacio donde fue creado.
class Domain Obj ects


                         Renault




       Automóv il        Mazda




                        Chev rolet

         Motor
 En UML, una clase está representada por un rectángulo con tres
   secciones.

  La primera sección
   corresponde al nombre de la
   clase.

  En la segunda sección se
   ubican los atributos de la
   clase.


  Y en la tercera sección se
   ubican los métodos de la
   clase.
   Los atributos se ingresan en la primera sección.
   Deben ir acompañados de sus correspondientes tipos de datos y
    encapsulamiento.

•   Nótese el orden de
    aparición:
      Primero aparece el tipo
        de encapsulamiento:
           + Público
           - Privado
           # Protegido
      Luego, el nombre del
        atributo, seguido de
        dos puntos.
      Y por último, el tipo del
        atributo.
   Los atributos se ingresan en la segunda sección.
   Se representan de la misma manera que los atributos, aunque con
    características adicionales..

 Primero aparece el tipo de
  encapsulamiento:
     + Público
     - Privado
     # Protegido
 Luego, el nombre del
  método, seguido de los
  tipos de sus parámetros
  correspondientes en
  paréntesis.
 Y por último, el tipo del
  atributo, después de los dos
  puntos.
Las subclases deben tener una línea terminada en una flecha grande que
apunta hacia la clase padre.

        class System


                               Automóv il




                Mazda          Chev rolet        Renault
Las subclases solo deben representar sus elementos propios, ya que, por la
representación UML, se entiende que contiene los elementos de la clase
padre.




 Un taxi es un automóvil con número de operación y que trabaja para una empresa.
   Es la manera como se relacionan dos o
    más clases.
   Un objeto conoce otro (tiene una
    referencia).
   Un objeto puede solicitar una operación
    en otro objeto pero no es responsable
    de él.
   La relación de asociación es más débil
    que la de agregación…. Y qué es la
    agregación?




       Un automóvil sabe qué es un motor, pero este
             posee igualmente sus especificaciones.
   Un objeto es propietario o responsable
    de otro objeto.
   La relación empleada aquí es la
    siguiente: "es parte de".
   Implica que ambos objetos tienen el
    mismo tiempo de vida.
   En UML se representa con un rombo
    vacío, el cual se coloca en el extremo
    contrario a la clase que es parte de la
    otra.




       Efectivamente, un motor es parte de un automóvil!
    Es dinámica, en tiempo de ejecución.
         Los objetos adquieren referencias de
          otros objetos.
         Los objetos tienen que respetar las
          interfaces de los otros objetos.
           Exige un diseño cuidadoso de las interfaces.
         Hay menos dependencias de
          implementación.
         Habrá más objetos en el sistema y por
          tanto el comportamiento del sistema
          dependerá de las interacciones entre
          objetos en vez de estar definido en una
          clase.
    En UML se representa de manera similar
     a la agregación, pero con el rombo
     lleno.
    Efectivamente, un automóvil está compuesto, entre otras
                                        cosas, de un motor.
Hubo varios conceptos de los que no se habló en clase, pero
es bueno que lo consulten, ya que son importantes en las
relaciones entre clases:

 Genericidad.
 Excepciones.
 Interfaces.
 Clases abstractas.
Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos
Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos

Weitere ähnliche Inhalte

Was ist angesagt?

Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srtCarlos Solano
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosjocuva101
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Modelo 5 estados
Modelo 5 estadosModelo 5 estados
Modelo 5 estadossueich
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datosLalo Osorio
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosMayra Romero
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datosAdriana Becerra
 
Mapa mental de memoria virtual
Mapa mental de memoria virtualMapa mental de memoria virtual
Mapa mental de memoria virtualjorge77712
 

Was ist angesagt? (20)

Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Modelo 5 estados
Modelo 5 estadosModelo 5 estados
Modelo 5 estados
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
5.1 ejemplos uml
5.1 ejemplos uml5.1 ejemplos uml
5.1 ejemplos uml
 
Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
Mapa mental de memoria virtual
Mapa mental de memoria virtualMapa mental de memoria virtual
Mapa mental de memoria virtual
 

Andere mochten auch

Formularios y Validaciones
Formularios y ValidacionesFormularios y Validaciones
Formularios y ValidacionesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Didier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDidier Granados
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaDidier Granados
 
Herramientas de Programacion Cliente Servidor
Herramientas de Programacion Cliente ServidorHerramientas de Programacion Cliente Servidor
Herramientas de Programacion Cliente ServidorHectlys Piña
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...Marta Silvia Tabares
 
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSSDinamiclerning
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSSRamón RS
 

Andere mochten auch (20)

Formularios y Validaciones
Formularios y ValidacionesFormularios y Validaciones
Formularios y Validaciones
 
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en Cascada
 
Herramientas de Programacion Cliente Servidor
Herramientas de Programacion Cliente ServidorHerramientas de Programacion Cliente Servidor
Herramientas de Programacion Cliente Servidor
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
 
SEO
SEOSEO
SEO
 
Wordpress
WordpressWordpress
Wordpress
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Presentación css
Presentación cssPresentación css
Presentación css
 
Guia de juguetes para padres
Guia de juguetes para padresGuia de juguetes para padres
Guia de juguetes para padres
 
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSS
 
3 the referential-theory2
3 the referential-theory23 the referential-theory2
3 the referential-theory2
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Introduccion a CSS I
Introduccion a CSS IIntroduccion a CSS I
Introduccion a CSS I
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSS
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 

Ähnlich wie Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos

Ähnlich wie Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos (20)

Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
 
Deber analisis
Deber analisisDeber analisis
Deber analisis
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Business Logic 2012
Business Logic 2012Business Logic 2012
Business Logic 2012
 
Poa 01
Poa 01Poa 01
Poa 01
 
Sesion 6 2 diseño análisis arquitectural
Sesion 6 2 diseño   análisis arquitecturalSesion 6 2 diseño   análisis arquitectural
Sesion 6 2 diseño análisis arquitectural
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Introduccion a la ingenieria de software
Introduccion a la ingenieria de softwareIntroduccion a la ingenieria de software
Introduccion a la ingenieria de software
 
Microsoft power point uml
Microsoft power point   umlMicrosoft power point   uml
Microsoft power point uml
 
Sistemas distribuidos2
Sistemas distribuidos2Sistemas distribuidos2
Sistemas distribuidos2
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
 
Laboratorio iii
Laboratorio iiiLaboratorio iii
Laboratorio iii
 
Colegio
ColegioColegio
Colegio
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming Middleware
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Modelo de clientes en MDM s, CRMs y ERPs
Modelo de clientes en MDM s, CRMs y ERPsModelo de clientes en MDM s, CRMs y ERPs
Modelo de clientes en MDM s, CRMs y ERPs
 
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
 

Kürzlich hochgeladen

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Kürzlich hochgeladen (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos

  • 1. Didier Fabián Granados Muñoz Sesión No. 4 – Programación Orientada a Objetos Agosto 26 de 2008
  • 2.  Se originan y apoyan a partir de modelos de programación ó desarrollos tecnológicos.  Se soportan en mayor o menor grado en los principios de ingeniería.  Las necesidades del negocio contribuyen a su fortalecimiento.  Generalmente son evolucionistas: apropian las fortalezas de enfoques anteriores.
  • 3.  Análisis y diseño estructurado como evolución de la programación estructurada (Orientada a procesos / Orientada a datos)  Modularidad alrededor de la funcionalidad  Análisis y diseño orientado a objetos como evolución de la programación orientada a objetos  Modularidad alrededor de las entidades relevantes del problema  Énfasis en reutilización (herencia)  Énfasis en cohesión y acoplamiento
  • 5. “Universo de objetos responsables que se comunican por medio de mensajes para cumplir unos objetivos”
  • 6. IHacerReserva Contenedor <<comp_espec>> SistemaReservas ITomarReserva Desarrollo basado en <<comp_espec>> componentes CBSE SistemaFacturacion IFacturacion (Component Based <<comp_espec>> IClienteAdm Software Engineering) ClienteAdm <<comp_espec>> HotelAdm IHotelAdm • Se hace énfasis en separación de la interfaz (contrato) de la implementación. • Los servicios provistos por el contenedor (middleware) facilitan la instanciación de los objetos concretos encargados de prestar los servicios
  • 7. Portal de Servicios Integrados Desarrollo Orientado a Sistema Servicios (SODA) Batch Cluster de Servidores de Aplicaciones Base de Datos Servidor de Procesos (BPM) Aplicaciones Legadas Énfasis en definición de funcionalidades de granularidad gruesa, denominadas servicios, que interactúa con aplicaciones y otros servicios a través de modelos de comunicación basado en mensajes débilmente acoplados.
  • 8. Desarrollo orientado a aspectos Aproximación que permite analizar los asuntos de interés de un sistema (concerns) y detectar la funcionalidad transversal (crosscutting concerns) en más de un punto del sistema.
  • 9.
  • 10.
  • 11. Bueno… y qué es un paradigma? Un paradigma es un conjunto de teorías generales, suposiciones, leyes o técnicas de que se vale una escuela de análisis o comunidad científica para evaluar todas las cosas.
  • 12. “Un paradigma es un conjunto de creencias compartidas o de sabiduría convencional acerca de las cosas”. Thomas Kuhn.
  • 14.  Es un paradigma de la programación de computadores.  Hace referencia al conjunto de teorías, estándares, modelos y métodos que permiten organizar el conocimiento.  Proporciona un medio bien definido para visualizar el dominio del problema.  Implementa en un lenguaje de programación la solución a ese problema.
  • 15. En otras palabras…  La Programación Orientada a Objetos es intentar llevar a un programa de computador una visión de un problema que sea lo más cercana posible a la realidad, de acuerdo al ámbito en el que se desarrolla el mismo.
  • 16. Programación Estructurada  Conocida como programación tipo “spaguetti”.  El código spaguetti es un término peyorativo para los programas de computación que tienen una estructura de control de flujo compleja e incomprensible.  Se deriva del hecho que este tipo de código parece asemejarse a un plato de spaguettis, es decir, un montón de hilos intrincados y anudados.
  • 17. Programación Estructurada  El elemento básico es la función.  Presta atención al conjunto de acciones que manipulan el flujo de datos (desde la situación inicial a la final) Programación Orientada a Objetos  El elemento básico es el objeto.  Presta atención a la interrelación que existe entre los datos y las acciones a realizar con ellos.
  • 18. El mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.
  • 19. Por ejemplo… un automóvil ¿Qué características puede tener?  Color  Marca  Clase  Línea  Modelo  Placa  Carrocería  Cilindraje
  • 20. Y… ¿qué tal algo más familiar? Un computador tiene, entre otras cosas:  Marca  Disco duro  Procesador  Memoria  Teclado  Mouse  Monitor  Parlantes
  • 21. O ustedes mismos… Un estudiante tiene muchas características, entre ellas:  Nombre  Apellidos  Edad  Teléfono  Dirección  Carrera  …
  • 22. Los objetos enunciados anteriormente no solo tienen sus características. También tienen la capacidad de ejecutar diferentes acciones.
  • 23. Un automóvil puede…  Correr  Hacer ruido  Encender las luces  Bajar vidrios  Limpiar su parabrisas  Frenar  Pitar  Estacionarse
  • 24. Por un computador se puede…  Iniciar su sistema operativo  Mostrar los archivos  Ejecutar programas  Navegar por internet  Colocar música  Escribir documentos  Ver fotografías  Chatear...
  • 25. Un estudiante puede…  Hablar  Leer  Escribir  Hacer preguntas  Desplazarse  Ver  Escuchar  …
  • 26.  La POO brinda a través de sus herramientas, la facilidad de concebir, analizar, modelar, diseñar e implementar el mundo real de manera fiel a como se presenta en la realidad.  La POO trata de amoldarse al modo de pensar del hombre y no al de la máquina.  Cada forma de pensar y ver el mundo es diferente, sin embargo no se trata de programar orientado a objetos, se trata de programar bien aprovechando las ventajas de POO.
  • 27.
  • 28. Clase Objeto
  • 29.  “Una clase representa a un conjunto de objetos que comparten estructura y comportamiento común” [Booch].  Es el molde o plantilla con el que se puede construir objetos. En otras palabras, son abstracciones de objetos.
  • 30.  Un objeto es cualquier cosa. Y es en serio! Un objeto es cualquier cosa de la cual podamos emitir un concepto, o descripción.  En términos formales de la POO, un objeto es una instancia de una clase, llamando instanciar al hecho de producir y completar un objeto llenando con valores sus atributos.
  • 31.
  • 32. Características o atributos  Son los campos o propiedades de una clase.  Ayudan a definir su estructura y permite diferenciarlo de otros objetos.  Se define con un identificador y un tipo, el cual indica los valores que puede almacenar.  El conjunto de valores de los campos definen el estado del objeto.
  • 33. Acciones o Comportamientos  Servicios, Métodos, Funciones o Procedimientos.  Estos son los servicios que provee una clase, la forma en que es posible comunicarse con un objeto.  Son la implementación algoritmos que representa una operación o función que un objeto realiza.  El conjunto de los métodos de un objeto determinan su comportamiento.
  • 34. Clase: Automóvil  Atributos  Acciones  Color  Correr  Marca  Hacer ruido  Clase  Encender las luces  Línea  Bajar vidrios  Modelo  Limpiar su  Placa parabrisas  Carrocería  Frenar  Cilindraje  Pitar  No. de Puertas  Estacionarse Automóvil
  • 35. Esta es la clase Automóvil Y estos son objetos o instancias de la clase Automóvil: Mazda 3 Chevrolet Aveo Renault Twingo
  • 36. Instanciación Es la acción de construir un objeto de una clase.  ¿Cómo se hace en POO? Generalmente se utiliza la palabra clave “new”. Clase instancia = new Clase(); Esto no necesariamente aplica para todas las clases, pues hay tipos que no se dejan instanciar… pero eso se verá luego.
  • 37. Automovil Automovil Mazda3 = new Automovil()
  • 38. Estado del Objeto: Chevrolet Aveo  Atributos  Acciones  Rojo  Correr  Chevrolet  Hacer ruido  Particular  Encender las luces  Aveo GTI  Bajar vidrios  2009  Limpiar su  MON377 parabrisas  Hatchback  Frenar  1600  Pitar  3 puertas  Estacionarse Chevrolet Aveo
  • 39. Estado del Objeto: Renault Twingo  Atributos  Acciones  Gris  Correr  Renault  Hacer ruido  Particular  Encender las luces  Twingo U  Bajar vidrios  2007  Limpiar su  FGW924 parabrisas  Hatchback  Frenar  1600  Pitar  3 puertas  Estacionarse Renault Twingo
  • 40.
  • 41. Encapsulamiento [1]  Consiste en ocultar los detalles de la implementación de un objeto, a la vez que se provee una interfaz pública por medio de sus métodos permitidos.  También se define como la propiedad de los objetos de permitir acceso a su estado solamente a través de su interfaz o de relaciones preestablecidas con otros objetos.
  • 42. Encapsulamiento [2]  Tipos de encapsulamiento.  Privado: Atributo o método con el acceso privado solo puede ser modificado por medio de los métodos del mismo objeto que lo contiene. De esta manera si tenemos un atributo y queremos cambiar su valor con un método de otro objeto nos dará error de acceso. Lo que está dentro de la casa es privado
  • 43. Encapsulamiento [3]  Tipos de encapsulamiento.  Público: Un método o atributo publico puede ser accedido y usado desde cualquier objeto, sin restricciones, desde cualquier parte del programa. Puertas, ventanas, techo… los ve todo el mundo
  • 44. Encapsulamiento [4]  Tipos de encapsulamiento.  Protegido: Un atributo o método protegido es accesible por el objeto en sí y por sus clases derivadas, las que heredan de el.  El concepto de herencia se verá a continuación… Los vidrios de las ventanas están protegidos por rejas
  • 45. Herencia [1]  Es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otra, compartiendo los atributos y métodos de la primera.  La clase desde la cual se hace la derivación se llama superclase o clase padre, de manera que extiende su funcionalidad.  La clase derivada se llama clase hija o subclase.
  • 46. Herencia [2] Un ejemplo sencillo… Medios de Transporte Automóvil Barco Motocicleta Avioneta
  • 47. Herencia [3] O algo más complejo… Animales Reptiles Mamíferos Aves
  • 48. Polimorfismo  Una misma operación puede realizarse de formas distintas en clases distintas. La semántica es común pero la implementación varía en cada clase.  Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos.
  • 49. Sobrecarga de métodos  Es la capacidad que posee una clase de tener varios métodos con el mismo nombre y con igual retorno, pero que se diferencian en sus cambiarColor(negro) argumentos.  De esta manera el objeto al que se envía el mensaje sabe que método es el que debe de ejecutar.  Pueden comportarse de forma distinta según la naturaleza de estos argumentos. cambiarColor(rojo, gris)
  • 50.  Tipificación Es la aplicación de las características de la clase al objeto, de tal manera que los objetos de distintos tipos no pueden intercambiarse, o sólo se pueden intercambiar en forma restringida. Existen diferentes formas de tipificación:  Tipificación estática: se hace en tiempo de compilación.  Tipificación fuerte:  Asociación dinámica: se hace en tiempo de ejecución.
  • 51.  Concurrencia Es la propiedad que distingue a un objeto activo de otro que no está activo. Se puede considerar el activar al mismo tempo a varios objetos realizando diferentes tareas para un mismo proceso.  Persistencia Es la propiedad que tiene un objeto de trascender en el tiempo, ya que continúa existiendo después de que su creador deja de existir, o en el espacio, donde el objeto sigue existiendo aún y cuando no exista el espacio donde fue creado.
  • 52. class Domain Obj ects Renault Automóv il Mazda Chev rolet Motor
  • 53.  En UML, una clase está representada por un rectángulo con tres secciones.  La primera sección corresponde al nombre de la clase.  En la segunda sección se ubican los atributos de la clase.  Y en la tercera sección se ubican los métodos de la clase.
  • 54. Los atributos se ingresan en la primera sección.  Deben ir acompañados de sus correspondientes tipos de datos y encapsulamiento. • Nótese el orden de aparición:  Primero aparece el tipo de encapsulamiento:  + Público  - Privado  # Protegido  Luego, el nombre del atributo, seguido de dos puntos.  Y por último, el tipo del atributo.
  • 55. Los atributos se ingresan en la segunda sección.  Se representan de la misma manera que los atributos, aunque con características adicionales..  Primero aparece el tipo de encapsulamiento:  + Público  - Privado  # Protegido  Luego, el nombre del método, seguido de los tipos de sus parámetros correspondientes en paréntesis.  Y por último, el tipo del atributo, después de los dos puntos.
  • 56. Las subclases deben tener una línea terminada en una flecha grande que apunta hacia la clase padre. class System Automóv il Mazda Chev rolet Renault
  • 57. Las subclases solo deben representar sus elementos propios, ya que, por la representación UML, se entiende que contiene los elementos de la clase padre. Un taxi es un automóvil con número de operación y que trabaja para una empresa.
  • 58. Es la manera como se relacionan dos o más clases.  Un objeto conoce otro (tiene una referencia).  Un objeto puede solicitar una operación en otro objeto pero no es responsable de él.  La relación de asociación es más débil que la de agregación…. Y qué es la agregación? Un automóvil sabe qué es un motor, pero este posee igualmente sus especificaciones.
  • 59. Un objeto es propietario o responsable de otro objeto.  La relación empleada aquí es la siguiente: "es parte de".  Implica que ambos objetos tienen el mismo tiempo de vida.  En UML se representa con un rombo vacío, el cual se coloca en el extremo contrario a la clase que es parte de la otra. Efectivamente, un motor es parte de un automóvil!
  • 60. Es dinámica, en tiempo de ejecución.  Los objetos adquieren referencias de otros objetos.  Los objetos tienen que respetar las interfaces de los otros objetos.  Exige un diseño cuidadoso de las interfaces.  Hay menos dependencias de implementación.  Habrá más objetos en el sistema y por tanto el comportamiento del sistema dependerá de las interacciones entre objetos en vez de estar definido en una clase.  En UML se representa de manera similar a la agregación, pero con el rombo lleno. Efectivamente, un automóvil está compuesto, entre otras cosas, de un motor.
  • 61. Hubo varios conceptos de los que no se habló en clase, pero es bueno que lo consulten, ya que son importantes en las relaciones entre clases:  Genericidad.  Excepciones.  Interfaces.  Clases abstractas.