SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
1
DiagramaDiagrama
dede
ClasesClases
2
Diagrama de ClasesDiagrama de Clases
•• El propósito de este diagrama es el de representar losEl propósito de este diagrama es el de representar los
objetos fundamentales del sistema, es decir los queobjetos fundamentales del sistema, es decir los que
percibe el usuario y con los que espera tratar parapercibe el usuario y con los que espera tratar para
completar su tarea en vez de objetos del sistema o de uncompletar su tarea en vez de objetos del sistema o de un
modelo de programación.modelo de programación.
•• La clase define el ámbito de definición de un conjunto deLa clase define el ámbito de definición de un conjunto de
objetos.objetos.
•• Cada objeto pertenece a una clase.Cada objeto pertenece a una clase.
•• Los objetos se crean por instanciación de las clases.Los objetos se crean por instanciación de las clases.
3
Diagrama de ClasesDiagrama de Clases
•• Cada clase se representa en un rectángulo con tresCada clase se representa en un rectángulo con tres
compartimientos:compartimientos:
•• Nombre de la claseNombre de la clase
•• Atributos de la claseAtributos de la clase
•• Operaciones de la claseOperaciones de la clase
4
Diagrama de Clases: AtributosDiagrama de Clases: Atributos
•• TipoTipo: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar.r.
•• Valor inicialValor inicial: valor que poseerá el atributo al crear un objeto.: valor que poseerá el atributo al crear un objeto.
•• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento.
•• MultiplicidadMultiplicidad: determinar si un atributo debe estar o no, y si posee un único: determinar si un atributo debe estar o no, y si posee un único valor ovalor o
una lista de valores.una lista de valores.
•• OrdenamientoOrdenamiento: especifica si el atributo determina alguna relación de orden d: especifica si el atributo determina alguna relación de orden dentro de laentro de la
clase.clase.
•• Capacidad de cambioCapacidad de cambio: permite definir atributos con valores constantes.: permite definir atributos con valores constantes.
•• ModificadoresModificadores: un atributo puede ser de clase, derivado, volátil, transitorio: un atributo puede ser de clase, derivado, volátil, transitorio..
El atributo fecha de nacimiento es público.El atributo fecha de nacimiento es público.
El atributo edad es derivado (puede calcularse a partirEl atributo edad es derivado (puede calcularse a partir
de la fecha de nacimiento), y determina una relación dede la fecha de nacimiento), y determina una relación de
orden entre las instancias de las personas.orden entre las instancias de las personas.
El atributo DNI es un atributo protegido.El atributo DNI es un atributo protegido.
El atributo coloresPreferidos representa una colecciónEl atributo coloresPreferidos representa una colección
o conjunto de valores del tipo Coloro conjunto de valores del tipo Color
5
Diagrama de Clases: AtributosDiagrama de Clases: Atributos
VisibilidadVisibilidad
La encapsulamiento presenta tres ventajas básicas:La encapsulamiento presenta tres ventajas básicas:
•• Se protegen los datos de accesos indebidosSe protegen los datos de accesos indebidos
•• El acoplamiento entre las clases se disminuyeEl acoplamiento entre las clases se disminuye
•• Favorece la modularidad y el mantenimientoFavorece la modularidad y el mantenimiento
Los atributos de una clase no deberían ser manipulables directamLos atributos de una clase no deberían ser manipulables directamente por el resto deente por el resto de
objetos.objetos.
Niveles de encapsulamiento:
((--) Privado) Privado : es el más fuerte. Esta parte es totalmente invisible desde: es el más fuerte. Esta parte es totalmente invisible desde
fuera de la clase (excepto para clases friends en terminolfuera de la clase (excepto para clases friends en terminología C++).ogía C++).
(~) Package(~) Package : Sólo es visible dentro del mismo package.: Sólo es visible dentro del mismo package.
(#)(#) Los atributos/operacionesLos atributos/operaciones protegidosprotegidos están visibles para las clasesestán visibles para las clases
friends y para las clases derivadas de la original.friends y para las clases derivadas de la original.
(+)(+) Los atributos/operacionesLos atributos/operaciones públicospúblicos son visibles a otras clases (cuandoson visibles a otras clases (cuando
se trata de atributos se está transgrediendo el principise trata de atributos se está transgrediendo el principio deo de
encapsulamiento).encapsulamiento).
6
Diagrama de Clases: AtributosDiagrama de Clases: Atributos
MultiplicidadMultiplicidad
ModificadoresModificadores
•• DeDe claseclase oo estáticoestático: el atributo se aparece subrayado. No es necesario contar: el atributo se aparece subrayado. No es necesario contar
con un objeto para ejecutarlo.con un objeto para ejecutarlo.
•• DerivadoDerivado: es calculable a partir de otros atributos.: es calculable a partir de otros atributos.
•• TransitorioTransitorio: tendrá valor sólo durante una porción de la ejecución.: tendrá valor sólo durante una porción de la ejecución.
•• VolátilVolátil: no se persiste.: no se persiste.
11 El atributo debe tener un único valor.El atributo debe tener un único valor.
0..10..1 El atributo puede o no tener un valor.El atributo puede o no tener un valor.
0..*0..* El atributo puede tener varios valores o ninguno.El atributo puede tener varios valores o ninguno.
1..*1..* El atributo puede tener varios valores, pero debe tener al menosEl atributo puede tener varios valores, pero debe tener al menos unouno
** El atributo puede tener varios valores.El atributo puede tener varios valores.
M..NM..N El atributo puede tener entre M y N valores.El atributo puede tener entre M y N valores.
7
Diagrama de Clases: OperacionesDiagrama de Clases: Operaciones
Una operación es un servicio que una instancia de la clase puedeUna operación es un servicio que una instancia de la clase puede realizar.realizar.
•• Tipo devueltoTipo devuelto: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar.r.
•• ParámetrosParámetros: además del tipo, puede especificarse si son In, Out o InOut.: además del tipo, puede especificarse si son In, Out o InOut.
•• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento.
•• ModificadoresModificadores: una operación puede ser de clase, abstracta, query o construct: una operación puede ser de clase, abstracta, query o constructor.or.
La operación calcularEdad es privado y noLa operación calcularEdad es privado y no
devuelve nada.devuelve nada.
El método público calcularHorasTrabajadas esEl método público calcularHorasTrabajadas es
abstracto, las subclases de la clase Persona deberáabstracto, las subclases de la clase Persona deberá
implementarlo para utilizarlo.implementarlo para utilizarlo.
8
Diagrama de ClasesDiagrama de Clases
Relaciones entre ClasesRelaciones entre Clases
•• Una asociación es una conexión estructural simpleUna asociación es una conexión estructural simple
entre clases. Las instancias de las clases implicadas enentre clases. Las instancias de las clases implicadas en
una asociación estarán probablemente comunicándoseuna asociación estarán probablemente comunicándose
en el momento de ejecución.en el momento de ejecución.
•• Los enlaces entre de objetos pueden representarseLos enlaces entre de objetos pueden representarse
entre las respectivas clasesentre las respectivas clases
•• Formas de relación entre clases:Formas de relación entre clases:
•• Asociación y Agregación (vista como un caso particular deAsociación y Agregación (vista como un caso particular de
asociación)asociación)
•• Generalización/EspecializaciónGeneralización/Especialización
9
Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación
•• La asociación expresa una conexión bidireccional entreLa asociación expresa una conexión bidireccional entre
objetos.objetos.
•• Una asociación es una abstracción de la relaciónUna asociación es una abstracción de la relación
existente en los enlaces entre los objetos.existente en los enlaces entre los objetos.
EnlaceEnlace
10
Diagrama de ClasesDiagrama de Clases
Relaciones entre ClasesRelaciones entre Clases
MultiplicidadMultiplicidad
11 Un elemento relacionado.Un elemento relacionado.
0..10..1 Uno o ningún elemento relacionado.Uno o ningún elemento relacionado.
0..*0..* Varios elementos relacionados o ninguno.Varios elementos relacionados o ninguno.
1..*1..* Varios elementos relacionados pero al menos uno.Varios elementos relacionados pero al menos uno.
** Varios elementos relacionados.Varios elementos relacionados.
M..NM..N Entre M y N elementos relacionados.Entre M y N elementos relacionados.
11
Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación
RolRol
•• Identificado como un nombre a los finales de la asociaciIdentificado como un nombre a los finales de la asociacióón,n,
describe la semdescribe la semáántica de la relacintica de la relacióón en el sentido indicado.n en el sentido indicado.
•• Cada asociaciCada asociacióón tiene dos roles; cada rol es una direccin tiene dos roles; cada rol es una direccióón enn en
la asociacila asociacióón.n.
12
Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación
•• Se asume que una asociación es bidireccional, es decirSe asume que una asociación es bidireccional, es decir
que se puede navegar desde cualquiera de clasesque se puede navegar desde cualquiera de clases
implicadas a la otra, pero es posible indicar que laimplicadas a la otra, pero es posible indicar que la
navegación ocurrirá en una sola dirección.navegación ocurrirá en una sola dirección.
13
Diagrama de Clases: AgregaciónDiagrama de Clases: Agregación
•• Es una asociación especial, una relación del tipoEs una asociación especial, una relación del tipo
“todo/parte” dentro de la cual una o más clases son“todo/parte” dentro de la cual una o más clases son
partes de un conjunto.partes de un conjunto.
14
Diagrama de Clases: ComposiciónDiagrama de Clases: Composición
•• La composición es una forma ‘fuerte’ deLa composición es una forma ‘fuerte’ de
agregación. Se diferencian en:agregación. Se diferencian en:
•• En la composición tanto el todo como las partes tienen elEn la composición tanto el todo como las partes tienen el
mismo ciclo de vida.mismo ciclo de vida.
•• Un objeto puede pertenecer solamente a una composición.Un objeto puede pertenecer solamente a una composición.
15
Diagrama de Clases: Asociación CalificadaDiagrama de Clases: Asociación Calificada
•• Un calificador es un atributo (o tupla de atributos) de laUn calificador es un atributo (o tupla de atributos) de la
asociación cuyos valores sirven para particionar elasociación cuyos valores sirven para particionar el
conjunto de objetos enlazados a otro.conjunto de objetos enlazados a otro.
•• Un calificador se representa como un pequeñoUn calificador se representa como un pequeño
rectángulo conectado al final de una asociación y a larectángulo conectado al final de una asociación y a la
clase.clase.
•• El rectángulo del calificador es parte de la asociación, yEl rectángulo del calificador es parte de la asociación, y
no parte de la clase.no parte de la clase.
filafila:: intint
columnacolumna:: intint
16
Diagrama de Clases: Asociación nDiagrama de Clases: Asociación n--ariasarias
•• Son asociaciones que se establecen entre mSon asociaciones que se establecen entre máás de dos clasess de dos clases
•• Una clase puede aparecer varias veces desempeUna clase puede aparecer varias veces desempeññandoando
distintos roles.distintos roles.
•• Las asociaciones nLas asociaciones n--arias se representan a travarias se representan a travéés des de romborombo
que se une con cada una de las clasesque se une con cada una de las clases..
La relaciones nLa relaciones n--ariasarias
pueden ser usadaspueden ser usadas
para impedirpara impedir
inconsistencias en elinconsistencias en el
modelo.modelo.
17
Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización
•• Una generalización se refiere a una relación entre unaUna generalización se refiere a una relación entre una
clase general (superclase o padre) y una versión másclase general (superclase o padre) y una versión más
específica de dicha clase (subclase o hija).específica de dicha clase (subclase o hija).
18
Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización
•• Nombres usados: clase padreNombres usados: clase padre -- clase hija. Otros nombres:clase hija. Otros nombres:
superclasesuperclase -- subclase, clase basesubclase, clase base -- clase derivada.clase derivada.
•• Las subclases heredan propiedades de sus clases padre, es decir,Las subclases heredan propiedades de sus clases padre, es decir,
atributos y operaciones (y asociaciones) de la clase padre estánatributos y operaciones (y asociaciones) de la clase padre están
disponibles en sus clases hijas.disponibles en sus clases hijas.
•• La especialización es una técnica muy eficaz para la extensión yLa especialización es una técnica muy eficaz para la extensión y
reutilización.reutilización.
Restricciones predefinidasRestricciones predefinidas
en UML:en UML:
•• OverlappingOverlapping
•• DisjointDisjoint
•• CompleteComplete
•• IncompleteIncomplete
19
Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización
•• Particionamiento del espacio de objetosParticionamiento del espacio de objetos Clasificación EstáticaClasificación Estática
•• Particionamiento del espacio de estados de los objetosParticionamiento del espacio de estados de los objetos
Clasificación DinámicaClasificación Dinámica
•• En ambos casos se recomienda considerarEn ambos casos se recomienda considerar
generalizaciones/especializaciones disjuntasgeneralizaciones/especializaciones disjuntas
•• Usando discriminadores se pueden tener varias especializacionesUsando discriminadores se pueden tener varias especializaciones
de una misma clase padrede una misma clase padre
DiscriminadorDiscriminador
20
Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización
•• La herencia múltiple debe manejarse con precaución. AlgunosLa herencia múltiple debe manejarse con precaución. Algunos
problemas son el conflicto de nombre y el conflicto de precedencproblemas son el conflicto de nombre y el conflicto de precedencia.ia.
•• Se recomienda un uso restringido y disciplinado de la herencia.Se recomienda un uso restringido y disciplinado de la herencia.
•• Permite modelar jerarquías alternativas.Permite modelar jerarquías alternativas.
21
•• Es una asociación y una clase simultáneamente.Es una asociación y una clase simultáneamente.
•• Hay que tener en cuenta dónde se colocan losHay que tener en cuenta dónde se colocan los
atributos.atributos.
Diagrama de Clases: Clase de asociaciónDiagrama de Clases: Clase de asociación
22
Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia
•• Una dependencia es una relación de “uso” en la que unUna dependencia es una relación de “uso” en la que un
cambio en uno de los términoscambio en uno de los términos --por ejemplo, una clasepor ejemplo, una clase--
puede afectar a otro (otra clase)puede afectar a otro (otra clase)
23
Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia
Posibles dependencias entre clasesPosibles dependencias entre clases
•• useuse: el funcionamiento del origen depende de la: el funcionamiento del origen depende de la
presencia del destinopresencia del destino
•• instantiateinstantiate: el origen crea instancias del destino: el origen crea instancias del destino
•• derivederive: el origen puede calcularse a partir del destino: el origen puede calcularse a partir del destino
•• refinerefine: el origen est: el origen estáá un grado de abstracciun grado de abstraccióón mn mááss
detallado.detallado.
•• bind()bind():: derivaciderivacióón genn genéérica de una plantillarica de una plantilla
•• friendfriend: visibilidad caracter: visibilidad caracteríística de C++stica de C++
24
Diagrama de Clases: EstereotiposDiagrama de Clases: Estereotipos
•• Un estereotipo representa el principal mecanismo deUn estereotipo representa el principal mecanismo de
extensión de UML. Ofrece una forma de extender unaextensión de UML. Ofrece una forma de extender una
metaclase, creando un nuevo elemento demetaclase, creando un nuevo elemento de
metamodelo.metamodelo.
25
Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces
•• Una interfaz es una colección de operaciones queUna interfaz es una colección de operaciones que
representan servicios ofrecidos por una clase orepresentan servicios ofrecidos por una clase o
componente.componente.
•• Por definición, todas estas operaciones tendrán unaPor definición, todas estas operaciones tendrán una
visibilidad pública.visibilidad pública.
•• La interfaz especifica algo similar a un contrato que laLa interfaz especifica algo similar a un contrato que la
clase se compromete a respetar.clase se compromete a respetar.
•• La claseLa clase realizarealiza (o suministra una(o suministra una realizaciónrealización de) una ode) una o
varias interfaces.varias interfaces.
•• UML define dos tipos de interfaces: interfazUML define dos tipos de interfaces: interfaz
suministrada e interfaz requerida.suministrada e interfaz requerida.
26
Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces
•• La interfaz suministrada es aquella que una claseLa interfaz suministrada es aquella que una clase
efectivamente implementa.efectivamente implementa.
27
Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces
•• Las interfaces requeridas son aquellas que necesita unaLas interfaces requeridas son aquellas que necesita una
clase para realizar su cometido. El símbolo utilizadoclase para realizar su cometido. El símbolo utilizado
para representarla es un semicírculo.para representarla es un semicírculo.
28
EjemploEjemplo
¿Cómo interpretaría lo siguiente?¿Cómo interpretaría lo siguiente?
29
Modelo de Dominio vs. Modelo de DiseñoModelo de Dominio vs. Modelo de Diseño
•• El diagrama de clases puede utilizarse con distintosEl diagrama de clases puede utilizarse con distintos
fines en distintas etapas del proceso de desarrollo.fines en distintas etapas del proceso de desarrollo.
•• Durante la etapa de análisis, elDurante la etapa de análisis, el modelo de dominiomodelo de dominio
es encargado de mostrar el conjunto de claseses encargado de mostrar el conjunto de clases
conceptuales del problema y las relaciones presentesconceptuales del problema y las relaciones presentes
entre sí.entre sí.
•• Durante la etapa de diseño, elDurante la etapa de diseño, el modelo de diseñomodelo de diseño
determina las futuras componentes de softwaredetermina las futuras componentes de software
(clases) y sus relaciones entre sí.(clases) y sus relaciones entre sí.
30
Modelo de DominioModelo de Dominio
•• Es una representación de las cosas, entidades,Es una representación de las cosas, entidades,
idea, clases conceptuales u objetos del “mundoidea, clases conceptuales u objetos del “mundo
real” o dominio de interés, no de componentes dereal” o dominio de interés, no de componentes de
software.software.
•• Muestra clases conceptuales significativas en unMuestra clases conceptuales significativas en un
dominio del problema.dominio del problema.
•• Se usa como base para el diseño de los objetos deSe usa como base para el diseño de los objetos de
software.software.
31
Modelo de DominioModelo de Dominio
•• Es el artefacto más importante del análisis.Es el artefacto más importante del análisis.
•• PPodría se considerado como un diccionario visualodría se considerado como un diccionario visual
de abstracciones de clases conceptuales,de abstracciones de clases conceptuales,
vocabulario e información del dominio.vocabulario e información del dominio.
•• No es absolutamente correcto o incorrecto, suNo es absolutamente correcto o incorrecto, su
intenciintencióón en sern en ser úútil sirviendo como unatil sirviendo como una
herramienta de comunicaciherramienta de comunicacióón.n.
32
Modelo de DominioModelo de Dominio
•• Otros nombres:Otros nombres: modelo conceptual, modelo de objetos del dominiomodelo conceptual, modelo de objetos del dominio
y modelo de los objetos de any modelo de los objetos de anáálisis.lisis.
•• SegSegúún el punto de vista, tiene puntos en comn el punto de vista, tiene puntos en comúún con eln con el DiagramaDiagrama
de Entidad Relacide Entidad Relacióónn..
•• Usando UML, el MD se representa con un conjunto de diagramasUsando UML, el MD se representa con un conjunto de diagramas
de clases. Se puede mostrar:de clases. Se puede mostrar:
•• objetos del dominioobjetos del dominio oo clases conceptualesclases conceptuales
•• asociacionesasociaciones entre las clases conceptualesentre las clases conceptuales
•• atributosatributos de las clases conceptualesde las clases conceptuales
•• NO SE DEFINE NINGUNA OPERACINO SE DEFINE NINGUNA OPERACIÓÓNN. La asignaci. La asignacióón den de
responsabilidades de los objetos no forma parte de este modelo.responsabilidades de los objetos no forma parte de este modelo.
33
Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales
Es vEs váálidolido……
•• Tener clases conceptuales sin atributos.Tener clases conceptuales sin atributos.
•• Tener clases conceptuales para las cuales no hayaTener clases conceptuales para las cuales no haya
requerimientos de informacirequerimientos de informacióón a registrar.n a registrar.
•• TTener clases conceptuales conener clases conceptuales con rol derol de
comportamientocomportamiento, en lugar de informaci, en lugar de informacióón.n.
Estrategias para identificarEstrategias para identificar
•• Utilizar lista de categorUtilizar lista de categoríías de clases conceptuales.as de clases conceptuales.
•• Identificar frases nominales (sustantivos o frases).Identificar frases nominales (sustantivos o frases).
34
Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales
35
Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales
Identificar frases nominales (sustantivos o frases)Identificar frases nominales (sustantivos o frases)
Se intenta identificar sustantivos o frases nominales en elSe intenta identificar sustantivos o frases nominales en el
vocabulario y descripciones del dominio del problema.vocabulario y descripciones del dominio del problema.
Esta tEsta téécnica prcnica prááctica no puede ser aplicadactica no puede ser aplicada
mecmecáánicamente sino que hay que usar elnicamente sino que hay que usar el ““sentido comsentido comúúnn””
y capturar las abstracciones adecuadas puesto que ely capturar las abstracciones adecuadas puesto que el
lenguaje natural es ambiguo y los conceptos relevantes nolenguaje natural es ambiguo y los conceptos relevantes no
siempre se encuentran de manera explsiempre se encuentran de manera explíícita.cita.
36
EjemploEjemplo
Un posible modelo de dominio para el caso del local deUn posible modelo de dominio para el caso del local de
venta de electrodomventa de electrodoméésticossticos……
37
Diagrama Entidad RelaciónDiagrama Entidad Relación
•• No pertenece a UMLNo pertenece a UML
•• Nacido para describir bases de datos relacionalesNacido para describir bases de datos relacionales
(Chen).(Chen).
•• 2 conceptos: entidades y relaciones.2 conceptos: entidades y relaciones.
•• Entidades: conjuntos de individuos que poseenEntidades: conjuntos de individuos que poseen
atributos.atributos.
•• Relaciones entre individuos especificandoRelaciones entre individuos especificando
cardinalidad y opcionalidad.cardinalidad y opcionalidad.
Cliente Proyecto Empleado
ordena trabaja_en
38
Modelo de DiseñoModelo de Diseño
•• A diferencia del Modelo de Dominio, el modeloA diferencia del Modelo de Dominio, el modelo
de diseño se encuentra más cerca de lade diseño se encuentra más cerca de la
solución buscada.solución buscada.
•• Refleja decisiones en cuanto a asignación deRefleja decisiones en cuanto a asignación de
responsabilidades entre los objetosresponsabilidades entre los objetos
(operaciones).(operaciones).
•• Toma como base el Modelo de Dominio, dondeToma como base el Modelo de Dominio, donde
algunas entidades se promoverán a Clases.algunas entidades se promoverán a Clases.
39
Modelo de DiseñoModelo de Diseño
•• Muestra cómo se relacionan componentes deMuestra cómo se relacionan componentes de
software para resolver el problema planteado.software para resolver el problema planteado.
•• Es el paso previo a la implementación.Es el paso previo a la implementación.
•• Es posible aplicar patterns según el tipo deEs posible aplicar patterns según el tipo de
problema.problema.
40
ObjetosObjetos
41
¿¿PreguntasPreguntas??

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
DIAGRAMA DE CLASES
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
DIAGRAMA DE CLASES
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
Herencia
HerenciaHerencia
Herencia
 
2.android java
2.android   java2.android   java
2.android java
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Java basico
Java basicoJava basico
Java basico
 
Curso Java - Programación Digital
Curso Java - Programación DigitalCurso Java - Programación Digital
Curso Java - Programación Digital
 

Destacado

Evolución historica de la administración
Evolución historica de la administraciónEvolución historica de la administración
Evolución historica de la administraciónGunBlade
 
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)Jose Antonio Estevez Tejeda
 
