Download - Programación Orientados a Objetos
-
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.