SlideShare una empresa de Scribd logo
DIAGRAMA DE CLASES
Un ejemplo.
Diseñe un diagrama de clases que modele la estructura
necesaria para manejar los datos de los encuentros de un
torneo de tenis de mesa en la modalidad de sorteo y
eliminatoria.
Del torneo interesa conocer la fecha del torneo, los
encuentros celebrados y el ganador. De cada jugador, que
debe de conocer perfectamente las reglas, interesa saber el
número de federado de la federación de la que es
Diseñe un diagrama de clases que modele la estructura
necesaria para manejar los datos de los encuentros de un
torneo de tenis de mesa en la modalidad de sorteo y
eliminatoria.
Del torneo interesa conocer la fecha del torneo, los
encuentros celebrados y el ganador. De cada jugador, que
debe de conocer perfectamente las reglas, interesa saber
el número de federado de la federación de la que es
miembro.
De cada persona interesa saber sus datos básicos: NIF,
nombre completo y fecha de nacimiento. La clase Fecha se
modela con tres campos (día, mes y año) de tipo entero. La
clase Nif se modela con un campo de tipo entero llamado
dni y un campo de tipo carácter llamado letra. De cada
encuentro interesa conocer los oponentes, el ganador y el
resultado final del marcador de cada una de las tres
que se juegan a 21 puntos.
Análisis del enunciado
Lea detenidamente el enunciado y de él extraiga la
información posible. Es cuestión de aplicar el sentido común,
a veces es cuestión de unir cabos sueltos, a veces es cuestión
de simple lógica y a veces es cuestión de pura deducción,
pero siempre siempre es cuestión de razonar por
aproximaciones sucesivas y de experiencia.
Bien, parece que el enunciado refiere únicamente un
modelado de datos, no de comportamiento, por lo que se
procederá a realizar una lista de los elementos más
significativos para el proyecto que se puedan extraer del
enunciado.
Nombre del proyecto – Torneo
Nombre del diagrama –
EncuentrosTorneo
Ítems – Elementos
significativos del enunciado:
 Encuentro
 Fecha del torneo
 Jugador
 Número de federado
 Persona
 Nif
 Nombre completo
 Fecha de nacimiento
 Dia
 Mes
 Año
 Dni
 Letra
 Oponente
 Resultado final
 Partida
Diseño de clases
Las clases son entidades que encapsulan información, se
trata por tanto de ver qué información de la lista anterior
está relacionada entre sí y ver la forma de encapsularla en
sus respectivas clases.
Identifique las clases a partir del enunciado y encapsule en
ellas la información relacionada. Este paso se realizará
considerando de forma aislada unas clases de otras.
Posteriormente, cuando se vean las relaciones, se depurará
composición.
En esta fase del modelado se procede siempre desde las
clases más triviales a las más complejas.
Diseño de clases
Diseño de clases
Relaciones
En esta fase se va a evaluar qué clases tienen que ver con qué
otras, es decir sus relaciones. Para que el procedimiento
resulte lo más sencillo posible se estudiarán las relaciones dos
a dos.
Herencia
Abordar las relaciones de herencia iniciando por aquellas
triviales o más evidentes.
“La regla” para detectar una relación de herencia es fijarse en
en el catálogo de clases diseñadas en la fase anterior, y ver si
existe alguna clase cuyos atributos sean un subconjunto de
alguna otra.
Persona – Jugador
En este caso resulta que los atributos de la clase Persona son
un subconjunto de los de la clase Jugador y semánticamente
Persona – Jugador
Los atributos que hereda la clase Jugador, que es la clase
especializada, no se representan. Obsérvese también que la
flecha que representa esta relación va desde la clase hija a la
clase madre, tiene línea continua, punta de flecha cerrada, no
tiene cardinalidad y no está etiquetada por ningún rol.
Asociación
Una vez resuelta las relaciones de herencia toca el turno a las
relaciones de asociación. Procedda siempre abordando
primero las triviales o más simples y continuando por las
demás. El análisis se realizará considerando las clases de dos
en dos.
Persona – Fecha
Esta asociación es trivial. La clase Persona tiene un atributo
de tipo Fecha. La clase Persona tiene una referencia a un
objeto de la clase Fecha. Las asociaciones se representan con
una línea de trazo continuo que une las clases vinculadas.
Roles
Considerado fechaNac de Persona, pasa a ser el rol de la
relación que vincula ambas clases. Por tanto, desaparece de la
clase Persona y aparece en la línea de vinculación junto a la
clase de su tipo.
Navegabilidad
Ahora hay que abordar la navegabilidad tratando de ver si
desde una clase se puede ir a la otra. Es evidente que la clase
Fecha no tiene información de la clase Persona por lo que la
navegabilidad desde la clase Fecha no es posible.
Sin embargo, la clase Persona tiene una referencia a la clase
Fecha por lo que sí es viable la navegabilidad desde la clase
Persona hacia la clase Fecha. La navegabilidad se expresa
con una punta de flecha abierta puesta en el lado de la clase
clase a la que se llega.
Cardinalidades
El siguiente paso es abordar las cardinalidades o
multiplicidades, es decir el número de instancias de cada
clase que intervienen en la relación. Para resolver este
paso hay que preguntar:
“¿Por cada instancia de una de las dos clases cuántas
instancias de la otra clase pueden en extremo intervenir como
mínimo (Cardinalidad mínima) y como máximo
(Cardinalidad máxima)?”
Y luego hacer las preguntas al revés.
 Cuántas fechas de nacimiento como mínimo tiene cada