Programa SENAI de Negócios Online - módulo 3 - Compras
Programa SENAI de Negócios Online - módulo 3 - ComprasPrograma SENAI de Negócios Online - módulo 3 - Compras
Programa SENAI de Negócios Online - módulo 3 - ComprasHumberto Ribeiro
 
Paper TRABALHO DE GRADUAÇÃO
Paper TRABALHO DE GRADUAÇÃOPaper TRABALHO DE GRADUAÇÃO
Paper TRABALHO DE GRADUAÇÃOPolliane Almeida
 
Fairclough et al, critical discourse analysis
Fairclough et al, critical discourse analysisFairclough et al, critical discourse analysis
Fairclough et al, critical discourse analysisSamira Rahmdel
 
Leyes de la termodinámica (tippens)
Leyes de la termodinámica (tippens)Leyes de la termodinámica (tippens)
Leyes de la termodinámica (tippens)Eliecer Tejo
 
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...Leandro Parra
 
What worries managers
What worries managersWhat worries managers
What worries managersMarinet Ltd
 
La fatiga parental y la generación y
La fatiga parental y la generación yLa fatiga parental y la generación y
La fatiga parental y la generación yDr Guillermo Cobos Z.
 
Programa Prevencion de Riesgos Maderera
Programa Prevencion de Riesgos MadereraPrograma Prevencion de Riesgos Maderera
Programa Prevencion de Riesgos MadereraMauricio Pérez
 
