Uploaded by nicolasmartinez864

dokumen.tips programacion-dirigida-a-objetos-uml

advertisement
7/22/2019
Programacion Dirigida a Objetos (UML)
ANÁLISIS Y DISEÑO ORIENTADO A
OBJETOS
CON
( Parte I ) UML
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
1/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Por qué el software es inherentemente complejo?
g
g
g
g
Complejidad del dominio del problema.
Dificultad de administrar el desarrollo
de procesos.
Problemas al caracterizar el comportamiento de sistemas discretos.
Flexibilidad posible a través del
software.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
2
2/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Complejidad del Dominio del Problema

Los usuarios y los desarrolladores tienen
perspectivas diferentes sobre la
naturaleza del problema y realizan
distintas suposiciones sobre la naturaleza
de la solución.

Una complicación adicional frecuente es
el cambio de los requerimientos del
software del sistema.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
3
3/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Dificultad al Gestionar el proceso de Desarrollo


La tarea fundamental del equipo
desarrollo es dar vida a una ilusión de
simplicidad y defender a los usuarios de
una vasta y a menudo arbitraria
complejidad.
Asociado al tamaño del proyecto esta el
equipo de desarrollo; un mayor número
de miembros implica una comunicación
mas compleja y difícil.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
4
4/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Consecuencias de la Complejidad ilimitada


Cuanto más complejo sea el sistema,
más abierto está al derrumbamiento
total.
Nuestro fracaso en dominar la
complejidad del software lleva a
proyectos retrasados, que exceden el
presupuesto, y que son deficientes
respecto a los requerimientos fijados.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
5
5/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Problemas al caracterizar el comportamiento de
Stmas. Discretos

Al ejecutarse el software en computadoras
digitales, se tiene un stma. con estados
discretos.

Los stmas. discretos por su naturaleza
tienen un nro. finito de estados posibles.

Un
evento
puede sus
corromper
el
estado
del externo
stma., porque
diseñadores
olvidaron tener en cuenta ciertas
interacciones entre eventos.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
6
6/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Flexibilidad a través del software

El software ofrece la máxima
flexibilidad, por lo que un
desarrollador puede expresar casi
cualquier clase de abstracción.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
7
7/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Consecuencias de la Complejidad ilimitada


Cuanto más complejo sea el sistema,
más abierto está al derrumbamiento
total.
Nuestro fracaso en dominar la
complejidad del software lleva a
proyectos retrasados, que exceden el
presupuesto, y que son deficientes
respecto a los requerimientos fijados.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
8
8/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La tarea del equipo de desarrollo de software OO es
ofrecer una ilusión de simplicidad
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
9
9/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Qué es Orientado a Objetos ?



En
1erde
lugar
es una
forma
de pensar
- una
forma
modelar
una
solución
a un problema.
En 2do lugar, es una extensión a las
metodologías
de desarrollo
previas, semejantes
a la programación
estructurada.
En 3er lugar la orientación a objetos reconoce
que los procesos naturales de pensamiento
humano obtienen muchas ventajas
evolucionarias, y por lo tanto trata de darle un
adecuado soporte.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
10
10/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Por qué la orientación a objetos ?




Por la estabilidad del modelado respecto a las
entidades del mundo real.
Por la construcción iterativa facilitada por el
acoplamiento débil entre componentes.
Por la posibilidad de reutilizar elementos entre
desarrollos, y
Por la simplicidad del modelado en base a 5
conceptos fundamentales
(objetos, mensajes, clases, herencia y polimorfismo).
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
11
11/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Qué propone la Orientación a Objetos ?


A diferencia del método tradicional de la
descomposición funcional, en la que hay
que descomponer para comprender y
componer para construir,
Propone un método de descomposición, no
basado únicamente en lo que hace el
sistema, sino más bien en la integración de
lo que el sistema es y hace.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
12
12/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Objetivos de la orientación a Objetos


