Vous êtes sur la page 1sur 29

Tema 2. El paradigma Orientado a Objetos.

Departamento de Lenguajes y Ciencias de la Computacin E.T.S. de Ingenieros en Informtica Universidad de laga http://www.lcc.uma.es/~amg/ISE/Tema2.zip

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

&rograma

El

&aradigma Orientado a Objetos

'istoria e introduccin. !onceptos b%sicos. (plicacin de los conceptos en lenguajes de programacin m)todos de an%lisis.

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje


A B S T R A C C I N D E D A T O S

A B S T R A C C I N O P E R A C I O N A L

E#olucin 'istrica
C"d#Ins$#Simb# Ma%! s Sub!u$inas (un%i nes Anidamien$ Sub'! g!amas En%a'sulam# O%$ul$# In) !m# Es'e% , Im'l M.$ d s Mensajes Lenguajes Mquina / Ensamblad ! (ORTRAN Id & Di! Mem# Mani'#T $al de Da$ s Id# Simb# Ti' s O'e!# !es$!ing# Regis$! s Ti' s de)inid s *es$# Din# Mem Ti' Abs$!a%$ de Da$ s Obje$ s

PASCAL

MOD+LA,ADA Lenguajes O!ien$ad s a Obje$ s

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje


A B S T R A C C I N D E D A T O S

A B S T R A C C I N O P E R A C I O N A L

E#olucin 'istrica
C"d#Ins$#Simb# Ma%! s Sub!u$inas (un%i nes Anidamien$ Sub'! g!amas En%a'sulam# O%$ul$# In) !m# Es'e% , Im'l

Lenguajes Mquina / Ensamblad ! (ORTRAN

Id & Di! Mem# Mani'#T $al de Da$ s Id# Simb# Ti' s O'e!# !es$!ing# Regis$! s Ti' s de)inid s *es$# Din# Mem Ti' Abs$!a%$ de Da$ s

PASCAL MOD+LA,ADA Lenguajes O!ien$ad s a Obje$ s

M.$ d s Mensajes

Obje$ s

E/en$ s In/ %a%i"n !em $a

COMPONENTES
C m' nen$es

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

Introduccin

*a+ones

para la crisis del software

,'acer un l%pi+ es difcil ,La industria del software se parece m%s a ...
la fabricacin de armas la fontanera-

Tecnologa
Departamento de Lenguajes "ni#ersidad de $%laga

. objeti#o.
5

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

&rograma

El

&aradigma Orientado a Objetos

'istoria e introduccin. !onceptos b%sicos. (plicacin de los conceptos en lenguajes de programacin m)todos de an%lisis.

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

,/u) es la Orientacin a Objetos

El concepto surge en los lenguajes de programacin


Se organi+a el software como una coleccin de objetos discretos 0ue encapsulan
Estructuras de Datos !omportamiento.

"n sistema OO funciona mediante la colaboracin entre los objetos 0ue se comunican entre s.

El concepto se e1tiende a los m)todos de an%lisis dise2o


Se utili+an los objetos del mundo real como base para construir modelos Los elementos 0ue forman los sistemas del mundo real se corresponden con objetos software

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

Las clases partes


Vehculo

los objetos est%n en todas

Platero:Animal Animal

Punto Figura !"3# 2"2# 2"!#


Departamento de Lenguajes "ni#ersidad de $%laga !iencias de la !omputacin.

5"2.5#

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 !L(SES


!L(SE

O45ETOS
Lavadora

(tributos Operaciones !omportamiento

marca modelo capacidad: integer ... Programar PonerRopa CerrarPuerta Lavar ID:Lavadora marca=Lapava capacidad=! e"tado=centri#ugando

O45ETO
6alores de los atributos Estado Identidad

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 &(SO DE $E7S(5ES


In#ocacin

de m)todos $edio de colaboracin entre objetos

Conectar&' :$andoADi"tancia Canal&(' :%elevi"or

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!%

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 E7!(&S"L(!I87


Ocultacin

de detalles !oncepto de Interfa+ Independencia


l) o V

*en" =, Vol2p =, *en"+ Vol)) *en" =, =, Vol2p =, *en"+ =, Vol)) =, *etting".vol)) =, DAC+-.out=..=, *etting".vol)) =, DAC+-.out=..=, DAC.+.out=3./ =, Amp./.gain=-.+ =, DAC.+.out=3./ =, Amp./.gain=-.+ =, Amp3..gain=-./ =, 0*D1 =, Amp3..gain=-./ =, 0*D1 Pre#1 Pre#1 ... ... =, 0*D1 Pre#1 ... =, 0*D1 Pre#1 ...
Departamento de Lenguajes "ni#ersidad de $%laga !iencias de la !omputacin.

