Вы находитесь на странице: 1из 47

Diagramas

Clases

LOGO

Concepto de
modelado estructural
Se describen los tipos de objetos de un
sistema y las relaciones estticas que
existen entre ellos.
A la hora de modelar un sistema es
necesario identificar las cosas ms
importantes eligiendo un nivel de
abstraccin capaz de identificar todas las
partes relevantes del sistema y sus
interacciones.
LOGO

Concepto de
modelado estructural
Se expresa mediante los diagramas de
clase. Normalmente contienen:
Clases
Interfaces
Relaciones de dependencia, realizacin,
generalizacin y asociacin (agregacin,
composicin)

Tambin pueden incluir paquetes y


colaboraciones.
LOGO

Elementos
Estructurales
Gestor Eventos

Hola
Mundo.class

clase activa

suspender()
vaciarCola()

componente

colaboracin

Servidor

Gestin Pedidos

nodo

LOGO

Diagrama de Clases
y de Objetos
Objeto: Concepto, abstraccin o cosa con lmites
bien definidos y con significado para el problema
que se est manejando.
Todos los objetos presentan una identidad, que los hace
distinguibles, un estado y un comportamiento.
El trmino identidad significa que los objetos se
distinguen por su existencia inherente y no por
propiedades descriptivas que puedan tener.

Clase: Descripcin abstracta de un grupo de


objetos con propiedades similares (atributos),
comportamiento comn (operaciones), relaciones
comunes con otros objetos y semntica comn.
LOGO

Atributos
Las clases tienen atributos que representan alguna propiedad de la
clase que comparten todos los objetos de esa clase.
Un atributo es una propiedad nombrada de una clase, que describe un
rango de valores que puede tomar esa propiedad en las
instancias.
Por ejemplo, nombre, edad o peso son atributos de objetos Persona.
Cada nombre de atributo es nico dentro de una clase, pero cada atributo tiene
un valor para cada instancia de la clase.

Diferentes instancias de objetos pueden tener los mismos o


distintos valores para un atributo dado.
La identidad implcita del objeto permite distinguir objetos en que
todos los valores de los atributos sean idnticos.

LOGO

Atributos
Un atributo debera ser un valor de datos
puro, no un objeto.
Los valores de datos puros, a diferencia de
los objetos, no tienen identidad.

LOGO

Atributos
[visibilidad] nombre [: tipo] [= valor_inicial ] [{propiedades}]
+ = pblica el atributo ser visible tanto dentro como
fuera de la clase-accesible desde todos los lados
visibilidad
# = protegida el atributo no ser accesible desde fuera de la
clase, pero si ser accesado por mtodos de la clase adems de
las subclases que se deriven
- = privada Indica que el atributo solo ser accesible desde
dentro de la clase
nombre:
tipo:

nombre del atributo


tipo del atributo

valor_inicial: valor inicial o por defecto


propiedades: {frozen} {addOnly}

LOGO

Atributos

Cliente
nombre : String

Nivel Conceptual: Los clientes tienen un nombre


Nivel de Especificacin: El cliente puede
almacenar y consultar su nombre
Nivel de Implementacin: Una instancia de Cliente
tiene un campo de tipo String que almacena su
nombre y un mtodo que lo devuelve
9

LOGO

Operaciones
[visibilidad] nombre [(lista_parametros)] [: tipo_retorno] [{propiedades}]

+ = pblica
# = protegida
- = privada

visibilidad
nombre:

nombre de la operacin

lista_parmetros:

lista de parmetros separados por comas

tipo retorno:

tipo de valor devuelto por la operacin

propiedades:

{isQuery}, {sequential}, {concurrent}

10

LOGO

Operaciones

Cuenta
ultimoCodigo
codigo
cliente
saldo
ultimasOperaciones
getSaldo()
getUltimasOperaciones()
nuevoCodigo()

11

Atributos

Operaciones

LOGO

Operaciones
Una operacin es una funcin o transformacin que puede
ser aplicada por o sobre objetos de una clase.
Todos los objetos de una clase comparten las mismas
operaciones.
Una operacin es la implementacin de un servicio que puede
requerirse de cualquier objeto de la clase.