El
modelado
las propiedades
estáticas
dinámicas
delde
entorno
en el que se
defineny
las necesidades, y que es llamado el ámbito
del problema.
Formalizar nuestra percepción del mundo y
de los fenómenos que se dan en él,
logrando
elde
espacio
del
problemacorresponder
con el espacio
la solución,
preservando la estructura y el
comportamiento del sistema analizado.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
13
13/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La fortaleza de la Orientación a Objetos

Su capacidad de agrupar lo que se ha
separado, construir lo complejo a partir de lo
elemental y, sobre todo, de integrar
estáticamente y dinámicamente los
constituyentes de un sistema.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
14
14/76
7/22/2019
Programacion Dirigida a Objetos (UML)
OO - Revolución Industrial Software



Describe
el movimiento
era donde el
software es
compilado ahacia
partiruna
de objetos
componentes reusables.
Los componentes son internamente muy complejos
pero simples para interactuar con ellos. Serán cajas
negras.
Es necesario progresar desde una era de paquetes
de
software
donde
unera
proveedor
construye
el monoliticos,
software total,
a una
en la que el
software es ensamblado desde componentes y
paquetes de muchos proveedores, similar a la forma
en que se ensamblan autos y computadoras.
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Ing. Luis Zuloaga Rotta
15
15/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Cuáles son los beneficios de OO ?




Reuso
Calidad
Modelamiento mundo real
Resistencia a los cambios
(fácil mantenimiento)
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
16
16/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Qué es un objeto ?

’’ Un objeto tiene estado,
comportamiento, e identidad; la
estructura y comportamiento de objetos
similares son definidos en su clase
común; los terminos instancia y objeto
son intercambiables ’’.
Grady Booch ’91
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
17
17/76
7/22/2019
Programacion Dirigida a Objetos (UML)
… Otro Concepto

’’ Un objeto es cualquier cosa a la que
se le aplica un concepto, el que
representa una idea o noción que
nosotros compartimos y aplicable a
ciertos objetos en nuestro
conocimiento ’’.
James Martin ’92
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
18
18/76
7/22/2019
Programacion Dirigida a Objetos (UML)
… Otro Concepto

’’ Nosotros definimos un objeto como
un concepto, abstracción o cosa con
un significado y límites bien definidos
para el problema a manejar ’’.
Rumbaugh ’91
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
19
19/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Los Objetos


El objeto es una unidad atómica formada
por la unión de un estado y de un
comportamiento.
El objeto revela su verdadero papel y su
verdadera responsabilidad cuando, por
medio del envío de mensajes, se inserta
es un escenario de comunicación.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
20
20/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Características de un Objeto

OBJETO
= ESTADO
+ COMPORTAMIENTO
+ IDENTIDAD
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
21
21/76
7/22/2019
Programacion Dirigida a Objetos (UML)
El Estado


Agrupa
los valores
instantáneos
de todos los
atributos de un objeto
sabiendo que un atributo es
una información que cualifica
al objeto que la contiene.
El estado evoluciona con el
tiempo, es variable y puede
verse como la consecuencia
de sus comportamientos
pasados.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
22
22/76
7/22/2019
Programacion Dirigida a Objetos (UML)
El Comportamiento



Agrupa todas las competencias
de un objeto y describe sus
acciones y reacciones.
Cada átomo de comportamiento
se llama operación.
Las operaciones de un objeto se
desencadenan a consecuencia
de un estímulo externo,
representando en forma de un
mensaje enviado por otro objeto.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
23
23/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Estado y Comportamiento

El estado y el comportamiento están
relacionados: el comportamiento en un
instante dado depende del estado
actual, y el estado puede ser
modificado por el comportamiento.
“ Sólo es posible hacer aterrizar un avión si
este está volando ....”
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
24
24/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Identidad


Distingue los objetos de forma
no ambigua,
independientemente de su
estado.
Distingue dos objetos en los
que todos los valores de
atributos son idénticos.

La
es undeconcepto,
no identidad
se representa
manera
específica en el modelado.
Cada objeto posee una
identidad de manera implícita.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
25
25/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Oid ( Object Identifier )