!!

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 'E*E7!I(


9enerali+acin . Especiali+acin Los objetos :;eredan< las caractersticas de la clase. Las clases pueden ;eredar de otras clases.
E1tensin. *estriccin. $odificacin.
5lectrodom6"tico ten"i7n con"umo Conectar De"conectar

"tilidad3
(bstraccin. *eutili+acin.
Lavadora 4ormiga capacidad

%elevi"or numCanale"

Plancha vapor

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!2

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 &OLI$O*=IS$O

Ej3 Operacin :(brir<


Puerta A9rir&' Cuenta A9rir&' Puerto A9rir&' Pla8o A9rir&'

&ermite al modelador ;ablar el lenguaje del cliente. E#ita asignar identificadores artificiosos para distinguir las operaciones. !ontribu e a la reutili+acin de cdigo. Ej3 Operacin :Enc;ufar< %omaDeCorriente
ten"i7n 5nchu#ar&e:5lectrodom6"tico'

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!3

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onceptos b%sicos3 (SO!I(!IO7


$odela

la relacin entre objetos >necesaria para 0ue se comuni0uen colaboren? (sociacin@!lase . Enlace@Objeto Tipos b%sicos3
(sociacin 'erencia (gregacin . !omposicin >agregacin fuerte?
Coche $otor :r9ol 4o;a

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!4

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

'asta a0u deberamos tener claro ...


!mo

surge el enfo0ue OO. !mo funciona un sistema OO. El concepto la representacin de3
!lase

Objeto

(sociacin

(tributos Operaciones !omportamiento Identidad

(gregacin 'erencia
&olimorfismo &aso

Interfa+
Departamento de Lenguajes "ni#ersidad de $%laga

de mensajes Encapsulacin
!5

!iencias de la !omputacin.

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

&rograma

El

&aradigma Orientado a Objetos

'istoria e introduccin. !onceptos b%sicos. (plicacin de los conceptos en lenguajes de programacin m)todos de an%lisis.

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!6

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!lases
!L(SE

Objetos

A $OD"LO B TI&O

!riterio de $odulari+acin Estado B !omportamiento Entidad est%tica >en general?

O45ETO A Instancia de una !L(SE Objeto >!lase? 6alor >Tipo?


Identidad Entidad din%mica !ada objeto tiene su propio estado Objetos de una clase comparten su comportamiento
!iencias de la !omputacin.

Departamento de Lenguajes "ni#ersidad de $%laga

!7

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

$)todos
Mtodos3

$ensajes

definen el comportamiento de una clase


Punto <1=: #loat tra"ladar&a19' di"tancia&pto'

Estado e identidad Com&ortamiento

Invocaci

n!de!mtodos: &aso de $ensajes


men"&o9;1arg"' P-:Punto >=. ?=.

o9;.men"&arg"'

$!aslada!012,13

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

!8

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!lases
Est"uctu"as!#ue!encapsulan!datos!$!

funciones
cla"" Punto 4ARIABLES DE ESTADO @ pu9lic: 0DATOS MIEMBRO3 Punto&'A #loat <1=A void tra"ladar&#loat1 #loat'A void cam9iarB<&#loat a' @<=aACA void cam9iarB=&#loat 9' @==9ACA M5TODOS #loat di"tancia&Punto'A 0(+NCIONES MIEMBRO3 CA Departamento de Lenguajes !iencias de la !omputacin. !$ "ni#ersidad de $%laga
CONSTR+CTOR

'P(nto.)&&*

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!olaboracin entre objetos


Los

objetos >clases? colaboran para resol#er problemas. La forma en 0ue los objetos >clases? colaboran puede ser mu #ariada3
(sociacin simple 'erencia (gregacin !omposicin ...
!iencias de la !omputacin.

Departamento de Lenguajes "ni#ersidad de $%laga

2%

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

(gregacin de objetos
cla"" *egmento @ private Punto inicio1#inalA pu9lic *egmento&Punto p' @inicio = Punto&'A #inal = pAC pu9lic #loat longitud&' @return inicio.di"tancia&#inal'AC pu9lic void tra"ladar&#loat a1#loat 9' @inicio.tra"ladar&a19'A #inal.tra"ladar&a19'AC C
Departamento de Lenguajes "ni#ersidad de $%laga !iencias de la !omputacin.

2!

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!omposicin de objetos
pu9lic cla"" 4a9itacion @ private int num4a9itacionA private int numCama"A DD declaraci7n de m6todo" ... C pu9lic cla"" 4otel- @ 4a9itacion h-A 4a9itacion h.A DD re"to declaracione" ... h- = neE 4a9itacion& ... 'A C
!iencias de la !omputacin.

Departamento de Lenguajes "ni#ersidad de $%laga

22

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

!onstruccin
Diferentes

Destruccin

mecanismos para la creacin la eliminacin de objetosC dependiendo del lenguaje. !onstruccin de objetos > reservar memoria?3
!onstructores >!BBC EiffelC 5a#a? $)todos de clase >SmalltalD?
Eliminacin

de objetos > liberar memoria?3

Destructores >!BB? *ecoleccin autom%tica de memoria Egarbage collection@ >SmalltalDC EiffelC 5a#a?
Departamento de Lenguajes "ni#ersidad de $%laga !iencias de la !omputacin.

Detalle"

23

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

'erencia
&osibilidad

de reutili+ar cdigo (lgo m%s 0ue incluir fic;eros o importar mdulos Figura Distintos tipos de ;erencia3
simple . mFltiple de implementacin.de interfa+

Limitaciones &roblemas

Polgono

5lip"e

Regular

Irregular

Crculo

Detalle"
Departamento de Lenguajes "ni#ersidad de $%laga !iencias de la !omputacin.

27

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

'erencia
E1tensin

*eutili+acin de cdigo "na clase deri#ada ;ereda el comportamiento de su clase padre *edefinicin de m)todos !lases abstractas 'erencia mFltiple . 'erencia repetida

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

2$

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

&olimorfismo
'un$e! a bje$ en C66
"na

#ariable puede referirse a objetos de una clase distinta de la 0ue se ;a declarado Tipo Din%mico #s. Tipo Est%tico &olimorfismo de objetos . de mensajes *estriccin en base a la ;erencia

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

3%

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

Encapsulacin
Las

clases ocultan los detalles de reali+acin de los m)todos. Los :usuarios< >los objetos 0ue in#ocan esos m)todos? conocen el interfa+ la sem%ntica. 7o tienen 0ue preocuparse de los detalles. El concepto de interfa+ puede ampliarse. !ontribu e a la reusabilidad del cdigo.

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

3!

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

(l fin del tema 2 debemos tener claro ...


!mo

surge e#oluciona el concepto OO. !u%les son los elementos caractersticas b%sicas de este enfo0ue. !mo se plasma el enfo0ue OO en los lenguajes de programacin. Las particularidades 0ue se introducen sobre los conceptos b%sicos al aplicarlos en sistemas reales

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

32

Ingeniera del Software. Especificacin

Tema 5. El Paradigma Orientado a Obje

( continuacin ...

El Lenguaje de $odelado "nificado. Introduciremos "$LC #eremos cmo reali+ar


$odelado estructural $odelado del comportamiento $odelado ar0uitectnico

&reparacin3 Tema G. El Lenguaje de Modelado Unificado. ;ttp3..polaris.lcc.uma.es.Hamg.ISE.TemaG.+ip !aps. ICGCJCK. Sc;muller. Teach yourself UML in 24 hours. !apC I. :Los G amigos<C The Unified Modeling Language. &robar.5ugar con Rational Rose y MagicDra UML.

Departamento de Lenguajes "ni#ersidad de $%laga

!iencias de la !omputacin.

33