Publicado el 5 de Julio del 2017
859 visualizaciones desde el 5 de Julio del 2017
3,1 MB
44 paginas
Creado hace 16a (15/10/2008)
<-7T z,zz
Tema 1
Conceptos Básicos de la
Orientación a Objetos
o
O t*j
Sñ,
Si$
oa
oo
oo
os
wffi
ffi,:,'"
Introducción (l)
aoa
ooo :
O I r..j' ',.r
a1il,.
LA OO SE ORIGINO EN LA P
o Tipos abstractos de datos:
ROGRAMACIÓN.
o Abstracción.
o Encapsulación.
o Ocultamiento.
o Inteligencia artificial:
r Herencia.
o Primero: Simula 67.
o Después: Smalltalk.
o Masiva incorporación posterior de conceptos: C++, ...
r Actualmente: Java.
Introducción (ll)
aaa
OOO,
oa
o
DE FORMA GRADUAL...
o Los conceptos surgidos en la programación se empiezan a
aplicar a otras fases en el ciclo de desarrollo:
o Análisis.
o Diseño.
o ...
o Aparecen multitud de métodos: OOSE, OMT, Booch, ...
o Cada autor tiene su propuesta, con técnicas y notaciones
particulares.
lvar Jacobson, James Rumbaugh y Grady Booch crean
UML, que es adoptado como estándar por OMG (Object
Management Group).
lntroducción (lll)
ooo
aoo
oa
a:
UML: UNIFIED MODELING LANGUAGE.
o Notación que permite modelar, construir y documentar los
elementos que forman un sistema software OO.
o Se ha convertido en el estándar de facto al estar creado
por los autores de los tres métodos más usados en OO:
o Grady Booch (Booch).
r lvar Jacobson (OOSE).
¡ James Rumbaugh (OMT).
o UML sólo es una notación, no define un proceso de
desarrollo específico como por ejemplo.
o Propuesta de Craig Larman.
o Unified Software Development Process.
lntroducción (lV)
ooo
oOoi:*
O O'¡il ¿l,i
O $"S ¿ú'r
t? i,-t
:.'
{-$ 'r
o Historia de UML:
Booch'91
\
Booch
'93
oMT - 2
\t \ utr¡L o.a /
OMT-1
I+
Otros Métodos
OOSE
OOPSLA'95
V,
UML 0.9 y 0.91
Junio del 96 y Octubre del 96
Experiencia de las
empresas
participantes en UML
\r
I+
t UML l.0
,ni. '' ''
I
Enero del 97
Septiembre del 97
Introducción (V)
ooo
a oos
oa¿i,$)
aetñ
,:
ñ'i$
l.'\r-
HASTA LA OO:
o En el análisis y diseño estructurado/programación
tradicional hay datos y operaciones (procesos) sobre esos
datos, pero son entidades independientes e incluso se
modelan por separado con técnicas distintas.
ALMACÉN DE DATOS
lntroducción (Vl)
oao
ooa':"'
o o.$¡ $r
O,'' -:,
::¡
dii
CON LA OO:
. En el análisis y diseño/programación OO se agrupan
(encapsulan) datos relacionados entre sí y
las
operaciones sobre esos datos en entidades llamadas
objetos.
Llamada a una operación,
Resultado entreoado
4
Introducción (Vll)
aao
ooo4
OO*¡4¡
O ,n\i\ .i¡¡
{$,F:,
N\
o ASPECTOS A CONSIDERAR:
Generalmente
las operaciones son accesibles desde el
exterior y son los servicios que el objeto ofrece para que
otros objetos los empleen (mensajes).
o Algunas operaciones son privadas y son servicios
de
utilidad para el propio objeto. Sólo él tiene acceso.
o Los datos normalmente son privados y únicamente
accesibles por el propio objeto. Sólo él tiene acceso.
Introducción (Vlll)
aoo
aaavi:
a o {l},4i
a f& (ft |,i
$FS ., r,
W r?,i]r
Un sistema OO es
entre sí a través
cuáles se solicitan
Los mensajes se
tienen entre sí.
una colección de objetos que cooperan
del envío de mensajes mediante los
servicios unos a otros.
envían a través de las relaciones que
\il
lntroducción (lX)
ooo
O OO i,rv
a t'aÉ i-\
a$sñ.
4.i_.-\ .
SF r'
LOS CUATRO PILARES FUNDAMENTALES DE LA ORIENTACION A OBJETOS:
rientacióri
a Objetos
:.]
*^:
,A***áá
Abstracción
aoa
oaas
aa €"* ti
o .Rt'.+
qé l¡i"i
Se utiliza continuamente y permite manejar la complejidad.
o Ya se empleaba en la aproximación estructurada.
Permite extraer la información principal para un sistema de
aquello que se estudia; omitiendo detalles no esenciales y
prescindibles en un determinado momento que se abordarán
más tarde.
Encapsulación
oot
ooo$\s
a a "$¡ {iñ
O $ tiir,
s ¡liii
.$:ii
Permite agrupar en un mismo
relacionados.
paquete elementos
Permite abordar la abstracción y permite la modularidad y la
ocultación de información.
En OO se agrupa en un sólo objeto la información y las
operaciones que la manejan.
En la encapsulación siempre se busca:
o n¡ÁXIMA cohesión.
o MíNIMO acoplamiento.
Gohesión
aoo
O aO'.ii¡
OOS{$'
l
a#*j)
.4.¿ ,'J+
"i
Es una medida de cómo de fuerte es la relación lógica entre
los componentes encapsulados (en un objeto. datos y
operaciones).
Para un objeto poco cohesionado.
o Mayor será su mantenimiento.
o Menor su reutilización.
Acoplamiento
ooo
O O O';ir
O Otii..s.i\
a *, it-*
+iis
'iS'
Es una medida de la fuerza del conocimiento entre dos
elementos de un sistema. Cuanto más conoce un elemento de
otro más fuerte es el acoplamiento entre ellos (más dependen
el uno del otro).
Al construir objetos se deben acoplar los objetos en cierta
medida, pero debe estar muy controlado: sólo los servicios
que prestan los otros objetos y las relaciones.
Ocultamiento de la información
ooa
rs
aal
Oa,,_.t .ji;
OrÍl.t i.llt ;
ti ¿it
o Permite usar los módulos (objetos) por su especificación, no
por la forma en que están implementados.
o Los detalles de implementación están ocultos y sólo es
accesible la interfaz (los servicios que ofrece).
Solicitud
de servicios
El módulo es una "c4a negra"
de la que sólo sabemos cómo
la podemos manejar.
objeto (l)
ooo
aOOir$
;:ri
Ol::.'
O,:,.:'
{$
Los objetos son cosas que encontramos en nuestro mini-
mundo.
o Nos interesan los modelos sofhrvare de esas cosas.
Coche
Marca: ROLLS-ROYCE
Modelo:ANTIGUO
Matricula: 1234ABC
Acelerar
Torcer
Velocidad?
lnformación del objeto: Atributos
Servicios ofrecidos: Métodos
objeto (ll)
aoo
oooñ
aa\SS-¡
O$Si$ ,
rr"
ffi#;'
ii\
Ejemplos de objetos en algún dominio, mini-mundo,
mini-world o universo de discurso son.
Universidad: alumno, profesor, asignatura, aula,
práctica, eXamen, proyecto, departamento,
laboratorio,
...
Empresa: empleado, cliente, pedido, factura, nómina,
...
almacén, componente,
objeto (lll)
foo
oaow
O OS.É'
a $"s $$
s#
\l:¡
La descripción de un objeto del mini-mundo será muy
compleja.
Se escoge aquella información relevante para nuestro modelo
(abstracción).
Esta información determina las propiedades del objeto.
o Por ejemplo, un empleado:
o Tiene: nombre, fecha de nacimiento, peso, color de pelo, Íaza, ...
o Pero en el contexto de un sistema para pagar las nóminas: DNl,
NSS, fecha de ingreso en la empresa, categoría,
...
Clase (l)
oaa
oao
O O.'i $it
O.:.1 .;:
,)i;,''i
ill\
Es el "patrón" por el que se crean los objetos que son iguales
en dos sentidos:
o Estructuralmente.
. Funcionalmente.
Define las propiedades (atributos y métodos) de todas las
instancias (objetos) de esa clase:
ATRIBUTOS: datos que mantienen el
estado de cada objeto de la clase
coche. La información.
METODOS: servicios proporcionados
por cualquier objeto coche. El
comportamiento.
Coche
Marca
Modelo
Matricula
Acelerar
Torcer
Velocidad?
Clase (ll)
oao
aaa:
oo
o
La clase define los atributos comunes a todos los objetos
de la clase, pero cada objeto tiene sus propios valores para
los atributos.
Persona
Nombre
Edad
Estado ánimo
Nombre?
Edad?
Cambiar ánimo
Tamariz
37
alegre
Merlín
24
absorto
Pedro
45
exaltado
Clase (lll)
ooo
ooo.s
O O lr,¿ti
O íÍi' irli
ü ¡r;
o La clase define los
los objetos.
métodos (servicios) comunes a
o Se invocan sobre un objeto determinado y actúan sobre los
atributos instanciados de forma particular para ese objeto.
Nombre?
Pedro
Pedro
45
exaltado
Cambiar ánimo ("tranquilo")
Un mensaje es una petición de
ejecución de algún método.
Clase (lV)
ooo
I ooos
I oos@:
::s*
ri.$
' También proporciona la forma de crear instancias (objetos)
de esa clase. Esto se efectúa a través del constructor.
Persona
Nombre
Edad
Estado ánimo
Nombre?
Edad?
Cambiar ánimo
Instanciación
a través del constructor
rctor.
N
Tamariz
37
alegre
Beethoven
68
serio
Merlín
24
absorto.
Pedro
45
exaltado
Propiedades de Clase
oao
oao ,
I
OO::
O
.
Hay atributos y métodos que son de la clase y no de los
objetos.
un atributo de clase no se instancia en cada objeto:
o Pertenece a la clase y está compartido por todos los
objetos de la clase: todas las instancias ven el mismo
valor (e.g. objetos creados de una clase).
un método de clase es un servicio general de la clase.
No se invoca sobre un objeto creado:
o No necesita de haberse creado ninguna instancia. (e.g.
constructores de clases).
a
o
Relaciones
ooo
OOO;i,:',
O O;;r,iii
O.
,i il
r".
Los objetos tienen, además de propiedades (atributos y
métodos), relaciones con otros objetos. Esto €s,
conocen otros objetos del sistema con los que se envían
mensajes.
Las relaciones más importantes son:
o Asociación.
o Agregación.
o Herencia.
Asociación
ooo
OOO,it:r
a O.i,i (li
O'ln"'¡rl'
iú.iri
o Es una relación estructural que especifica que los objetos de
una clase están conectados con los objetos de otra. Es
perfectamente legal que los objetos que se relacionen
pertenezcan a la misma clase.
o Indica algún tipo de retación entre objetos.
Una característica
cardinalidad.
fundamental de las
asoctaciones es la
Gardinalidad
oaa
O aO {it
It O itt-.,,l,Iil
?lu"'
lr
a
o
Las asociaciones y las agregaciones tienen cardinalidad.
La cardinalidad indica el número de instancias de una
clase que están relacionadas con una instancia de la otra
clase.
cuando se indica una cardinalidad en un rol se está
especificando cuántos objetos del otro rol puede haber
relacionados.
Cardinalidad o
multiplicidad
asociación
Agregación
ooo
Of O,r¡
O O ::!,"
O {ii.\,'}.
i+',t
\$
En algunas ocasiones los objetos están compuestos de otros
objetos.
Con la agregación se indica que la clase agregada está
formada por los componentes que se indican. Este tipo de
relación permite descomponer progresivamente el problema.
Auricular
Pantalla
Herenc¡a (l)
i$
ooo
aaa
a O +.i'"-\$
I r¡] ,'r'r'
ii¡ ..:.'
a.:.\
Permite describir una nueva clase por generalización o
especialización de una ya existente o de muchas (herencia
múltiple).
Una clase es descendiente (hijo) de una ancestra (padre)
cuand
Comentarios de: Tema 1 - Conceptos Básicos de la Orientación a Objetos (0)
No hay comentarios