programación orientados a objetos

Upload: alejandra-ramos-hernandez

Post on 07-Jul-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Programación Orientados a Objetos

    1/29

    Tema 2. El paradigmaTema 2. El paradigmaOrientado a Objetos.Orientado a Objetos.

     Departamento de Lenguajes y Ciencias de la Computación

     E.T.S. de Ingenieros en Informática

    Universidad de álaga

    http://www.lcc.uma.es/~amg/ISE/Tema2.zip

  • 8/18/2019 Programación Orientados a Objetos

    2/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      2

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    'rograma'rograma

    El Paradigma Orientado a Objetos

     – Historia e introducción.

     – Conceptos básicos.

     – Aplicación de los conceptos en

    lenguajes de programación ymétodos de análisis.

  • 8/18/2019 Programación Orientados a Objetos

    3/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      3

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    E$olción (istóricaE$olción (istóricaABS

    TR ACCIÓN

    OPER ACION

    AL

    ABS

    TR ACCIÓ

    N

    DE

    DAT

    OS

    LenguajesMáquina /Ensamblad!

    C"d#Ins$#Simb#Ma%!s

    Id & Di! Mem#Mani'#T$al de

    Da$s

    (ORTRANSub!u$inas(un%ines

    Id# Simb#Ti's

    O'e!# !es$!ing#

    PASCALAnidamien$Sub'!g!amas

    Regis$!sTi's de)inids*es$# Din# Mem

    MOD+LA,-

    ADA

    En%a'sulam#

    O%$ul$# In)!m#Es'e% , Im'l

    Ti'

    Abs$!a%$ deDa$s

    LenguajesO!ien$ads a

    Obje$s

    Obje$sM.$dsMensajes

  • 8/18/2019 Programación Orientados a Objetos

    4/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      4

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    E$olción (istóricaE$olción (istórica

    COMPONENTES

    ABST

    R ACCIÓN

    OPER 

    ACIONAL

    ABS

    TR ACCIÓN

    DE

    DATOS

    LenguajesMáquina /Ensamblad!

    C"d#Ins$#Simb#Ma%!s

    Id & Di! Mem#Mani'#T$al deDa$s

    (ORTRANSub!u$inas(un%ines

    Id# Simb#Ti's

    O'e!# !es$!ing#

    PASCALAnidamien$

    Sub'!g!amas

    Regis$!sTi's de)inids

    *es$# Din# Mem

    MOD+LA,-ADA

    En%a'sulam#O%$ul$# In)!m#

    Es'e% , Im'l

    Ti'Abs$!a%$ de

    Da$s

    LenguajesO!ien$ads a

    Obje$s

    M.$dsMensajes Obje$s

    Een$sIn%a%i"n !em$a

    Cm'nen$es

  • 8/18/2019 Programación Orientados a Objetos

    5/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      5

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    IntrodcciónIntrodcción

    Razones para la crisis del sot!are

     – "Hacer un lápiz es di#cil$

     – "%a industria del sot!are se parecemás a ...

    • la abricación de armas$

    • la ontaner#a$&ecnolog#a ' objeti(o.

  • 8/18/2019 Programación Orientados a Objetos

    6/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      6

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    'rograma'rograma

    El Paradigma Orientado a Objetos

     – Historia e introducción.

     – Conceptos básicos.

     – Aplicación de los conceptos en

    lenguajes de programación y

    métodos de análisis.

  • 8/18/2019 Programación Orientados a Objetos

    7/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      7

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    )*+ es la Orientación a Objetos,)*+ es la Orientación a Objetos,

    El concepto surge en los lenguajes deprogramación – )e organiza el sot!are como una colección de objetos

    discretos *ue encapsulan• Estructuras de +atos y

    • Comportamiento.

     – ,n sistema OO unciona mediante la colaboración entrelos objetos *ue se comunican entre s#.

    El concepto se e-tiende a los métodos de análisis ydiseo

     – )e utilizan los objetos del mundo real como base paraconstruir modelos

     – %os elementos *ue orman los sistemas del mundo real secorresponden con objetos sot!are

    í

  • 8/18/2019 Programación Orientados a Objetos

    8/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      8

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

     Vehículo

    Punto

    Figura

     Animal

    !"3#

    2"2#

    2"!#

    5"2.5#

    Las clases ! los objetos est&n en todasLas clases ! los objetos est&n en todaspartespartes

    Platero:Animal

    I i í d l S f

  • 8/18/2019 Programación Orientados a Objetos

    9/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      $

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- "LSES ! O/0ETOS"onceptos b&sicos- "LSES ! O/0ETOS

    C%A)E – Atributos

     – Operaciones

     – Comportamiento

    Lavadora marca modelocapacidad: integer...

    ProgramarPonerRopaCerrarPuertaLavar  O/0E&O

     – 1alores de los atributos

     – Estado – 2dentidad

    ID:Lavadora

     marca=“Lapavacapacidad=!e"tado=centri#ugando

    I i í d l S ft

  • 8/18/2019 Programación Orientados a Objetos

    10/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !%

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- 'SO DE"onceptos b&sicos- 'SO DE%E1S0ES%E1S0ES

    :$andoADi"tancia :%elevi"or

    Conectar&'

    Canal&('

    2n(ocación de métodos

    3edio de colaboración

    entre objetos

    I i í d l S ft

  • 8/18/2019 Programación Orientados a Objetos

    11/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !!

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- E1"'S#L"I1"onceptos b&sicos- E1"'S#L"I1

    Ocultación de detalles

    Concepto de 2nteraz

    2ndependencia

      V o  l )

    *en"+ =, Vol))=, DAC+-.out=.-=, Amp/.gain=-.+=, 0*D1 Pre#1 ...

    *en"+ =, Vol))=, DAC+-.out=.-=, Amp/.gain=-.+=, 0*D1 Pre#1 ...

    *en" =, Vol2p =, =, *etting".vol))=, DAC+.out=3./=, Amp3.gain=-./=, 0*D1 Pre#1 ...

    *en" =, Vol2p =, =, *etting".vol))=, DAC+.out=3./=, Amp3.gain=-./=, 0*D1 Pre#1 ...

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    12/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !2

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- (E3E1"I"onceptos b&sicos- (E3E1"I

    4eneralización ' Especialización %os objetos 56eredan7 las caracter#sticas de la clase.

    %as clases pueden 6eredar de otras clases.

     – E-tensión.

     – Restricción.

     – 3odiicación.

    ,tilidad8

     – Abstracción.

     – Reutilización.

    4ormiga Plancha%elevi"or

    5lectrodom6"ticoten"i7ncon"umoConectarDe"conectar

    Lavadoracapacidad  numCanale" vapor

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    13/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !3

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- 'OLI%O34IS%O"onceptos b&sicos- 'OLI%O34IS%O

    Ej8 Operación 5Abrir7

    Permite al modelador 6ablar el lenguaje del cliente.

    E(ita asignar identiicadores artiiciosos para

    distinguir las operaciones.

    Contribuye a la reutilización de código.

    Ej8 Operación 5Enc6uar7

    Puerta Pla8oPuertoCuenta

     A9rir&' A9rir&'  A9rir&' A9rir&'

    %omaDeCorriente

    ten"i7n

    5nchu#ar&e:5lectrodom6"tico'

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    14/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !4

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onceptos b&sicos- SO"I"IO1"onceptos b&sicos- SO"I"IO1

    3odela la relación entre objetos 9necesariapara *ue se comuni*uen y colaboren:

    Asociación;Clase ' Enlace;Objeto

    &ipos básicos8 – Asociación

     – Herencia

     – Agregación ' Composición 9agregación uerte:

    Coche  $otor  r9ol 4o;a

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    15/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !5

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    (asta a5í deberíamos tener claro ...(asta a5í deberíamos tener claro ...

    Cómo surge el eno*ue OO.

    Cómo unciona un sistema OO.

    El concepto y la representación de8

    Asociación

     – Agregación

     – Herencia

    PolimorismoPaso de mensajes

    Encapsulación

    Clase y Objeto

     – Atributos

     – Operaciones

     – Comportamiento – 2dentidad

    2nteraz

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    16/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !6

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    'rograma'rograma

    El Paradigma Orientado a Objetos

     – Historia e introducción.

     – Conceptos básicos.

     – Aplicación de los conceptos en

    lenguajes de programación y

    métodos de análisis.

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    17/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !7

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

     "lases ! Objetos"lases ! Objetos

    C%A)E < 3O+,%O = &2PO

    • Criterio de 3odularización

    • Estado = Comportamiento

    • Entidad estática 9en general:

     O/0E&O < 2nstancia de una C%A)E

    • Objeto 9Clase: 1alor 9&ipo:

    • 2dentidad• Entidad dinámica

    • Cada objeto tiene su propio estado

    • Objetos de una clase comparten su comportamiento

    Ingeniería del Software

  • 8/18/2019 Programación Orientados a Objetos

    18/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !8

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    Métodos8 deinen el comportamiento deuna clase

    Invocacin de métodos: Paso de 3ensajeso9;.men"&arg"' men"&o9;1arg"'

    %+todos ! %ensajes%+todos ! %ensajes

    Punto

  • 8/18/2019 Programación Orientados a Objetos

    19/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      !$

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "lases"lases

    Est"uctu"as #ue encapsulan datos $funciones

    cla"" Punto

    @ pu9lic:Punto&'#loat 

  • 8/18/2019 Programación Orientados a Objetos

    20/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      2%

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "olaboración entre objetos"olaboración entre objetos

    %os objetos 9clases: colaboran para

    resol(er problemas.

    %a orma en *ue los objetos 9clases:

    colaboran puede ser muy (ariada8

     – Asociación simple

     – Herencia

     – Agregación – Composición

     – ...

    T 5 El P di O i d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    21/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      2!

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    cla"" *egmento @  private Punto inicio1#inal

      pu9lic *egmento&Punto p'@inicio = Punto&'

      #inal = p

      pu9lic #loat longitud&'@return inicio.di"tanciainal'

      pu9lic void  tra"ladarloat a1#loat 9'@inicio.tra"ladar&a19'#inal.tra"ladar&a19'

    gregación de objetosgregación de objetos

    T 5 El P di O i d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    22/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      22

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

     pu9lic cla"" 4a9itacion @ private int num4a9itacion private int numCama"

    declaraci7n de m6todo"...

     pu9lic cla"" 4otel- @4a9itacion h-

    4a9itacion h re"to declaracione"

    ...h- = neE 4a9itacion& '

    "omposición de objetos"omposición de objetos

    T 5 El P di O i t d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    23/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      23

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    "onstrcción ! Destrcción"onstrcción ! Destrcción

    +ierentes mecanismos para la creación y laeliminación de objetos> dependiendo del

    lenguaje.

    Construcción de objetos 9  reservar memoria:8

     – Constructores 9C==> Eiel> 0a(a:

     – 3étodos de clase 9)malltal?:

    Eliminación de objetos 9  liberar memoria:8

     – +estructores 9C==: – Recolección automática de memoria @garbage

    collection; 9)malltal?> Eiel> 0a(a:

    Detalle"

    T 5 El P di O i t d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    24/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      27

    Ingeniería del Software.Especicación

    Departamento de Lengajes ! "iencias de la"om tación.

    (erencia(erencia

    Posibilidad de reutilizar códigoAlgo más *ue incluir ic6eros o importar

    módulos+istintos tipos de 6erencia8

     – simple ' mltiple

     – de implementación'de interaz

    %imitacionesProblemas

    Figura

    Polígono 5lip"e

    CírculoIrregularRegular

    Detalle"

    T 5 El P di O i t d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    25/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      2$

    gEspecicación

    Departamento de Lengajes ! "iencias de la"om tación.

    (erencia(erencia

    E-tensión y Reutilización de código

    ,na clase deri(ada 6ereda el

    comportamiento de su clase padreRedeinición de métodos

    Clases abstractas

    Herencia mltiple ' Herencia repetida

    T 5 El P di O i t d ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    26/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      3%

    gEspecicación

    Departamento de Lengajes ! "iencias de la"om tación.

    'olimorsmo'olimorsmo

    ,na (ariable puede reerirse a objetos deuna clase distinta de la *ue se 6a declarado

    &ipo +inámico (s. &ipo EstáticoPolimorismo de objetos ' de mensajesRestricción en base a la 6erencia

    'un$e! a bje$ en C66

    Tema 5 El Paradigma Orientado a ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    27/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      3!

    gEspecicación

    Departamento de Lengajes ! "iencias de la"om tación.

    EncapslaciónEncapslación

    %as clases ocultan los detalles de realizaciónde los métodos.

    %os 5usuarios7 9los objetos *ue in(ocan

    esos métodos: conocen el interaz y lasemántica. Bo tienen *ue preocuparse de los

    detalles.

    El concepto de interaz puede ampliarse.

    Contribuye a la reusabilidad del código.

    Tema 5 El Paradigma Orientado a ObjIngeniería del Software.

  • 8/18/2019 Programación Orientados a Objetos

    28/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

      32

    gEspecicación

    Departamento de Lengajes ! "iencias de la"om tación.

    l n del tema 2 debemos tenerl n del tema 2 debemos tenerclaro ...claro ...

    Cómo surge y e(oluciona el concepto OO.Cuáles son los elementos y caracter#sticas

    básicas de este eno*ue.

    Cómo se plasma el eno*ue OO en loslenguajes de programación.

    %as particularidades *ue se introducen

    sobre los conceptos básicos al aplicarlos

    en sistemas reales

    Tema 5 El Paradigma Orientado a ObjIngeniería del Software.

    ó

  • 8/18/2019 Programación Orientados a Objetos

    29/29

    Tema 5. El Paradigma Orientado a Obj

    etos.

    gEspecicación

    Departamento de Lengajes ! "iencias de la

    continación ... continación ...

    El %enguaje de 3odelado ,niicado. – 2ntroduciremos ,3%> y

     – (eremos cómo realizar 

    • 3odelado estructural

    • 3odelado del comportamiento

    • 3odelado ar*uitectónico

    Preparación8

     – &ema . El Lenguaje de Modelado Unificado.

    6ttp8''polaris.lcc.uma.es'Damg'2)E'&ema.zip

     – Caps. >>F>G. )c6muller. Teach yourself UML in 24 hours. – Cap> . 5%os amigos7> The Unified Modeling Language.

     – Probar'0ugar con Rational Rose y MagicDra UML.