Semana3 Caso2 OK

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014 CASO DE ESTUDIO: NÓMINA EC1: Elemento de comp

Views 73 Downloads 0 File size 399KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

CASO DE ESTUDIO: NÓMINA EC1: Elemento de competencia 1: Usa un lenguaje de alto nivel para resolver problemas básicos de ingeniería de acuerdo a procesos estandarizados. Semana

3

Saber ● ● ●

Ciclo de vida del software. Conceptos y principios para el diseño Tipos de requerimiento s.

Hacer ● ● ● ● ● ●

● Analizar el caso 2 de estudio propuesto. Aplica cada una de las etapas del ciclo de vida del software. Realiza la abstracción del caso y su ● posible solución. Selecciona las instrucciones de control. Determina los tipos de datos necesarios para resolver el caso. Resuelve el caso con variables de entrada, procesos y entrega de datos resultado.

Ser Ordenado cuando analiza el caso. Creativo al aplicar las etapas del ciclo de vida del software.

CE2: Diseña la solución a un problema simple identificando los requerimientos funcionales CE3: Identifica las etapas que se deben seguir para resolver un caso o problema y los distintos elementos que se deben ir produciendo a medida que construye la solución.

1. ENUNCIADO: Para un empleado se tienen los siguientes datos: ● Nombre del empleado. ● Salario básico por hora. ● Horas ordinarias trabajadas. ● Horas extras trabajadas.

1

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

Elabore un algoritmo que calcule e imprima: ● Nombre del empleado. ● Salario neto a pagar. ● Valor de la retención en la fuente. Para calcular el salario neto a pagar tenga en cuenta que primero deberá hacer algunos cálculos: (1) El primero de ellos es el valor a pagar por concepto de horas ordinarias, esto es sencillamente la operación entre el salario básico por hora multiplicado por las horas ordinarias trabajadas. (2) El segundo cálculo es el concepto a pagar por las horas extras, se calcula a partir del salario básico por hora pero teniendo en cuenta que el empleado que realice horas extras se le cancelarán a un 40% más del salario básico por hora. (3) Por último, debe calcular La retención en la fuente, para esto tenga en cuenta que este impuesto se aplica al monto pagado por concepto de: horas ordinarias trabajadas por el valor de la hora, más el valor total liquidado por horas extras -esto es, horas ordinarias trabajadas, por el incremento de las horas, por la cantidad de horas extras-, (la retención es el cálculo del 10% sobre la suma de estos dos términos). Finalmente el salario neto a pagar sería, el valor a pagar por concepto de horas ordinarias más el concepto a pagar por las horas extras menos la retención en la fuente. Contexto del caso: En una empresa, la nómina es la suma de todos los registros financieros de los sueldos de un empleado, los salarios, las bonificaciones y deducciones. En la contabilidad, la nómina se refiere a la cantidad pagada a los empleados por los servicios que prestó durante un cierto período de tiempo. Nómina juega un papel importante en una sociedad por varias razones. Desde un punto de vista contable, nómina es crucial porque los impuestos sobre la nómina y la nómina afectan considerablemente el ingreso neto de la mayoría de las empresas y están sujetos a las leyes y reglamentos. La misión principal del departamento de nómina es asegurar que a todos los empleados se les pague puntualmente y en forma con las retenciones y deducciones correctas, y para asegurar que las retenciones y deducciones son remitidas en tiempo y forma. Esto incluye el pago de sueldos, retenciones de impuestos y deducciones de un cheque de pago, como es repetido esto incluye pago de sueldo puntual. 2

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

2. ESTRUCTURA DE DATOS: Para dar solución a este caso, debemos analizar los datos a utilizar, es conveniente seleccionar los datos en (datos de entrada y datos de salida): Datos de entrada: ● Nombre del empleado. ● Salario básico por hora. ● Horas ordinarias trabajadas. ● Horas extras trabajadas. Se consideran datos de entrada porque es información necesaria para realizar los procedimientos que me permiten entregar la solución esperada o los datos de salida. Para poder manipular estos datos en un Algoritmo o en un Programa de computador, es necesario definir las variables en donde se almacenarán los datos.

Procedimiento para definir variables: 1) Tipo de Dato (numérico o alfanumérico). 2) Defina los nombres de cada una de las variables (tenga en cuenta las normas para nombrar variables). Normas para nombres de variables ● No espacios en blanco ● No caracteres extraños (* + ! = ? ¡ ? ~ ^ { }) ● Use nombres que se relacionen con el dato que almacena ● Puede utilizar letras y números Dato de entrada Nombre del empleado Salario básico por hora Horas ordinarias trabajadas Horas extras trabajadas

Tipo de dato Alfanumérico Numérico Numérico Numérico

Nombre variable Nombre SalarioBasicoHora HorasOrdinarias HorasExtras

Datos de salida: ● Salario neto a pagar. ● Valor de la retención en la fuente. Se consideran datos de salida porque se determinan a partir de los datos de entrada y son resultados de procedimientos y operaciones. Para poder manipular estos datos también es necesario definir las variables en donde se almacenen. Dato de entrada Salario neto a pagar Retención en la fuente