The Hero's Journey in Seville. Demo Guide
The Hero's Journey in Seville. Demo Guide The Hero's Journey in Seville. Demo Guide
The Hero's Journey in Seville. Demo Guide Peter de Kuster
 
Trabajo colaborativo (final)
Trabajo colaborativo (final)Trabajo colaborativo (final)
Trabajo colaborativo (final)jorge rangel
 
Métodos de eliminación gaussiana
Métodos de eliminación gaussianaMétodos de eliminación gaussiana
Métodos de eliminación gaussianawilmerleon67
 
Sistema digestivo
Sistema digestivoSistema digestivo
Sistema digestivosilvanita20
 
Eleven Principles of Character Education
Eleven Principles of Character EducationEleven Principles of Character Education
Eleven Principles of Character EducationPristiadi Utomo
 

Destacado (20)

Evolución historica de la administración
Evolución historica de la administraciónEvolución historica de la administración
Evolución historica de la administración
 
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)
Etica y Moral (Angel Alfonso, Victor Duran, Luis Villar y Jose Estevez)
 
Iso 17025
Iso 17025Iso 17025
Iso 17025
 
Programa SENAI de Negócios Online - módulo 3 - Compras
Programa SENAI de Negócios Online - módulo 3 - ComprasPrograma SENAI de Negócios Online - módulo 3 - Compras
Programa SENAI de Negócios Online - módulo 3 - Compras
 
