Anda di halaman 1dari 63

El Modelo Orientado a Objetos

UAMISoft 2006

El modelo de objetos: principios


Su objetivo es manejar la complejidad de sistemas de software. Simulaci n del mundo real! e"presi n de elementos del mundo real en la memoria de la computadora Se puede considerar como un concepto unificador de la inform#tica.

UAMISoft 2006

Fundamentos del modelo


Sus bases se crearon desde varias #reas de la computaci n!
Ar%uitectura de computadoras &en'uajes de pro'ramaci n Metodolo'(as de pro'ramaci n )ases de datos Inteli'encia artificial *ilosof(a + ciencia co'nitiva
UAMISoft 2006

Fundamentos del modelo


continuacin ....

Ar%uitectura de computadoras! Ar%uitecturas basadas en descriptores + posteriormente en capacidades- ofreciendo apo+o en .ardware a sistemas operativos Intentan cubrir el /.ueco/ entre abstracciones de alto nivel de los len'uajes de pro'ramaci n + abstracciones de bajo nivel de la propia m#%uina
UAMISoft 2006

Fundamentos del modelo


continuacin ....

&en'uajes de pro'ramaci n! 1onceptos 2objeto- clase + abstracci n3 creados + madurados en los len'uajes Simula- Smalltal4- 1&U + Ada. Metodolo'(as de pro'ramaci n! Adoptando los conceptos de modulari5aci n + ocultamiento de informaci n.
UAMISoft 2006

Fundamentos del modelo


continuacin ....

)ases de datos! Modelado de datos a trav6s de dia'ramas 7ntidad 8elaci n 2783. Inteli'encia artificial. Avances en la representaci n del conocimiento- obteniendo una comprensi n de las abstracciones 9:9.
UAMISoft 2006

Fundamentos del modelo


continuacin ....

