Autor Tema: ejercicio diagrama de clases UML se quiere desarrollar aplicación informática  (Leído 2556 veces)

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Buenas
Tengo que hacer un ejercicio , un diagrama de clases pero me salen varias clases y no se si esta bien. el enunciado es el siguiente:

Se quiere desarrollar una aplicación informática que permita llevar a cabo la gestión de varios proyectos informáticos. Habrá que tener almacenada toda la información referente a cada proyecto que se quiera gestionar. Habrá dos tipos de personas que podrán estar involucradas en los proyectos, ya sea para su gestión o para la ejecución de las actividades. Estos dos tipos de personas son el jefe de proyecto y el programador. De cada persona se quiere almacenar su nombre y su DNI.

Un proyecto será liderado por un jefe de proyecto. Pero un jefe cabeza de proyecto sólo podrá gestionar tres proyectos. Un proyecto tiene actividades; cada proyecto podrá tener desde una a muchas (de forma indefinida) actividades, pero una actividad sólo podrá pertenecer a un proyecto.

Los programadores desarrollarán las actividades. Cada programador tendrá vinculada como mínimo una actividad, sin un máximo de actividad establecido. Igualmente, las actividades podrán ser desarrolladas por un mínimo de un programador, sin haber un máximo establecido.
 

Me sale una clase proyecto, otra actividad, lo que no entiendo donde irian los programadores si serian atributos o clase y los jefes de proyecto.
« Última modificación: 13 de Junio 2017, 19:16 por Ogramar »

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:ejercicio diagrama de clases UML
« Respuesta #1 en: 23 de Abril 2017, 14:59 »
he avanzado un poco, pero no sé si estaria bien
« Última modificación: 13 de Junio 2017, 19:18 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas javaquery, para responder a este ejercicio sería bueno que vieras los conceptos de programación orientada a objetos explicados en el curso de Java básico: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Comentar:

- Normalmente todos los nombres de clase empiezan por mayúscula siguiendo convención camelCase (lo has hecho bien) y todos los nombres de atributo o métodos comienzan por minúscula siguiendo también convención camelCase

En lugar de obtenernombre sería obtenerNombre

- Los métodos para obtener se suelen escribir como getNombreDelAtributo por ejemplo getNombre

- Te faltarían los métodos para establecer que se suelen escribir como setNombreDelAtributo por ejemplo setNombre

Según el enunciado del ejercicio cada persona podríamos hacer un diseño distinto. Una primera idea que se me ocurre sería algo como:

Clase Aplicacion, con el atributo listaDeProyectos (lista de objetos de tipo Proyecto)

Clase Proyecto con el atributo idProyecto (int identificador del proyecto), jefeDeProyecto (de tipo JefeDeProyecto), nombreDeProyecto (de tipo String), fechaDeComienzo (puede ponerse tipo String) , listaDeActividadesDelProyecto (de tipo Lista de Actividad)

Clase Persona, con los atributos nombre, DNI y puestoQueOcupa.

Clase JefeDeProyecto, que heredará de Persona. Además de los atributos de persona, tendrá como atributo ListaDeProyectosGestionada (esto será un array de capacidad 3  elementos correspondientes a los tres proyectos que puede gestionar un proyecto)

Clase Programador

Clase Actividad, con los atributos nombreActividad (String), listaDeProgramadoresAsignados (de tipo Lista de Programadores)

Hay un detalle de diseño problemático: si introduces como atributo de Proyecto un jefe de proyecto, y en la clase JefeDeProyecto un atributo ListaDeProyectosGestionada, tendrías información duplicada. Para evitarlo, habría que elegir el incluir esta información en una sola clase. Lo mismo ocurre con la asignación de actividades a programadores.

Para saber los proyectos gestionados por un jefe de proyecto, tendrías que recorrer la listaDeProyectos de la aplicación, y para cada proyecto comprobar quién es el jefe de proyecto.

Esto es una idea, habría que plantearlo con más calma y ver si serían necesarias mejoras o cambios

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".