Tipo de dato Numérico Numérico

Nombre variable SalarioNetoPagar RetencionFuente

3

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

3. REQUERIMIENTOS FUNCIONALES: DATOS DE SALIDA: ● ●

RF1: El programa deberá calcular y entregar como resultado la retención en la fuente de un empleado. RF2: El programa deberá calcular y entregar como resultado el salario neto a pagar de un empleado.

Los datos de salida: print "La retención en la fuente es",ReteFuente print "El salario neto a pagar es",NetoPagar

4. REQUERIMIENTOSINSTRUCCIONALES: A continuación damos solución al problema teniendo en cuenta las etapas necesarias para el Ciclo de vida de Software (Ver Recursos semana 2).

Etapas A. Análisis: En esta etapa se debe comprender de forma detallada cual es la problemática a resolver, comprobando el dominio o contexto en el cual se encuentra dicho problema. Al realizar la síntesis de las estructuras de datos y los requerimientos funcionales, se está obteniendo la información necesaria y suficiente para afrontar su respectiva solución. B. Diseño: Después de obtener la información necesaria para solucionar la problemática a resolver, se debe especificar las estrategias para dar una solución eficiente.

A continuación se encuentran el conjunto de actividades para dar solución a las problemática planteada. # Un mensaje al usuario del programa print "Hola, ¿como te llamas?" # El dato que el usuario teclea, se almacenará en la variable Nombre Nombre = raw_input() # Un mensaje cordial print "Hola ",Nombre," gusto saludarte"

4

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

# Se capturan los datos numéricos (float reales, int enteros) con mensaje SalarioBasicoHora = float(input("Digite el salario básico por hora:")) HorasOrdinarias = float(input("Digite horas ordinarias trabajadas:")) HorasExtras = float(input("Digite horas extras trabajadas:"))

Después de capturar los datos de entrada y tenerlos almacenados en sus respectivas variables se procederá a las operaciones teniendo en cuenta el enunciado: “El valor de las horas extras se calcula a partir del salario básico por hora, el empleado que realice horas extras se le cancelará un 40% más del salario básico por hora.” Esto quiere decir que se pagará por una hora extra un cuarenta por ciento más que la hora ordinaria: SalarioBasicoHora + (SalarioBasicoHora * 0.4) = SalarioBasicoHora * (1 + 0.4)

Es lo mismo que: SalarioBasicoHora * 1.4

Finalmente el salario neto a pagar: lo que el empleado gana por sus horas ordinarias (SalarioBasicoHora * HorasOrdinarias) más lo que se gana por horas extras (SalarioBasicoHora * 1.4 * HorasExtras) menos la retención en la fuente: “La retención en la fuente se aplica a las horas extras trabajadas, (son el 10% de este concepto).” ReteFuente = (SalarioBasicoHora * HorasOrdinarias + SalarioBasicoHora * 1.4 * HorasExtras) * 0.1

(El concepto de retención en la fuente es el simple cobro anticipado de un impuesto, que bien puede ser el impuesto de renta, a las ventas o de industria y comercio) NetoPagar = (SalarioBasicoHora*HorasOrdinarias) + (SalarioBasicoHora*1.4*HorasExtras) - ReteFuente

C. Implementación: En esta etapa se procede a desarrollar la solución mediante un programa utilizando la herramienta computacional determinada.

5

Facultad de Ingeniería Programa de Ingeniería de Sistemas Algoritmos 2014

Código fuente (Nomina.py) def nomina(): print "Hola, ¿como te llamas?" Nombre = raw_input() print "Hola ",Nombre," gusto saludarte" SalarioBasicoHora = float(input("Digite salario basico por hora:")) HorasOrdinarias = float(input("Digite horas ordinarias trabajadas:")) HorasExtras = float(input("Digite horas extras trabajadas:")) ReteFuente = (SalarioBasicoHora*HorasOrdinarias+SalarioBasicoHora*1.4*HorasExtras)*0.1 NetoPagar = (SalarioBasicoHora*HorasOrdinarias)+(SalarioBasicoHora*1.4*HorasExtras) NetoPagar = NetoPagar - ReteFuente

print "La retencion es",ReteFuente print "El neto a pagar es",NetoPagar nomina()

D. Pruebas: Después de codificar las actividades y/o procesos en la la herramienta computacional seleccionada, es necesario realizar la debidas pruebas que garanticen el correcto funcionamiento del programa construido bajo un conjunto de situaciones posibles a las que se pueda enfrentar. Casos de prueba (Entrada y salida) Nombre

SalarioBasicoHora

HorasOrdinarias

HorasExtras

RetencionFuente

SalarioNetoPagar

Juan

75.000

160

60

1.830.000

16.470.000

Maria

46.800

80

45

669.240

6.023.160

Jose

36.500

150

75

383.250

8.376.750

Pedro

25.600

70

35

304.640

2.741.760

5. ENTREGABLES: ●

Código fuente (Nomina.py)

● Análisis del Ciclo de vida de Software. Este análisis lo puede realizar dentro del mismo código haciendo uso del carácter (#), utilizado para hacer los respectivos comentarios. 6