*ilosof(a + ciencia co'nitiva!


2<rie'os3 7l mundo puede observarse en t6rminos de objetos o procesos. 2=escartes- si'lo >?II3 &os .umanos aplican en forma natural una visi n 9:9. 2Mins4+3 &a mente est# or'ani5ada como una sociedad de a'entes %ue carecen de mente + a trav6s de su comportamiento cooperativo se forma la inteli'encia.
UAMISoft 2006

Aplicacin del modelo


7l modelo de objetos se aplica en las actividades del proceso de desarrollo de software!
Aro'ramaci n 9rientada a 9bjetos =iseBo 9rientado a 9bjetos An#lisis 9rientado a 9bjetos

UAMISoft 2006

Programacin Orientada a Objetos


7s una forma de codificaci n- en donde los pro'ramas representan a colecciones cooperativas de objetos A su ve5- un objeto representa una instancia de una clase + las clases representan una jerar%u(a a trav6s de relaciones de .erencia.

UAMISoft 2006

Diseo Orientado a Objetos


Aroceso de diseBo %ue comprende!
la descomposici n 9:9 + una notaci n para describir los modelos l 'ico + f(sico los modelos est#tico + din#mico del sistema %ue se diseBa.

UAMISoft 2006

10

Anlisis Orientado a Objetos


M6todo de an#lisis %ue estudia los re%uisitos en el vocabulario del dominio del problemadesde la perspectiva de clases + objetos.

UAMISoft 2006

11

Elementos del modelo orientado a objetos


Se incluen en los sistemas orientados a objetos
7lementos )#sicos
Abstracci n 7ncapsulamiento Derar%u(a Modularidad

7lementos secundarios
Eipificaci n 1oncurrencia Aersistencia
UAMISoft 2006

12

Abstraccin
7stablece las caracter(sticas esenciales de un objeto %ue lo distin'ue de los dem#s!
9frece fronteras conceptuales bien definidas desde la perspectiva del observador.

UAMISoft 2006

1$

Abstraccin, Ejemplo
Se puede describir a una persona en forma diferente!
como empleado de una empresa como estudiante de la UAM. 7n ambos casos no tiene sentido describir el color de sus ojos o la forma de su vocaF Gesta informaci n no es esencialH Sin embar'o- puede definirse un m6todo para calcular su edad- ocultando la forma de .acerlo.
UAMISoft 2006

1,

Encapsulamiento
7s un mecanismo %ue permite separar la interfa5 de una abstracci n de su implantaci n Adem#s de no permitir el acceso directo a su estructura 2atributos + valores3

UAMISoft 2006

10

Modularidad
Aropiedad %ue tiene un sistema despu6s de ser descompuesto en m dulos con alta co.esi n + bajo acoplamiento.
Alta co.esi n- se refiere a a'rupar abstracciones %ue 'uarden cierta relaci n l 'ica. )ajo acoplamiento- se refiere a minimi5ar las dependencias entre m dulos.
UAMISoft 2006

16

erar!u"a
7s una clasificaci n u ordenaci n de abstracciones!
Derar%u(a <enerali5aci n I 7speciali5aci n 2Jerencia3 Derar%u(a Eodo I Aartes 2A're'aci n3

UAMISoft 2006

1;

#ipi$icacin
7s la aplicaci n de las caracter(sticas de la clase al objeto- de tal forma %ue!
los objetos de tipos distintos no pueden intercambiarseo s lo se pueden intercambiar en forma restrin'ida

7"isten diferentes formas de tipificaci n!


Eipificaci n est#tica Eipificaci n fuerte Asociaci n din#mica
UAMISoft 2006

1@

%oncurrencia
Aropiedad %ue distin'ue a un de otro %ue no est# activado. objeto activo

Se puede considerar el activar al mismo tiempo a varios objetos reali5ando diferentes tareas para un mismo proceso.

UAMISoft 2006

1C

Persistencia
7s la propiedad de un objeto de trascender! el tiempo 2continua e"istiendo despu6s de %ue su creador deja de e"istir3 +Io el espacio 2el objeto si'ue e"istiendo aKn + cuando no e"ista el espacio donde fue creado3. Se pueden considerar varios niveles de persistencia.
UAMISoft 2006

20

%lases & Objetos

UAMISoft 2006

21

Objetos
7l t6rmino 9bjeto fue formalmente utili5ado por primera ve5 en Simula 6;- para simular al'unos aspectos de la realidad &os objetos representan entidades %ue- en t6rminos 'enerales- se pueden describir con sustanti'os + se pueden clasificar en!
1osas tan'ibles 8oles Incidentes Interacciones 7specificaciones

UAMISoft 2006

22

Objetos: de$iniciones
Un objeto representa elementos identificables- unidades o entidadesindividuales- reales o abstractas- pero con rol bien definido en el dominio del problema LSmit. and Eoc4e+M Un objeto es un concepto- abstracci n o cosa con fronteras bien ndefinidas + si'nificado para el manejo del problema L8umbau'.M
UAMISoft 2006

2$

Objetos: de$iniciones
7s una entidad NAut nomaO %ue posee estado- comportamiento e identidad L)ooc.M
&a estructura + comportamiento de objetos similares son e"presadas a trav6s de una clase &os t6rminos objeto e instancia son intercambiables

UAMISoft 2006

2,

Objetos: caracter"sticas
7stado!
Abarca todas las propiedades del objeto 2normalmente est#ticas3 &os valores de sus propiedades 2normalmente din#micas3

UAMISoft 2006

20

Objetos: caracter"sticas
1omportamiento!
1onsiste en la forma de actuar + reaccionar de un objeto
=e acuerdo a sus cambios de estado al recibir de mensajes

=e acuerdo a su comportamiento un objeto puede tener operaciones de tipo!


Modificadoras Selectoras Iteradoras 1onstructoras =estructoras

UAMISoft 2006

26

Objetos: caracter"sticas
Identidad!
Son las propiedades de los objetos %ue los distin'uen de los dem#s
9cupan un lu'ar en el espacio Son representados por identificadores o por referencias Aueden tener varias referencias 2alias3

UAMISoft 2006

2;

Objetos: implementacin
Se puede clasificar como!
)asada en descriptores )asada en capacidad 7st#tica

UAMISoft 2006

2@

Objetos: implementacin
)asada en descriptores 2Smalltal43!
Aermite una tipificaci n din#mica poderosa

)asada en capacidad!
7s encontrada frecuentemente en bases de datos orientadas a objetos + sistemas operativos 2object idPs3