persona : 1
 Cuántas fechas de nacimiento como máximo tiene cada
persona: 1
 Cuántas personas pueden nacer como mínimo en una
determinada fecha: 0
 Cuántas personas pueden nacer como máximo en una
determinada fecha: Varias
Obsérvese que cuando la cardinalidad mínima y máxima
coinciden sólo se representa una de ellas. Obsérvese
que cuando la cardinalidad máxima es múltiple y la
cardinalidad mínima es cero refiere una cardinalidad
opcional y se representa con un asterisco.
Todo – Parte
Considere qué clase es la parte [PARTE] y qué clase es la
[TODO]. O sea quién contiene a quién. En este caso la
discriminación es trivial: la clase Persona es la parte [TODO]
porque tiene una referencia a la clase Fecha que es la parte
[PARTE].
Agregación – Composición
Determine si la relación de asociación entre las clases es de
agregación o de composición. Para que la relación sea de
composición es condición necesaria que la cardinalidad de la
parte [TODO] sea 1. Como este no es el caso la relación es de
agregación.
Obsérvese que la parte [TODO] se identifica dibujando un
rombo acostado en la línea de la relación. Obsérvese también
que el se ha representado el rombo en blanco para identificar
una relación de agregación.
Y este es básicamente el proceso a seguir para analizar las
relaciones de asociación entre las clases de un diagrama de
clases UML. En situaciones más complejas habrá que
reconsiderar este método para introducir los nuevos elementos
involucrados.
Persona – Nif
El análisis de la relación entre estas dos clases determina que
cada objeto de la clase Nif está unívocamente unido a un
solo objeto de la clase Persona, y viceversa, por lo que la
cardinalidad en ambos lados es la unidad. tanto mínima
como máxima.
Además semánticamente si desaparece la parte [TODO], el
objeto de la clase Persona, la existencia de la parte [PARTE], el
objeto de la clase Nif, ya no puede ser utilizado y debería
desaparecer también. Esta dependencia existencial apunta a
una relación de tipo Composición.
Obsérvese que la parte [TODO] se identifica dibujando un
rombo acostado en la línea de la relación. Obsérvese también
también que el se ha representado el rombo en negro para
identificar una relación de composición.
Persona – Nombre
La relación entre la clase Persona y la clase Nombre es muy
parecida a la relación existente entre la clase Persona y la
Fecha.
Obsérvese que al ir expresando los atributos de la clase
Persona como roles de sus respectivas relaciones, en el
contexto de este supuesto, el diagrama que representa la
clase Persona ya no contiene ningún atributo.
Encuentro – Jugador
La relación entre la clase Encuentro y la clase Jugador es muy
interesante. Como se puede apreciar hay tres relaciones
diferentes con sus respectivos roles.
Obsérvese que si se decidiera no discriminar los roles
jugador1 y jugador2, sus respectivas relaciones se podrían
fusionar en una sola que se podría codificar utilizando alguna
colección de dos elementos.
Respecto a las cardinalidades, obsérvese que todos los
jugadores que participen en un encuentro tienen que hacerlo
en alguno de dos roles: jugador1 o jugador2 pero no en los
dos al mismo tiempo. Asimismo, aquellos jugadores que
participen en varios encuentros pueden ostentar diferentes
roles en cada uno de ellos, o no.
Finalmente, el ganador de un encuentro debe ser uno de los
dos participantes del mismo. Estas restricciones se podrían
expresar en los correspondientes diagramas de
comportamiento.
Encuentro – Marcador
En el contexto, en un encuentro se celebran tres partidas, el
primer jugador que llegue a 21 puntos gana la partida. El
jugador que gane más partidas de un encuentro gana el
encuentro. Obsérvese que no puede haber empate ni en las
partidas ni en el encuentro.
Marcador encapsula el resultado de una partida mediante dos
números de tipo entero, el primer número corresponde a los
puntos de primer jugador y el segundo número a los puntos
segundo jugador. Uno de ellos debe contener el número 21 y
corresponderá al ganador de la partida y el otro valor debe
situado entre 0 y 20.
Obsérvese que se ha modelado una relación de Composición
porque, a pesar de que en partidas diferentes puedan darse
resultados iguales, los objetos instanciados de la clase
Marcador que encapsulan estos resultados no se comparten,
pues si desaparece el encuentro desaparecen sus resultados.
Torneo – Fecha
La relación entre la clase Torneo y la clase Fecha es muy
parecida a la relación existente entre la clase Persona y la
clase Fecha.
Torneo – Encuentro
Para que haya un torneo es necesario que haya al menos
un encuentro.
Se ha establecido una relación de composición debido a que
los encuentros celebrados en un sorteo no son válidos para
otro.
Torneo – Jugador
El objetivo de un torneo es tener siempre un ganador. Esa
figura la tiene que ostentar alguno de los jugadores que han
participado en él.
Clase Partida
En este punto, todas las relaciones entre clases están
establecidas. A pesar que inicialmente se modeló la clase
Partida para recoger los datos de los participantes de cada
partida y de su resultado, siguiendo el razonamiento
argumentado hasta ahora resulta que esta clase no es
necesaria ni conveniente, por lo que se prescindirá de ella.
En el diseño de diagramas de clases es normal y conveniente
realizar continuos replanteos según el avance en el
razonamiento de la situación.
Interfaces
Terminado el diseño de los datos encapsulados en las
relaciones entre las diferentes clases el siguiente paso es
detectar las posibles capacidades funcionales que deben
reunir dichas clases expresadas en forma de realización de
interfaces.
Interfaz IJugador
Si se conviene en que la capacidad de jugar al tenis de
mesa viene proporcionada por el contenido de un
determinado método, toda clase que represente una persona
que sabe jugar este deporte incorporará este método en su
código. Sin embargo, ¿Cómo reconocer a un jugador de tenis
de mesa sin verlo jugar? La respuesta viene a través de los
interfaces. Una interfaz es como un título que faculta a su
poseedor en una determinada habilidad. Así se reconoce a un
jugador por su título, como se conoce a un médico por su
universitario, etc.
En este caso se convendrá en que la interfaz que reviste a una
persona como un jugador de tenis de mesa se llama IJugador y
que el método que corresponde a esa capacidad se
llama jugarTenisMesa.
Realizaciones
En esta fase se va a señalar qué clases deben implementar
las capacidades funcionales definidas a través de los
interfaces, es decir sus realizaciones.
Basado en:
joanpaon.wordpress.com/tag/diagrama-de-clases/
Jugador – IJugador
Para expresar que la clase Jugador realiza el interfaz
IJugador se utiliza la siguiente representación.
Adviértase que la clase y el interfaz están vinculados por una
línea de trazo discontinuo, con una punta de flecha
cerrada en el lado del interfaz y que en ningún lado se
expresa el contenido del método impuesto por el interfaz.
Un ejemplo de diagrama de clases