Cada
objeto
oid. El
establece la
identidad
delposee
objetoun
y tiene
lasoid
siguientes
características:
•
Constituye un identificador único y global para cada
objeto dentro del sistema.
•
Es determinado en el momento de la creación del
•
objeto.
Es independiente de la localización física del
objeto, es decir, provee completa independencia de
localización.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
26
26/76
7/22/2019
Programacion Dirigida a Objetos (UML)
... Oid ( Object Identifier )
•
•
•

Es independiente de las propiedades del objeto, lo
cual implica independencia de valor y de estructura
No cambia durante toda la vida del objeto. Además,
un oid no se reutiliza aunque el objeto deje de
existir
No se tiene ningún control sobre los oids y su
manipulación resulta transparente
Sin embargo, es preciso contar con algún
medio para hacer referencia a un objeto
utilizando referencias del dominio (valores de
atributos).
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
27
27/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Categorías de comportamiento


Los objetos interactúan para realizar las
funciones de la aplicación.
Según la naturaleza de las interacciones, es
decir, según la dirección de los mensajes
intercambiados, es posible describir de
manera general el comportamiento de los
objetos.

Las tres categorías de comportamiento: los
actores, servidores y agentes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
28
28/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Los Objetos Actores

Los actores son siempre objetos en el
origen de una interacción.

Son
objetos
activos, es
decir,generalmente
poseen un hilo
de ejecución
(thread) y son quienes pasan el testigo
a los otros objetos.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
29
29/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Los Objetos Servidores


Los
servidores,
por el contrario,
nunca son el
origen
de una interacción,
son siempre
destinatarios de los mensajes.
A menudo son objetos pasivos que esperan
que otro objeto requiera de sus servicios. En
ese caso, el flujo de control se pasa al
servidor desde el objeto que envía el
mensaje y se recupera tras la ejecución del
servicio.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
30
30/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Los Objetos Agentes


Los agentes reúnen las
características de los actores y
los servidores.
CLIENTE
AGENTE
Estos objetos pueden interactuar
con
los otros
todo
momento,
ya objetos
sea poren
iniciativa
propia o a consecuencia de una
solicitud externa.

Los agentes aislan a los objetos
clientes de los objetos
servidores, introduciendo una
indirección en el mecanismo de
SERVIDORES
propagación de los mensajes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
31
31/76
7/22/2019
Programacion Dirigida a Objetos (UML)
El concepto de mensaje

La
unidad
de comunicación
entre
objetos
se llama
mensaje.

El
mensaje
una
relaciónes
deel soporte de
comunicación que vincula,
de
formaque
dinámica,
objetos
han sidolos
separados por el proceso
de descomposición.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
32
32/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Formas de sincronización de mensajes


La
sincronización
naturaleza
de la
comunicación
y lasprecisa
reglas la
que
rigen el paso
de mensajes.
Existen 5 categorías de mensajes:

Simple

Síncrono

Esperado

Cronometrado

Asíncrono
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
33
33/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Tipos de Objetos
g
g
Concretos: Persona-Carro-PC
Roles: Doctor-Propietario-Maestro
g
Relacional: Sociedad-Hijo-Matrimonio
Eventos: Venta-Compra-Arribo
g
Exponibles: Icono-Window-Imagen-Menú
g
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
34
34/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Actividades iniciales del Análisis OO

Observar las cosas del sistema real y
determinar sus propiedades :

Color

Tamaño

Forma


Genealogía
Relaciones a otras cosas.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
35
35/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Como identificar Objetos

Siendo
una abstracción
de la
realidad,uny objeto
entendiendo
que será una
abstracción creada por un desarrollador para
satisfacer necesidades de una aplicación,
observe e identifique :




Cosas tangibles
Roles
Incidentes o eventos
Interacciones
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
36
36/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Qué es la Abstracción ?

Es
las víascombatimos
fundamentales
queuna
los de
humanos
la por la
complejidad.

La abstracción surge del reconocimiento
de las similitudes entre ciertos objetos,
situaciones o procesos del mundo real, y
en la decisión de concentrarse en esas
similitudes e ignorar por el momento las
diferencias.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
37
37/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La abstracción centra su atención en las características
esenciales de un objeto en relación a la perspectiva del
observador
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
38
38/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Abstracción


