Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestin de nminas
diciembre 2011
Convenio colectivo: acuerdo peridico entre la empresa y los trabajadores por el que se
establecen, entre otras cuestiones, las cantidades de los salarios base correspondientes a las
categoras.
Salario base: cantidad correspondiente a una categora que se abona en las nminas de los
empleados. Su importe vara en funcin de los acuerdos alcanzados en los convenios
colectivos.
Requisitos de informacin
Pgina 1 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
RN-001 Jefes y subordinados - El sistema deber respetar la siguiente regla de negocio: un jefe
tiene cmo mximo cinco empleados bajo su supervisin.
RN-002 Bajas en la empresa - El sistema deber respetar la siguiente regla de negocio: para
que se pueda dar de baja un empleado en la empresa la fecha de baja debe ser, como mnimo,
un da posterior a la fecha del alta.
Requisitos funcionales
RF-002 Salario actual El sistema deber ser capaz de calcular automticamente el salario
actual de un empleado dado, sumando para ello el salario base de su categora actual y su
complemento personal en vigor.
Ejercicios
2. Plantee un posible escenario con varios empleados, categoras y nminas. Elabore el diagrama
de objetos correspondiente al escenario.
Pgina 2 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
subordinado
0..5
di ri geA Em pl eado
C at egor a
dni t i ene
nombre nombre
jefe apellidos * 1 salarioBase
0..1 domicilio
poblacin
cdigoPostal 1
fechaAlta
fechaBaja [0..1]
complemento
{A l m enos un d a de al t a:
la fecha de baja (si existe)
debe ser al menos un da
posterior a la de alta.}
*
dev engadaC om o
Nm i na
mes *
ao
salarioBase
complemento
Solucin (escenario)
e1: Empleado
n2: Nmina
mes = diciembre
ao = 2011
salarioBase = 1.500
complemento = 600
Figura 2: Escenario con dos empleados en activo, uno de los cules ha cambiado de categora entre noviembre
y diciembre de 2011
Pgina 3 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
/*
-----------------------------------------------------------------------------
Archivo: Gestin de nminas.sql
Contenido: Esquema Oracle del boletn de IISSI
Fecha: 12/12/2011
Autor: Carlos Arvalo
Versin: 1.0
-----------------------------------------------------------------------------
*/
/*
-----------------------------------------------------------------------------
ltima actualizacin: 16/12/2011-20/12/2011 (Amador Durn)
Revisin y pequeos cambios.
-----------------------------------------------------------------------------
*/
Pgina 4 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
/* Tabla de Categoras */
/* Tabla de Empleados */
/* Tabla de Nminas */
-- si ya tiene 5 o ms subordinados...
if ( subordinados >= 5 ) then
raise_application_error( -20601,
'Superado el lmite de subordinados con ' || :new.nombre || ' ' || :new.apellidos );
end if;
end;
Pgina 5 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
fila c%rowtype;
begin
dbms_output.put_line('Listado de nminas de ' || mesNomina || ' de '|| anyoNomina );
dbms_output.put_line(' ');
return salarioBruto;
end;
/* Carga de categoras */
insert into categorias( id, nombre, salarioBase ) values ( 1, 'Programador', 800 );
insert into categorias( id, nombre, salarioBase ) values ( 2, 'Analista', 1200 );
insert into categorias( id, nombre, salarioBase ) values ( 3, 'Jefe de proyecto', 2000 );
insert into categorias( id, nombre, salarioBase ) values ( 4, 'Administrativo', 1000 );
insert into categorias( id, nombre, salarioBase ) values ( 5, 'Traductor', 1100 );
Pgina 6 de 7
Introduccin a la Ingeniera del Software y a los Sistemas de Informacin
Gestin de nminas
diciembre 2011
/* Carga de empleados */
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 12345678, 'Juan', 'Espaol Espaol', 'c/ Nueva, 4', 'Sevilla', 41092,
to_date('1/1/2008','dd/mm/yyyy'), 1000, 3, null );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 23456789, 'Joseph', 'Ingls Ingls', 'c/ Vieja, 13', 'Sevilla', 41092,
to_date('1/12/2011','dd/mm/yyyy'), 800, 5, 12345678 );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 34567890, 'Antonio', 'Francs Francs', 'c/ Cuesta, 10', 'Sevilla', 41092,
to_date('1/10/2010','dd/mm/yyyy'), 300, 1, 34567890 );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 45678901, 'Francisco', 'Portugus Portugus', 'c/ Valle, 7', 'Sevilla', 41092,
to_date('1/9/2008','dd/mm/yyyy'), 500, 2, 34567890 );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 56789012, 'ngela', 'Alemana Alemana', 'c/ Arriba, 1', 'Sevilla', 41092,
to_date('1/9/2011','dd/mm/yyyy'), 400, 4, 34567890 );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 67890123, 'Sarkozy', 'Francs Francs', 'c/ Abajo, 2', 'Sevilla', 41092,
to_date('1/4/2009','dd/mm/yyyy'), 200, 1, 34567890 );
insert into empleados( dni, nombre, apellidos, domicilio, poblacion, codigoPostal, fechaAlta,
complemento, categoria, jefe )
values ( 78901234, 'Rajoy', 'Gallego Gallego', 'c/ Compostela, 23', 'Sevilla', 41092,
to_date('1/5/2009','dd/mm/yyyy'), 600, 4, 34567890 );
commit;
end;
execute CargarDatos;
/* Pruebas sencillas */
/* Listado de categoras */
select id, nombre, salarioBase
from Categorias;
/* Listado de empleados */
select dni, rpad( nombre || ' ' || apellidos, 30 ) as nombre, fechaAlta, complemento
from Empleados;
/* Listado de nminas */
select *
from Nominas;
Pgina 7 de 7