Más contenido relacionado

La actualidad más candente

Casos de estudio para diagramas de clases
Casos de estudio para diagramas de clasesCasos de estudio para diagramas de clases
Casos de estudio para diagramas de clases
Facultad de Ciencias y Sistemas
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
Jesús E. CuRias
 
Diagrama hipo
Diagrama hipoDiagrama hipo
Diagrama hipo
JorgeAlbertoTticaOva1
 
Documento arquitectura de software
Documento arquitectura de softwareDocumento arquitectura de software
Documento arquitectura de software
AURA SYSTEMS S.A.C
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
JOHNNY SURI MAMANI
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
Juan Carlos Olivares Rojas
 
ICONIX
ICONIXICONIX
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
Juan Pablo Bustos Thames
 
Ejercicio bancoss
Ejercicio bancossEjercicio bancoss
Ejercicio bancoss
Alex Yungan
 
Ejercicios uml
Ejercicios umlEjercicios uml
Trabajo final uml_200609_19
Trabajo final uml_200609_19Trabajo final uml_200609_19
Trabajo final uml_200609_19Yenny González
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
COMPUTO1ISTENE
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
David Motta Baldarrago
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
UNIVERSIDAD PERUANA DE INVESTIGACIÓN Y NEGOCIOS
 
Del análisis al diseño. diagramas de secuencia y contratos
Del análisis al diseño. diagramas de secuencia y contratosDel análisis al diseño. diagramas de secuencia y contratos
Del análisis al diseño. diagramas de secuencia y contratos
Juan Pablo Bustos Thames
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de uso
Juan Pablo Bustos Thames
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
Emmanuel Fontán
 