Es una facultad de los seres humanos
que consiste en la identificación de las
características comunes a un conjunto
de elementos, hacia la descripción
condensada de estas características
en lo que se ha convenido en llamar
una CLASE.
El método de abstracción es arbitrario.
Lo que permite que un objeto pueda
ser visto a través de abstracciones
diferentes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
39
39/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Descubrimiento e invención
g
Con
el descubrimiento
se llega
reconocer
las abstracciones
utilizadas
por aexpertos
del
dominio; si el experto del dominio habla de
g
ella, entonces la abstracción suele ser
importante.
Mediante la invención, se crean nuevas
clases y objetos que no son parte del
dominio del problema pero que son útiles en
el diseño e implantación.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
40
40/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Describiendo Objetos

Después
de identificar
un objeto,
secomo
crea
una abstracción
para describir
esta
un conjunto de atributos y operaciones.

Los
atributos
valores de datos
relativos
a un almacenan
objeto.
Ejemplo de atributos :



Peso
Tamaño
Nro Identidad
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
41
41/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Describiendo Objetos

Operaciones
o métodos
son actividades
llevadas a cabo
por un objeto
como resultado
de un evento.
Ejemplo de actividades :

Listar Facturas

Calcular Volumen

Totalizar Items

Se describen relaciones a otros objetos.
Ejemplo de relación :

Factura pertenece a Cliente
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
42
42/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Atributo

Es
un valor
deDiferentes
dato válidoinstancias
para los objetos
en una
clase.
de
objetos pueden tener el mismo o diferentes


valores para un atributo dado.
Cada nombre de atributo es único en una
clase, regla que no necesariamente tiene
que cumplirse para clases diferentes.
Un atributo debería ser un valor de dato
puro, no un objeto.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
43
43/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Seleccionando Atributos


Definir atributos que son independientes de
cualquier otro.
Ejemplo de atributos dependientes :

Una locomotora tiene los siguientes atributos
 Hecho en, y


Motor tipo
En el siguiente caso ellos son dependientes


Hecho en puede ser General Electric u Otro
Motor tipo es diesel si es hecho por GE, en cualquier
otro caso es a gas.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
44
44/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Seleccionando Atributos ...

La mejor solución es crear dos objetos:

Locomotora_GE, y

Otra_Locomotora

Locomotora_GE tiene motor diesel.

Otra_Locomotora tiene motor a gas.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
45
45/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Encontrar todos los Atributos Necesarios

Los
siguientes
valores
de datos
de atributos
no son
útiles para
identificar
el objeto.




Tiene puertas
Tiene cilindros
Usado por personas
Valores de datos que deben conocerse para
ayudar a identificar un objeto:



Hecho por Ford
Tiene un motor de 300HP
Tiene seis cilindros
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
46
46/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Operaciones y Métodos

Una
operación es
función
transformación
queuna
puede
ser o
aplicada a
o por objetos en una clase.


Cada operación tiene un objeto destino
como un argumento implícito. La misma
operación puede aplicarse a muchas
clases diferentes.
Un método es la implementación de una
operación para una clase.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
47
47/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Ejemplo de Operación y método



La clase FILE tiene una operación PRINT.
Diferentes métodos podrían ser implementados
para imprimir archivos ASCII, archivos Txt y
archivos de imágenes digitalizadas (BMP).
Todos estos métodos lógicamente ejecutan la
misma tarea, imprimir un FILE; esto es, nos
podemos referir a ellos por la operación genérica
PRINT, sin embargo cada método puede ser
implementado por un diferente grupo de líneas
de código.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
48
48/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Representación Gráfica de las CLASES


Cada clase se
representa bajo la
forma de un
rectángulo dividido en
tres compartimentos.
El primero contiene el
nombre de la clase, el
segundo los tributos y
el tercero las
operaciones.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Nombre
Atributo 1
Atributo 2
Atributo 3
Operación 01 ( )
Operación 02 ( )
Motocicleta
Color
Cilindrada
Velocidad maxima
arrancar ( )
acelerar ( )
frenar ( )
Llenar tanque ( )
49
49/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Las Clases