Cada operacin tiene a un objeto determinado como


argumento implcito y el comportamiento de la operacin
depende de la clase de este objeto.
Un objeto conoce su clase y, por tanto, la implementacin correcta
de la operacin.

LOGO

Operaciones
Las operaciones en una clase definen lo que la clase
puede hacer y pueden considerarse como la interfase de
la clase.
Operacin pregunta (query): es aqulla operacin que
nicamente calcula un valor funcional sin modificar
ningn objeto.
Las preguntas sin argumentos, salvo el objeto al que se aplican,
pueden considerarse como atributos derivados.

LOGO

Resumen de
notacin
Una clase se representa con un recuadro
dividido en tres regiones, que contienen, de
arriba a abajo:

Los atributos y operaciones pueden mostrarse o


no, dependiendo del nivel de detalle deseado.

LOGO

Resumen de
notacin
Los atributos y las operaciones
pueden tener diferentes niveles de
visibilidad.
Pblico: visible por todos los clientes de
la clase.
Protegido: visible por las subclases de la
clase.
Privado: visible slo para la clase.
Paquete: visible para cualquier clase del
mismo paquete.
Atributos y operaciones estticos (static)
o de clase: son propios de la clase, no de
la instancia. Son visibles por todos los
objetos de la clase.
LOGO

Diagramas de clases
y de objetos
Un diagrama de clases describe la estructura esttica de
un sistema en trminos de clases y de relaciones entre
estas clases, mostrando los atributos y operaciones que
caracterizan cada clase de objetos.
Un diagrama de objetos representa la estructura esttica del
sistema mostrando los objetos (instancias) en el sistema y las
relaciones entre los objetos.
Un diagrama de clases dado corresponde a un conjunto infinito de
diagramas de objetos.

LOGO

Otras propiedades
Clases y mtodos diferidos
Multiplicidad
Variables y mtodos de clase
Cuenta
ultimoCodigo
codigo
cliente
saldo
ultimasOperaciones

<<abstract>>
Figura
rotar()
trasladar()
visualizar()

getSaldo()
getUltimasOperaciones()
nuevoCodigo()

17

LOGO

Relaciones
Dependencia
Un cambio en la especificacin de un elemento afecta a
otro
PlanDelCurso

Window
position
parent
children
size

Curso
aadir(c : Curso)
eliminar(c : Curso)

Clock

open()
close()
move()
resize()

Nodo

Lista
<<friend>>

18

LOGO

Relaciones
Generalizacin
Es-un-tipo-de

Cuenta

CuentaAhorro

Window

CuentaCorriente

19

TextWindow

BoxDialog

LOGO

Generalizacin
Nivel Conceptual
Todas las instancias de CuentaCorriente son
instancias de Cuenta

Nivel Especificacin
La interfaz de CuentaCorriente incluye la interfaz de
Cuenta
Principio Sustitucin

Nivel Implementacin
Herencia

20

LOGO

Asociacin
Asociacin
Relacin estructural que especifica que los objetos
de un tipo estn conectados con los de otro.(como
se relaciona una clase con otra, multiplicidad)
Persona

+empleado

+patron

1..*

Empresa

impartido

Curso
*

Profesor
1..*

21

LOGO

Asociaciones
Agregacin
Caso especial de asociacin
Relacin estructural parte-de(muchas
departamentos es parte de una empresa)
Empresa
1..1

*
Departamento

22

LOGO

Composicin
Es un caso particular de agregacin:
exclusiva y dependiente

Las partes pueden crearse despus del


agregado compuesta al que pertenecen, pero
una vez creadas viven y mueren con ella.
La parte slo puede formar parte de un
agregado.
El agregado gestiona la creacin y
destruccin de las partes.
Las partes se pueden eliminar antes de
eliminar el agregado.(es parte de ..)
23

LOGO

Composicin

Ventana

agregado /todo

1..1

composicin
*
Marco

parte

Si se destruye el
marco ya no se
tendra una ventana
(forma el todo)
24

LOGO

