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 gr...
 Análisis y diseño estructurado como
  evolución de la programación
  estructurada (Orientada a procesos /
  Orientada a ...
Datos




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


                               Contenedor
                                                              <<...
Portal de
                                                 Servicios Integrados
                                          ...
Desarrollo orientado a aspectos
  Aproximación que permite analizar los asuntos de interés de un
  sistema (concerns) y de...
Bueno… y qué es un paradigma?
           Un paradigma es un conjunto de teorías generales,
suposiciones, leyes o técnicas ...
“Un paradigma es un conjunto de
creencias compartidas o de sabiduría
  convencional acerca de las cosas”.
                ...
Bueno… y entonces…
 Es un paradigma de la programación
  de computadores.
 Hace referencia al conjunto de
  teorías, estándares, modelos y
...
En otras palabras…
 La Programación Orientada a Objetos es intentar llevar a un
  programa de computador una visión de un...
Programación Estructurada
 Conocida como programación
  tipo “spaguetti”.
 El código spaguetti es un término
  peyorativ...
Programación Estructurada
 El elemento básico es la función.
 Presta atención al conjunto de
   acciones que manipulan e...
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í...
Y… ¿qué tal algo más familiar?
Un computador tiene, entre otras cosas:


 Marca
 Disco duro
 Procesador
 Memoria
 Tec...
O ustedes mismos…
  Un estudiante tiene muchas características,
  entre ellas:


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

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

 Iniciar su sistema operativo
 Mostrar los archivos
 Ejecutar programas
 Navegar por inte...
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 mu...
Clase   Objeto
 “Una clase representa a
  un conjunto de objetos
  que comparten estructura
  y comportamiento
  común” [Booch].

 Es e...
 Un objeto es cualquier cosa. Y es
  en serio! Un objeto es cualquier
  cosa de la cual podamos emitir
  un concepto, o d...
Características o atributos


 Son los campos o propiedades de una
   clase.
 Ayudan a definir su estructura y permite
 ...
Acciones o Comportamientos


 Servicios, Métodos, Funciones o
  Procedimientos.
 Estos son los servicios que provee
  un...
Clase: Automóvil

 Atributos            Acciones
    Color               Correr
    Marca               Hacer ruido
...
Esta es la clase


             Automóvil


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




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


   ¿Cómo se hace en POO?
    Generalmente se ut...
Automovil




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

 Atributos        Acciones
    Rojo            Correr
    Chevrolet       Hacer r...
Estado del Objeto: Renault Twingo

 Atributos        Acciones
    Gris            Correr
    Renault         Hacer r...
Encapsulamiento [1]


   Consiste en ocultar los detalles de
    la implementación de un objeto,
    a la vez que se prov...
Encapsulamiento [2]


 Tipos de encapsulamiento.


    Privado: Atributo o método con
     el acceso privado solo puede ...
Encapsulamiento [3]


 Tipos de encapsulamiento.


    Público: Un método o atributo
     publico puede ser accedido y
 ...
Encapsulamiento [4]


 Tipos de encapsulamiento.


    Protegido: Un atributo o
     método protegido es accesible
     ...
Herencia [1]


 Es uno de los mecanismos de la
   programación orientada a objetos,
   por medio del cual una clase se de...
Herencia [2]
Un ejemplo sencillo…

                          Medios de Transporte




Automóvil
                          ...
Herencia [3]
O algo más complejo…
                           Animales
                                             Reptile...
Polimorfismo


 Una misma operación puede
  realizarse de formas distintas en
  clases distintas. La semántica es
  común...
Sobrecarga de métodos


 Es la capacidad que posee una clase
  de tener varios métodos con el
  mismo nombre y con igual ...
 Tipificación

  Es la aplicación de las características de la clase al objeto, de tal
  manera que los objetos de distin...
 Concurrencia

  Es la propiedad que distingue a un objeto activo de otro que no
  está activo. Se puede considerar el ac...
class Domain Obj ects


                         Renault




       Automóv il        Mazda




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

  La primera sección
   corresponde al no...
   Los atributos se ingresan en la primera sección.
   Deben ir acompañados de sus correspondientes tipos de datos y
   ...
   Los atributos se ingresan en la segunda sección.
   Se representan de la misma manera que los atributos, aunque con
 ...
Las subclases deben tener una línea terminada en una flecha grande que
apunta hacia la clase padre.

        class System
...
Las subclases solo deben representar sus elementos propios, ya que, por la
representación UML, se entiende que contiene lo...
   Es la manera como se relacionan dos o
    más clases.
   Un objeto conoce otro (tiene una
    referencia).
   Un obj...
   Un objeto es propietario o responsable
    de otro objeto.
   La relación empleada aquí es la
    siguiente: "es part...
    Es dinámica, en tiempo de ejecución.
         Los objetos adquieren referencias de
          otros objetos.
       ...
Hubo varios conceptos de los que no se habló en clase, pero
es bueno que lo consulten, ya que son importantes en las
relac...
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
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
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
Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos
Upcoming SlideShare
Loading in...5
×

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

3,030

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,030
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
224
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Didier Fabián Granados Muñoz Sesión No. 4 – Programación Orientada a Objetos Agosto 26 de 2008
  2. 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. 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
  4. 4. Datos Procedimientos
  5. 5. “Universo de objetos responsables que se comunican por medio de mensajes para cumplir unos objetivos”
  6. 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. 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. 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. 9. 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.
  10. 10. “Un paradigma es un conjunto de creencias compartidas o de sabiduría convencional acerca de las cosas”. Thomas Kuhn.
  11. 11. Bueno… y entonces…
  12. 12.  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.
  13. 13. 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.
  14. 14. 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.
  15. 15. 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.
  16. 16. El mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.
  17. 17. Por ejemplo… un automóvil ¿Qué características puede tener?  Color  Marca  Clase  Línea  Modelo  Placa  Carrocería  Cilindraje
  18. 18. Y… ¿qué tal algo más familiar? Un computador tiene, entre otras cosas:  Marca  Disco duro  Procesador  Memoria  Teclado  Mouse  Monitor  Parlantes
  19. 19. O ustedes mismos… Un estudiante tiene muchas características, entre ellas:  Nombre  Apellidos  Edad  Teléfono  Dirección  Carrera  …
  20. 20. Los objetos enunciados anteriormente no solo tienen sus características. También tienen la capacidad de ejecutar diferentes acciones.
  21. 21. Un automóvil puede…  Correr  Hacer ruido  Encender las luces  Bajar vidrios  Limpiar su parabrisas  Frenar  Pitar  Estacionarse
  22. 22. 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...
  23. 23. Un estudiante puede…  Hablar  Leer  Escribir  Hacer preguntas  Desplazarse  Ver  Escuchar  …
  24. 24.  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.
  25. 25. Clase Objeto
  26. 26.  “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.
  27. 27.  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.
  28. 28. 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.
  29. 29. 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.
  30. 30. 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
  31. 31. Esta es la clase Automóvil Y estos son objetos o instancias de la clase Automóvil: Mazda 3 Chevrolet Aveo Renault Twingo
  32. 32.  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.
  33. 33. Automovil Automovil Mazda3 = new Automovil()
  34. 34. 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
  35. 35. 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
  36. 36. 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.
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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.
  41. 41. Herencia [2] Un ejemplo sencillo… Medios de Transporte Automóvil Barco Motocicleta Avioneta
  42. 42. Herencia [3] O algo más complejo… Animales Reptiles Mamíferos Aves
  43. 43. 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.
  44. 44. 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)
  45. 45.  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.
  46. 46.  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.
  47. 47. class Domain Obj ects Renault Automóv il Mazda Chev rolet Motor
  48. 48.  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.
  49. 49.  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.
  50. 50.  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.
  51. 51. 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
  52. 52. 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.
  53. 53.  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.
  54. 54.  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!
  55. 55.  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.
  56. 56. 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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×