Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introducción
Básicamente, este documento intenta servir de guía durante la fase de
elaboración del módulo Recursos Humanos para la División de Personal de la
ENAHP-IUT que está en pleno desarrollo. Este documento se elabora desde la
fase de inicio del proceso de desarrollo del módulo con el objetivo de explicar el
diseño de la arquitectura del software a desarrollar.
2. Propósito
Este documento provee una visión de la arquitectura del módulo Recursos
Humanos a desarrollar, usando un número de vistas diferentes para explicar los
diferentes aspectos del módulo. Además se intenta capturar las diferentes
decisiones significativas en el aspecto arquitectónico que han sido tomadas para
el desarrollo del módulo.
3. Alcance
Este documento pretende explicar los principios arquitectónicos bajo los
cuales se llevará a cabo el desarrollo del módulo Recursos Humanos para la
División de Personal de la ENAHP-IUT, entre ellos se encuentran las
descripciones y modelos correspondientes a cada una de las 4 + 1 vistas
arquitectónicas como son casos de uso, lógica, implantación, implementación y
datos.
1. Referencias
- Documento Glosario.
- Documento Visión.
2. Resumen
Básicamente este documento explica las decisiones arquitectónicas del
desarrollo del módulo Recursos Humanos para la División de Personal de la
ENAHP-IUT. Consta de la Representación de la arquitectura elegida en la que se
detalla cada una de las vistas a desarrollar en el documento incluyendo los
diagramas y modelos necesarios para cada uno de ellos; Las restricciones de
arquitectura que vienen dadas por los requerimientos que tengan un impacto
significativo en la arquitectura; Posteriormente se detallan cada una de las vistas
arquitectónicas del módulo para concluir con el aspecto de calidad, tamaño
desempeño en el que se explican las características del software que
implementará la arquitectura para satisfacer los requerimientos funcionales y
suplementarios del módulo.
• Representación Arquitectónica
La arquitectura de software para el módulo Recursos Humanos a
desarrollar consta de cinco vistas entre las cuales se encuentra la vista de casos
de uso formada por el modelo de casos de uso, la especificación detallada de
cada uno de ellos así como la realización de cada uno en forma de diagrama de
secuencia; por otro lado, la vista lógica que consta del modelo conceptual,
diagrama de clases y la distribución en paquetes de las clases.
<<extend>>
<<extend>>
Ingresar Pago Becas
Ingresar Pago
Administrador
<<extend>>
<<extend>>
Ingresar Pago Bono Nocturno/Dia
Realizar Movimiento de Personal Feriado
<<extend>>
<<extend>>
Ingresar Información Asociada al
General
Personal
Ingresar Adiestramiento
<<extend>>
<<include>>
<<extend>>
Ingresar Reconocimiento
<<extend>>
Ingresar Evaluación de Eficiencia
Obtener Información Asociada al
Personal Ingresar Vacaciones
<<extend>>
<<extend>>
Ingresar Reposo
<<extend>>
Ingresar Pago Becas Obtener Pago Becas Obtener Detalle Pago Becas
<<include>>
Obtener Vacaciones Obtener Detalle Vacaciones
<<include>> <<include>>
<<include>> <<include>>
<<include>> <<include>>
<<extend>>
<<include>> <<include>>
<<include>> <<include>>
Administrador
General
Consulta
Contiene los escenarios o casos de uso claves, para cada uno de los cuales
se describen las secuencias de interacción entre objetos y procesos. Los
escenarios consisten en instancias de los casos de uso, los cuales satisfacen los
requerimientos funcionales más importantes del sistema. Consta de la
especificación de los casos de uso y sus realizaciones en forma de diagrama de
secuencia.
A1: Si el usuario elige la opción Buscar sin introducir ningún patrón de búsqueda,
la aplicación presenta el listado de todos los miembros del personal almacenados.
A2: Si no se encuentra ningún miembro del personal, la aplicación notifica esta
información al usuario.
Caso de Uso: CU41. OBTENER DETALLE PAGO BONO NOCTURNO / DÍA FERIADO
Actores: Administrador
Descripción: Este caso de uso se inicia cuando el usuario elige un pago de bono
nocturno / día feriado de un miembro del personal en particular
para que la aplicación muestre en detalle los datos previa consulta a
la base de datos del sistema.
Caso de Uso: CU49. GENERAR REPORTE HORAS EXTRAS / BONO NOCTURNO / DÍA
FERIADO
Actores: Administrador
Descripción: Este caso de uso se inicia cuando el usuario solicita la opción
Reporte Horas Extras / Bono Nocturno / Día Feriado y la
aplicación genera el archivo de texto correspondiente previa
consulta a la base de datos.
Frecuencia: Media
Preguntas
Abiertas:
Referencias R.02, R.12, R.27, R.30
Cruzadas:
Precondiciones: El usuario debe haber ingresado al módulo Recursos Humanos del
Sistema SIG.
Poscondiciones: Se ha generado un archivo de texto con el reporte solicitado por el
usuario.
Curso Normal:
setPersonal(datosPersonal)
Operación OK
Listado de Personal
getPersonal(id)
Datos Detalle Personal
Listado de Personal
mostrarDetallePersonal(id)
new Personal(id)
p:Personal
getPersonal(id)
getInformacionConstancia(tipo,id)
Información Constancia
Operación OK
Listado de Personal
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
generarListadoPersonal(patron)
new Reporte(tipo,patron)
r: Reporte
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
new Personal(id)
p:Personal
getPersonal(id)
realizarMovimientoPersonal(p, valor)
cambiarCargo(valor) setCargo(valor)
Operación OK
Listado de Personal
getPersonal(id)
setEvaluacion(p, datos)
Operación OK
Listado de Personal
getPersonal(id)
cambiarEstatus(p, valor)
modificarEstatus(p, valor) setEstatus(p, valor)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
setVacacion(p, datos)
Operación OK
Listado de Personal
getPersonal(id)
ingresarReposo(p, datos)
new Reposo(p, datos)
r: Reposo
setReposo(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
ingresarAmonestacion(p, datos)
new Amonestacion(p, datos)
a:
Amonestacion
setAmonestacion(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
ingresarAdiestramiento(p, datos)
new Adiestramiento(p, datos)
a:
Adiestramiento
setAdiestramiento(p, datos)
Operación OK
Listado de Personal
generarReporte(tipo,listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
generarReporteAsistencia(listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
ingresarReconocimiento(p, datos)
new Reconocimiento(p, datos)
r:
Reconocimiento
setReconocimiento(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
ingresarAsistencia(p, datos)
new Asistencia(p, datos)
a: Asistencia
setAsistencia(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
new Personal(id)
p:Personal
getPersonal(id)
getInformacionReporte(tipo,id)
Información Reporte
Operación OK
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
mostrarPersonal(id)
p: Personal
getEvaluacion(idEval)
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
setPermiso(p, datos)
Operación OK
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
mostrarPersonal(id)
p: Personal
new Personal(id) getPersonal(id)
mostrarVacacion(idVac)
new Vacacion(idVac)
v: Vacacion
getVacacion(idVac)
Listado de Personal
mostrarPersonal(id)
p: Personal
new Personal(id) getPersonal(id)
mostrarReposos(p) obtenerReposos()
getRepososPersonal(id)
mostrarReposo(idRep)
new Reposo(idRep)
r: Reposo
getReposo(idRep)
Listado de Personal
mostrarPersonal(id)
p: Personal
mostrarPermisos(p) obtenerPermisos()
getPermisosPersonal(id)
mostrarPermiso(idPer)
new Permiso(idPer)
p: Permiso
getPermiso(idPer)
Listado de Personal
mostrarPersonal(id)
p: Personal
getAmonestacion(idAmo)
Datos Detalle Amonestacion
Listado de Personal
mostrarPersonal(id)
p: Personal
mostrarReconocimientos(p) obtenerReconocimientos()
getReconocimientosPersonal(id)
getReconocimiento(idRec)
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
realizarIncremento(p, datos)
new Salario(p, datos)
s: Salario
setSalario(p, datos)
Operación OK
Listado de Personal
generarReporteIncremento(listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
generarReportePrestaciones(listado)
new Reporte(tipo,listado) r: Reporte
calcularPrestaciones() getCalculoPrestaciones()
Cálculo Prestaciones
Operación OK
Listado de Personal
generarReporte(tipo,listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
getPersonal(id)
Listado de Personal
mostrarPersonal(id)
p: Personal
getVacacion(idVac)
getPagoVacaciones()
Datos Detalle Pago Vacaciones
Listado de Personal
getPersonal(id)
Listado de Personal
getPersonal(id)
Listado de Personal
mostrarPersonal(id)
p: Personal
getPagoBNDF(idPag)
Listado de Personal
mostrarPersonal(id)
p: Personal
getPagoHoraExtra(idPag)
Listado de Personal
mostrarPersonal(id)
p: Personal
mostrarPagosBeca(p) obtenerPagosBeca()
getPagosBecaPersonal(id)
getPagoBeca(idPag)
Listado de Personal
getPersonal(id)
Listado de Personal
generarReporte(tipo,listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Listado de Personal
generarReporte(tipo,listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
getNormativaLegal(id)
setNormativaLegal(datos)
Operación OK
Listado de Personal
generarReporte(tipo,listado)
new Reporte(tipo,listado) r: Reporte
getInformacionReporte(tipo,listado)
Información Reporte
Operación OK
Frame_Personal Repositorio
: General
getDatosUsuario(login)
Operación OK
Frame_Personal Repositorio
: General
cerrarSesion(login)
almacenarLog(login)
Operación OK
Listado de Personal
mostrarPersonal(id)
p: Personal
mostrarAdiestarmientos(p) obtenerAdiestramientos()
getAdiestramientosPersonal(id)
getAdiestramiento(idAdi)
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
setPagoBNDF(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
setPago_HorasExtras(p, datos)
Operación OK
Listado de Personal
mostrarDetallePersonal(id)
p:Personal
new Personal(id)
getPersonal(id)
setPagoBeca(p, datos)
Operación OK
getNombreDireccion()
getNombreEvaluador()
getNombreSupervisor()
validarEvaluaciones()
getBono()
tieneDerechoVacaciones()
validarVacaciones()
getPagoVacaciones()
Horas_Extras
Hora_Extra: Representa cada uno de los
Numero_Horas : int
pagos que se le ha realizado a los miembros
Monto_Por_Hora : int del personal por concepto de horas extras.
Monto_Cancelar : int
Mes_Correspondiente : int
Ano_Correspondiente : int
validarHorasExtras()
Normativa_Legal
Normativa_Legal: Representa la
normativa legal que regula la labor de los
Tipo : String
Fecha_Inicio : String miembros del personal de la ENAHP-IUT.
Fecha_Fin : String
Normativa : int
Aplica_A : String
obtenerListaroNormativa()
modificarNormativa()
cumpleRequisitos()
Requisito
Requisito: Representa el conjunto de
Constancia_Insc_Inicio : boolean
requisitos que un estudiante con el
Constancia_Notas_Inicio : boolean beneficio de beca debe cumplir en cada uno
Constancia_Insc_Fin : boolean de los períodos de la Institución.
Constancia_Notas_Fin : boolean
Periodo : Periodo
getInasistencias()
Reconocimiento
Reconocimiento: Representa los
Fecha : Date
reconocimientos que ha obtenido un
Lugar : String miembro del personal de la ENAHP-IUT.
Por : String
Motivo : String
Tipo : String
Observacion : String
Amonestacion
Amonestacion: Representa las
Fecha : Date
amonestaciones obtenidas por los
Por : String miembros del personal de la ENAHP-IUT.
Motivo : String
Tipo : String
Observacion : String
validarAmonestaciones()
Cargo
Cargo: Representa los cargos que ha
tenido un miembro del personal durante su
Nombre_Cargo : String
Fecha_Inicio : Date permanencia en la Institución.
Fecha_Fin : Date
Grado : int
Horas_Jornada : int
Dias_Semana : int
Observacion : String
obtenerTiposPersonal()
obtenerAtributos()
obtenerListadoPersonal()
cambiarCargo()
obtenerMovimientos()
obtenerEvaluaciones()
obtenerVacaciones()
obtenerReposos()
obtenerPermisos()
obtenerAmonestaciones()
obtenerAdiestramientos()
obtenerReconocimientos()
obtenerPagosVacaciones()
obtenerPagosBNDF()
obtenerPagos_HorasExtras()
obtenerPagosBeca()
• Vista de Implantación
Las características recomendadas para los equipos donde va a funcionar el
sistema son:
• Equipo del cliente: El cliente sólo necesita de una máquina que tenga
instalado el software correspondiente a la versión 1.5 de java y que esté
conectada a la red local de la institución. Posteriormente sólo requerirá que
se instale el software del Sistema SIG, específicamente el módulo Recursos
Humanos.
LÓGICA
Será desarrollada completamente utilizando el lenguaje java, por lo que se
crearán que las clases en 3 grandes grupos o paquetes:
1. Fachada: Es el conjunto de clases que es transparente para el
usuario. Son las fachadas de cada una de las operaciones que es
capaz de llevar a cabo la aplicación.
2. Lógica: Es el conjunto de clases que se encargan del recibimiento
y tratamiento de las peticiones para poder enviarlas
adecuadamente a la clase inferior, es un intermediario que
maneja las clases referentes a las reglas del negocio.
3. Manejador: Son las clases que se encargan de interactuar
constantemente con el repositorio de datos y adicionalmente se
DATOS
1. Conector JDBC: Permite a la capa Manejador de la Aplicación
acceder a la base de datos.
2. Base de datos en MySQL: Conjunto de tablas con algunas
restricciones de integridad que almacenan el conjunto de datos
con un sentido.
Responsabilidad
Es la capa que tiene interacción directa con el usuario, es decir, la interfaz
gráfica de la aplicación.
Composición
Está compuesta por formularios y ventanas.
Plataforma
Lenguaje Java.
Composición
Está compuesta por clases. Clases de Java empaquetadas en uno o varios
archivos JAR.
Plataforma
Lenguaje Java. Se hará uso de librerías de JDBC.
3. Acceso a Datos
Responsabilidad
Es el repositorio de los datos de la aplicación, que provee la persistencia a
los datos manejados por la capa de negocios. Su interacción es únicamente
con dicha capa.
Composición
Plataforma
Manejador de base de datos MySQL.
Clases de Validaciones
Almacenamiento de
DatosCapa de
Java Datos
Interfaz Clases de
Ventanas Presentación Acceso a
Formularios
Capa Datos
Cliente
- Vista de Procesos
Esta vista toma en cuenta algunos requerimientos no funcionales, como
desempeño y disponibilidad del sistema, esto incluye aspectos de concurrencia y
distribución, integridad del sistema y tolerancia a las fallas. Además se describen
las tareas involucradas en la ejecución del sistema, sus interacciones y
configuraciones.
En este sistema principalmente existen 4 estados compuestos del proceso:
Establecimiento de Normativa Legal para el módulo, Carga de Información del
- Vista de Implementación
Se enfoca en la organización de los módulos del software actual en el ambiente de
desarrollo de software. En este módulo se dispondrá de un Servidor de Datos
Central, un Servidor de Aplicación que estará disponible a través de la Red Interna
de la Insitución a todos los involucrados, ya sea por sus equipos portátiles o sus
equipos de escritorio.
Es conocido que las intranets proveen una plataforma con bajo costo y
además están universalmente disponibles para compartir y distribuir información.