Navegacin

Posibilidad de limitar la navegacin a una sola direccin


Determina si una clase de la asociacin tiene
conocimiento de la otra.
Nivel de especificacin o implementacin(1 o mas
profesores )

impartido

Curso
*

Profesor
1..*

25

LOGO

Visibilidad
Pblica: +propietario
Protegida: #propietario
Privada: -propietario

CuentaCorriente
#numero
#saldo
-inters
+consultarSaldo()
+ingresar(cantidad: real)()

GrupoUsuarios

Usuario
*

+propietario
1..1

26

-clave

Clave

LOGO

Composicin

POLIGONO

Poligono
1

{ordered}

Punto

Relleno:Diseo

3..n

Diseo
color
textura

{ordered} 3..*
Punto

27

LOGO

Clases
Asociacin
Una asociacin que tambin es una clase
Una clase asociacin aade una restriccin:
Slo puede existir una instancia de la
asociacin entre cualquiera par de objetos
participantes
No podramos modelar que una persona tiene
diferentes contratos para una misma compaa
a lo largo del tiempo.
28

LOGO

Ejemplo de clase
asociacin

Empleado
id
0..n

0..n

NivelSalario
min
max
inicio
fin
name
id

HistoriaSalario
inicio
fin
salario

29

LOGO

Ejemplo de clase
asociacin
Persona

+empleado

+patron

1..*

Compaia

*
Trabajo
descripcion
fechaContrato
salario

30

LOGO

Restricciones para
Asociaciones
Empresa

Cuenta

Departamento
*

{or}
Persona

{subconjunto}
+miembro

1..*
Persona

31

+Director
1..1

LOGO

Realizacin
Relacin entre clasificadores, un clasificador
especifica
un contrato que otro clasificador garantiza que
cumplir.
<<Interface>>
IPila
Pila
push()
pop()
top()
Pila

IPila

32

LOGO

Relaciones entre
clases
Asociacin: es una conexin entre clases, que implica la
existencia de una relacin estructural entre objetos de
esas clases.
Generalizacin: es una relacin entre una clase ms general y
una ms especfica o especializada.
Dependencia: es una relacin de uso entre clases.

LOGO

Multiplicidad
La multiplicidad especifica cuntas instancias de una clase pueden
relacionarse con una instancia simple de una clase asociada. Por tanto,
limita el nmero de objetos relacionados.
En general, la multiplicidad es un subconjunto (posiblemente infinito) de los
nmeros enteros no negativos.

En los diagramas de clases se indica la multiplicidad con smbolos


especiales en los extremos de las lneas de las asociaciones.

LOGO

Restricciones sobre
las asociaciones
Un conjunto ordenado de objetos en el extremo muchos de una
asociacin se indica escribiendo '{ordered (ordenado)}' cerca del
punto que representa la multiplicidad, como si fuera un papel.
La restriccin '{subconjunto (subset)}' indica que una asociacin es
un subconjunto de otra.
La restriccin '{or}' indica que los objetos de una clase pueden
participar en una sola asociacin entre un grupo de asociaciones.

LOGO

Herencia mltiple
La herencia mltiple o solapada (overlapping generalization)
permite que una clase tenga ms de una superclase y herede
caractersticas de todos sus padres.
Una clase puede heredar caractersticas de ms de una superclase
y en este caso se denomina clase unin.
Una caracterstica de la misma clase ancestro encontrada a travs de ms de un
camino se hereda slo una vez; es la misma caracterstica.

LOGO

Diagramas de Clases
Como elaborar un diagrama de clases del
diseo
Aplique la siguiente estrategia para elaborar diagramas de clases:
1. Identifique todas las clases que participan en la solucin del software. Para
ello analice los diagramas de interaccin.
2. Dibjelas en un diagrama de clases
3. Duplique los atributos provenientes del modelo conceptual
4. Agregue los nombres de los mtodos analizando los diagramas de interaccin
5. Incorpore la informacin sobre los tipos de atributos y los mtodos
6. Agregue las asociaciones necesarias para dar soporte a la visibilidad
requerida de los atributos
7. Agregue flechas de navegabilidad a las asociaciones para indicar la direccin
de la visibilidad de atributos
8. Agregue las lneas de relaciones de dependencia para indicar la visibilidad no
relacionada con los atributos

LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

El siguiente paso consiste en dibujar un diagrama de


clases para estas, e incluir atributos y asociaciones
del modelo conceptual.
CAJA

CatalogodeProductos

descripcion
cantidad
CUP

cantidad

Tienda
direccion
nombre

EspecificaciodeProducto

Venta
fecha
estaterminada
hora

VentasLineadeProducto
Cantidad

Pago
monto

LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

Nombres de los Mtodos tomados de los


Diagramas de Colaboracin / Interaccin:

Venta
fecha
estaTerminada
hora
hacerLineadeProduct
o()

:CAJA

3: hacerLineadeProducto(especif, cant)

:Venta
LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

CAJA
TerminarVenta()
IntroducirProducto()
EfectuarPago()

CatalogodeProductos
Especificacion()

EspecificaciodeProducto
Descripcion
Cantidad
CUP

Venta
Tienda
Direccion
nombre
agregarVenta()

Pago

fecha
estaTerminada
hora
Setermina()
HacerLineadeProducto()
EfectuarPago()
Total()

VentaLineadeProducto
Cantidad
Subtotal()

cantidad

LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

Incorporacin de Informacin
sobre los Tipos:
Venta
fecha : fecha
estaTerminada : Booleano
hora : hora
seTermina()
hacerLineadeProducto(especif : EspecificaciondeProd, cant : Entero)
efectuarPago(efectivoOfrecido : Cantidad)
total() : Cantidad
Tipo de resultado a
devolver al mtodo

Vaco, sin valor a devolver

LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

Descripcin grfica de la navegabilidad,


o sea de la visibilidad de los atributos
La flecha de navegabilidad indica
que los objetos CAJA estn
conectados unidireccionalmente
con los objetos Venta

La clase CAJA probablemente


tenga un atributo que apunta a
un objeto venta

Venta

CAJA
1

Captura

IntroducirProducto()
TerminarVenta()
EfectuarPago()

Fecha
EstaTermin: Booleano
hora
IntroducirProducto()
Se termina()
EfectuarPago()
Total()

La ausencia de la flecha de
navegabilidad indica que no
existe conexin de Venta a CAJA

LOGO

CREACIN DE DIAGRAMAS DE CLASES DEL


DISEO

Tienda
usa

direccion
nombre
agregarVenta()
1

EspecificaciodeProducto

CatalogodeProductos

Descripcion
Cantidad
CUP

1
1 contiene

especificacion()

1..*

1
Mira-en

alberga

describe

Venta
1

CAJA

terminarVenta()
introducirProducto()
efectuarPago()

fecha
estaTerminada
hora
captura

Registro terminados

VentaLineadeProducto

seTermina()
hacerLineadeProducto()
efectuarPago()
total()
*

1 contiene

1..*

cantidad
Subtotal()

Pagada_por

Asociaciones con Smbolos de


Navegabilidad:

Pago

cantidad

LOGO

Ejemplo

LOGO

EJERCICIO
Realizar un diagrama de clases para una
agencia de venta de autos.
Autos disponen de atributos (placa, modelo,
precio_unit) .
Agencia dispone de atributos(nombre, ciudad,
telfono)
Venta atributos (fecha, precio_total, descuento)
Mostrar operaciones como las ventas totales por
agencia.
Mostrar operaciones ventas totales por auto.
LOGO

EJERCICIO
Realizar un diagrama de clases para la
suscripcin de un socio a un club.
Los socios tienen datos personales
( contacto, direccin y e-mail). Reportes
como: Reporte mensual de nuevos socios
inscriptos
Listado de actividades clasificadas por
suscripcin (bsica, intermedia y aquellas
que solo puede accederse con la
suscripcin destacada).
LOGO

Listado de socios clasificados por


suscripcin adquirida
Cada socio debe abonar una cuota
dependiendo el tipo de suscripcin

LOGO

Вам также может понравиться