La actualidad más candente (20)

Casos de estudio para diagramas de clases
Casos de estudio para diagramas de clasesCasos de estudio para diagramas de clases
Casos de estudio para diagramas de clases
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
Diagrama hipo
Diagrama hipoDiagrama hipo
Diagrama hipo
 
Documento arquitectura de software
Documento arquitectura de softwareDocumento arquitectura de software
Documento arquitectura de software
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
ICONIX
ICONIXICONIX
ICONIX
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
Ejercicio bancoss
Ejercicio bancossEjercicio bancoss
Ejercicio bancoss
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Trabajo final uml_200609_19
Trabajo final uml_200609_19Trabajo final uml_200609_19
Trabajo final uml_200609_19
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
 
Formato de documentacion ieee 830
Formato de documentacion ieee 830Formato de documentacion ieee 830
Formato de documentacion ieee 830
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Del análisis al diseño. diagramas de secuencia y contratos
Del análisis al diseño. diagramas de secuencia y contratosDel análisis al diseño. diagramas de secuencia y contratos
Del análisis al diseño. diagramas de secuencia y contratos
 
Diagrama de Actividades
Diagrama de ActividadesDiagrama de Actividades
Diagrama de Actividades
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de uso
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 

Similar a Un ejemplo de diagrama de clases

Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
Facultad de Ciencias y Sistemas
 
F.u. 2 5
F.u. 2 5F.u. 2 5
F.u. 2 5
Fernando Acosta
 
Diseño conceptual de bases de Batos
Diseño conceptual de bases de BatosDiseño conceptual de bases de Batos
Diseño conceptual de bases de Batos
Edward H Gonzalez R
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
Maria Garcia
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
Maria Garcia
 
F.u. 2 3
F.u. 2 3F.u. 2 3
F.u. 2 3
Fernando Acosta
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
DanicientoFalcon
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
Avocats & Associés
 