Producto
ProductoProducto
Producto
 
Paper TRABALHO DE GRADUAÇÃO
Paper TRABALHO DE GRADUAÇÃOPaper TRABALHO DE GRADUAÇÃO
Paper TRABALHO DE GRADUAÇÃO
 
Fairclough et al, critical discourse analysis
Fairclough et al, critical discourse analysisFairclough et al, critical discourse analysis
Fairclough et al, critical discourse analysis
 
Manual de-5 s
Manual de-5 sManual de-5 s
Manual de-5 s
 
Leyes de la termodinámica (tippens)
Leyes de la termodinámica (tippens)Leyes de la termodinámica (tippens)
Leyes de la termodinámica (tippens)
 
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...
Cuestionario%2050%20 preguntas%20transporte%20por%20carreteras%20de%20sustanc...
 
What worries managers
What worries managersWhat worries managers
What worries managers
 
La fatiga parental y la generación y
La fatiga parental y la generación yLa fatiga parental y la generación y
La fatiga parental y la generación y
 
Programa Prevencion de Riesgos Maderera
Programa Prevencion de Riesgos MadereraPrograma Prevencion de Riesgos Maderera
Programa Prevencion de Riesgos Maderera
 
Las empresas
Las empresasLas empresas
Las empresas
 
The Hero's Journey in Seville. Demo Guide
The Hero's Journey in Seville. Demo Guide The Hero's Journey in Seville. Demo Guide
The Hero's Journey in Seville. Demo Guide
 
