01_uml – diagramas de clases – ejercicio 1 – con el mazo dando.pdf

12
20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando https://joanpaon.wordpress.com/2013/07/01/umldiagramadeclasesejercicio1/ 1/12 C on el mazo dando Haciendo lo que hay que hacer UML – Diagramas de Clases – Ejercicio 1 i 12 Votes Enunciado Crear un proyecto UML (hp://en.wikipedia.org/wiki/Unified_Modeling_Language) llamado Asociacion en el que se diseñe un diagrama de clases que modele el proceso de dar de alta a cada una de las personas que se apuntan a una asociación. (hps://joanpaon.files.wordpress.com/2013/05/uml_logo.jpg) 0 7/01/2013 DE JOANPAON

Upload: pedro-valencia-morales

Post on 09-Jul-2016

25 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 1/12

Con el mazo dando

Haciendo lo que hay que hacer

UML – Diagramas de Clases – Ejercicio 1

      i12 Votes

Enunciado

Crear un proyecto UML (h桴p://en.wikipedia.org/wiki/Unified_Modeling_Language) llamadoAsociacion en el que se diseñe un diagrama de clases que modele el proceso de dar de alta acada una de las personas que se apuntan a una asociación.

(h桴ps://joanpaon.files.wordpress.com/2013/05/uml_logo.jpg)

07/01/2013 DE JOANPAON

Page 2: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 2/12

(h桴ps://joanpaon.files.wordpress.com/2013/05/uml_logo.jpg)

De cada persona interesa saber sus datos básicos: NIF, nombre completo y fecha denacimiento. Cuando cada nuevo socio se da de alta, se le asigna un código de asociadoalfanumérico y se anota la fecha de alta.

La clase Fecha se modela con tres campos (día, mes y año) de tipo entero. La clase Nif semodela con un campo de tipo entero llamado dni y un campo de tipo carácter llamado letra.

Análisis del enunciado

El primer paso a realizar consiste en leer detenidamente el enunciado y extraer de el toda lainformación posible. A veces es cuestión de aplicar el sentido común, a veces es cuestión deunir piezas, a veces es cuestión de lógica y a veces es cuestión de pura deducción, pero siempresiempre es cuestión de razonar por aproximaciones sucesivas y de experiencia.

Bien, parece que el enunciado refiere únicamente un modelado de datos, no decomportamiento, por lo que se procederá a realizar una lista de los elementos mássignificativos para el proyecto que se puedan extraer del enunciado.

1. Nombre del proyecto – Asociacion2. Nombre del diagrama – AltaAsociacion3. Ítems – Elementos significativos del enunciado.

PersonaSocioNifNombre completoFecha de nacimientoCódigo de asociadoDíaMesAñoDniLetra

4. Tipos de datosIntegerCharStringNifFechaNombre

Diseño de clases

Page 3: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 3/12

Recuérdese que las clases son entidades que encapsulan información, se trata por tanto de verqué información de la lista anterior está relacionada entre sí y ver la forma de encapsularla ensus respectivas clases.

Se procederá a identificar las clases a partir del enunciado y de encapsular en ellas lainformación relacionada. Este paso se realizará considerando las clases de forma aislada lasunas de las otras. Posteriormente, cuando se vean las relaciones, se depurará su composición.

En esta fase del modelado se procede siempre desde las clases más triviales a las máscomplejas.

Clase Nif

(h桴ps://joanpaon.files.wordpress.com/2013/06/nif.png)

Clase Fecha

(h桴ps://joanpaon.files.wordpress.com/2013/06/fecha.png)

Clase Nombre

Page 4: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 4/12

(h桴ps://joanpaon.files.wordpress.com/2013/06/nombre.png)

Clase Persona

(h桴ps://joanpaon.files.wordpress.com/2013/06/persona.png)

Clase Socio

(h桴ps://joanpaon.files.wordpress.com/2013/06/socio.png)

Relaciones

En esta fase se va a evaluar qué clases tienen que ver con qué otras, es decir sus relaciones. Paraque el procedimiento resulte lo más sencillo posible se estudiarán las relaciones dos a dos.

Page 5: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 5/12

Herencia

Primero se abordan las relaciones de herencia empezando por aquellas que resulten triviales omás evidentes.

Aunque estrictamente hablando no es así del todo, la regla para detectarlas es ver si entre lasclases definidas en el diseño existe alguna cuyos atributos sean un subconjunto de alguna otra.

Persona – Socio

En este caso resulta que los atributos de la clase Persona son un subconjunto de los de la claseSocio y semánticamente tiene sentido que la clase Socio sea una especialización de la clasePersona.

(h桴ps://joanpaon.files.wordpress.com/2013/07/1.png?w=300)

Obsérvese que los atributos que hereda la clase especializada no se representan. Obsérvesetambién que la flecha que representa esta relación va desde la clase hija a la clase madre, tienelinea continua  punta de flecha cerrada, no tiene cardinalidad y no está etiquetada por ningúnrol.

Asociación

Una vez se han resuelto las relaciones de herencia le toca el turno a los demás tipos derelaciones que son asociaciones. Se procederá siempre abordando primero las triviales o mássimples y continuando por las demás. Para que resulte más claro, el análisis se realizaráconsiderando las clases dos a dos.

Socio – Fecha

Page 6: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 6/12

Aun a riesgo de resultar tedioso pero con el objetivo de que resulte lo más clarificador posible,el análisis de la relación entre estas dos clases se realizará paso a paso.

Roles

Esta asociación es evidente. La clase Socio tiene un campo de tipo Fecha, dicho de otra manera,la clase Socio tiene una referencia a un objeto de la clase Fecha. Así considerado este campopasa a ser el rol de la relación que vincula a ambas clases. Por lo tanto, desaparece de la claseSocio y aparece en la linea de vinculación junto a la clase de su tipo.

(h桴ps://joanpaon.files.wordpress.com/2013/07/110.png)

Navegabilidad

Ahora hay que abordar la navegabilidad tratando de ver si desde una clase se puede ir a laotra. Es evidente que la clase Fecha no tiene información de la clase Socio por lo que lanavegabilidad desde la clase Fecha no es posible. Sin embargo, la clase Socio tiene unareferencia a la clase Fecha por lo que si es viable la navegabilidad en este sentido. Lanavegabilidad se expresa con una punta de flecha abierta puesta en el lado de la clase a laque se llega. 

(h桴ps://joanpaon.files.wordpress.com/2013/07/19.png?w=300)

Cardinalidades

El siguiente paso es abordar las cardinalidades o multiplicidades, es decir el número deinstancias de cada clase que intervienen en la relación. Para resolver este paso hay quepreguntar: “¿Por cada instancia de una de las dos clases cuantas instancias de la otra clasepueden 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 alta como mínimo tiene cada socio : 1

Page 7: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 7/12

Cuántas fechas de alta como mínimo tiene cada socio : 1Cuántas fechas de alta como máximo tiene cada socio: 1Cuántos socios se dan de alta como mínimo en una fecha: 0Cuántos socios se dan de alta como máximo en una fecha: Varios

(h桴ps://joanpaon.files.wordpress.com/2013/07/116.png)

Obsérvese que cuando la cardinalidad mínima y máxima coinciden sólo se representa una deellas. Obsérvese también que cuando la cardinalidad máxima es múltiple y la cardinalidadmínima es cero refiere una cardinalidad múltiple opcional y se representa con un asterisco.

Todo – Parte

El siguiente paso consiste en considerar qué clase es PARTE y qué clase es TODO. Dicho deotro modo quien contiene a quien. En este caso la discriminación es trivial: la clase Socio es laparte TODO porque tiene una referencia a la clase Fecha que es la parte PARTE.

Agregación – Composición

El siguiente paso consiste en determinar si la relación entre las clases es de agregación o decomposición. Para que la relación sea de composición es condición necesaria que lacardinalidad de la parte TODO sea 1. Como este no es el caso la relación es de agregación.

(h桴ps://joanpaon.files.wordpress.com/2013/07/115.png)

Obsérvese que el rombo se ha representado en blanco.

Persona – Fecha

El mismo razonamiento empleado para relacionar las clases Socio y Fecha se puede emplear

Page 8: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 8/12

El mismo razonamiento empleado para relacionar las clases Socio y Fecha se puede emplearpara relacionar las clases Persona y Fecha.

(h桴ps://joanpaon.files.wordpress.com/2013/07/114.png)

Esta vez el rol de la clase Fecha en la relación cambia. Obsérvese como ha desaparecido elcampo correspondiente a la fecha de nacimiento de la clase Persona.

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 lacardinalidad 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, laexistencia de la parte PARTE ya no tiene sentido y debería desaparecer también. Estadependencia existencial apunta a una relación de tipo Composición.

(h桴ps://joanpaon.files.wordpress.com/2013/07/16.png)

Obsérvese que el rombo se ha representado relleno en negro. Obsérvese también que el campocorrespondiente al Nif ha desaparecido de la clase persona pasando a ser el rol de la relación.

Persona – Nombre

La relación entre la clase Persona y la clase Nombre es muy parecida a la relación existenteentre la clase Persona y la clase Fecha.

Page 9: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 9/12

(h桴ps://joanpaon.files.wordpress.com/2013/07/17.png)

Obsérvese que al trasladar el campo nombre al rol de la relación, el diagrama que representa laclase Persona ya no contiene ningún atributo.

Diagrama de clases completo

Bueno, ahora se trata de ponerlo todo junto en un solo diagrama.

(h桴ps://joanpaon.files.wordpress.com/2013/07/18.png)

Este ejercicio está disponible como un archivo ZIP(h桴ps://dl.dropboxusercontent.com/u/11424209/Asociacion.zip) que se corresponde con unproyecto de la herramienta UML llamada Modelio (h桴p://www.modeliosoft.com/). Paraabrirlo hay que importar este proyecto desde su menú principal.

Page 10: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 10/12

En la siguiente entrega (h桴ps://joanpaon.wordpress.com/2013/07/24/uml‑diagrama‑de‑clases‑ejercicio‑2/) se abordará un ejercicio un poco más complejo de diseño de Diagrama de clasesUML (h桴ps://joanpaon.wordpress.com/2013/05/22/104/) que involucre, además de losconceptos vistos en esta entrega, el concepto de realización de interfaces(h桴ps://joanpaon.wordpress.com/2013/06/05/uml‑diagrama‑de‑clases‑realizacion/).

Si esta información te ha sido útil házmelo saber y si no … también.

Saludos.

11 pensamientos en “UML – Diagramas de Clases –Ejercicio 1”

Oscar Ros Gurrea | 07/03/2013 en 08:37Por curiosidad, ¿Qué herramienta usas para hacer los diagramas?

Responder

joanpaon | 07/04/2013 en 22:53Hola Oscar.

La herramienta de modelado que utilizo es Modelio.

Hay un enlace en el post y también la puedes encontrar en h桴p://www.modeliosoft.com

Saludos.

Responder

Acerca de estos anuncios (https://wordpress.com/about-these-ads/)

Esta entrada fue publicada en Java, UML y etiquetada Diagrama de clases, IDE, Java, POO,Programación, Unified Modeling Language. Guarda el enlace permanente.

Page 11: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 11/12

Responder

5tark (@mr5tark) | 03/04/2014 en 16:46Excelente explicacion !

Responder

Felipe IC | 06/09/2014 en 20:47Muy buena explicación. De lo mejor que he encontrado buscando ejercicios resueltos sobrediagramas de clase.

Responder

joanpaon | 06/09/2014 en 20:59Muchas gracias.

Responder

Harlen Joan Pardo Bergamin | 09/02/2014 en 00:40por fin entendi he visto miles de videos y me quedaban lagunas pero se fajo con este tuto….

Responder

leovelasq | 09/28/2014 en 21:29Excelente!! Muchas gracias.

Responder

Morales Jose | 10/14/2014 en 21:16pregunta de quien no sabe mucho, como sabes que clase va con cual? porque socio va confecha por ejemplo y asi sucesivamente

Responder

Ismael Gomez | 09/18/2015 en 03:43aquí aprendí mas que con mi maestro… !gracias¡

Responder

juan graneros | 01/26/2016 en 18:10Hola ! buen aporte. ¿Cómo quedaría este diagrama en código java?

Responder

Page 12: 01_UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando.pdf

20/5/2016 UML – Diagramas de Clases – Ejercicio 1 – Con el mazo dando

https://joanpaon.wordpress.com/2013/07/01/uml­diagrama­de­clases­ejercicio­1/ 12/12

Paola Andrea Alcala | 02/13/2016 en 19:45Hola, En mi concepto no veo necesario tener el nombre y el nif como clases a parte, cuandoestos pueden ser propiedades de la clase persona.

Responder

Crea un blog o un sitio web gratuitos con WordPress.com. | El tema Misty Lake.