Proporcionalidad directa e inversa
Proporcionalidad directa e inversaProporcionalidad directa e inversa
Proporcionalidad directa e inversa
soleolmos81
 
Modelo Relacional Rozic
Modelo Relacional RozicModelo Relacional Rozic
Modelo Relacional RozicCarlos Arturo
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
Maria Garcia
 
Funciones de excel
Funciones de excelFunciones de excel
Funciones de excel
Kǝǝviin Maa RtiiNeez
 
10. fracciones
10.  fracciones10.  fracciones
10. fracciones
Rusell Iuit Manzanero
 
Manual-Aptitud-Abstracta.pdf
Manual-Aptitud-Abstracta.pdfManual-Aptitud-Abstracta.pdf
Manual-Aptitud-Abstracta.pdf
Claudio Guerron
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
Universidad Fermín Toro
 
Base de datos
Base de datosBase de datos
Base de datoscaoxman
 

Similar a Un ejemplo de diagrama de clases (20)

Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
F.u. 2 5
F.u. 2 5F.u. 2 5
F.u. 2 5
 
F.u. 2 5
F.u. 2 5F.u. 2 5
F.u. 2 5
 
Diseño conceptual de bases de Batos
Diseño conceptual de bases de BatosDiseño conceptual de bases de Batos
Diseño conceptual de bases de Batos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
F.u. 2 3
F.u. 2 3F.u. 2 3
F.u. 2 3
 
Modelo entidad relación
Modelo entidad relaciónModelo entidad relación
Modelo entidad relación
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Proporcionalidad directa e inversa
Proporcionalidad directa e inversaProporcionalidad directa e inversa
Proporcionalidad directa e inversa
 
F.u. 2 3
F.u. 2 3F.u. 2 3
F.u. 2 3
 
Modelo Relacional Rozic
Modelo Relacional RozicModelo Relacional Rozic
Modelo Relacional Rozic
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Funciones de excel
Funciones de excelFunciones de excel
Funciones de excel
 
Modelo relacional2
Modelo relacional2Modelo relacional2
Modelo relacional2
 
10. fracciones
10.  fracciones10.  fracciones
10. fracciones
 
Manual-Aptitud-Abstracta.pdf
Manual-Aptitud-Abstracta.pdfManual-Aptitud-Abstracta.pdf
Manual-Aptitud-Abstracta.pdf
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
Base de datos
Base de datosBase de datos
Base de datos
 
cc302modulo3
cc302modulo3cc302modulo3
cc302modulo3
 

Más de Facultad de Ciencias y Sistemas

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
CSS3
CSS3CSS3
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
Facultad de Ciencias y Sistemas
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
Facultad de Ciencias y Sistemas
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
Facultad de Ciencias y Sistemas
 
06 clases-en-c
06 clases-en-c06 clases-en-c
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
Facultad de Ciencias y Sistemas
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
Facultad de Ciencias y Sistemas
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
Facultad de Ciencias y Sistemas
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
Facultad de Ciencias y Sistemas
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
Facultad de Ciencias y Sistemas
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
Facultad de Ciencias y Sistemas
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
Facultad de Ciencias y Sistemas
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
Facultad de Ciencias y Sistemas
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
Facultad de Ciencias y Sistemas
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
Facultad de Ciencias y Sistemas
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
Facultad de Ciencias y Sistemas
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
Facultad de Ciencias y Sistemas
 
Introducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UMLIntroducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UML
Facultad de Ciencias y Sistemas
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
Facultad de Ciencias y Sistemas
 

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Introducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UMLIntroducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UML
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 

Último

corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
JavierMontero58
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 

Último (20)

corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 

