Foros del Web » Programación para mayores de 30 ;) » Programación General »

Sugerencia de Implementación Perfil de Empleado

Estas en el tema de Sugerencia de Implementación Perfil de Empleado en el foro de Programación General en Foros del Web. Hola a todos, Mi duda es cómo implementar el Perfil para la típica clase Empleado. Debemos tener en cuenta lo siguiente: 1) Un empleado sólo ...
  #1 (permalink)  
Antiguo 08/06/2010, 03:25
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 3 meses
Puntos: 0
Exclamación Sugerencia de Implementación Perfil de Empleado

Hola a todos,

Mi duda es cómo implementar el Perfil para la típica clase Empleado.


Debemos tener en cuenta lo siguiente:

1) Un empleado sólo puede tener un perfil.
2) Según el perfil, el usuario tendrá una funcionalidad u otra.
3) Según el perfil, se relacionará con unas clases u otras: Por ejemplo, el perfil Administrativo se relaciona con bancos, mientras que otros perfiles no tienen esa relación.

En un principio, pensé en implementar cada perfil como una clase que hereda de Empleado, puesto que los distintos perfiles tienen los atributos de un Empleado (nombre, apellidos, nif, etc.).
Sin embargo, los métodos típicos de Empleado (alta, modificar, baja) sólo deben ser usados por un empleado con el perfil Administrador. Y si pongo estos métodos en la subclase Administrador, ¿cuál sería el código para crear otro perfil?

No sé si estoy mezclando casos de uso con clases. Es decir, ¿en el diagrama de clases se debe indicar "quien" hace cada cosa o solo qué se puede hacer con cada entidad? Si la respuesta fuese "quien" entonces no nos sirve la opción de herencia señalada, pero si la respuesta fuese: "sólo que" entonces sí podría valer la opción de herencia indicada.


Cuál creéis que es la mejor forma de implementar el perfil de un empleado con las condiciones que he señalado?


Espero vuestras respuestas y la justificación de las mismas (pros/contras).

Es urgente. Gracias.

Última edición por rebeca22; 08/06/2010 a las 04:16
  #2 (permalink)  
Antiguo 08/06/2010, 13:06
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Sugerencia de Implementación Perfil de Empleado

Hola Rebeca,

A mi entender, deberías crear una clase Perfil; y la clase Empleado debería tener un atributo del tipo Perfil. Esta clase Perfil contendría la información de las operaciones que puede realizar cada empleado.

Siguiendo esta lógica, "Administrador" sería una instancia de Perfil, y al ser una instancia no debería aparecer en el diagrama de clases.

Espero te sea de ayuda,
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
  #3 (permalink)  
Antiguo 09/06/2010, 04:46
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Sugerencia de Implementación Perfil de Empleado

Gracias por tu respuesta Carlos.

Pero la opción que me indicas no sé si es del todo acertada.
Tal como indicas, la clase Perfil debería tener un atributo 'tipo' para indicar el tipo de Perfil (Administrador, RRHH, Administrativo, etc).
El problema que encuentro es que como dije cada perfil se relaciona con otras clases (Por ejemplo: Administrativo con Bancos, Administrador con Oficinas, RRHH con CV).
Si para todos los perfiles tenemos una clase Perfil obligaría a relacionarla con todas esas clases (Bancos, Oficinas, CV) y esto conduciría a tener en la clase Perfil atributos de estas clases (que en la mayoria de los casos siempre estarían a null para un perfil concreto).

¿Qué opináis?

Un saludo.

Última edición por rebeca22; 19/12/2010 a las 06:44
  #4 (permalink)  
Antiguo 19/12/2010, 06:44
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Sugerencia de Implementación Perfil de Empleado

Pienso que la respuesta de 'cptanalatriste' se acerca a la solución pero falta algo más.
¿Cómo concreto que sólo determinados perfiles de empleado se relacionen con otras clases?
Por ejemplo:
- Sólo el perfil Administrativo se relaciona con la clase Bancos.
- Sólo el perfil RRHH se relaciona con la clase CV.
- Sólo el perfil Administrador se relaciona con la clase Oficina.

¿Cómo se aplican esas condiciones?:
1) Con asociaciones calificadas
2) Con relaciones ternarias (Empleado,Perfil,Banco), (Empleado,Perfil,CV), (Empleado,Perfil,Oficina)


¿Se os ocurre alguna idea de cómo solucionar este problema?

Necesito vuestra ayuda.

Gracias.

Última edición por rebeca22; 19/12/2010 a las 07:39

Etiquetas: perfil, sugerencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:09.