Trabajo colaborativo (final)
Trabajo colaborativo (final)Trabajo colaborativo (final)
Trabajo colaborativo (final)
 
Clases
ClasesClases
Clases
 
Métodos de eliminación gaussiana
Métodos de eliminación gaussianaMétodos de eliminación gaussiana
Métodos de eliminación gaussiana
 
Sistema digestivo
Sistema digestivoSistema digestivo
Sistema digestivo
 
Eleven Principles of Character Education
Eleven Principles of Character EducationEleven Principles of Character Education
Eleven Principles of Character Education
 

Similar a Diagrama de clases (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Elementos avanzados de poo
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de poo
 
Manual de java_2
Manual de java_2Manual de java_2
Manual de java_2
 
manual 9
manual 9manual 9
manual 9
 
Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
MANUAL DE JAVA 2
MANUAL DE JAVA 2MANUAL DE JAVA 2
MANUAL DE JAVA 2
 
Manual de java 2
Manual de java 2Manual de java 2
Manual de java 2
 
MANUAL DE JAVA 3
MANUAL DE JAVA 3MANUAL DE JAVA 3
MANUAL DE JAVA 3
 
Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
Paradigmas programacion rufino
Paradigmas programacion rufinoParadigmas programacion rufino
Paradigmas programacion rufino
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
P1 Programacion orientada a objetos con Java.pptx
P1 Programacion orientada a objetos con Java.pptxP1 Programacion orientada a objetos con Java.pptx
P1 Programacion orientada a objetos con Java.pptx
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 

Diagrama de clases

  • 1. 1 DiagramaDiagrama dede ClasesClases 2 Diagrama de ClasesDiagrama de Clases •• El propósito de este diagrama es el de representar losEl propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los queobjetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar parapercibe el usuario y con los que espera tratar para completar su tarea en vez de objetos del sistema o de uncompletar su tarea en vez de objetos del sistema o de un modelo de programación.modelo de programación. •• La clase define el ámbito de definición de un conjunto deLa clase define el ámbito de definición de un conjunto de objetos.objetos. •• Cada objeto pertenece a una clase.Cada objeto pertenece a una clase. •• Los objetos se crean por instanciación de las clases.Los objetos se crean por instanciación de las clases.
  • 2. 3 Diagrama de ClasesDiagrama de Clases •• Cada clase se representa en un rectángulo con tresCada clase se representa en un rectángulo con tres compartimientos:compartimientos: •• Nombre de la claseNombre de la clase •• Atributos de la claseAtributos de la clase •• Operaciones de la claseOperaciones de la clase 4 Diagrama de Clases: AtributosDiagrama de Clases: Atributos •• TipoTipo: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar.r. •• Valor inicialValor inicial: valor que poseerá el atributo al crear un objeto.: valor que poseerá el atributo al crear un objeto. •• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento. •• MultiplicidadMultiplicidad: determinar si un atributo debe estar o no, y si posee un único: determinar si un atributo debe estar o no, y si posee un único valor ovalor o una lista de valores.una lista de valores. •• OrdenamientoOrdenamiento: especifica si el atributo determina alguna relación de orden d: especifica si el atributo determina alguna relación de orden dentro de laentro de la clase.clase. •• Capacidad de cambioCapacidad de cambio: permite definir atributos con valores constantes.: permite definir atributos con valores constantes. •• ModificadoresModificadores: un atributo puede ser de clase, derivado, volátil, transitorio: un atributo puede ser de clase, derivado, volátil, transitorio.. El atributo fecha de nacimiento es público.El atributo fecha de nacimiento es público. El atributo edad es derivado (puede calcularse a partirEl atributo edad es derivado (puede calcularse a partir de la fecha de nacimiento), y determina una relación dede la fecha de nacimiento), y determina una relación de orden entre las instancias de las personas.orden entre las instancias de las personas. El atributo DNI es un atributo protegido.El atributo DNI es un atributo protegido. El atributo coloresPreferidos representa una colecciónEl atributo coloresPreferidos representa una colección o conjunto de valores del tipo Coloro conjunto de valores del tipo Color
  • 3. 5 Diagrama de Clases: AtributosDiagrama de Clases: Atributos VisibilidadVisibilidad La encapsulamiento presenta tres ventajas básicas:La encapsulamiento presenta tres ventajas básicas: •• Se protegen los datos de accesos indebidosSe protegen los datos de accesos indebidos •• El acoplamiento entre las clases se disminuyeEl acoplamiento entre las clases se disminuye •• Favorece la modularidad y el mantenimientoFavorece la modularidad y el mantenimiento Los atributos de una clase no deberían ser manipulables directamLos atributos de una clase no deberían ser manipulables directamente por el resto deente por el resto de objetos.objetos. Niveles de encapsulamiento: ((--) Privado) Privado : es el más fuerte. Esta parte es totalmente invisible desde: es el más fuerte. Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminolfuera de la clase (excepto para clases friends en terminología C++).ogía C++). (~) Package(~) Package : Sólo es visible dentro del mismo package.: Sólo es visible dentro del mismo package. (#)(#) Los atributos/operacionesLos atributos/operaciones protegidosprotegidos están visibles para las clasesestán visibles para las clases friends y para las clases derivadas de la original.friends y para las clases derivadas de la original. (+)(+) Los atributos/operacionesLos atributos/operaciones públicospúblicos son visibles a otras clases (cuandoson visibles a otras clases (cuando se trata de atributos se está transgrediendo el principise trata de atributos se está transgrediendo el principio deo de encapsulamiento).encapsulamiento). 6 Diagrama de Clases: AtributosDiagrama de Clases: Atributos MultiplicidadMultiplicidad ModificadoresModificadores •• DeDe claseclase oo estáticoestático: el atributo se aparece subrayado. No es necesario contar: el atributo se aparece subrayado. No es necesario contar con un objeto para ejecutarlo.con un objeto para ejecutarlo. •• DerivadoDerivado: es calculable a partir de otros atributos.: es calculable a partir de otros atributos. •• TransitorioTransitorio: tendrá valor sólo durante una porción de la ejecución.: tendrá valor sólo durante una porción de la ejecución. •• VolátilVolátil: no se persiste.: no se persiste. 11 El atributo debe tener un único valor.El atributo debe tener un único valor. 0..10..1 El atributo puede o no tener un valor.El atributo puede o no tener un valor. 0..*0..* El atributo puede tener varios valores o ninguno.El atributo puede tener varios valores o ninguno. 1..*1..* El atributo puede tener varios valores, pero debe tener al menosEl atributo puede tener varios valores, pero debe tener al menos unouno ** El atributo puede tener varios valores.El atributo puede tener varios valores. M..NM..N El atributo puede tener entre M y N valores.El atributo puede tener entre M y N valores.
  • 4. 7 Diagrama de Clases: OperacionesDiagrama de Clases: Operaciones Una operación es un servicio que una instancia de la clase puedeUna operación es un servicio que una instancia de la clase puede realizar.realizar. •• Tipo devueltoTipo devuelto: puede llegar a depender del lenguaje de programación a utiliza: puede llegar a depender del lenguaje de programación a utilizar.r. •• ParámetrosParámetros: además del tipo, puede especificarse si son In, Out o InOut.: además del tipo, puede especificarse si son In, Out o InOut. •• VisibilidadVisibilidad: está relacionado con el encapsulamiento.: está relacionado con el encapsulamiento. •• ModificadoresModificadores: una operación puede ser de clase, abstracta, query o construct: una operación puede ser de clase, abstracta, query o constructor.or. La operación calcularEdad es privado y noLa operación calcularEdad es privado y no devuelve nada.devuelve nada. El método público calcularHorasTrabajadas esEl método público calcularHorasTrabajadas es abstracto, las subclases de la clase Persona deberáabstracto, las subclases de la clase Persona deberá implementarlo para utilizarlo.implementarlo para utilizarlo. 8 Diagrama de ClasesDiagrama de Clases Relaciones entre ClasesRelaciones entre Clases •• Una asociación es una conexión estructural simpleUna asociación es una conexión estructural simple entre clases. Las instancias de las clases implicadas enentre clases. Las instancias de las clases implicadas en una asociación estarán probablemente comunicándoseuna asociación estarán probablemente comunicándose en el momento de ejecución.en el momento de ejecución. •• Los enlaces entre de objetos pueden representarseLos enlaces entre de objetos pueden representarse entre las respectivas clasesentre las respectivas clases •• Formas de relación entre clases:Formas de relación entre clases: •• Asociación y Agregación (vista como un caso particular deAsociación y Agregación (vista como un caso particular de asociación)asociación) •• Generalización/EspecializaciónGeneralización/Especialización
  • 5. 9 Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación •• La asociación expresa una conexión bidireccional entreLa asociación expresa una conexión bidireccional entre objetos.objetos. •• Una asociación es una abstracción de la relaciónUna asociación es una abstracción de la relación existente en los enlaces entre los objetos.existente en los enlaces entre los objetos. EnlaceEnlace 10 Diagrama de ClasesDiagrama de Clases Relaciones entre ClasesRelaciones entre Clases MultiplicidadMultiplicidad 11 Un elemento relacionado.Un elemento relacionado. 0..10..1 Uno o ningún elemento relacionado.Uno o ningún elemento relacionado. 0..*0..* Varios elementos relacionados o ninguno.Varios elementos relacionados o ninguno. 1..*1..* Varios elementos relacionados pero al menos uno.Varios elementos relacionados pero al menos uno. ** Varios elementos relacionados.Varios elementos relacionados. M..NM..N Entre M y N elementos relacionados.Entre M y N elementos relacionados.
  • 6. 11 Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación RolRol •• Identificado como un nombre a los finales de la asociaciIdentificado como un nombre a los finales de la asociacióón,n, describe la semdescribe la semáántica de la relacintica de la relacióón en el sentido indicado.n en el sentido indicado. •• Cada asociaciCada asociacióón tiene dos roles; cada rol es una direccin tiene dos roles; cada rol es una direccióón enn en la asociacila asociacióón.n. 12 Diagrama de Clases: AsociaciónDiagrama de Clases: Asociación •• Se asume que una asociación es bidireccional, es decirSe asume que una asociación es bidireccional, es decir que se puede navegar desde cualquiera de clasesque se puede navegar desde cualquiera de clases implicadas a la otra, pero es posible indicar que laimplicadas a la otra, pero es posible indicar que la navegación ocurrirá en una sola dirección.navegación ocurrirá en una sola dirección.
  • 7. 13 Diagrama de Clases: AgregaciónDiagrama de Clases: Agregación •• Es una asociación especial, una relación del tipoEs una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son“todo/parte” dentro de la cual una o más clases son partes de un conjunto.partes de un conjunto. 14 Diagrama de Clases: ComposiciónDiagrama de Clases: Composición •• La composición es una forma ‘fuerte’ deLa composición es una forma ‘fuerte’ de agregación. Se diferencian en:agregación. Se diferencian en: •• En la composición tanto el todo como las partes tienen elEn la composición tanto el todo como las partes tienen el mismo ciclo de vida.mismo ciclo de vida. •• Un objeto puede pertenecer solamente a una composición.Un objeto puede pertenecer solamente a una composición.
  • 8. 15 Diagrama de Clases: Asociación CalificadaDiagrama de Clases: Asociación Calificada •• Un calificador es un atributo (o tupla de atributos) de laUn calificador es un atributo (o tupla de atributos) de la asociación cuyos valores sirven para particionar elasociación cuyos valores sirven para particionar el conjunto de objetos enlazados a otro.conjunto de objetos enlazados a otro. •• Un calificador se representa como un pequeñoUn calificador se representa como un pequeño rectángulo conectado al final de una asociación y a larectángulo conectado al final de una asociación y a la clase.clase. •• El rectángulo del calificador es parte de la asociación, yEl rectángulo del calificador es parte de la asociación, y no parte de la clase.no parte de la clase. filafila:: intint columnacolumna:: intint 16 Diagrama de Clases: Asociación nDiagrama de Clases: Asociación n--ariasarias •• Son asociaciones que se establecen entre mSon asociaciones que se establecen entre máás de dos clasess de dos clases •• Una clase puede aparecer varias veces desempeUna clase puede aparecer varias veces desempeññandoando distintos roles.distintos roles. •• Las asociaciones nLas asociaciones n--arias se representan a travarias se representan a travéés des de romborombo que se une con cada una de las clasesque se une con cada una de las clases.. La relaciones nLa relaciones n--ariasarias pueden ser usadaspueden ser usadas para impedirpara impedir inconsistencias en elinconsistencias en el modelo.modelo.
  • 9. 17 Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización •• Una generalización se refiere a una relación entre unaUna generalización se refiere a una relación entre una clase general (superclase o padre) y una versión másclase general (superclase o padre) y una versión más específica de dicha clase (subclase o hija).específica de dicha clase (subclase o hija). 18 Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización •• Nombres usados: clase padreNombres usados: clase padre -- clase hija. Otros nombres:clase hija. Otros nombres: superclasesuperclase -- subclase, clase basesubclase, clase base -- clase derivada.clase derivada. •• Las subclases heredan propiedades de sus clases padre, es decir,Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estánatributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas.disponibles en sus clases hijas. •• La especialización es una técnica muy eficaz para la extensión yLa especialización es una técnica muy eficaz para la extensión y reutilización.reutilización. Restricciones predefinidasRestricciones predefinidas en UML:en UML: •• OverlappingOverlapping •• DisjointDisjoint •• CompleteComplete •• IncompleteIncomplete
  • 10. 19 Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización •• Particionamiento del espacio de objetosParticionamiento del espacio de objetos Clasificación EstáticaClasificación Estática •• Particionamiento del espacio de estados de los objetosParticionamiento del espacio de estados de los objetos Clasificación DinámicaClasificación Dinámica •• En ambos casos se recomienda considerarEn ambos casos se recomienda considerar generalizaciones/especializaciones disjuntasgeneralizaciones/especializaciones disjuntas •• Usando discriminadores se pueden tener varias especializacionesUsando discriminadores se pueden tener varias especializaciones de una misma clase padrede una misma clase padre DiscriminadorDiscriminador 20 Diagrama de Clases: GeneralizaciónDiagrama de Clases: Generalización •• La herencia múltiple debe manejarse con precaución. AlgunosLa herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencproblemas son el conflicto de nombre y el conflicto de precedencia.ia. •• Se recomienda un uso restringido y disciplinado de la herencia.Se recomienda un uso restringido y disciplinado de la herencia. •• Permite modelar jerarquías alternativas.Permite modelar jerarquías alternativas.
  • 11. 21 •• Es una asociación y una clase simultáneamente.Es una asociación y una clase simultáneamente. •• Hay que tener en cuenta dónde se colocan losHay que tener en cuenta dónde se colocan los atributos.atributos. Diagrama de Clases: Clase de asociaciónDiagrama de Clases: Clase de asociación 22 Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia •• Una dependencia es una relación de “uso” en la que unUna dependencia es una relación de “uso” en la que un cambio en uno de los términoscambio en uno de los términos --por ejemplo, una clasepor ejemplo, una clase-- puede afectar a otro (otra clase)puede afectar a otro (otra clase)
  • 12. 23 Diagrama de Clases: DependenciaDiagrama de Clases: Dependencia Posibles dependencias entre clasesPosibles dependencias entre clases •• useuse: el funcionamiento del origen depende de la: el funcionamiento del origen depende de la presencia del destinopresencia del destino •• instantiateinstantiate: el origen crea instancias del destino: el origen crea instancias del destino •• derivederive: el origen puede calcularse a partir del destino: el origen puede calcularse a partir del destino •• refinerefine: el origen est: el origen estáá un grado de abstracciun grado de abstraccióón mn mááss detallado.detallado. •• bind()bind():: derivaciderivacióón genn genéérica de una plantillarica de una plantilla •• friendfriend: visibilidad caracter: visibilidad caracteríística de C++stica de C++ 24 Diagrama de Clases: EstereotiposDiagrama de Clases: Estereotipos •• Un estereotipo representa el principal mecanismo deUn estereotipo representa el principal mecanismo de extensión de UML. Ofrece una forma de extender unaextensión de UML. Ofrece una forma de extender una metaclase, creando un nuevo elemento demetaclase, creando un nuevo elemento de metamodelo.metamodelo.
  • 13. 25 Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces •• Una interfaz es una colección de operaciones queUna interfaz es una colección de operaciones que representan servicios ofrecidos por una clase orepresentan servicios ofrecidos por una clase o componente.componente. •• Por definición, todas estas operaciones tendrán unaPor definición, todas estas operaciones tendrán una visibilidad pública.visibilidad pública. •• La interfaz especifica algo similar a un contrato que laLa interfaz especifica algo similar a un contrato que la clase se compromete a respetar.clase se compromete a respetar. •• La claseLa clase realizarealiza (o suministra una(o suministra una realizaciónrealización de) una ode) una o varias interfaces.varias interfaces. •• UML define dos tipos de interfaces: interfazUML define dos tipos de interfaces: interfaz suministrada e interfaz requerida.suministrada e interfaz requerida. 26 Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces •• La interfaz suministrada es aquella que una claseLa interfaz suministrada es aquella que una clase efectivamente implementa.efectivamente implementa.
  • 14. 27 Diagrama de Clases: InterfacesDiagrama de Clases: Interfaces •• Las interfaces requeridas son aquellas que necesita unaLas interfaces requeridas son aquellas que necesita una clase para realizar su cometido. El símbolo utilizadoclase para realizar su cometido. El símbolo utilizado para representarla es un semicírculo.para representarla es un semicírculo. 28 EjemploEjemplo ¿Cómo interpretaría lo siguiente?¿Cómo interpretaría lo siguiente?
  • 15. 29 Modelo de Dominio vs. Modelo de DiseñoModelo de Dominio vs. Modelo de Diseño •• El diagrama de clases puede utilizarse con distintosEl diagrama de clases puede utilizarse con distintos fines en distintas etapas del proceso de desarrollo.fines en distintas etapas del proceso de desarrollo. •• Durante la etapa de análisis, elDurante la etapa de análisis, el modelo de dominiomodelo de dominio es encargado de mostrar el conjunto de claseses encargado de mostrar el conjunto de clases conceptuales del problema y las relaciones presentesconceptuales del problema y las relaciones presentes entre sí.entre sí. •• Durante la etapa de diseño, elDurante la etapa de diseño, el modelo de diseñomodelo de diseño determina las futuras componentes de softwaredetermina las futuras componentes de software (clases) y sus relaciones entre sí.(clases) y sus relaciones entre sí. 30 Modelo de DominioModelo de Dominio •• Es una representación de las cosas, entidades,Es una representación de las cosas, entidades, idea, clases conceptuales u objetos del “mundoidea, clases conceptuales u objetos del “mundo real” o dominio de interés, no de componentes dereal” o dominio de interés, no de componentes de software.software. •• Muestra clases conceptuales significativas en unMuestra clases conceptuales significativas en un dominio del problema.dominio del problema. •• Se usa como base para el diseño de los objetos deSe usa como base para el diseño de los objetos de software.software.
  • 16. 31 Modelo de DominioModelo de Dominio •• Es el artefacto más importante del análisis.Es el artefacto más importante del análisis. •• PPodría se considerado como un diccionario visualodría se considerado como un diccionario visual de abstracciones de clases conceptuales,de abstracciones de clases conceptuales, vocabulario e información del dominio.vocabulario e información del dominio. •• No es absolutamente correcto o incorrecto, suNo es absolutamente correcto o incorrecto, su intenciintencióón en sern en ser úútil sirviendo como unatil sirviendo como una herramienta de comunicaciherramienta de comunicacióón.n. 32 Modelo de DominioModelo de Dominio •• Otros nombres:Otros nombres: modelo conceptual, modelo de objetos del dominiomodelo conceptual, modelo de objetos del dominio y modelo de los objetos de any modelo de los objetos de anáálisis.lisis. •• SegSegúún el punto de vista, tiene puntos en comn el punto de vista, tiene puntos en comúún con eln con el DiagramaDiagrama de Entidad Relacide Entidad Relacióónn.. •• Usando UML, el MD se representa con un conjunto de diagramasUsando UML, el MD se representa con un conjunto de diagramas de clases. Se puede mostrar:de clases. Se puede mostrar: •• objetos del dominioobjetos del dominio oo clases conceptualesclases conceptuales •• asociacionesasociaciones entre las clases conceptualesentre las clases conceptuales •• atributosatributos de las clases conceptualesde las clases conceptuales •• NO SE DEFINE NINGUNA OPERACINO SE DEFINE NINGUNA OPERACIÓÓNN. La asignaci. La asignacióón den de responsabilidades de los objetos no forma parte de este modelo.responsabilidades de los objetos no forma parte de este modelo.
  • 17. 33 Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales Es vEs váálidolido…… •• Tener clases conceptuales sin atributos.Tener clases conceptuales sin atributos. •• Tener clases conceptuales para las cuales no hayaTener clases conceptuales para las cuales no haya requerimientos de informacirequerimientos de informacióón a registrar.n a registrar. •• TTener clases conceptuales conener clases conceptuales con rol derol de comportamientocomportamiento, en lugar de informaci, en lugar de informacióón.n. Estrategias para identificarEstrategias para identificar •• Utilizar lista de categorUtilizar lista de categoríías de clases conceptuales.as de clases conceptuales. •• Identificar frases nominales (sustantivos o frases).Identificar frases nominales (sustantivos o frases). 34 Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales
  • 18. 35 Modelo de Dominio: Clases ConceptualesModelo de Dominio: Clases Conceptuales Identificar frases nominales (sustantivos o frases)Identificar frases nominales (sustantivos o frases) Se intenta identificar sustantivos o frases nominales en elSe intenta identificar sustantivos o frases nominales en el vocabulario y descripciones del dominio del problema.vocabulario y descripciones del dominio del problema. Esta tEsta téécnica prcnica prááctica no puede ser aplicadactica no puede ser aplicada mecmecáánicamente sino que hay que usar elnicamente sino que hay que usar el ““sentido comsentido comúúnn”” y capturar las abstracciones adecuadas puesto que ely capturar las abstracciones adecuadas puesto que el lenguaje natural es ambiguo y los conceptos relevantes nolenguaje natural es ambiguo y los conceptos relevantes no siempre se encuentran de manera explsiempre se encuentran de manera explíícita.cita. 36 EjemploEjemplo Un posible modelo de dominio para el caso del local deUn posible modelo de dominio para el caso del local de venta de electrodomventa de electrodoméésticossticos……
  • 19. 37 Diagrama Entidad RelaciónDiagrama Entidad Relación •• No pertenece a UMLNo pertenece a UML •• Nacido para describir bases de datos relacionalesNacido para describir bases de datos relacionales (Chen).(Chen). •• 2 conceptos: entidades y relaciones.2 conceptos: entidades y relaciones. •• Entidades: conjuntos de individuos que poseenEntidades: conjuntos de individuos que poseen atributos.atributos. •• Relaciones entre individuos especificandoRelaciones entre individuos especificando cardinalidad y opcionalidad.cardinalidad y opcionalidad. Cliente Proyecto Empleado ordena trabaja_en 38 Modelo de DiseñoModelo de Diseño •• A diferencia del Modelo de Dominio, el modeloA diferencia del Modelo de Dominio, el modelo de diseño se encuentra más cerca de lade diseño se encuentra más cerca de la solución buscada.solución buscada. •• Refleja decisiones en cuanto a asignación deRefleja decisiones en cuanto a asignación de responsabilidades entre los objetosresponsabilidades entre los objetos (operaciones).(operaciones). •• Toma como base el Modelo de Dominio, dondeToma como base el Modelo de Dominio, donde algunas entidades se promoverán a Clases.algunas entidades se promoverán a Clases.
  • 20. 39 Modelo de DiseñoModelo de Diseño •• Muestra cómo se relacionan componentes deMuestra cómo se relacionan componentes de software para resolver el problema planteado.software para resolver el problema planteado. •• Es el paso previo a la implementación.Es el paso previo a la implementación. •• Es posible aplicar patterns según el tipo deEs posible aplicar patterns según el tipo de problema.problema. 40 ObjetosObjetos