Professional Documents
Culture Documents
UML
Diagrama de Clases y de
Diagrama de Clases y de
Objetos
Objetos
Prof. Daniel Riesco
Prof. Daniel Riesco
Diagrama de Clase
Diagrama de Clase
Clasificador
Clasificador
--
--
> Class, Interface, DataType.
> Class, Interface, DataType.
hCom
hCom
:
:
handler
handler
al dispositivo.
al dispositivo.
bitStop
bitStop
: cantidad de bits de
: cantidad de bits de
stop
stop
<<
<<
query
query
>>
>>
RecuperarDispositivo
RecuperarDispositivo
() inf. BD para
() inf. BD para
config
config
.,
.,
LeerBloque
LeerBloque
() informacin del puerto
() informacin del puerto
<<
<<
update
update
>>
>>
ConfigurarDispositivo
ConfigurarDispositivo
(),
(),
GrabBloquePuerto
GrabBloquePuerto
()
()
Diagramas de Clase
Diagramas de Clase
Atributo
Atributo
:
:
Operacin
Operacin
:
:
Clases parametrizadas.
Clases parametrizadas.
Template no es directamente utilizable. Template no es directamente utilizable.
Parmetros, nbre [: expTipo] Parmetros, nbre [: expTipo]
Una
Una
interface
interface
es una coleccin de operaciones
es una coleccin de operaciones
que especifican un servicio de una clase o
que especifican un servicio de una clase o
componente, es decir, un comportamiento
componente, es decir, un comportamiento
externamente visible de ese elemento.
externamente visible de ese elemento.
Final de asociacin:
Final de asociacin:
multiplicidad multiplicidad
orden {unordered} (default), {ordered} orden {unordered} (default), {ordered}
navegacin navegacin
agregacin. Diamante lleno es composicin. agregacin. Diamante lleno es composicin.
Nombre del rol Nombre del rol
cambiable (default) {frozen} {addOnly} cambiable (default) {frozen} {addOnly}
visibilidad visibilidad
Generalizacin. Discriminador.
Generalizacin. Discriminador.
Restriccin: {ovelapping},{disjoint},{complete},{incomplete} Restriccin: {ovelapping},{disjoint},{complete},{incomplete}
Relacin de dependencia
Relacin de dependencia
<<amport>> <<access>> <<become>>, <<bind>> <<amport>> <<access>> <<become>>, <<bind>>
Modelado de Relaciones
Modelado de Relaciones
Dependencia
Dependencia
Parmetro de una operacin. Si se muestra la signatura no es Parmetro de una operacin. Si se muestra la signatura no es
necesario la relacin de dependencia necesario la relacin de dependencia
Generalizacin
Generalizacin
Dado un Dado un cjto cjto de clases, se busca responsabilidades, atributos y de clases, se busca responsabilidades, atributos y
operaciones comunes. operaciones comunes.
Se elevan a una clase ms general (nueva o no). No crear Se elevan a una clase ms general (nueva o no). No crear
demasiados niveles. demasiados niveles.
Asociacin.
Asociacin.
Relacin estructural. Relacin bilateral. Diferencia con Relacin estructural. Relacin bilateral. Diferencia con
dependencia y Generalizacin. dependencia y Generalizacin.
Equilibradas. Ni muy profundas (<=5 niveles) ni muy anchas. Equilibradas. Ni muy profundas (<=5 niveles) ni muy anchas.
Herencia mltiple se puede reemplazar por agregacin. Herencia mltiple se puede reemplazar por agregacin.
Elementos del Diagrama de
Elementos del Diagrama de
Clase
Clase
Modelo Conceptual / del Dominio
Modelo Conceptual / del Dominio
Un
Un
Modelo Conceptual /Dominio
Modelo Conceptual /Dominio
es
es
el conjunto
el conjunto
de diagramas de estructura esttico con clases,
de diagramas de estructura esttico con clases,
atributos y asociaciones, pero no operaciones.
atributos y asociaciones, pero no operaciones.
Describir Restricciones
Describir Restricciones
Esttico:
Esttico:
Diagrama de Clase
Diagrama de Clase
Clases:
Clases:
Objetos
Objetos
,
,
Atributos
Atributos
, and
, and
Responsabilidades
Responsabilidades
Paquetes:
Paquetes:
Agrupacin de clases
Agrupacin de clases
Subsistemas:
Subsistemas:
Agrupacin de clases/paquetes
Agrupacin de clases/paquetes
Modelado de Clases
Modelado de Clases
Dado un sistema de la vida real, cmo decide
Dado un sistema de la vida real, cmo decide
que clases usar?
que clases usar?
Los t
Los t
cu
cu
est
est
n balanceadas entre
n balanceadas entre
las clases?
las clases?
Qu
Qu
Ej:
Ej:
una clase Lista
una clase Lista
Querer recorrer la lista en varias formas Querer recorrer la lista en varias formas
Hacia adelante Hacia adelante
Hacia atrs Hacia atrs
filtrada filtrada
ordenada ordenada
... ...
Motivacin
Motivacin
para los iteradores
para los iteradores
No aglutinar la interface
No aglutinar la interface
Lista con varios
Lista con varios
recorridos
recorridos
An si se hace, no se puede anticipar todos los An si se hace, no se puede anticipar todos los
posibles recorridos posibles recorridos
Los Iteradores
Los Iteradores
mueven la responsabilidad para
mueven la responsabilidad para
acceder y recorrer desde los agregados al
acceder y recorrer desde los agregados al
objeto iterador.
objeto iterador.
Ejemplo de Iterador (
Ejemplo de Iterador (
1)
1)
class List {
size() {}
add() {}
remove() {}
}
interface ListIterator {
getFirst();
getNext();
}
Ejemplo de Iterador (
Ejemplo de Iterador (
2)
2)
class FilteredListIterator implements ListIterator {
List.Node curr;
FilteredListIterator(List list, Filter f) {}
getFirst() {
curr = list.head;
while (curr != null) {
if (f.accepts(curr.data))
break;
curr = curr.next;
}
return curr;
}
getNext() {}
}
Otras caracterstias del patrn
Otras caracterstias del patrn
Iterador
Iterador
Los Iteradores
Los Iteradores
proveen una interface comn
proveen una interface comn
para el acceso al objeto
para el acceso al objeto
Los paquetes:
Los paquetes:
Son una agrupacin de elementos del modelo Son una agrupacin de elementos del modelo
Son cohesivos (lmite bien definido alrededor de un conjunto Son cohesivos (lmite bien definido alrededor de un conjunto
de elementos relacionados). de elementos relacionados).
Poco acoplados (exportando slo aquellos elementos que Poco acoplados (exportando slo aquellos elementos que
otros paquetes necesitan, e importando solo lo necesario y otros paquetes necesitan, e importando solo lo necesario y
suficiente suficiente
Pueden contener paquetes subordinados (anidados: Pueden contener paquetes subordinados (anidados:
aconsejable 2 a 3 niveles) y otros elementos del modelo. aconsejable 2 a 3 niveles) y otros elementos del modelo.
Forman un espacio de nombres (p::A, p::A). Forman un espacio de nombres (p::A, p::A).
Generalizacin.
Generalizacin.
Heredan los elementos pblicos y privados. Heredan los elementos pblicos y privados.
Pueden redefinir elementos y aadir nuevos. Pueden redefinir elementos y aadir nuevos.
Un paquete especializado puede usarse en cualquier lugar que se Un paquete especializado puede usarse en cualquier lugar que se
utilice un paquete ms general. utilice un paquete ms general.
Estereotipos:
Estereotipos:
facade
facade
(vista),
(vista),
framework
framework
,
,
stub
stub
,
,
subsystem
subsystem
,
,
system
system
.
.
Empaquetando Clases
Empaquetando Clases
applet
awt
lang
java
paquete
HelloWorld
Graphics
Paquetes
Paquetes
Los
Los
paquetes ofrecen
paquetes ofrecen
un
un
mecanismo
mecanismo
general
general
para
para
la
la
particin
particin
de
de
los modelos
los modelos
y la
y la
agrupacin
agrupacin
de
de
los elementos
los elementos
de
de
modelado
modelado
.
.
La
La
arquitectura
arquitectura
del
del
sistema viene
sistema viene
dada en forma de
dada en forma de
paquetes
paquetes
y
y
por las relaciones
por las relaciones
de
de
dependencia entre ellos
dependencia entre ellos
.
.
Un
Un
paquete puede contener
paquete puede contener
a
a
otros
otros
, sin
, sin
lmite
lmite
de
de
anidamiento
anidamiento
Una clase
Una clase
de un
de un
paquete puede aparecer
paquete puede aparecer
en
en
otro paquete
otro paquete
por
por
la
la
importacin
importacin
a
a
travs
travs
de
de
una relacin
una relacin
de
de
dependencia entre paquetes
dependencia entre paquetes
Paquetes (Cont.)
Paquetes (Cont.)
Cada elemento
Cada elemento
de un
de un
paquete
paquete
se
se
incluye como
incluye como
visible o
visible o
no
no
desde
desde
el exterior del
el exterior del
paq
paq
.
.
Ventas
Personal
Cliente
Representante de Ventas
Tcnicas
Tcnicas
RDBMS,
RDBMS,