&a apro"imaci n est#tica es encontrada en len'uajes como 1QQ


UAMISoft 2006

2C

Objetos: implementacin
Una apro"imaci n basada en un /pro"+/ con una capa de indirecciones!
Se utili5a en manejadores de Smalltal4 Su uso principal es para la manipulaci n de objetos mi'rantes- en forma transparente + distribuida

UAMISoft 2006

$0

Objetos: relaciones
Un objeto definido e implementado en forma aislada GRo tiene nin'Kn sentidoH
Solo representar(a una parte aislada de una soluci n

UAMISoft 2006

$1

Objetos: relaciones
Se re%uiere de varios objetos para representar la soluci n de un problema
sistema=eAdministracion
cierre
$actura

poli(a
nota%red

empleado sueldo

departamento turno

contabilidad
cliente credito ser'icio

nomina
r%ontabilidad r%+% r*omina encabe(ado

cuentas)cobrar
UAMISoft 2006

reportes

Usuario

$2

Objetos: relaciones
7nlace o li'a! denota un tipo de asociaci n a trav6s de la cual un objeto 2cliente3- utili5a los servicios de otro 2servidor3estableciendo una comunicaci n A're'aci n! se presenta cuando un objeto forma parte del estado de otro. =e esta forma se e"presa una jerar%u(a EodoIAartes entre objetos.
UAMISoft 2006

$$

Objetos: relaciones
7l env(o de mensajes entre objetos puede establecerse cuando a trav6s de su relaci n un objeto est# al alcance de otro

UAMISoft 2006

$,

Objetos: ejemplo
9bjeto! producto de una tienda de autoservicio
7stado
RombreS NDab n de tocadorO MarcaS NAalmoliveO AesoS 100 'r. EipoS NnormalO ArecioST,.0C

1omportamiento
cambiarArecio2 3 cambiarMarca2 3 cambiarAeso2 3 cambiarArecio2 3

Identidad
Una instancia 2objeto3 de producto ocupa un espacio en la memoria + puede identificarse como j
UAMISoft 2006

$0

%lase
7s una especificaci n de estructura 2variables de instancia3- comportamiento 2m6todos3- + .erencia 2padres o estructura + comportamiento recursivos3 para objetos Una clase representa a un conjunto de objetos %ue comparten estructura + comportamiento comKn L)ooc.M
UAMISoft 2006

$6

%lase
Una clase puede especificar tambi6n!
Aermisos de acceso a clientes + clases derivadas ?isibilidad 8esoluci n en bKs%ueda de miembros

Una clase es un descriptorIconstructor de objetos 2templete3.

UAMISoft 2006

$;

,epresentacin en -M.
1lase! descripci n de un conjunto de objetos %ue comparten los mismos atributosrelaciones + sem#ntica
Rombre
8'isibilidad9 nombre 8multiplicidad9 8: tipo987'alor3inicial9 8<propiedades=9 8'isibilidad9 nombre :8lista de parm.9; 8: tipo !ue regresa98<propiedades=9 *ombre 6tlico 7 operacin abstracta 44estereotipo55 *ombre 6tlico 7 clase abstracta /isibilidad: 0 P1blico 2 Protegido 3 Pri'ado

Atributos
Nombre: tipo

9peraciones

UAMISoft 2006

$@

>%mo especi$icar una clase?


Abstracci n! NclassO Q UnombreV Q atributos Q m6todos 7ncapsulamiento! niveles de acceso a los elementos 2miembros de la clase3
Aublicos Arote'idos Arivados

UAMISoft 2006

$C

Ejemplo: clase persona


Se puede describir a una persona en forma diferente!
1omo empleado de una empresa 1omo estudiante de la UAM.

7n ambos casos no tiene sentido describir!


7l color de sus ojos &a forma de su voca WXsta informaci n es esencialY
UAMISoft 2006

,0

Ejemplo: clase persona


Sin embar'oAuede definirse un m6todo para calcular su edad- ocultando el como lo .ace Eambi6n- no es conveniente %ue al'Kn cliente de un objeto de tipo persona cambie su nombre- arbitrariamente

UAMISoft 2006

,1

Especi$icacin la clase persona con -M.


Persona
Z Rombre! strin' Z *ec.aRac! date : I=! strin' /isibilidad: 0 P1blico 2 Protegido Q calcular7dad2 3! Inte'er Q cambiarRombre2 3 Q mostrar=atos2 3 3 Pri'ado

UAMISoft 2006

,2

,elaciones entre clases


Al i'ual %ue los objetos- las clases aisladas no tiene nin'Kn sentido =e acuerdo al est#ndar UM&- se identifican las relaciones de!
=ependencia <enerali5aci n Asociaci n 8eali5aci n
UAMISoft 2006

,$

Di$erentes relaciones entre clases


Dependencia
4inter$a(5

/entana
2 tamao: integer 0 con$igurar:; 0 abrir:; 0 cerrar:; 0 mo'er:; 0 mostrar:; 0 manejarE'ento:;

%on$iguracin
Realizacin Generalizacin (herencia)

E'ento
Asociacin

%onsola

%ajaDialogo

@.. A

%ontrol
Multiplicidad

UAMISoft 2006

,,

,elaciones entre clases


=ependencia! es una relaci n de uso en donde los cambios en la especificaci n de una clase- pueden afectar a otra clase %ue la usa
Dependencia

/entana
2 tamao: integer 0 con$igurar:; 0 abrir:; 0 cerrar:; 0 mo'er:; 0 mostrar:; 0 manejarE'ento:;
UAMISoft 2006

E'ento

,0

,elacin de dependencia: ejemplo

UAMISoft 2006

,6

,elacin de dependencia: ejemplo


package mx.uam.cursojava.practica1; public class Principal { public static void main(String [] argc) { Principal p ne! Principal(); p.reali"aPrueba#rdenado(1$$$$); % &' (elaci)n de dependencia de la class principal *acia +rreglo , -ronometro '& public void reali"aPrueba#rdenado(int elems) { +rreglo a ne! +rreglo(elems); -ronometro cron ne! -ronometro(); cron.arrancar(); a.ordena.urbuja(); cron.detener() cron.mostrar/iempo(); %
UAMISoft 2006

&& && && &&

los objetos a , cron existen solo durante la ejecuci)n de0 ,; p.reali"aPrueba#rdenado(1$$$$)

,elacin de generali(acin
7s una relaci n entre una clase 'eneral 2superclase3 + otra espec(fica 2subclase3
<enerali5aci n I 7speciali5aci n Jerencia /entana
2 tamao: integer 0 con$igurar:; 0 abrir:; 0 cerrar:; 0 mo'er:; 0 mostrar:; 0 manejarE'ento:;

Generalizacin (herencia)

UAMISoft 2006

%onsola

%ajaDialogo

,@

,elacin de generali(acin
Jerencia simple! una subclase tiene e"actamente un padre Jerencia mKltiple! una subclase .ereda de varios padres- sin traslape de estructura o comportamiento Sem#nticamente la relaci n se puede verificar comprobando si la subclase es un tipo de su padre 2Wun automovil es un tipo de ve.(culoY Wun flotante es un tipo de nKmeroY- etc. 3

UAMISoft 2006

,C

,elacin de generali(acin
1ontrol de acceso en len'uaje Dava
&os miembros declarados como protected- public o pac4a'e son accesibles en las subclases. Sin embar'o- los atributos no pueden declararse como public o pac4a'e 2encapsulamiento3 &os m6todos declarados como final no pueden redefinirse en las subclases

UAMISoft 2006

00

,elacin de generali(acin
1ontrol de acceso en len'uaje Dava
&os m6todos declarados como abstract- son implementados en las subclases
abstract public class 1lemento { abstract public int compara(1lemento elem) t*ro!s +rreglo1xception; && este m2todo se implementar3 en las % && las subclases de esta clase

UAMISoft 2006

01

Polimor$ismo por inclusin


8%ardelli B Cegner9

7s un tipo de polimorfismo universal en donde el comportamiento declarado o implementado en un tipo 'eneral 2superclase3- es incluido en tipos espec(ficos 2subclases3

UAMISoft 2006

02

%lases Abstractas
Son clases de las cuales no se obtienen objetos!
Sem#nticamente- son mu+ 'enerales + la obtenci n de objetos no tiene sentido
por ejemplo un objeto de la clase persona

7s mas si'nificativo obtener objetos de sus sub: clases


por ejemplo persona .eredando a alumno

Sint#cticamente- en Dava- el compilador lo impide


UAMISoft 2006

0$

%lases Abstractas
Son clases %ue definen solo parte de su implementaci n
=ejan a las subclases 2e"tensiones3 la tarea de implementaciones espec(ficas de al'Kn m6todo o de todos

UAMISoft 2006

0,

%lase Abstracta & Denerali(acin


7jemplo
Elemento es una clase abstracta- el metodo compara( ) se implementa en las clase &ibro + Alumno en donde la comparaci n entre elementos es diferente

UAMISoft 2006

00

%lase Abstracta & Denerali(acin


7jemplo
import mx.uam.cursojava.+rreglo1xception; import mx.uam.cursojava.1lemento; public class 4ibro extends 1lemento && (elaci)n de generali"aci)n { && *ereda de elemento private String m5titulo; private String m5autor; private int m5isbn; public 4ibro(String titulo6 String autor6 int isbn) { % public int compara(1lemento elem) t*ro!s +rreglo1xception { && 4a comparaci)n se reali"a entre dos elementos de tipo && 4ibro %
UAMISoft 2006 %

06

,elaciones de asociacin entre clases


7s una relaci n estructural %ue e"presa la cone"i n reciproca entre objetos de 2 clases distintas

UAMISoft 2006

0;

,elacin de asociacin: Agregacin simple


8elaci n todoIpartes en donde una clase representa el todo + otra una de sus partes Se reali5a declarando referencias dentro de los atributos 2rombo vac(o en UM&3
Todo

Organi(acin
@

Agregacin simple Parte


A

Departamento
UAMISoft 2006

0@

Agregacin simple
7jemplo
Arreglo
@

int

-lass +rreglo m5arreglo { int m5arreglo[]; int m5tamanio; public +rreglo(int tamanio) null { m5tamanio tamanio; m5arreglo ne! int[m5tamanio] % && +gregaci)n simple public agregar1lemento() % ........... { %

...

UAMISoft 2006

0C

,elacin de asociacin: %omposicin


7s una forma de a're'aci n- con fuerte pertenencia + tiempo de vida coincidente como parte del todo.
7n UM& se e"presa con un rombo relleno
Todo

CindoE
@

Parte
A

Composicin

Frame
UAMISoft 2006

60

%omposicin
7jemplo!
public class Principal { private /eclado teclado ne! /eclado(); && 1jemplo de &&relaci)n de composici)n

public static void main(String [] argc) { Principal p ne! Principal(); && +7u8 se cac*an excepciones 7ue pueda generar el menu. tr, { Principal p.prueba-on9enu(); @ % catc*(1xception ex) { ex.printStack/race(); @ % 61 UAMISoft 2006 #eclado %

,elacin de reali(acin entre clases


8elaci n sem#ntica entre clasificadores en donde un clasificador especifica un contrato %ue otro clasificador 'aranti5a reali5ar

UAMISoft 2006

62

,elacin de reali(acin
Se puede considerar tambi6n como una combinaci n entre dependencia + 'enerali5aci n entre una interfa5 + una clase
Realizacin
44inter$ace55

%ontenedor

.ista
agregarElem:; consultarElem:; eliminarElem:; iterarEnOrden:;

Arbol

UAMISoft 2006

6$