Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase de Uml Bueno
Clase de Uml Bueno
(UML ilustrado)
Diagramas de Clases (Qu Muestran?) La estructura esttica del sistema modelado (piense en el plano estructural de un ingeniero civil) Las relaciones que existen entre las distintas clases y objetos del sistema Las clases y objetos del sistema y su estructura interna Se concentran en los elementos del sistema de forma independiente del tiempo (Muestran aspectos estticos y no dinmicos)
2
Diagramas de Clases (Para qu Sirven?) Realizar la abstraccin de un dominio y formalizar el anlisis de los conceptos relacionados al mismo (Modelo de Dominio) (...o de cualquier tipo de conceptos) Definir / Documentar una solucin de diseo, es decir, la estructura del sistema que se va a implementar en trminos de clases y objetos Definir / Documentar modelado
de datos
3
Diagramas de Clases
Advertencia
Nota Importante El hecho de que exista cierta caracterstica en un diagrama (ej: la declaracin de mtodos) no significa que de forma obligatoria se deba usar, simplemente son herramientas que estn disponibles. Cuando usted arregla algo, no usa todas las herramientas de su caja de herramientas, slo usa lo que necesita para realizar el trabajo. Igual ocurre con UML y las herramientas de modelado, use slo las herramientas (diagramas / constructos) que necesita para una situacin particular y no sobre use las herramientas, tratando de usarlas slo porque si...
5
Diagramas de Clases
Diagramas de Clases
La mayora de los conceptos que se presentan en las siguientes transparencias estn relacionados con los conceptos de programacin orientada a objetos (POO) vistos en PR2
7
Diagramas de Clases
Qu es una Clase?
Atributos: Propiedades relevantes de un clase Representan su estructura Pueden ser simples o compuestos
Diagramas de Clases
La relacin que existe entre el cdigo y una clase en UML es muy importante Necesito que hablemos el mismo idioma!
11
Multiplicidad
Parmetros de Entrada
Tipo de Retorno
Base de Datos: Generalmente, cuando se desarrolla un modelo de datos no se utiliza toda esta complejidad. Por ejemplo, generalmente no se definen mtodos
13
Diagramas de Clases
Objeto: Representacin de algo que se describe mediante un identificador, una estructura y un comportamiento. Instancia de una Clase
16
Diagramas de Clases
public class Persona { private private private private String char Date String nombre; sexo; fechaNac; profesion;
public Persona( String nombre, char sexo, Date fechaNac, String profesion) { this.nombre = nombre; this.sexo = sexo; this.fechaNac = fechaNac; this.profesion = profesion; }
17
Diagramas de Clases
Persona p1 = new Persona( Pedro, 'M', new Date(16, Persona p2 = new Persona( Andrea, 'F', new Date(14,
7, 1988), Actor
);
4, 1980), Ceramista); );
Persona p3 = new Persona( Mara, 'F', new Date(23, 11, 1960), Mdico Persona p4 = new Persona( Luis, 'M', new Date(12,
1, 1977), Ingeniero);
18
19
} // La clase se usa de la siguiente forma: Lista<int> listaDeEnteros = new Lista<int>(); Lista<Persona> listaDePersonas = new Lista<Persona>();
20
public abstract class FiguraBase { public void insertarEnCanvas(Canvas c) { /* cdigo */ } public void eliminarDeCanvas(Canvas c) { /* cdigo */ } // Los mtodos siguientes son abstractos, // es decir, no tienen implementacin public public public public abstract abstract abstract abstract double double double double getArea(); getPerimetro(); getRectCont(); getDibujar();
21
22
23
Polimorfismo:
se puede usar el mismo nombre para la definicin de un mtodo en varias clases sin importar la relacin entre las mismas.
Encadenamiento tardo:
Estudia +despliega()
-carrera: Tipo
Mayo,2008
25
Relaciones (Vnculos)
Departamento de Control
Departamento de Computacin
Profesores Departamentos
27
Programacin 10
Programacin 20
Bases de Datos
Profesores
Materias
28
Chicas
Chicos
Con cuantos Chicos puede estar asociados (ser novios) de una Chica en particular? Y al contrario? 29
Cmo se implementan?
30
31
32
33
Una relacin muchos a muchos se puede ver como dos relaciones uno a muchos
34
35
public class Seccion { // Una lista de Nota (Una clase asociacin) private List<Nota> notaList; }
36
NO navegable
Indefinido
37
38
39
40
Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts) Citas tomadas literalmente del Estndar de UML
41
42
Diagramas de Clases
43
44
Desde el punto de vista de POO, tanto Crculo como Rectngulo son objetos de tipo IGeometrico
45
for (IDibujable dibujable : elementosDibujar) { // No importa si dibujable es // 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
Modelo de Dominio
51
52
Modelo de Dominio
53
Modelo de Dominio
54
Arquitectura Diseo OO
55
Arquitectura Diseo OO
56
Diagramas de Clases
A nivel de implementacin
57
58
+produce *
59
Diagramas de Clases
class Prstamo de equipos Dependencia -tieneDepartamentos Departamento 1..* -secretariaDe 1 SolicitudDeProfesor -profesores 1..* Profesor * 1 -solicitadoPor -solicita * -autorizadoPor -autoriza * Equipo -controla * SolicitudDeEstudiante -estudiantes 1..* -solicita * -solicitadoPor * Estudiante Dependencia Escuela 1 -secretariaDe
-controladoPor -secretaria 1
1 -secretaria 1
Personal
Persona
60
Diagramas de Clases
class Geometra enumeration TipoColor enumeration TipoRelleno enumeration TipoSombra DatoGeomtrico color: TipoColor enum rojo verde negro
-esquinaSuperiorIzquierda 1 -hasta
Lnea
61
Diagramas de Clases
Lecturas recomendadas:
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
(En Ingls)
62
REFERENCIAS
Booch, Rumbaugh, Jacobson, El Lenguaje Unificado de Modelado, Pearson Addison-Wesley 1ra. Edicin
63
Gracias
Gracias!
64