La
clase
describe
el
ámbito
de
definición de un conjunto de objetos.
Cada objeto pertenece a una clase.
Las generalidades están contenidas en
la clase y las particularidades están
contenidas en los objetos.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
50
50/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Descripción de las CLASES

La
especificación
: describede
al las
ámbito
de
definición
y las propiedades
instancias
de esta clase, y que corresponde a la noción
de tipo tal como se define en los lenguajes
de programación clásicos

La realización : describe cómo se realiza la
especificación y contiene el cuerpo de las
operaciones y los datos necesarios para su
funcionamiento.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
51
51/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Qué es Encapsulación ?

La abstracción y el encapsulamiento son
conceptos complementarios: la primera
se centra en el comportamiento
observable
de un se
objeto,
mientras
encapsulamiento
centra
en la el
implementación que da lugar a este

comportamiento.
Para que la abstracción funcione la
implementación debe estar encapsulada.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
52
52/76
7/22/2019
Programacion Dirigida a Objetos (UML)
El encapsulamiento oculta los detalles de la
implementación de un Objeto
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
53
53/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Encapsulamiento


De modo predeterminado, los valores de
atributos de un objeto se encapsulan en el
objeto y no puden ser manipulados
directamente por los demás objetos.
Todas las interacciones entre los objetos se
efectúan invocando las diversas operaciones
declaradas en la especificación de la clase y
accesibles desde los demás objetos, de
acuerdo a las reglas de visibilidad.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
54
54/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Reglas de Visibilidad



