Diagrama de clases [ayuda para resolver]

Temas relacionados con supuesto práctico y defensa
Responder
pixelmin
Usuario registrado
Mensajes: 31
Registrado: 01 Ago 2018, 18:16
Agradecido: 0
Agradecimiento recibido: 0

Diagrama de clases [ayuda para resolver]

Mensaje por pixelmin »

¡Hola!
Estoy dándome cabezazos para resolver un ejercicio de diagrama de clases de un examen. A ver si alguien puede echarme una mano :wink:

Es el ejercicio 3 de este examen: http://pagina.jccm.es/ear/escalatecniin ... tlibre.pdf

Mi diagrama (incompleto): https://www.dropbox.com/s/sroekyhn7gd78 ... clases.png

Mi duda: no sabía bien cómo hacer lo de que un fichero puede ser, por un lado, [Informatizado, Papel, Mixto] y por otro, referente a su seguridad [Baja, Media, Alta].

El tema del nivel de seguridad lo he resuelto con un atributo de tipo Enum. El problema es que únicamente se asigna Responsable de Seguridad a los ficheros con seguridad Media y Alta. No sabía cómo indicarlo así que en la relación incluí una nota con un constraint. (Por cierto, acabo de darme cuenta de que me salté el punto en el que dice que los de nivel alto realizarán auditorías :roll: ).

Sobre el medio... En un principio pensé hacer únicamente las tres clases que heredan de fichero pero en el enunciado dice que tiene que haber un campo Descripción que diga el formato, así que volví a utilizar un Enum, dejando las clases que heredan de la superclase. Aquí no sabía si hacer que FicheroMixto tuviera una doble herencia de FicheroInformatizado y FicheroPapel, o si dejar las 3 subclases pero hacer 2 interfaces (iPapel e iDigital, por ejemplo).

En stackoverflow encontré una duda similar (una publicación puede por un lado ser digital o en papel y por otro puede ser libro o revista), pero tampoco me resolvió mucho.

Es un ejercicio un tanto complejo (o a mí me lo parece), ¡así que gracias de antemano por echarle un vistazo!

[Nota: el diagrama no está completo de todo, además de las auditorías faltan otras cosillas, pero quería resolver el tema de las herencias de la clase Fichero antes de perder tiempo completando lo demás}

Avatar de Usuario
javierbds
Usuario registrado
Mensajes: 125
Registrado: 14 Sep 2017, 10:57
Agradecido: 1 vez
Agradecimiento recibido: 0

Re: Diagrama de clases [ayuda para resolver]

Mensaje por javierbds »

Como nadie responde doy algunas ideas (opinables)

Planteate usar composicion en vez de herencia para algunas cosas.
Por otro lado puedes decidir el nivel de detalle de tu representacion (usar enum solo cuando te simplifique) si quieres evitar restringir las relaciones.
No hay ningun problema por poner restricciones, tambien podrias simplemente anadir texto (no se pide dominar los formalismos, si ser muy claro). En cualquier caso la cardinalidad del Responsable de Seguridad seria 0..1 (es solo para media, alta).

Para evitar lo anterior hay que complicar el diagrama
Fichero <>--tiene---1-ValoracionSeg <|--es-- ValBaja, ValMedia, ValAlta (o incluso ValConRespon, ValSinRespon)
Valoracion tendria una instancia por Fichero y tendria la asociacion con el responsable en la subclases que correpondieran (Media y Alta)
Media, Alta ------- Responsable

Se puede discutir si es correcto que el responsable este asociado al fichero directamente o a la valoracion (si la valoracion cambia ...).

O con el tipo (aunque esta parte me parece que esta bastante bien)

Fichero<>---tiene--0,1-PartePapel
<>---tiene--0,1-ParteDigital
Si manejas patrones podrias usar un Decorador (u otro patron?) para esto, quiza (yo en el examen no me liaria).


Respecto a los ids (quiza esto ya sea entrar en casi implementacion) se apoyarian en un atributo de clase contador:int, si vas a anadir constructores. Puedes ponerlo como texto ...
Los ingenieros son también activistas sociales que diseñan sociedades e instituciones que se ajustan a sus máquinas [Callon]

lydi
PreparaTIC26
Mensajes: 11
Registrado: 01 Jun 2008, 19:30
Agradecido: 0
Agradecimiento recibido: 0

Re: Diagrama de clases [ayuda para resolver]

Mensaje por lydi »

Hola, pixelmin
Bajo mi punto de vista, tu solución es coherente y más que correcta. Recordad que no hay una única solución a los ejercicios y que es suficiente con que coherente, no tenga errores de bulto y puedas explicar las decisiones de diseño que has tomado (cosa que haces a la perfección al exponer tus dudas).
Vamos, que yo que tú no le daba más vueltas porque está muy bien el modelo.
Tened en cuenta que en este tercer examen el aspecto clave es la gestión del tiempo, ya que se suelen pedir muchísimas cosas a resolver en sólo cuatro horas y, con frecuencia, se va mínimo media hora en leer y comprender el ejercicio.
Espero haberte ayudado.
Un saludo

pixelmin
Usuario registrado
Mensajes: 31
Registrado: 01 Ago 2018, 18:16
Agradecido: 0
Agradecimiento recibido: 0

Re: Diagrama de clases [ayuda para resolver]

Mensaje por pixelmin »

¡Muchísimas gracias a los dos!
Vuestros comentarios me vienen genial. A veces me veo un poco perdida en los ejercicios prácticos.

Responder

Volver a “TERCER EXAMEN 2018”