Beruflich Dokumente
Kultur Dokumente
Diagramas de Clases
(UML ilustrado)
Advertencia
4
Nota Importante
Qu es un
Dominio de
Aplicacin?
Qu es un Modelo
de Dominio?
6
Diagramas de Clases
Qu es una Clase?
8
Diagramas de Clases
(Que es una Clase?)
Atributos:
Propiedades relevantes de un clase
Representan su estructura
Pueden ser simples o compuestos
Mtodos:
Comportamiento asociado a una
clase
10
Diagramas de Clases
private double r;
private double i;
El cdigo es
Java ;-)
12
Diagramas de Clases
(Que es una Clase?)
Visibilidad:
- Privado
~ Paquete Valor por
# Protegido Defecto
+ Pblico
Tipo de Dato
Nombre
Atributo Multiplicidad
qu es un objeto?
qu es una instancia?
qu es instanciar?
15
Conceptos de Objetos
(Diagramas de Clases)
Instancia:
Cada objeto que pertenece a una
clase
Instanciacin / Instanciar:
Proceso de generacin o creacin de
las instancias (objetos) de una clase
pedro = new Persona()
Objeto:
Representacin de algo que se
describe mediante un identificador,
una estructura y un comportamiento.
Instancia de una Clase
16
Diagramas de Clases
public Persona(
String nombre, char sexo, Date fechaNac, String profesion) {
this.nombre = nombre;
this.sexo = sexo;
this.fechaNac = fechaNac;
this.profesion = profesion;
}
}
18
Diagramas de Clases
(Parametrizables / Abstractas / Utilitarias)
21
Diagramas de Clases
(Especializacin / Generalizacin / Herencia)
22
Diagramas de Clases
(Especializacin / Generalizacin / Herencia)
Herencia:
Disjunta / Traslapada
Total / Parcial
23
Diagramas de Clases
(Especializacin / Generalizacin / Herencia)
Preparador
-fechaConcurso: Fecha[1]
+despliega()
Mayo,2008 EISULA. Dpto. De Computacin. Isabel Besembel C. Base de Datos. Sem. A-08. 25
Relaciones (Vnculos)
Asociaciones?
1:1, 1:N y N:M?
Eso se puede ver
mejor con un ejemplo
26
Relaciones (Vnculos)
1:N
Vnculo / Relacin
Trabaja En / Tiene
Departamento
de Control
Departamento
de Investigacin
de Operaciones
Departamento
de Computacin
Profesores Departamentos
Programacin
10
Programacin
20
Bases de Datos
Profesores Materias
Chicas Chicos
Cmo se implementan? 30
Diagramas de Clases
(Asociaciones)
public class Departamento {
// ...
31
Diagramas de Clases
(Asociaciones)
public class Estudiante {
// ...
32
Diagramas de Clases
(Asociaciones)
public class Estudiante {
// Una lista de EstAsigRelacion (Una clase relacin)
private List<EstAsigRelacion> estAsigRelacionList;
}
33
Diagramas de Clases
(Asociaciones)
Una relacin
muchos a muchos
se puede ver como
dos relaciones uno a
muchos
34
Diagramas de Clases
(Asociaciones)
public class Departamento {
// ...
35
Diagramas de Clases
(Asociaciones)
// Datos de la asociacin
private double nota;
private int asistencias
// referencias cruzadas a
// las dos clases relacionadas
private Estudiante estudianteRef;
private Seccion seccionRef;
}
Navegable por
ambos lados
Navegable
NO
navegable
Indefinido
37
Diagramas de Clases
(Agregacin / Composicin)
Cmo se implementan?
Cul es la diferencia con las asociaciones? 38
Diagramas de Clases
(Agregacin / Composicin)
La parte (La
rueda) puede
existir sin el
todo?
39
Diagramas de Clases
(Agregacin / Composicin)
Peor an...
40
Diagramas de Clases
(Agregacin / Composicin)
La clase
persona
depende de la
clase telfono
42
Diagramas de Clases
Qu / Cul es la
Interfaz de una clase?
43
Diagramas de Clases
(Interfaces / Realizaciones)
44
Diagramas de Clases
(Interfaces / Realizaciones)
La interfaz IGeometrico es
implementada / realizada tanto
por Crculo como por
Rectngulo
import java.awt.Rectangle;
List<IDibujable> elementosDibujar;
Algunos de estos
son crculos, otros
// ... son rectngulos,
estrellas, lneas,
etctera...
for (IDibujable dibujable : Pero todos
elementosDibujar) { implementan la
// No importa si dibujable es interfaz IDibujable
// un crculo, rectngulo, etctera
// Los puedo manejar a todos igual
// porque tienen una interfaz en comn
dibujable.dibujar();
}
qu es acoplamiento?
qu es cohesin?
el acoplamiento ms bajo posible y la cohesin ms alta
posible suele ser el objetivo de todo arquitecto, diseador
de software o programador
lectura recomendada:
http://latecladeescape.com/w0/ingenieria-del-software/acoplamiento-y-cohesion.html
49
Diagramas de Clases
Ejemplos
50
Diagramas de Clases
(Un ejemplo conceptual)
Modelo de Dominio 51
Diagramas de Clases
(Un ejemplo conceptual)
52
Diagramas de Clases
(Un ejemplo conceptual)
Modelo de Dominio 53
Diagramas de Clases
(Un ejemplo conceptual)
Modelo de Dominio 54
Diagramas de Clases
(Arquitectura de las clases GUI de CLEDA)
Arquitectura
Diseo OO
55
Diagramas de Clases
(Arquitectura del motor de Workflow CledaFlow)
Arquitectura
Diseo OO 56
Diagramas de Clases
A nivel de
implementacin
57
Diagramas de Clases
(Modelo Conceptual)
class Dependencias
+tieneEscuelas
Escuela
1..*
+tieneDepartamentos 1..*
Departamento Dependencia
Facultad/ Ncleo
+tieneInstitutos
InstitutoDeI nvestigacin
*
+tieneCentros
CentroDeInvestigacin
*
+tieneLabs
LaboratorioDeInvestigacin
*
+tienePostgrados
Postgrado
*
58
Diagramas de Clases
(Modelo de Implementacin)
class pelculas
59
Diagramas de Clases
-secretariaDe 1 1
-secretariaDe
SolicitudDeProfesor SolicitudDeEstudiante
-estudiantes 1..*
-profesores 1..* -solicitadoPor -solicita -solicita -solicitadoPor
Estudiante
Profesor * * Equipo * *
1 -autorizadoPor -autoriza * -controla *
-controladoPor
1
-secretaria
Personal -secretaria
1
1
Persona
60
Diagramas de Clases
class Geometra
enumeration
TipoColor
61
Diagramas de Clases
Lecturas recomendadas:
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
(En Ingls)
62
REFERENCIAS
63
Gracias
Gracias!
64