Privada ( - ): visible sólo
para la clase y para las
clases amigas (C++).
Protegida( # ): visible
sólo para las clases
derivadas (subclases).
Pública ( + ): visible para
todas las clases con las
que esta asociada.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
55
55/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Asociación


Expresa una
conexión semántica
bidireccional entre
clases.
Una asociación es
una abstracción de
los enlaces que
existen entre los
objetos instancias de
enlace
Pedro: Alumno
UNI : Universidad
enlace
UNFV: Universidad
enlace
Oscar: Alumno
Juana: Alumno
asociacion
Universidad
Alumno
las clases asociadas.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
56
56/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Clarificación de la Asociación


Para mejorar la
legibilidad de los
diagramas, la
asociación puede ir
acompañada por una
forma verbal activa o
pasiva.
Es posible precisar el
rol de una clase al
interior de una
asociación.
Alumno
< estudia en
empleador
Universidad
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
registra a >
Universidad
docente
estudiante
Persona
57
57/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Multiplicidad

Los roles continen
tambien una
información de
multiplicidad
que
precisa el número
de instancias que
1
0..1
m..n
*
uno y sólo uno
cero o uno
de "m" a "n"
muchos
0..*
cero a muchos
1..*
uno a muchos
empleador
participan en la
relación.
1
Universidad
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
docente
*
0..1
estudiante
*
Persona
58
58/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Agregación





Una relación expresa una forma de acoplamiento
entre abstracciones.
La fuerza del acoplamiento depende de la naturaleza
de la relación en el ámbito del problema.
De modo predeterminado, la asociación expresa un
acoplamiento débil.
La agregación es una forma particular de asociación
que expresa un acoplamiento más fuerte entre clases.
La agregación permite representar relaciones del tipo
todo y partes o compuesto y componentes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
59
59/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Representación de la agregación

Se representa como una asociación,
1

con
el añadido
pequeño
rombo
colocadode
alun
lado
del
agregado.
La agregación favorece la
propagación de los valores de
atributos y de operaciones del
agregado hacia las partes o
1
Auto
padre
Persona
0..2
hijos

componentes.
Cuando la multiplicidad del
agregado vale 1, la destrucción del
agregado entraña la destrucción de
las partes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Motor
*
60
60/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Las Jerarquías de CLASES


Las jerarquías o
clasificaciones permiten
gestionar la complejidad
ordenando los objetos
dentro de árboles de
clases de abstracción
creciente.
La generalización y la
especialización son
puntos de vista
centrados en las
Objetos e
Objetos e
Instancias
Abstracción
Civil
?
Juan
Pérez
Rojas
MUJER
PERSONA
( Clase )
HOMBRE
( Sub Clase )
Luis
Rojas
Perez
Militar
jerarquías de clases.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
61
61/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Generalización

Consiste en
factorizar los
elementos comunes
(atributos,
operaciones y
restricciones) de un
conjunto de clases
en una clase más
general llamada
superclase.
Abstracciones más generales
Vehículo
Vehiculo
terrestre
Auto
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Camión
Vehículo
aéreo
Avión
Helicoptero
62
62/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Especialización


Vehículo
Permite capturar las
particularidades de un
conjunto de objetos no
discriminados por las
clases ya
identificadas.
Las nuevas
Vehiculo
terrestre
Auto
características
representan porseuna
nueva clase, sub clase
de una de las clases
existentes.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Camión
Vehículo
aéreo
Avión
Helicoptero
Extensión por especialización
63
63/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Propiedades de la Generalización





La generalización solo
afecta a las clases y
significa : “es un” o “es una
especie de”.
Vehículo
No
establece
indicación
de ninguna
multiplicidad.
No es una relación
reflexiva.
No es una relación
simétrica
Es una relación transitiva.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
NO ...!
Animal
Ave
Vehículo
Mobil
Canario
NO ...!
SI ...!
64
64/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Criterio para la Generalización

Animal
De las estructuras
planteadas en la
clasificación de los
animales mostradas,
ninguna de las
soluciones es
satisfactoria, porque
de acuerdo a los
modelos propuestos
el fenómeno de
covariación induce
puntos de
mantenimiento
múltiples.
Bípedo
Herbívoro
Carnivoro
Herbivoro
Carnivoro
Covariación
Animal
Herbívoro
Bípedo
Cuadrúpedo
Covariación
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Cuadrúpedo
Carnívoro
Bípedo
Cuadrúpedo
65
65/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Generalización Múltiple

Aporta una
solución
elegante para la
construcción de
clasificaciones
con criterios
independientes,
Protección
piel
Bípedo
Animal
Nro patas
Cuadrúpedo
Alimentación
Plumas
Pelo
Herbívoro
Carnivoro
Conejo
díficiles
ordenar.de
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Escamas
66
66/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La covariación no reducible

En algunos casos
la covariación
existe por la
propia naturaleza
1
Piloto
1
0..*
0..*
Moto
Licencia
del
ámbito de la
aplicación.

Esta forma de
covariación no es
reducible porque
afecta a dos
jerarquías
Cross
Taxi
Cross
Taxi
Covariación no reducible
distintas.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
67
67/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Como representaría una Metamorfosis ?
Mariposa
Mariposa
1
Estadío
Oruga
Crisálida
Lepidoptero
Es esto correcto ?
NO ...!
Oruga
Crisálida
Lepidoptero
Esto es Correcto..!
La generalización no está adaptada para representar las metamorfosis.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
68
68/76
7/22/2019
La Herencia


Programacion Dirigida a Objetos (UML)
Es una técnica de los lenguajes de
programación para construir una clase a
partir de una o varias otras clases,
compartiendo atributos, operaciones y,
en ocasiones, restricciones, dentro de
una jerarquía de clases.
Las clases hijos heredan las
características de sus clases
antecesoras; los atributos y las
operaciones declaradas en la clase
padre son accesibles en la clase hijo,
como si se hubieran declarado
localmente.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
69
69/76
7/22/2019
Programacion Dirigida a Objetos (UML)
La Delegación en lugar de la herencia múltiple

reemplazarse por
la delegación.

Animal
La herencia no es
una necesidad
absoluta y
siempre puede
Patas
Animal
Bípedo
Cuadrúpedo
Alimento
Animal
Herbívoro
Carnívoro
La delegación presenta la ventaja de reducir el
acoplamiento en el modelo: por una parte, el cliente
no conoce directamente al proveedor, y por otra, el
proveedor puede ser modificado sobre la marcha.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
70
70/76
7/22/2019
Programacion Dirigida a Objetos (UML)
El Principio de la Sustitución


La clasificación propaga el estado, el
comportamiento y las restricciones. No existen
medias tintas: todas las propiedades de la clase
padre son válidas integramente en la clase hijo.
El principio de la sustitución afirma que:
“Debe ser posible sustituir cualquier objeto
instancia de una subclase por cualquier objeto
instancia de una superclase sin que la semántica
del programa escrito en los términos de la
superclase se vea afectada”.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
71
71/76
7/22/2019
El Polimorfismo

Programacion Dirigida a Objetos (UML)
Describe la característica de un
elemento que puede tomar varias
formas, como el agua que se
encuentra en estado sólido, líquido o
gaseoso.

??
Camine
El polimorfismo de operación,
desencadena operaciones diferentes
en respuesta a un mismo mensaje.
Cada subclase hereda de la
especificación de las operaciones de
sus superclases, pero tiene la
posibilidad de modificar localmente el
comportamiento de estas operaciones.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
72
72/76
7/22/2019

Objeto
Iterador
El diagrama siguiente
Programacion Dirigida a Objetos (UML)
representa una colección

polimorfa. Todos los animales
saben dormir, pero c/raza
tiene su forma particular.
Los mecanismos generales
escritos
según del
la ZOO no
especificación
necesitan conocer los gustos
particulares de cada raza
para invocar la operación

*
Zoo
Dormir ( ).
Un iterador es un objeto
asociado a una colección que
permite visitar todos sus
1
Animal
Dormir ( )
León
Tigre
Oso
Dormir ( )
{
Dormir ( )
{
Dormir ( )
{
Sobre el vientre
}
Sobre la espalda
}
En un arbol
}
elementos
sin desvelar su
estructura interna.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
73
73/76
7/22/2019
Programacion Dirigida a Objetos (UML)
Operaciones del Iterador

Iterador
El iterador es activo cuando el
Inicializar ( )
Siguiente ( )
Valor ( )
Terminado( )
control de la iteración se deja al
usuario por medio de las 4
operaciones siguientes :




Inicializar, permite tener en cuenta
los elementos presentes en un
momento dado en la colección.
Siguiente, permite el paso al
elemento siguiente.
Valor, que devuelve el elemento
actual.
Terminado, que es verdad cuando
todos los elementos han sido
visitados.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
Zoo
1
*
Animal
Dormir ( )
León
Tigre
Oso
74
74/76
7/22/2019
Ejemplo de código utilizando Iterador
Programacion Dirigida a Objetos (UML)
Visita: iterador;
UnAnimal: Animal; -- variable polimorfa
...
La variable UnAnimal es polimorfa:
Visita.Inicializar (elZoo);
puede contener cualquier animal
devuelto por la función Visita.Valor( ).
While not Visita.Terminado( )
loop
El envio del mensaje Dormir( ) al
animal contenido por la variable
UnAnimal desencadena una manera
específica de dormir que depende de
la subclase del animal. El mecanismo
UnAnimal:= Visita.Valor( );
UnAnimal.Dormir( );
Visita.Siguiente( );
end loop;
Zoose
que
duerme a los
animales
del que
es
independiente
de los
animales
encuentran realmente en el Zoo en un
momento dado
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
75
75/76
Violación del principio Sustitución
7/22/2019
Programacion Dirigida a Objetos (UML)

El ejemplo precedente sólo
funciona si cada Animal
comprende el mensaje
Dormir( ). Los mecanismos
que implementan el
polimorfismo manipulan
objetos a través de las
especificaciones de sus
superclases.

Para que el polimorfismo
funcione efectivamente, es
necesario que se verifique el
PAJARO
Plumas
Pico
Volar ( )
Volar ( )
{
Esconder la cabeza
} bajo tierra
Aguila
Gorrión
Avestruz
Lo mostrado no tiene consecuencias
mientras nadie escriba un mecanismo
general para manipular los pájaros.
principio de sustitución.
Ing. Luis Zuloaga Rotta
http://slidepdf.com/reader/full/programacion-dirigida-a-objetos-uml
76
76/76
Download