Un ejemplo de diagrama de clases

  • 2. Diseñe un diagrama de clases que modele la estructura necesaria para manejar los datos de los encuentros de un torneo de tenis de mesa en la modalidad de sorteo y eliminatoria. Del torneo interesa conocer la fecha del torneo, los encuentros celebrados y el ganador. De cada jugador, que debe de conocer perfectamente las reglas, interesa saber el número de federado de la federación de la que es
  • 3. Diseñe un diagrama de clases que modele la estructura necesaria para manejar los datos de los encuentros de un torneo de tenis de mesa en la modalidad de sorteo y eliminatoria. Del torneo interesa conocer la fecha del torneo, los encuentros celebrados y el ganador. De cada jugador, que debe de conocer perfectamente las reglas, interesa saber el número de federado de la federación de la que es miembro.
  • 4. De cada persona interesa saber sus datos básicos: NIF, nombre completo y fecha de nacimiento. La clase Fecha se modela con tres campos (día, mes y año) de tipo entero. La clase Nif se modela con un campo de tipo entero llamado dni y un campo de tipo carácter llamado letra. De cada encuentro interesa conocer los oponentes, el ganador y el resultado final del marcador de cada una de las tres que se juegan a 21 puntos.
  • 5. Análisis del enunciado Lea detenidamente el enunciado y de él extraiga la información posible. Es cuestión de aplicar el sentido común, a veces es cuestión de unir cabos sueltos, a veces es cuestión de simple lógica y a veces es cuestión de pura deducción, pero siempre siempre es cuestión de razonar por aproximaciones sucesivas y de experiencia. Bien, parece que el enunciado refiere únicamente un modelado de datos, no de comportamiento, por lo que se procederá a realizar una lista de los elementos más significativos para el proyecto que se puedan extraer del enunciado.
  • 6. Nombre del proyecto – Torneo Nombre del diagrama – EncuentrosTorneo Ítems – Elementos significativos del enunciado:  Encuentro  Fecha del torneo  Jugador  Número de federado  Persona  Nif  Nombre completo  Fecha de nacimiento  Dia  Mes  Año  Dni  Letra  Oponente  Resultado final  Partida
  • 7. Diseño de clases Las clases son entidades que encapsulan información, se trata por tanto de ver qué información de la lista anterior está relacionada entre sí y ver la forma de encapsularla en sus respectivas clases. Identifique las clases a partir del enunciado y encapsule en ellas la información relacionada. Este paso se realizará considerando de forma aislada unas clases de otras. Posteriormente, cuando se vean las relaciones, se depurará composición. En esta fase del modelado se procede siempre desde las clases más triviales a las más complejas.
  • 9. Diseño de clases Relaciones En esta fase se va a evaluar qué clases tienen que ver con qué otras, es decir sus relaciones. Para que el procedimiento resulte lo más sencillo posible se estudiarán las relaciones dos a dos.
  • 10. Herencia Abordar las relaciones de herencia iniciando por aquellas triviales o más evidentes. “La regla” para detectar una relación de herencia es fijarse en en el catálogo de clases diseñadas en la fase anterior, y ver si existe alguna clase cuyos atributos sean un subconjunto de alguna otra. Persona – Jugador En este caso resulta que los atributos de la clase Persona son un subconjunto de los de la clase Jugador y semánticamente
  • 11. Persona – Jugador Los atributos que hereda la clase Jugador, que es la clase especializada, no se representan. Obsérvese también que la flecha que representa esta relación va desde la clase hija a la clase madre, tiene línea continua, punta de flecha cerrada, no tiene cardinalidad y no está etiquetada por ningún rol.
  • 12. Asociación Una vez resuelta las relaciones de herencia toca el turno a las relaciones de asociación. Procedda siempre abordando primero las triviales o más simples y continuando por las demás. El análisis se realizará considerando las clases de dos en dos. Persona – Fecha Esta asociación es trivial. La clase Persona tiene un atributo de tipo Fecha. La clase Persona tiene una referencia a un objeto de la clase Fecha. Las asociaciones se representan con una línea de trazo continuo que une las clases vinculadas.
  • 13. Roles Considerado fechaNac de Persona, pasa a ser el rol de la relación que vincula ambas clases. Por tanto, desaparece de la clase Persona y aparece en la línea de vinculación junto a la clase de su tipo.
  • 14.
  • 15. Navegabilidad Ahora hay que abordar la navegabilidad tratando de ver si desde una clase se puede ir a la otra. Es evidente que la clase Fecha no tiene información de la clase Persona por lo que la navegabilidad desde la clase Fecha no es posible. Sin embargo, la clase Persona tiene una referencia a la clase Fecha por lo que sí es viable la navegabilidad desde la clase Persona hacia la clase Fecha. La navegabilidad se expresa con una punta de flecha abierta puesta en el lado de la clase clase a la que se llega.
  • 16.
  • 17. Cardinalidades El siguiente paso es abordar las cardinalidades o multiplicidades, es decir el número de instancias de cada clase que intervienen en la relación. Para resolver este paso hay que preguntar: “¿Por cada instancia de una de las dos clases cuántas instancias de la otra clase pueden en extremo intervenir como mínimo (Cardinalidad mínima) y como máximo (Cardinalidad máxima)?” Y luego hacer las preguntas al revés.
  • 18.  Cuántas fechas de nacimiento como mínimo tiene cada persona : 1  Cuántas fechas de nacimiento como máximo tiene cada persona: 1  Cuántas personas pueden nacer como mínimo en una determinada fecha: 0  Cuántas personas pueden nacer como máximo en una determinada fecha: Varias
  • 19. Obsérvese que cuando la cardinalidad mínima y máxima coinciden sólo se representa una de ellas. Obsérvese que cuando la cardinalidad máxima es múltiple y la cardinalidad mínima es cero refiere una cardinalidad opcional y se representa con un asterisco.
  • 20. Todo – Parte Considere qué clase es la parte [PARTE] y qué clase es la [TODO]. O sea quién contiene a quién. En este caso la discriminación es trivial: la clase Persona es la parte [TODO] porque tiene una referencia a la clase Fecha que es la parte [PARTE]. Agregación – Composición Determine si la relación de asociación entre las clases es de agregación o de composición. Para que la relación sea de composición es condición necesaria que la cardinalidad de la parte [TODO] sea 1. Como este no es el caso la relación es de agregación.
  • 21.
  • 22. Obsérvese que la parte [TODO] se identifica dibujando un rombo acostado en la línea de la relación. Obsérvese también que el se ha representado el rombo en blanco para identificar una relación de agregación. Y este es básicamente el proceso a seguir para analizar las relaciones de asociación entre las clases de un diagrama de clases UML. En situaciones más complejas habrá que reconsiderar este método para introducir los nuevos elementos involucrados.
  • 23. Persona – Nif El análisis de la relación entre estas dos clases determina que cada objeto de la clase Nif está unívocamente unido a un solo objeto de la clase Persona, y viceversa, por lo que la cardinalidad en ambos lados es la unidad. tanto mínima como máxima. Además semánticamente si desaparece la parte [TODO], el objeto de la clase Persona, la existencia de la parte [PARTE], el objeto de la clase Nif, ya no puede ser utilizado y debería desaparecer también. Esta dependencia existencial apunta a una relación de tipo Composición.
  • 24. Obsérvese que la parte [TODO] se identifica dibujando un rombo acostado en la línea de la relación. Obsérvese también también que el se ha representado el rombo en negro para identificar una relación de composición.
  • 25. Persona – Nombre La relación entre la clase Persona y la clase Nombre es muy parecida a la relación existente entre la clase Persona y la Fecha.
  • 26. Obsérvese que al ir expresando los atributos de la clase Persona como roles de sus respectivas relaciones, en el contexto de este supuesto, el diagrama que representa la clase Persona ya no contiene ningún atributo.
  • 27. Encuentro – Jugador La relación entre la clase Encuentro y la clase Jugador es muy interesante. Como se puede apreciar hay tres relaciones diferentes con sus respectivos roles.
  • 28. Obsérvese que si se decidiera no discriminar los roles jugador1 y jugador2, sus respectivas relaciones se podrían fusionar en una sola que se podría codificar utilizando alguna colección de dos elementos.
  • 29. Respecto a las cardinalidades, obsérvese que todos los jugadores que participen en un encuentro tienen que hacerlo en alguno de dos roles: jugador1 o jugador2 pero no en los dos al mismo tiempo. Asimismo, aquellos jugadores que participen en varios encuentros pueden ostentar diferentes roles en cada uno de ellos, o no. Finalmente, el ganador de un encuentro debe ser uno de los dos participantes del mismo. Estas restricciones se podrían expresar en los correspondientes diagramas de comportamiento.
  • 30. Encuentro – Marcador En el contexto, en un encuentro se celebran tres partidas, el primer jugador que llegue a 21 puntos gana la partida. El jugador que gane más partidas de un encuentro gana el encuentro. Obsérvese que no puede haber empate ni en las partidas ni en el encuentro. Marcador encapsula el resultado de una partida mediante dos números de tipo entero, el primer número corresponde a los puntos de primer jugador y el segundo número a los puntos segundo jugador. Uno de ellos debe contener el número 21 y corresponderá al ganador de la partida y el otro valor debe situado entre 0 y 20.
  • 31. Obsérvese que se ha modelado una relación de Composición porque, a pesar de que en partidas diferentes puedan darse resultados iguales, los objetos instanciados de la clase Marcador que encapsulan estos resultados no se comparten, pues si desaparece el encuentro desaparecen sus resultados.
  • 32. Torneo – Fecha La relación entre la clase Torneo y la clase Fecha es muy parecida a la relación existente entre la clase Persona y la clase Fecha.
  • 33. Torneo – Encuentro Para que haya un torneo es necesario que haya al menos un encuentro. Se ha establecido una relación de composición debido a que los encuentros celebrados en un sorteo no son válidos para otro.
  • 34. Torneo – Jugador El objetivo de un torneo es tener siempre un ganador. Esa figura la tiene que ostentar alguno de los jugadores que han participado en él.
  • 35. Clase Partida En este punto, todas las relaciones entre clases están establecidas. A pesar que inicialmente se modeló la clase Partida para recoger los datos de los participantes de cada partida y de su resultado, siguiendo el razonamiento argumentado hasta ahora resulta que esta clase no es necesaria ni conveniente, por lo que se prescindirá de ella. En el diseño de diagramas de clases es normal y conveniente realizar continuos replanteos según el avance en el razonamiento de la situación.
  • 36. Interfaces Terminado el diseño de los datos encapsulados en las relaciones entre las diferentes clases el siguiente paso es detectar las posibles capacidades funcionales que deben reunir dichas clases expresadas en forma de realización de interfaces.
  • 37. Interfaz IJugador Si se conviene en que la capacidad de jugar al tenis de mesa viene proporcionada por el contenido de un determinado método, toda clase que represente una persona que sabe jugar este deporte incorporará este método en su código. Sin embargo, ¿Cómo reconocer a un jugador de tenis de mesa sin verlo jugar? La respuesta viene a través de los interfaces. Una interfaz es como un título que faculta a su poseedor en una determinada habilidad. Así se reconoce a un jugador por su título, como se conoce a un médico por su universitario, etc.
  • 38. En este caso se convendrá en que la interfaz que reviste a una persona como un jugador de tenis de mesa se llama IJugador y que el método que corresponde a esa capacidad se llama jugarTenisMesa.
  • 39. Realizaciones En esta fase se va a señalar qué clases deben implementar las capacidades funcionales definidas a través de los interfaces, es decir sus realizaciones. Basado en: joanpaon.wordpress.com/tag/diagrama-de-clases/
  • 40. Jugador – IJugador Para expresar que la clase Jugador realiza el interfaz IJugador se utiliza la siguiente representación. Adviértase que la clase y el interfaz están vinculados por una línea de trazo discontinuo, con una punta de flecha cerrada en el lado del interfaz y que en ningún lado se expresa el contenido del método impuesto por el interfaz.