01 Introducción a POO

download 01 Introducción a POO

of 29

Transcript of 01 Introducción a POO

  • 8/7/2019 01 Introduccin a POO

    1/29

    1

    Tecnologa de la Programacin IIng. Zoraida Vidal Melgarejo, Mg.

    Introduccin a la ProgramacinOrientada a Objetos

  • 8/7/2019 01 Introduccin a POO

    2/29

    Conceptos de Orientacin a Objetos La orientacin a objetos es una manera natural de pensar acerca

    del mundo real y de escribir programas de cmputo.

    En cualquier parte del mundo real puede ver objetos : gente,

    animales, plantas, autos, aviones, edificios, computadoras, etc.

    Los humanos pensamos en trminos de objetos. Poseemos la

    habilidad de la abstraccin , que nos permite ver imgenesdigitales de personas, aviones, rboles y montaas como objetos,en vez de verlos como puntos de colores individuales.

    2

  • 8/7/2019 01 Introduccin a POO

    3/29

    Conceptos de Orientacin a Objetos An cuando son diferentes tipos de objetos, todos ellos tienen

    atributos como tamao, forma, color y peso; y todos exhiben comportamientos . Por ejemplo: una pelota rueda, rebota y se inflay desinfla; un beb llora, duerme, gatea, camina y parpadea.

    Los humanos aprenden acerca de los objetos estudiando susatributos y observando sus comportamientos. Distintos objetos

    pueden tener atributos similares y pueden exhibircomportamientos similares.

    3

  • 8/7/2019 01 Introduccin a POO

    4/29

    Anlisis y Diseo Orientado a Objetos Qu hara usted si se le pidiera crear un sistema de software para

    controlar las mquinas de cajero automtico para un importantebanco?

    Para crear las mejores soluciones, debe seguir un procesodetallado para obtener un anlisis de los requerimientos de suproyecto, y para desarrollar un diseo que cumpla con esos

    requerimientos. Si este proceso se hace desde un punto de vistaorientada a objetos, lo llamamos un proceso de anlisis y diseoorientado a objetos (A/DOO) .

    4

  • 8/7/2019 01 Introduccin a POO

    5/29

    Anlisis y Diseo Orientado a Objetos A/DOO es el trmino genrico para el proceso de analizar un

    problema y desarrollar un mtodo para resolverlo.

    Aunque existen muchos procesos de A/DOO distintos, existe un

    lenguaje grfico para comunicar los resultados de cualquierproceso A/DOO que se denomina Lenguaje Unificado de Modelado (UML) , el cual se desarroll a mediados de la dcadade los noventa, bajo la direccin inicial de tres metodologistas desoftware: Grady Booch, James Rumbaugh e Ivar Jacobson.

    5

  • 8/7/2019 01 Introduccin a POO

    6/29

  • 8/7/2019 01 Introduccin a POO

    7/29

    7

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

    La tecnologa de objetos es parte de la evolucin en TI

    Se hacen aplicaciones ms rpido

    Permite la reusabilidad del cdigo

    Se tiene mayor base para la calidad del software

    Es la base para arquitecturas distribuidas (CORBA y RMI) yWEB

  • 8/7/2019 01 Introduccin a POO

    8/29

    8

    ObjetosPermiten hacer sistemas ms adaptablesReducen el costo del mantenimiento y la modificacin

    ResultadosMejor mantenimientoRetroalimentacin con los usuariosEntregas ms rpidas a los usuarios mediante procesos iterativos eincrementales

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

  • 8/7/2019 01 Introduccin a POO

    9/29

    9

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

    Los Objetos son el puente entreUsuarios finales (expertos en el dominio) y programadoresAnlisis y Diseo

    Las ClasesExisten en el anlisis, el diseo y la implementacin

    Se relacionan directamente con los conceptos del dominioProveen un significado natural e intuitivo de las separaciones

  • 8/7/2019 01 Introduccin a POO

    10/29

    10

    Los requerimientos y la arquitectura pueden ser capturadas enuna forma razonable y repetible.Los objetos modelan los conceptos del mundo real y su

    comportamiento.Son fciles de entender.Interfaces bien definidas implementan calidad, funcionalidad y

    reusabilidad.Los cambios en los requerimientos son fciles de llevar a cabocon costos de mantenimiento menores.

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

  • 8/7/2019 01 Introduccin a POO

    11/29

    11

    Re-engeniera Cientfico SistemasEmpotradosInternet y

    eBusiness

    ArquitecturasDistribuidas

    Cliente/Servidor

    Financiero

    Comercial

    OLTP

    Telecomunicaciones. Tecnologa

    deObjetos

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

  • 8/7/2019 01 Introduccin a POO

    12/29

    12

    AnlisisDiseo

    Implementacin

    Modelo OO

    Anlisis deRequerimientos

    Anlisis Implementacin Integracin yPruebas

    Diseo

    CLASES

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

  • 8/7/2019 01 Introduccin a POO

    13/29

    13

    UML es una notacin grfica y textualRica, expresiva y extensibleUML no es una metodologa

    UML tiene toda la semntica y la notacin necesarias paraespecificar los artefactos requeridos para la construccin desoftware orientado a objetos

    UML no especifica un ciclo de desarrollo

    Programacin Orientada a Objetos

    Cmo nos ayuda la Tecnologa de Objetos?

  • 8/7/2019 01 Introduccin a POO

    14/29

    14

    Programacin Orientada a Objetos

    Objeto

    OperacinAtributoClase

    Mensaje

    Asociacin Herencia

    Tecnologade

    Objetos

    POO =Herencia PolimorfismoAbstraccin

  • 8/7/2019 01 Introduccin a POO

    15/29

    15

    Programacin Orientada a Objetos

    Qu es un Objeto?

    Definicin Filosfica : una entidad que uno puede reconocer.

    En Tecnologa de Objetos : una abstraccin de un objeto del

    mundo real, ya sea fsico o conceptual.

    En el dominio : una entidad relevante para el dominio de la

    aplicacin.

    En trmino de software : una estructura de datos con operacionesasociadas.

  • 8/7/2019 01 Introduccin a POO

    16/29

    16

    Programacin Orientada a Objetos

    Qu son las clases y los objetos?

    Una Clase : Modelos, abstraccin de objetos Define los atributos y el comportamiento de los objetos

    Es la platilla que define los objetos

    Un Objeto :

    Es una copia del molde de una clase Es una instancia simple de alguna clase Retiene la estructura y el comportamiento de alguna clase

  • 8/7/2019 01 Introduccin a POO

    17/29

    17

    Programacin Orientada a Objetos

    Los atributos del objeto mantienen su estado actual

    Los objetos almacenan su estado actual. Cada pieza almacenada (variable) se conoce como atributo.

    El valor de los atributos denota el estado actual del objeto.

    INK

    Atributo:Tinta disponible

    Atributo:Dinero disponible

    Objeto:Mi lapicero azul

    Objeto:Cajero Automtico BCP

  • 8/7/2019 01 Introduccin a POO

    18/29

    18

    Programacin Orientada a Objetos

    Los objetos tienen un comportamiento

    Un objeto existe para ofrecer cierto comportamiento(funcionalidad) al sistema.

    Cada comportamiento distinto es llamado operacin

    Objeto:Mi lapicero azul Operacin:

    Escribir

    Objeto:Cajero automtico BCP

    Operacin:Retirar

  • 8/7/2019 01 Introduccin a POO

    19/29

    19

    Programacin Orientada a Objetos

    Los objetos son modelados como Abstracciones

    Un objeto de Java es modelado como una representacin abstractade un objeto del mundo real.

    El modelo tiene solo los atributos y operaciones que son

    relevantes al contexto del problema.

    Atributos y operaciones del mundo real que no seran deseables en el modelo: Atributos: color de la tinta Operaciones: rellenar, cambiar color, punto, escribir

    Contexto: Catlogo de productosAtributos y operaciones del mundo real que seran deseables en el modelo: Atributos: modelo, fabricante, precio

    Operaciones: cambiar precio

  • 8/7/2019 01 Introduccin a POO

    20/29

    20

    Programacin Orientada a Objetos

    El Banco puedeser un objeto

    El Banco puede tenerCajeros que pueden

    ser objetos

    Un Cajero puede tenerteclado, lector de tarjetas,

    etc. Todas estas partespueden ser tambin

    objetos.

    Los objetos pueden ser compuestos

    Los objetos pueden estar compuestos de otros objetos. Los objetos pueden ser parte de otros objetos. Esta relacin entre objetos se conoce como agregacin .

  • 8/7/2019 01 Introduccin a POO

    21/29

    21

    Programacin Orientada a Objetos

    getEdad()

    Clienteo

    Invocador

    Persona

    Mensajenombredireccionedad

    getNombre

    setEdadgetEdad

    getDireccion setDireccion

    Clase Objeto

  • 8/7/2019 01 Introduccin a POO

    22/29

    22

    Programacin Orientada a ObjetosLos objetos colaboran entre si

    Los objetos trabajan juntos para cumplir una funcin y forman labase de una aplicacin. Todos los mtodos son definidos dentro de una clase.

    Todos los objetos son creados desde alguna clase y contienetodos los atributos y mtodos de la clase.

    Los objetos se asocian con otros para colaborar en una tarea

    comn. Los objetos asociados se comunican a travs del envo de

    mensajes (llamadas a mtodos)

  • 8/7/2019 01 Introduccin a POO

    23/29

    23

    Programacin Orientada a ObjetosLos objetos interactan mediante mensajes El objeto invocador debe estar asociado o enlazado con el que

    recibe la llamada. El objeto que enva el mensaje pide al receptor que realice alguna

    operacin que es especificada en el mensaje.

    Similar a la llamada a procedimientos o funciones: El que enva llama algn mtodo del receptor. El receptor ejecuta la tarea especificada.

    La llamada a mtodos es siempre en el contexto de algn objeto: miLapiz.escribe( ): Programacin orientada a objetos. escribe (miLapiz): Programacin estructurada tradicional.

  • 8/7/2019 01 Introduccin a POO

    24/29

    24

    Programacin Orientada a Objetos

    Cuando se crea el objeto mi lapicero azul, no hay que especificar susoperaciones o atributo. Simplemente se cual es la clase del objeto que secrea.

    Qu es una clase?

    Una clase es una plantilla para crear objetos. La definicin de una clase especifica las operaciones y los

    atributos para todas las instancias de la clase (objetos).

  • 8/7/2019 01 Introduccin a POO

    25/29

    25

    Programacin Orientada a Objetos

    Clases vs Objetos

    Las clases son la definicin esttica y estndar que usamos paracomprender todos los objetos de una clase (tipo).

    Los objetos los entidades (ejemplares) dinmicos que existen enel mundo real y en nuestra simulacin de este.

    Advertencia : Los especialistas ya acostumbrados a la orientacina objetos usan las palabras clase y objeto de forma indistinta; sedebe entender el contexto para diferenciar entre estos dossignificados.

  • 8/7/2019 01 Introduccin a POO

    26/29

    26

    Programacin Orientada a Objetos

    Qu es el encapsulamiento?

    El encapsulamiento consiste en ocultad la estructura y las

    operaciones de un objeto detrs de su interface. El cajero automtico es un objeto que le da dinero a sus clientes:

    El cajero oculta a sus clientes las operaciones internas querealiza.

    La interface (medio de operacin del cajero) es ofrecida por lasfunciones del teclado, la pantalla, y otros dispositivos.

    Si se pidiera violar el encapsulamiento del cajero se pudierarobar al banco.

    Violar el encapsulamiento en orientacin a objetos es imposible .

  • 8/7/2019 01 Introduccin a POO

    27/29

    27

    Programacin Orientada a ObjetosQu es la Herencia?

    Puede ser la concordancia entre varias clases.

    Define las propiedades comunes en una clase superclase.

    Cuenta de ahorros Cuenta corriente

    Cuenta

    Las subclases usan la herencia para aadir atributos o mtodos.Las subclases usan la herencia para cambiar mtodos.

    SuperclaseClase baseClase padre

    SubclaseClase derivadaClase hija

  • 8/7/2019 01 Introduccin a POO

    28/29

    28

    Programacin Orientada a Objetos

    Uso de la relacin es-un-tipo-de

    Un objeto de la subclase es un tipode objetos de la superclase.

    La subclase tiene todos los atributosy comportamientos de la superclase.

    Lapicero

    Lpiz

    Cuenta de Ahorros

    Cuenta

  • 8/7/2019 01 Introduccin a POO

    29/29

    29

    Programacin Orientada a ObjetosQu es el Polimorfismo?

    El polimorfismo se refiere a: Varias formas de hacer la misma operacin La habilidad de solicitar una operacin con el mismo significado

    a diferentes objetos, sabiendo que cada objeto implementa laoperacin a su forma.

    Los principios de la herencia y de la substitucin de objetos

    Cargan pasajeros