You are on page 1of 78

CAPÍTULO IV

ANÁLISIS Y RESULTADOS DE LA INVESTIGACIÓN

4.1 ARTEFACTOS DEL SOFTWARE APLICANDO EL PROCESO XP


4.1.1 FASE DE EXPLORACIÓN
Según el procedimiento desarrollado en las tablas 3.2 a 3.4 del capítulo III,
para el proceso XP, descrito en el capítulo 2, título 2.2, párrafo C, para la fase I;
exploración. Obtenemos, las historias de usuario, arquitectura inicial y el plan de alto
nivel.

Nº HISTORIA DE USUARIO DESCRIPCIÓN

El usuario (secretaria de la oficina de CRREAETE),


cumpliendo la decisión del responsable de la oficina
1 Registrar el expediente técnico
de CRREAETE, podrá registrar los datos relevantes
del expediente técnico después de su aprobación.

El usuario (secretaria de la Gerencia General),


Registrar designación del
cumpliendo la decisión del Gerente General, ingresa
2 responsable del proyecto
a la página el número de SNIP del expediente técnico
y realiza la designación del responsable del proyecto.

El usuario (secretaria de la oficina de Gerencia


General), cumpliendo la decisión del Gerente
3 Registrar designación del General, ingresa a la página el número de SNIP del
supervisor expediente técnico y realiza la designación del
supervisor del proyecto.

El usuario (responsable del proyecto), podrá registrar


4 datos esenciales del proyecto, así tal como indica en
Registrar el proyecto
el expediente técnico.

El usuario (responsable del proyecto), podrá registrar


Registrar cronograma de
5 el cronograma de ejecución mensual del proyecto de
ejecución.
acuerdo al expediente técnico.

El usuario (responsable del proyecto), podrá registrar


datos de las ocurrencias y de participantes durante la
6
Registrar entrega de terreno entrega de terreno el cual marca fecha de inicio de
todo proyecto.

El usuario (responsable del proyecto), podrá registrar


7
Registrar incidencias durante la las incidencias, así como paralización del proyecto,
ejecución accidentes, etc. Ocurridos durante la ejecución del

46
proyecto.

El usuario (responsable del proyecto), registra el


8 Registrar avance físico avance físico mensual valorizado del Proyecto.

El usuario (responsable del proyecto), elegirá la


9 Registrar avance financiero opción de actualizar avance financiero del sistema
SIAF y verificará el avance financiero de su meta.

El usuario (supervisor del proyecto), podrá elegir la


10 Verificar registro ingresado por el opción verificar datos ingresados mensuales por el
responsable del proyecto, donde el sistema muestra
responsable de proyecto
la pantalla para el visto bueno de su conformidad.

El usuario (responsable del proyecto y persona


Emitir reporte avance físico en natural o jurídica), podrá ingresar a la página web,
11
tiempo real ingresar el Nº de SNIP del proyecto, y visualizar e
imprimir el avance físico del proyecto en tiempo real.

El usuario (responsable de meta y persona natural o


Emitir reporte avance financiero jurídica), podrá ingresar a la página web, ingresar el
12
en tiempo real Nº de SNIP del proyecto, y visualizar e imprimir el
avance financiero del proyecto en tiempo real.

El usuario (secretaria de las oficinas de Gerencia de


Infraestructura, Desarrollo Económico, Recursos
Registrar designación de Naturales y Desarrollo Social), cumpliendo la decisión
13
del Gerente, podrá designar en el sistema los
comisión liquidadora
integrantes (Presidente, Miembro y Asesor) de la
comisión de liquidación del proyecto.

El usuario (presidente de la comisión liquidadora),


podrá verificar datos ingresados por el responsable
14 Verificar proyecto final del proyecto en el sistema e ingresar visto bueno de
su conformidad final.

El usuario (responsable del proyecto), podrá registrar


Registrar entrega al sector o en el sistema los datos relevantes durante la entrega
15
entidad final del proyecto al sector o entidad
correspondiente.

El usuario (responsable de la gerencia), podrá


Mostrar comparativo físico y visualizar en el sistema el comparativo del avance
16
financiero de la ejecución real físico y financiero real con el cronograma ingresado
con el cronograma. por el responsable del proyecto.

El usuario (responsable del proyecto, secretaria de


las gerencias y CRREAETE, presidente de la comisión
17 liquidadora y supervisor del proyecto), podrá
Iniciar sesión
autenticarse para iniciar sesión en el sistema de
información.

El usuario (administrador de sistema), podrá registrar


18
Registrar nuevo usuario al nuevo usuario del sistema de información.

Tabla Nº 4.1: Historias de usuario

47
Cliente Buscador web

Controladores (ejecución de proyectos)

Servidor de aplicaciones

Componente de acceso a datos

Base de datos Motor de Base de Datos

Figura Nº 4.1: Arquitectura técnica inicial

ESFUERZO
Nº HISTORIAS DE USUARIO
(días)

1 Registrar el expediente técnico 2

2 Registrar designación del responsable del proyecto 2

3 Registrar designación del supervisor 2

4 Registrar el proyecto 2

5 Registrar cronograma de ejecución 2

6 Registrar entrega de terreno 1

7 Registrar incidencias durante la ejecución 2

8 Registrar avance físico 2

9 Registrar avance financiero 3

10 Verificar registro ingresado por el responsable de proyecto 1

11 Emitir reporte avance físico en tiempo real 1

48
12 Emitir reporte avance financiero en tiempo real 1

13 Registrar designación de comisión liquidadora 2

14 Verificar proyecto final 2

15 Registrar entrega al sector o entidad 2

16 Mostrar comparativo físico y financiero de la ejecución real con el 2


cronograma.
17 Iniciar sesión 1

18 Registrar nuevo usuario 1

Tabla Nº 4.2: Plan de alto nivel.

4.1.2 FASE DE PLANIFICACIÓN


Aplicamos la técnica para la fase de planificación, presentada en la tabla 3.2 del
capítulo III, según la teoría del capítulo 2, título 2.2, sección C, fase de planificación,
obteniendo los artefactos, historias de usuario en detalle y el plan de versión (primera
iteración).

Historia de Usuario

Número: 1 Usuario: CRREAETE

Nombre historia: Registrar el expediente técnico

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la oficina de CRREAETE), elige la opción “Registrar expediente


técnico”, del menú principal “Proyecto”, donde ingresa datos relevantes del Expediente
Técnico.

Los datos ingresados se almacenan en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.3: Historia usuario. Registrar el expediente técnico.

Historia de Usuario

Número: 1 Usuario: Gerencia

49
Nombre historia: Registrar designación del responsable del proyecto

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la Gerencia General), cumpliendo la decisión del Gerente General,


selecciona la opción “Designación de responsable”, del menú principal “Proyecto”,
donde el sistema muestra el campo para ingresar el código SNIP del expediente técnico y
realizar la asignación de los datos del responsable del proyecto, teniendo como identificador
principal el Nº de DNI del responsable del proyecto.

La asignación del expediente técnico al responsable del proyecto se almacena en la base de


datos del sistema.

Observaciones: Ninguno

Tabla Nº 4.4: Registrar designación del responsable del proyecto

Historia de Usuario

Número: 1 Usuario: Gerencia

Nombre historia: Registrar designación del supervisor

Prioridad en negocio: Alta Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la Gerencia General), cumpliendo la decisión del Gerente General,


selecciona la opción “Designación de supervisor”, del menú principal “Proyecto”, donde
el sistema muestra el campo para ingresar el código SNIP del expediente técnico y realizar la
asignación de los datos del supervisor, teniendo como identificador principal el Nº de DNI del
responsable de la supervisión del proyecto.

El usuario almacena la información ingresada en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.5: Historia usuario. Registrar designación del supervisor.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar el proyecto

50
Prioridad en negocio: Alta Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), selecciona la opción “Registro proyecto”, del menú
principal “Proyecto”, donde el sistema muestra para ingresar el código del SNIP del
proyecto y campos para registro de datos generales del proyecto.

El usuario almacena la información ingresada en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.6: Historia usuario. Registrar el proyecto.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar cronograma de ejecución

Prioridad en negocio: Medio Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Cronograma”, del menú principal
“Proyecto”, donde el sistema muestra para ingresar el código SNIP del proyecto y campos
para el respectivo registro de las fechas programadas mensuales, donde el usuario podrá
ingresar el cronograma de ejecución mensual valorizado en base al expediente técnico.

El usuario, verifica la información y guarda la información ingresada en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.7: Historia usuario. Registrar cronograma de ejecución.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar entrega de terreno

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 1 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

51
Descripción:

El usuario (responsable del proyecto), elige la opción “Registro entrega terreno”, del
menú principal “Proyecto”, el sistema muestra para ingresar el código SNIP del proyecto y
campos para ingresar datos relevantes sobre la entrega de terreno.

Los datos ingresados se almacenan en la base de datos del Sistema de Información.

Observaciones: Ninguno

Tabla Nº 4.8: Historia usuario. Registrar entrega de terreno.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar incidencias durante la ejecución

Prioridad en negocio: Bajo Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Registro de incidencia” del menú
principal de la página “Proyecto”, el sistema le presenta el formulario para ingresar el
código SNIP del proyecto y campos para registrar datos de incidencias ocurridos durante la
ejecución del proyecto.

El usuario ingresa la información necesaria y confirma grabar la información ingresada.

Observaciones: Ninguno

Tabla Nº 4.9: Historia usuario. Registrar incidencias durante la ejecución.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar avance físico

Prioridad en negocio: Alto Riesgo en desarrollo: Alto

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Avance físico”, del menú principal
“Proyecto”, el sistema muestra el formulario para ingresar el código SNIP del proyecto y
campos para registrar valorización del avance físico mensual del proyecto, cuya unidad de

52
medida es en soles.

Los datos ingresados se almacenan en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.10: Historia usuario. Registrar avance físico.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Registrar avance financiero

Prioridad en negocio: Alto Riesgo en desarrollo: Alto

Puntos estimados: 3 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elegirá la opción de “Avance financiero”, del menú
principal “Proyecto”, el sistema muestra el formulario para ingresar el código SNIP y botón
actualizar, para visualizar el avance financiero desde la base de datos del Sistema Integrado
de Administración Financiera (SIAF), y verificar el avance financiero del proyecto.

Ocurre la visualización del avance financiero del proyecto.

Observaciones: Ninguno

Tabla Nº 4.11: Historia usuario. Registrar avance financiero.

Historia de Usuario

Número: 1 Usuario: Supervisor

Nombre historia: Verificar datos ingresados

Prioridad en negocio: Bajo Riesgo en desarrollo: Bajo

Puntos estimados: 1 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (supervisor del proyecto), elige la opción “Verificar avance físico y


financiero”, del menú principal de la página “Gerencia”, el sistema muestra el formulario
para ingresar el código SNIP del proyecto y la pantalla para verificar la información contenida
(avance físico y financiero) e ingresa el visto bueno para dar su conformidad mensual.

El usuario guarda la información de su conformidad.

53
Observaciones: Ninguno

Tabla Nº 4.12: Historia usuario. Verificar datos ingresados.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Emitir reporte de avance físico

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 1 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, persona natural o jurídica), ingresa a la página de


Reportes Proyectos, donde elige el tipo de reporte “Avance físico”, e ingresa el código SNIP
del proyecto, donde el sistema visualiza los datos para emitir el reporte del registro mensual
valorizado.

El sistema visualiza e imprime el reporte solicitado.

Observaciones: Ninguno

Tabla Nº 4.13: Historia usuario. Emitir reporte de avance físico.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

Nombre historia: Emitir reporte avance financiero

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 1 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, persona natural o jurídica), ingresa a la página de


Reportes Proyectos donde elige el tipo de reporte “Avance financiero”, e ingresa el código
SNIP del proyecto, donde el sistema visualiza los datos para emitir el reporte del avance
financiero mensual.

El sistema de información genera el reporte físico sobre el avance financiero del proyecto.

Observaciones: Ninguno

Tabla Nº 4.14: Historia usuario. Emitir Reporte avance financiero.

54
Historia de Usuario

Número: 1 Usuario: Gerencias

Nombre historia: Registrar designación de comisión liquidadora

Prioridad en negocio: Alto Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de las oficinas de Gerencia de Infraestructura, Desarrollo Económico,


Recursos Naturales y Desarrollo Social), elige la opción “Designación comisión
liquidadora” del menú principal de la página “Proyecto”, el sistema muestra el formulario
para ingresar el código SNIP del proyecto y realizar la asignación de los datos de la terna
comisión liquidadora del proyecto, teniendo ellos como su identificador principal el Nº de DNI
para su asignación en el sistema.

Los datos ingresados se almacenan en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.15: Historia usuario. Registrar designación de comisión liquidadora.

Historia de Usuario

Número: 1 Usuario: Presidente de comisión liquidadora

Nombre historia: Verificar proyecto final

Prioridad en negocio: Medio Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (presidente de la comisión liquidadora) podrá elegir la opción “Verificar


proyecto final”, del menú principal “Proyecto”, donde el sistema mostrará la información
final del avance físico y financiero, para dar su visto bueno y dar su conformidad final.

La verificación realizada se almacena en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.16: Historia usuario. Verificar proyecto final.

Historia de Usuario

Número: 1 Usuario: Responsable del proyecto

55
Nombre historia: Registrar entrega al sector o entidad

Prioridad en negocio: Medio Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elija la opción “Registrar entrega a entidad” del
menú principal de la página “Proyecto”, el sistema muestra campo para ingresar el código
SNIP del proyecto, y registrar datos relevantes de la entrega del proyecto al sector o entidad
correspondiente.

El usuario almacena la información ingresada en la base de datos.


Observaciones: Ninguno

Tabla Nº 4.17: Historia usuario. Registrar entrega al sector o entidad.

Historia de Usuario

Número: 1 Usuario: Gerente

Nombre historia: Mostrar comparativo físico y financiero de ejecución real con el


cronograma.

Prioridad en negocio: Medio Riesgo en desarrollo: Medio

Puntos estimados: 2 Iteración asignada: 2

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable de la gerencia), elija la opción “Comparativo físico y financiero”


del menú principal de la página “Comparativo avance físico/financiero”, el sistema
muestra campo para ingresar el código SNIP del proyecto, el sistema realiza la búsqueda y
muestra en la pantalla los datos reales del avance físico, financiero y los datos del
cronograma en forma mensual.

El usuario visualiza el comparativo físico y financiero real ejecutado con el cronograma.


Observaciones: Ninguno

Tabla Nº 4.18: Historia usuario. Mostrar comparativo físico y financiero de ejecución real con el
cronograma.

Historia de Usuario

Usuario: Responsable del proyecto, secretaria, supervisor y comisión


Número: 1
liquidadora

Nombre historia: Iniciar sesión

56
Prioridad en negocio: Medio Riesgo en desarrollo: Bajo

Puntos estimados: 1 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, secretaria, supervisor y comisión liquidadora), ejecuta


el programa; el sistema visualiza “LOGIN” del menú principal de la página del sistema de
información. El usuario ingresa el nombre de usuario y contraseña; elige el botón “Iniciar
sesión”, el sistema muestra la página principal, siempre y cuando los datos ingresados sean
los correctos, en caso contrario el sistema volverá a pedir los datos correctos mostrando los
mensajes de error “Ingrese un nombre de usuario y contraseña correcta”.

Observaciones: Ninguno

Tabla Nº 4.19: Historia usuario. Iniciar sesión.

Historia de Usuario

Número: 1 Usuario: Administrador de sistema

Nombre historia: Registrar nuevo usuario

Prioridad en negocio: Medio Riesgo en desarrollo: Bajo

Puntos estimados: 1 Iteración asignada: 1

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (administrador de sistema), registra datos del nuevo usuario, crea usuario y
contraseña inicial, así mismo los perfiles de quienes participan en forma directa con el
sistema durante la ejecución del proyecto.

El usuario almacena la información ingresada en la base de datos.

Observaciones: Ninguno

Tabla Nº 4.20: Historia usuario. Registrar nuevo usuario.

ESFUERZO
Nº HISTORIA DE USUARIO PRIORIDAD RIESGO ITERACIÓN
(DÍAS)

1 Registrar el expediente técnico Alto Medio 2 1

Registrar designación del


2 Alto Medio 2 1
responsable del proyecto

57
Registrar designación del
3 Alto Medio 2 1
supervisor

4 Registrar el proyecto Alto Medio 2 1

5 Registrar cronograma de ejecución Medio Medio 2 1

6 Registrar entrega de terreno Alto Medio 1 2

Registrar incidencias durante la


7 Bajo Medio 2 2
ejecución

8 Registrar avance físico Alto Alto 2 2

9 Registrar avance financiero Alto Alto 3 2

Verificar registro ingresado por el


10 Bajo Medio 1 2
responsable de proyecto

Emitir reporte avance físico en


11 Alto Medio 1 2
tiempo real
Emitir reporte avance financiero en
12 Alto Medio 1 2
tiempo real

Registrar designación de comisión


13 Alto Medio 2 2
liquidadora

14 Verificar proyecto final Medio Medio 2 2

Registrar entrega al sector o


15 Medio Medio 2 2
entidad

Mostrar comparativo físico y


16 financiero de ejecución real con el Medio Medio 2 2
cronograma.

17 Iniciar sesión Medio Bajo 1 1

18 Registrar nuevo usuario Medio Bajo 1 1

Tabla Nº 4.21: Plan de versión

4.1.3 FASE DE ITERACIÓN


La fase de iteración presentado en el título 2.2 del capítulo II, fase de Iteración,
la técnica referenciada en la tabla 3.4, permite obtener los entregables; arquitectura
técnica, tareas de ingeniería, plan de iteración, casos de prueba de aceptación, GUI,
58
tarjetas CRC, base de datos física, código fuente para clases entidad, pruebas
unitarias, código fuente para tarea de ingeniería, reporte de pruebas unitarias, reporte
de pruebas de integración y de aceptación.

Páginas .xhtml
Vista
(Richfaces, Primefaces, JSF)

Controladores
Controlador
(EJB)

Acceso de datos Clase Entidad

(DAO) (Bean's, POJO's)

Modelo

Persistencia base de
datos (JPA)

Figura Nº 4.2: Arquitectura técnica final. Diagrama de componente

59
Figura Nº 4.3: Arquitectura técnica final. Diagrama de despliegue

60
TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 1

Nombre tarea: Registrar expediente técnico no reformulado.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 12/03/2012 Fecha fin: 13/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la oficina de CRREAETE), elige la opción “Registro expediente


técnico”, del menú principal “Proyecto”, donde ingresa datos esenciales del expediente
técnico (código SNIP, unidad ejecutora y selecciona el tipo del expediente técnico no
reformulado).

Los datos ingresados se almacenan en la base de datos y el Sistema de Información envía un


mensaje de “Registro de expediente exitoso”

Observaciones: Ninguno

Tabla Nº 4.22: Historia usuario. Registrar el expediente técnico.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 2 Número historia de usuario: 1

Nombre tarea: Registrar expediente técnico reformulado.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 12/03/2012 Fecha fin: 13/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la oficina de CRREAETE), elige la opción “Registro expediente


técnico”, del menú principal “Proyecto”, donde ingresa (código SNIP del expediente
técnico, unidad ejecutora y selecciona el tipo del expediente técnico reformulado).

Los datos ingresados de la reformulación se almacenan en la base de datos del Sistema de


Información.

Tabla Nº 4.23: Historia usuario. Registrar el expediente técnico.

TAREA DE INGENIERÍA

61
Número tarea de ingeniería: 1 Número historia de usuario: 2

Nombre tarea: Registrar designación del responsable del proyecto.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 14/03/2012 Fecha fin: 15/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la oficina de Gerencia General), selecciona la opción “Designación de


responsable”, del menú principal “Proyecto”, el sistema muestra el formulario para ingresar
código SNIP, seleccionar cargo (coordinador de proyecto, residente, responsable de meta o
responsable de obra), ingresa Nº de DNI del responsable del proyecto, donde el sistema
muestra datos del responsable del proyecto, para guardar los datos ingresados y el cargo o
ocupación seleccionado.

El usuario almacena la información ingresada en la base de datos y el Sistema de Información


envía un mensaje de “Responsable designado con éxito”

Tabla Nº 4.24: Historia usuario. Registrar designación del responsable del proyecto.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 3

Nombre tarea: Registrar designación del supervisor.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 16/03/2012 Fecha fin: 17/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de la oficina de Gerencia General), selecciona la opción “Designación de


supervisor”, del menú principal “Proyecto”, el sistema muestra en pantalla para ingresar el
código SNIP del proyecto y el campo para ingresar el Nº de DNI del supervisor, el usuario
ingresa el DNI del supervisor, donde el sistema muestra los datos del supervisor y realiza la
designación del supervisor al proyecto de inversión a ejecutarse.

El usuario almacena la información ingresada en la base de datos y el Sistema de Información


envía un mensaje de “Supervisor registrado con éxito”

Tabla Nº 4.25: Historia usuario. Registrar designación del supervisor.

TAREA DE INGENIERÍA

62
Número tarea de ingeniería: 1 Número historia de usuario: 4

Nombre tarea: Registrar el proyecto.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 18/03/2012 Fecha fin: 19/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Proyecto”, del menú principal de la
página “Proyecto”, el sistema muestra la pantalla registro de proyecto para ingresar el código
SNIP del proyecto y el campo para registrar datos (Nombre proyecto, modo de ejecución,
número de meta, nombre de meta, costo directo, gastos generales, tiempo de
ejecución y ubicación del proyecto); si los datos del proyecto ya fue registrado
anteriormente, el sistema muestra el mensaje “código SNIP ya registrado, ingresa datos de
reformulación”, (Modo de ejecución, costo directo, gastos generales y tiempo de
ejecución), los cuales son variables en casos de la reformulación.

El sistema de información guarda la información ingresada en la base de datos y el Sistema de


Información envía un mensaje de “Registro de proyecto exitoso”

Tabla Nº 4.26: Historia usuario. Registrar el proyecto.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 5

Nombre tarea: Realizar registro cronograma de ejecución.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 20/03/2012 Fecha fin: 21/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Cronograma”, del menú principal de la
página “Proyecto”, el sistema muestra la pantalla para ingresar el código SNIP del proyecto, el
usuario ingresa el código SNIP, donde el sistema visualiza datos (tiempo de ejecución y total
presupuesto como la sumatoria de costo directo y gastos generales del proyecto) y campos
para el ingreso de avance físico y financiero actual (mensual) de acuerdo al expediente técnico.
Si el expediente técnico ha sido reformulado, el sistema permite el registro del cronograma de
acuerdo al tiempo y presupuesto ampliado.

El usuario, verifica la información y guarda la información ingresada en la base de datos. El


sistema confirma información grabada satisfactoriamente

Tabla Nº 4.27: Historia usuario. Registrar cronograma de ejecución.

63
TAREA DE INGENIERÍA

Número tarea de ingeniería: 2 Número historia de usuario: 5

Nombre tarea: Realizar impresión cronograma de ejecución.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 20/03/2012 Fecha fin: 21/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, persona natural o jurídica), ingresa a la página reportes
del software web para brindar información operativa sobre los proyectos en ejecución del GRA,
selecciona el tipo de reporte “Cronograma avance físico y financiero”, e ingresa el código
SNIP, para generar el reporte solicitado.

El sistema de información visualiza e imprime el reporte del cronograma del proyecto de


acuerdo a la solicitud.

Tabla Nº 4.28: Historia usuario. Registrar cronograma de ejecución.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 6

Nombre tarea: Registrar entrega de terreno.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 22/03/2012 Fecha fin: 22/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), selecciona la opción “Registro entrega terreno” del
menú principal “Proyecto”, el sistema muestra en la pantalla para ingresar el código SNIP del
proyecto, Nº DNI y cargo del responsable quién hace la entrega de terreno; así mismo, el
usuario selecciona la fecha el cual marca el inicio de todo proyecto.

El usuario, verifica la información y guarda la información ingresada en la base de datos y el


Sistema de Información envía un mensaje de “Entrega de terreno realizado con éxito”

Tabla Nº 4.29: Historia usuario. Registrar entrega de terreno.

TAREA DE INGENIERÍA

64
Número tarea de ingeniería: 1 Número historia de usuario: 7

Nombre tarea: Registrar incidencias durante la ejecución.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 23/03/2012 Fecha fin: 24/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Registro de incidencia” del menú
principal de la página “Proyecto”, el sistema presenta el formulario para ingresar el código
SNIP del proyecto y campos para registrar los datos (nombre, causa, efecto, consecuencia
y fecha incidencia).

El usuario ingresa la información y confirma grabar la información ingresada y el Sistema de


Información envía un mensaje de “Incidencia registrada con éxito”

Tabla Nº 4.30: Historia usuario. Registrar incidencias durante la ejecución.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 8

Nombre tarea: Registrar avance físico.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 25/03/2012 Fecha fin: 26/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elige la opción “Avance físico”, del menú principal
“Proyecto”, el sistema muestra datos del tiempo de ejecución y el total presupuesto
formulario; así mismo, para ingresar el código SNIP del proyecto y el campo para registrar el
avance físico (Avance físico mensual actual valorizado) del proyecto cuya unidad de medida es
en soles.

Los datos ingresados se almacenan en la base de datos.

Tabla Nº 4.31: Historia usuario. Registrar avance físico.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 9

65
Nombre tarea: Registrar avance financiero.

Tipo de tarea : Desarrollo Puntos estimados: 3

Fecha inicio: 27/03/2012 Fecha fin: 29/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elegirá la opción de “Avance financiero” del menú
principal “Proyecto”, el sistema muestra el campo para ingresar el código SNIP del proyecto, el
usuario ingresa el código SNIP, el sistema visualiza datos del tiempo de ejecución y el total
presupuesto; así mismo, el sistema muestra el botón para actualizar y visualizar en la pantalla
el avance financiero mensual, a partir de la data registrada en el Sistema Integrado de
Administración Financiera.

Ocurre la actualización de la base de datos del sistema.

Tabla Nº 4.32: Historia usuario. Registrar avance financiero.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 10

Nombre tarea: Verificar avance físico ingresado por el responsable del proyecto.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 30/03/2012 Fecha fin: 30/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (supervisor del proyecto), elige la opción “Verificar avance físico”, del menú
principal de la página “Gerencia”, el sistema muestra en la pantalla para ingresar el código
SNIP del proyecto, el usuario ingresa el código SNIP, donde el sistema muestra el tiempo de
ejecución, total presupuesto del proyecto y el avance físico mensual valorizado para su
conformidad mensual del supervisor.

El usuario guarda la información de su conformidad.

Tabla Nº 4.33: Historia usuario. Verificar datos ingresados.

TAREA DE INGENIERÍA

Número tarea de ingeniería: Número historia de usuario: 10

Nombre tarea: Verificar avance financiero ingresado por el responsable del proyecto.

66
Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 30/03/2012 Fecha fin: 30/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (supervisor del proyecto), elige la opción “Verificar avance financiero”, del menú
principal de la página “Gerencia”, el sistema muestra en la pantalla para ingresar el código
SNIP del proyecto, el usuario ingresa el código SNIP, donde el sistema muestra el tiempo de
ejecución, total presupuesto del proyecto y el avance financiero mensual para su conformidad
del supervisor.

El usuario guarda la información de su conformidad.

Tabla Nº 4.34: Historia usuario. Verificar datos ingresados.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 11

Nombre tarea: Emitir reporte de avance físico.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 31/03/2012 Fecha fin: 31/03/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, persona natural o jurídica), ingresa a la página Reportes
Proyectos, selecciona el tipo de reporte “Avance físico” e ingresa el código SNIP del proyecto
y el sistema permite generar reporte e imprime el avance físico mensual valorizado en tiempo
real.

El sistema de información genera el reporte físico sobre el avance físico del proyecto.

Tabla Nº 4.35: Historia usuario. Emitir reporte de avance físico.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 12

Nombre tarea: Emitir Reporte avance financiero.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 01/04/2012 Fecha fin: 01/04/2012

67
Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, persona natural o jurídica), ingresa a la página Reportes
Proyectos y selecciona tipo reporte “Avance financiero” e ingresa el código SNIP del
proyecto, donde el sistema permite generar reporte en tiempo real sobre el avance financiero
del proyecto.

El sistema de información genera un reporte físico sobre el avance financiero del proyecto de
inversión.
Tabla Nº 4.36: Historia usuario. Emitir reporte avance financiero.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 13

Nombre tarea: Registrar designación comisión liquidadora.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 02/04/2012 Fecha fin: 03/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (secretaria de Gerencia de Infraestructura, Desarrollo Económico, Recursos Naturales


y Desarrollo Social), elige la opción “Designar Comisión Liquidadora” del menú principal de
la página “Proyecto”, el usuario ingresa el código SNIP del proyecto y asigna el identificador
número de DNI del (Presidente, Miembro y Asesor) de la Comisión de Liquidación del Proyecto.
El asesor de la comisión de liquidación está representado por el supervisor o responsable del
proyecto.

Los datos asignados se almacenan en la base de datos.

Tabla Nº 4.37: Historia usuario. Registrar designación de comisión liquidadora.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 14

Nombre tarea: Verificar avance físico final.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 04/04/2012 Fecha fin: 05/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

68
El usuario (Presidente de la comisión liquidadora), podrá elegir la opción “verificar avance
físico final” del menú principal de la página, donde el sistema permite ingresar el código SNIP
del proyecto, para mostrar datos registrados del avance físico (mensuales) por el responsable
del proyecto, para su verificación y dar el visto bueno de su conformidad final.

Los datos ingresados se almacenan en la base de datos.

Tabla Nº 4.38: Historia usuario. Verificar proyecto final.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 14

Nombre tarea: Verificar avance financiero final.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 04/04/2012 Fecha fin: 05/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (Presidente de la comisión liquidadora), podrá elegir la opción “verificar avance


financiero final” del menú principal de la página, donde el sistema permite ingresar el código
SNIP del proyecto, para mostrar datos registrados del avance financiero (mensuales) por el
responsable del proyecto, para su verificación y dar el visto bueno de su conformidad final.

Los datos ingresados se almacenan en la base de datos.

Tabla Nº 4.39: Historia usuario. Verificar proyecto final.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 15

Nombre tarea: Registrar entrega al sector o entidad.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 06/04/2012 Fecha fin: 07/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto), elije la opción “Registrar entrega a entidad” del menú
principal de la página “Proyecto”, el sistema muestra campo para el ingreso del código SNIP
del proyecto, el usuario ingresa, donde el sistema presenta los campos para registrar datos
relevantes (nombre de la entidad quien hace la entrega el proyecto, DNI del
responsable de la entidad quién hace la entrega del proyecto, cargo del responsable
de la entidad quién hace la entrega del proyecto, nombre del sector quien recibe el
69
proyecto, DNI del responsable del sector quién recibe el proyecto, cargo del
responsable del sector quién recibe el proyecto y fecha de la entrega del proyecto).

El usuario almacena la información ingresada en la base de datos y el Sistema de Información


envía un mensaje de “Entrega al sector realizada con éxito”

Tabla Nº 4.40: Historia usuario. Registrar entrega al sector o entidad.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 16

Nombre tarea: Comparativo avance físico.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 08/04/2012 Fecha fin: 09/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable de la gerencia), elije la opción “Comparativo físico” del menú


principal de la página “Comparativo avance físico/financiero”, el sistema muestra campo
para ingresar el código SNIP del proyecto, el sistema realiza la búsqueda y muestra en la
pantalla los datos (actual acumulado y porcentaje) reales del avance físico y los datos (actual
acumulado y porcentaje) del cronograma en forma mensual.

El usuario visualiza el comparativo físico real ejecutado con el cronograma.

Tabla Nº 4.41: Historia usuario. Mostrar comparativo físico y financiero de ejecución real con el
cronograma.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 2 Número historia de usuario: 16

Nombre tarea: Comparativo avance financiero.

Tipo de tarea : Desarrollo Puntos estimados: 2

Fecha inicio: 08/04/2012 Fecha fin: 09/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable de la gerencia), elije la opción “Comparativo financiero” del menú


principal de la página “Comparativo avance físico/financiero”, el sistema muestra campo
para ingresar el código SNIP del proyecto, el sistema realiza la búsqueda y muestra en la
pantalla los datos (actual acumulado y porcentaje) reales del avance financiero y los datos

70
(actual acumulado y porcentaje) del cronograma en forma mensual.

El usuario visualiza el comparativo financiero real ejecutado con el cronograma.

Tabla Nº 4.42: Historia usuario. Mostrar comparativo físico y financiero de ejecución real con el
cronograma.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 17

Nombre tarea: Iniciar sesión.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 10/04/2012 Fecha fin: 10/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (responsable del proyecto, supervisor del proyecto, responsables y/o secretaria de
Gerencias, presidente de la comisión liquidadora y CRREAETE), ingresa al sistema, el sistema
muestra la pagina “LOGIN”. El usuario ingresa el nombre de usuario y contraseña; selecciona
el botón “Iniciar sesión”, el sistema permite el acceso al perfil indicado, siempre y cuando
los datos ingresados sean los correctos, en caso contrario el sistema volverá a pedir los datos
correctos mostrando los mensajes de error “Ingrese un nombre de usuario y contraseña
correcta”.

Tabla Nº 4.43: Historia usuario. Iniciar sesión.

TAREA DE INGENIERÍA

Número tarea de ingeniería: 1 Número historia de usuario: 18

Nombre tarea: Registrar nuevo usuario.

Tipo de tarea : Desarrollo Puntos estimados: 1

Fecha inicio: 11/04/2012 Fecha fin: 11/04/2012

Programador responsable: Emerson Neliño QUISPE HUAMÁN

Descripción:

El usuario (administrador de sistema), realiza registro de persona (DNI, nombres, apellido


paterno y apellido materno), relacionar ocupación (ocupación y estado laboral) y crear usuario
(nombre usuario, contraseña y perfil) del nuevo usuario quien participa en las actividades
durante la ejecución del proyecto.

El usuario almacena la información ingresada en la base de datos y el Sistema de Información

71
envía un mensaje de “Persona registrada con éxito”

Tabla Nº 4.44: Historia usuario. Registrar nuevo usuario.

PLAN DE ITERACIÓN (Primera)

Nº HISTORIA DE USUARIO TAREAS DE INGENIERÍA

Registrar expediente técnico no reformulado.


1 Registrar el expediente técnico
Registrar expediente técnico reformulado.

Registrar designación del responsable del Registrar designación del responsable del
2
proyecto proyecto.

3 Registrar designación del supervisor Registrar designación del supervisor.

4 Registrar el proyecto Registrar el proyecto

Realizar registro cronograma de ejecución.


5 Registrar cronograma de ejecución
Realizar impresión registro cronograma de
ejecución

17 Iniciar sesión. Iniciar sesión.

18 Registrar nuevo usuario Registrar nuevo usuario.

Tabla Nº 4.45: Plan de iteración (Primera)

PLAN DE ITERACIÓN (Segunda)

Nº HISTORIA DE USUARIO TAREAS DE INGENIERÍA

6 Registrar entrega de terreno Registrar entrega de terreno.

7 Registrar incidencias durante la ejecución Registrar incidencias durante la ejecución.

8 Registrar avance físico Registrar avance físico.

9 Registrar avance financiero Registrar avance financiero.

Verificar avance físico mensual.


Verificar registro ingresado por el
10
responsable de proyecto
Verificar avance financiero mensual.

11 Emitir reporte avance físico en tiempo real Emitir reporte de avance físico.

72
Emitir reporte avance financiero en tiempo
12 Emitir reporte avance financiero.
real

13 Registrar designación comisión liquidadora Designar comisión liquidadora.

Verificar avance físico final.


14 Verificar proyecto final
Verificar avance financiero final.

15 Registrar la entrega al sector o entidad Registrar entrega a la entidad.

Comparativo avance físico.


Mostrar comparativo físico y financiero de
16
ejecución real con el cronograma
Comparativo avance financiero.

Tabla Nº 4.46: Plan de iteración (Segunda)

TAREAS DE
Nº FECHA INICIO FECHA FIN PROGRAMADOR
INGENIERÍA

1 12/03/2012 13/03/2012 Emerson Neliño QUISPE HUAMÁN


1
2 12/03/2012 13/03/2012 Emerson Neliño QUISPE HUAMÁN

2 1 14/03/2012 15/03/2012 Emerson Neliño QUISPE HUAMÁN

3 1 16/03/2012 17/03/2012 Emerson Neliño QUISPE HUAMÁN

4 1 18/03/2012 19/03/2012 Emerson Neliño QUISPE HUAMÁN

1 20/03/2012 21/03/2012 Emerson Neliño QUISPE HUAMÁN


5
2 20/03/2012 21/03/2012 Emerson Neliño QUISPE HUAMÁN

6 1 22/03/2012 22/03/2012 Emerson Neliño QUISPE HUAMÁN

7 1 23/03/2012 24/03/2012 Emerson Neliño QUISPE HUAMÁN

8 1 25/03/2012 26/03/2012 Emerson Neliño QUISPE HUAMÁN

9 1 27/03/2012 29/03/2012 Emerson Neliño QUISPE HUAMÁN

1 30/03/2012 30/03/2012 Emerson Neliño QUISPE HUAMÁN


10
2 30/03/2012 30/03/2012 Emerson Neliño QUISPE HUAMÁN

11 1 31/03/2012 31/03/2012 Emerson Neliño QUISPE HUAMÁN

12 1 01/04/2012 01/04/2012 Emerson Neliño QUISPE HUAMÁN

13 1 02/04/2012 03/04/2012 Emerson Neliño QUISPE HUAMÁN

14 1 04/04/2012 05/04/2012 Emerson Neliño QUISPE HUAMÁN

73
2 04/04/2012 05/04/2012 Emerson Neliño QUISPE HUAMÁN

15 1 06/04/2012 07/04/2012 Emerson Neliño QUISPE HUAMÁN

1 08/04/2012 09/04/2012 Emerson Neliño QUISPE HUAMÁN


16
2 08/04/2012 09/04/2012 Emerson Neliño QUISPE HUAMÁN

17 1 10/04/2012 10/04/2012 Emerson Neliño QUISPE HUAMÁN

18 1 11/04/2012 11/04/2012 Emerson Neliño QUISPE HUAMÁN

Tabla Nº 4.47: Plan de iteración clasificados en fechas de desarrollo

Nº Nº
REQUISITO CASO DE PRUEBA (C.P.)
H.U. C.P.

1 1. El usuario puede registrar el 1 El sistema valida los atributos en el


expediente técnico no formulario del registro del expediente
reformulado técnico no reformulado

2. El usuario puede registrar el 2 El sistema valida los atributos en el


expediente técnico formulario del registro del expediente
reformulado técnico reformulado

10 1. El usuario puede verificar el 1 El sistema muestra los datos


avance físico ingresado por ingresados sobre el avance físico
el responsable del proyecto (actual, acumulado y porcentaje)
mensual valorizado en soles, para su
conformidad.

2. El usuario puede verificar el 2 El sistema muestra los datos


avance financiero ingresado ingresados sobre el avance financiero
por el responsable del (actual, acumulado y porcentaje)
proyecto mensual en soles, para su
conformidad.

16 El sistema muestra el comparativo de


los datos del avance físico real y del
1. El usuario puede visualizar el
comparativo físico real cronograma, el comparativo se
1
visualiza también en forma gráfica
ejecutado con el cronograma
avance físico real vs avance físico
registrado.
cronogramado.

El sistema muestra el comparativo de


2. El usuario puede visualizar el los datos del avance financiero real
comparativo financiero real 2 ejecutado y del cronograma
ejecutado con el cronograma ingresado por el responsable del
previsto. proyecto.

17 1. El sistema debe ser capaz de 1 El sistema debe verificar el usuario


iniciar una sesión. (login) y contraseña (password)
deben ser correcto y permitir el
acceso al usuario.

Tabla Nº 4.48: Casos de prueba de aceptación


74
INTERFAZ DE USUARIO Y CODIFICACIÓN

En el diseño de los interfaces se consideró estándares de usabilidad, según los


objetivos de la tesis no considera su evaluación; los factores para estándares utilizados
son: botones, títulos de páginas y menús, fuentes y colores, tamaños de fuentes, etc.,
que permiten tener interfaces amigables y, fáciles de usar.

Figura Nº 4.4: Interfaz de acceso al sistema

Figura Nº 4.5: Interfaz registro de persona

75
Figura Nº 4.6: Interfaz crear usuario

Figura Nº 4.7: Interfaz registro del expediente técnico

76
Figura Nº 4.8: Interfaz designación del Responsable del proyecto

Figura Nº 4.9: Interfaz designación del Supervisor del proyecto

77
Figura Nº 4.10: Interfaz Registrar Proyecto

Figura Nº 4.11: Interfaz Registrar Entrega de Terreno

78
Figura Nº 4.12: Interfaz Registrar Incidencias Durante la Ejecución

Figura Nº 4.13: Interfaz Registrar Cronograma

79
Figura Nº 4.14: Interfaz Registrar Avance Físico

Figura Nº 4.15: Interfaz Registrar Avance Financiero

80
Figura Nº 4.16: Interfaz Verificar Avance Físico

Figura Nº 4.17: Interfaz Verificar Avance Financiero

81
Figura Nº 4.18: Interfaz Comparativo Avance Financiero

Figura Nº 4.19: Interfaz Comparativo Avance Físico

82
Figura Nº 4.20: Interfaz Comparativo Gráfico Avance Físico

Figura Nº 4.21: Interfaz Registrar Comisión Liquidadora

83
Figura Nº 4.22: Interfaz Registrar Entrega a la Entidad y Sector

Figura Nº 4.23: Reporte avance físico

Figura Nº 4.24: Reporte avance físico

84
TARJETAS CLASE RESPONSABILIDAD Y COLABORACIÓN (CRC)

Para un diseño simple, se procede a definir tarjetas CRC, que permitan identificar las
clases, sus responsabilidades y las colaboraciones que realiza para una historia de
usuario y las tareas correspondientes, según se desarrolla en el capítulo II, sección
2.2.

CLASE: ExpTecnico

Colaboradores:

ExpTecnico

CRREAETE

Responsabilidades: Proyecto

Registrar expediente técnico no reformulado Atributos:

Registrar expediente técnico reformulado IdExpTecnico

IdCRREAETE

NumeroExpediente

UnidadEjecutora

TipoExpTecnico

Tabla Nº 4.49: Clase ExpTecnico.

CLASE: Gerencia

Colaboradores:

Gerencia
Responsabilidades:
ComisionLiquidadora
Designar comisión liquidadora (Presidente, Miembro y
Persona
Asesor)
Atributos:
Designar Responsable del Proyecto y Supervisor
IdGerencia
Iniciar sesión
CodPers

NombreGerencia

EstadoLaboral

Tabla Nº 4.50: Clase Gerencia.

85
CLASE: RespProyecto

Colaboradores:

RespProyecto

ComisionLiquidadora

Responsabilidades: Residente

Registrar proyecto RespMeta

Registrar cronograma de ejecución CoordProyecto

Registrar entrega de terreno RespObra

Registrar incidencias durante la ejecución Proyecto

Registrar avance físico Atributos:

Registrar avance financiero IdRespPropyecto

Registrar entrega al sector o entidad IdRespObra

Iniciar sesión IdResidente

IdCoordProyecto

IdRespMeta

CargoRespProyecto

Tabla Nº 4.51: Clase RespProyecto.

CLASE: Residente

Responsabilidades:
Colaboradores:
Registrar proyecto
Residente
Registrar cronograma de ejecución
RespProyecto
Registrar entrega de terreno
Persona
Registrar incidencias durante la ejecución
Atributos:
Registrar avance físico
IdResidente
Registrar avance financiero
CodPers
Registrar entrega al sector o entidad
EstadoLaboral
Iniciar sesión

Tabla Nº 4.52: Clase Residente.

86
CLASE: RespMeta

Responsabilidades:
Colaboradores:
Registrar proyecto
RespMeta
Registrar cronograma de ejecución
RespProyecto
Registrar entrega de terreno
Persona
Registrar incidencias durante la ejecución
Atributos:
Registrar avance físico
IdRespMeta
Registrar avance financiero
CodPers
Registrar entrega al sector o entidad
EstadoLaboral
Iniciar sesión

Tabla Nº 4.53: Clase RespMeta.

CLASE: CoordProyecto

Responsabilidades:
Colaboradores:
Registrar proyecto
CoordProyecto
Registrar cronograma de ejecución
RespProyecto
Registrar entrega de terreno
Persona
Registrar incidencias durante la ejecución
Atributos:
Registrar avance físico
IdCoordProyecto
Registrar avance financiero
CodPers
Registrar entrega al sector o entidad
EstadoLaboral
Iniciar sesión

Tabla Nº 4.54: Clase CoordProyecto.

CLASE: RespObra

Responsabilidades: Colaboradores:

Registrar proyecto RespObra

Registrar cronograma de ejecución RespProyecto

Registrar entrega de terreno Persona

87
Registrar incidencias durante la ejecución Atributos:

Registrar avance físico IdRespObra

Registrar avance financiero CodPers

Registrar entrega al sector o entidad EstadoLaboral

Iniciar sesión

Tabla Nº 4.55: Clase RespObra.

CLASE: PresidenteComisionLiquidadora (Ing. C.)

Colaboradores:

PresidenteComisionLiquidadora

ComisionLiquidadora
Responsabilidades:
Persona
Verificar proyecto final
Atributos:
Iniciar sesión
IdPresidenteComisionLiquidadora

CodPers

EstadoLaboral

Tabla Nº 4.56: Clase PresidenteComisionLiquidadora (Ing. Civil).

CLASE: MiembroComisionLiquidadora(Contador)

Colaboradores:

IdMiembroComisionLiquidadora

ComisionLiquidadora
Responsabilidades:
Persona
Verificar proyecto final
Atributos:
Iniciar sesión
IdMiembroComisionLiquidadora

CodPers

EstadoLaboral

Tabla Nº 4.57: Clase MiembroComisionLiquidadora.

88
CLASE: Supervisor

Colaboradores:

Supervisor

ComisionLiquidadora
Responsabilidades:
Persona
Verificar proyecto
Atributos:
Iniciar sesión
IdSupervisor

CodPers

EstadoLaboral

Tabla Nº 4.58: Clase Supervisor.

CLASE: Sector

Colaboradores:

Sector

Proyecto

Persona

Atributos:

IdSector

Responsabilidades: NombreSector

Listar entrega proyecto a la entidad pública NombreEntRecibe

IdPersResponsable

CargoRespSector

IdPersRespEntSector

NombreEntEntrega

CargoRespEntSector

FechaEntrega

Tabla Nº 4.59: Clase Sector.

CLASE: Proyecto

89
Colaboradores:

Proyecto

ComisionLiquidadora

Supervisor

EntregaTerreno

RespProyecto

Sector

ExpTecnico

Incidencia

Lugar

Cronograma

AvanceFisico

AvanceFinanciero

Atributos:
Responsabilidades:
IdProyecto
Listar entrega proyecto a la entidad pública
NomProyecto

NumMeta

NomMeta

ModoEjecucion

CostoDirecto

GastosGenerales

TotalPresupuesto

TiempoEjecucion

IdExpTecnico

IdLugar

IdComisionLiquidadora

IdSector

IdEntreTerreno

IdRespProyecto

IdSupervisor

90
FechaInicio

Tabla Nº 4.60: Clase Proyecto.

CLASE: AvanceFisico

Colaboradores:

AvanceFisico

ImagenAvanceFisico

Proyecto

Atributos:

IdAvanceFisico

ValAvanceFisicoActual

ValAvanceFisicoActualPorc
Responsabilidades:
ValAvanceFisicoAcumulado
Actualizar avance físico del proyecto
ValAvanceFisicoAcumuladoPorc

ValSaldoAvanceFísico

ValSaldoAvanceFisicoPorc

PanelImagen

NumDia

IdProyecto

Estado

Revision

Tabla Nº 4.61: Clase AvanceFísico.

CLASE: AvanceFinanciero

Colaboradores:

AvanceFinanciero

Responsabilidades: Proyecto

Actualizar avance financiero del proyecto Atributos:

IdAvanceFinanciero

AvanceFinancieroActual

91
AvanceFinancieroActualPorc

AvanceFinancieroAcumulado

AvanceFinancieroAcumuladoPorc

SaldoAvanceFinanciero

SaldoAvanceFinancieroPorc

NumDia

IdProyecto

FuenteFinancia

Estado

Revision

Tabla Nº 4.62: Clase AvanceFinanciero.

CLASE: Incidencia

Colaboradores:

Incidencia

Proyecto

Atributos:

IdIncidencia
Responsabilidades:
NomIncidencia
Publicar Incidencias ocurridos durante la ejecución
Causa

Efecto

Consecuencia

FechaIncidencia

IdProyecto

Tabla Nº 4.63: Clase Incidencia.

CLASE: Cronograma

Colaboradores:
Responsabilidades:
Cronograma
Publicar cronograma
Proyecto

92
Atributos:

IdCronograma

ValAvanceFisicoActual

ValAvanceFisicoActualPorc

ValAvanceFisicoAcumulado

ValAvanceFisicoAcumuladoPorc

AvanceFinancieroActual

AvanceFinancieroActualPorc

AvanceFinancieroAcumulado

AvanceFinancieroAcumuladoPorc

NumDia

IdProyecto

Estado

FechaInicio

FechaFin

Tabla Nº 4.64: Clase Cronograma.

CLASE: EntregaTerreno

Colaboradores:

EntregaTerreno

Proyecto

Persona
Responsabilidades:
Atributos:
Listar datos entrega de terreno
IdEntregaTerreno

IdPers

CargoRespEntTerreno

Fecha

Tabla Nº 4.65: Clase EntregaTerreno.

CLASE: ComisionLiquidadora

93
Colaboradores:

ComisionLiquidadora

PresidenteComisionLiquidadora

MiembroComisionLiquidadora

RespProyecto

Supervisor

Gerencia
Responsabilidades:
Proyecto
Verificar proyecto final
Atributos:

IdComisionLiquidadora

IdGerencia

IdPresidenteComisionLiquidadora

IdMiembroComisionLiquidadora

IdRespProyecto

IdSupervisor

Tabla Nº 4.66: Clase ComisionLiquidadora.

CLASE: CRREAETE

Colaboradores:

CRREAETE

ExpTecnico

Persona
Responsabilidades:
Atributos:
Registrar expediente técnico
IdCRREAETE

EstadoLaboralRespCRREAETE

CodPers

EstCrreaet

Tabla Nº 4.67: Clase CRREAETE.

CLASE: Lugar

94
Colaboradores:

Lugar

Proyecto

Atributos:

Responsabilidades: IdLugar

Listar ubicación geográfica Codigo_pais

Codigo_departamento

Codigo_provincia

Codigo_distrito

Direccion

Tabla Nº 4.68: Clase Lugar.

CLASE: Persona

Colaboradores:

Persona

PresidenteComisioLiquidadora

MiembroComisionLiquidadora

Gerencia

Supervisor

CRREAETE
Responsabilidades:
RespObra
Iniciar sesión
Sector

Residente

EntregaTerreno

Coordproyecto

RespMeta

Atributos:

IdPers

EstPers

ApellPater

95
ApellMater

Nombre

Tabla Nº 4.69: Clase Persona.

96
Figura Nº 4.25: Esquema físico de la base de datos para ejecución de proyectos GRA

97
Las tablas 4.70 y 4.71 muestran el código fuente de la conexión a la base de datos y
configuración de persistencia del Software Web Para Brindar Información Operativa
Sobre los Proyectos en Ejecución del GRA; las tablas 4.72, 4.73, 4.74, 4.75 y 4.76
muestran el código fuente para las clases entidad, de la historia de usuario “Registrar
cronograma de ejecución” y “Registrar Avance Físico”, para las clases “Cronograma”
y “AvanceFisico”, Método ProyectoDAOimpl (Cronograma y Avance Físico),
AvanceFisicoController y CompatativoFisicoController respectivamente.

<subsystem xmlns="urn:jboss:domain:datasources:1.0">

<datasources>

<datasource jndi-name="java:jboss/datasources/KnetDS" pool-name="KnetPDS"


enabled="true" use-java-context="true">

<connection-
url>jdbc:sqlserver://localhost\kuskan:1433;databaseName=proyecto</connection-url>

<driver>sqlserv</driver>

<pool>

<max-pool-size>30</max-pool-size>

</pool>

<security>

<user-name>sa</user-name>

<password>123456</password>

</security>

</datasource>

<drivers>

<driver name="sqlserv" module="com.microsoft.sqlserver">

<xa-datasource-
class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>

</driver>

</drivers>

</datasources>

</subsystem>

Tabla Nº 4.70: Código fuente. Conexión a la base de datos, configuración XML JBOSS.

98
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="version" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/KnetDS</jta-data-
source>
<class>com.pe.Model.AvanceFinanciero</class>
<class>com.pe.Model.AvanceFisico</class>
<class>com.pe.Model.Crreaete</class>
<class>com.pe.Model.ComisionLiquidadora</class>
<class>com.pe.Model.Contador</class>
<class>com.pe.Model.CoordProyecto</class>
<class>com.pe.Model.Cronograma</class>
<class>com.pe.Model.EntregaTerreno</class>
<class>com.pe.Model.ExpTecnico</class>
<class>com.pe.Model.Gerencia</class>
<class>com.pe.Model.Incidencia</class>
<class>com.pe.Model.IngCivil</class>
<class>com.pe.Model.Lugar</class>
<class>com.pe.Model.Proyecto</class>
<class>com.pe.Model.Residente</class>
<class>com.pe.Model.RespMeta</class>
<class>com.pe.Model.RespObra</class>
<class>com.pe.Model.RespProyecto</class>
<class>com.pe.Model.Sector</class>
<class>com.pe.Model.Supervisor</class>
<class>com.pe.Model.TipoOperacionAdmin</class>
<class>com.pe.Model.Departamento</class>
<class>com.pe.Model.DepartamentoPK</class>
<class>com.pe.Model.Distrito</class>
<class>com.pe.Model.DistritoPK</class>
<class>com.pe.Model.MenuGroup</class>
<class>com.pe.Model.MenuItem</class>
<class>com.pe.Model.MenuItemPK</class>
<class>com.pe.Model.Pais</class>
<class>com.pe.Model.Perfil</class>
<class>com.pe.Model.PermisosAdministrativos</class>
<class>com.pe.Model.PermisosAdministrativosPK</class>
<class>com.pe.Model.Persona</class>
<class>com.pe.Model.Provincia</class>
<class>com.pe.Model.ProvinciaPK</class>
<class>com.pe.Model.Usuario</class>
<properties>
<property name="eclipselink.jdbc.batch-writing"
value="JDBC"/>
</properties>

</persistence-unit>

</persistence>

Tabla Nº 4.71: Código fuente. Configuración de persistencia


99
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package com.pe.Model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
*
* @author Nel
*/
@Entity
@Table(name = "Cronograma")
@NamedQueries({
@NamedQuery(name = "Cronograma.findAll", query = "SELECT c FROM
Cronograma c"),
@NamedQuery(name = "Cronograma.findByIdCronograma", query = "SELECT c
FROM Cronograma c WHERE c.idCronograma = :idCronograma"),
@NamedQuery(name = "Cronograma.findByProyecto", query = "SELECT c FROM
Cronograma c WHERE c.proyecto.idProyecto = :proyecto and c.estado=:estado
order by c.numDia asc"),
@NamedQuery(name = "Cronograma.findByProyectoDesc", query = "SELECT c
FROM Cronograma c WHERE c.proyecto.idProyecto = :proyecto and
c.estado=:estado order by c.numDia desc"),
@NamedQuery(name = "Cronograma.findByNumDia", query = "SELECT c FROM
Cronograma c WHERE c.numDia = :numDia")})
public class Cronograma implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IdCronograma")
private Integer idCronograma;
@Column(name = "ValAvanceFisicoActual")
private BigDecimal valAvanceFisicoActual;
@Column(name = "ValAvanceFisicoActualPorc")
private BigDecimal valAvanceFisicoActualPorc;
@Column(name = "ValAvanceFisicoAcumulado")
private BigDecimal valAvanceFisicoAcumulado;
@Column(name = "ValAvanceFisicoAcumuladoPorc")
100
private BigDecimal valAvanceFisicoAcumuladoPorc;
@Column(name = "AvanceFinancieroActual")
private BigDecimal avanceFinancieroActual;
@Column(name = "AvanceFinancieroActualPorc")
private BigDecimal avanceFinancieroActualPorc;
@Column(name = "AvanceFinancieroAcumulado")
private BigDecimal avanceFinancieroAcumulado;
@Column(name = "AvanceFinancieroAcumuladoPorc")
private BigDecimal avanceFinancieroAcumuladoPorc;
@Column(name = "NumDia")
private Integer numDia;
@Column(name = "FechaInicio")
@Temporal(TemporalType.TIMESTAMP)
private Date fechaInicio;
@Column(name = "FechaFin")
@Temporal(TemporalType.TIMESTAMP)
private Date fechaFin;
@JoinColumn(name = "IdProyecto", referencedColumnName = "IdProyecto")
@ManyToOne
private Proyecto proyecto;

@Column(name = "Estado")
private Integer estado;

public Integer getEstado() {


return estado;
}

public void setEstado(Integer estado) {


this.estado = estado;
}

public Date getFechaInicio() {


return fechaInicio;
}

public void setFechaInicio(Date fechaInicio) {


this.fechaInicio = fechaInicio;
}

public Date getFechaFin() {


return fechaFin;
}

public void setFechaFin(Date fechaFin) {


this.fechaFin = fechaFin;
}

public Cronograma() {
}

public Cronograma(Integer idCronograma) {


this.idCronograma = idCronograma;
}

public Integer getIdCronograma() {


return idCronograma;
101
}

public void setIdCronograma(Integer idCronograma) {


this.idCronograma = idCronograma;
}

public BigDecimal getValAvanceFisicoActual() {


return valAvanceFisicoActual;
}

public void setValAvanceFisicoActual(BigDecimal


valAvanceFisicoActual) {
this.valAvanceFisicoActual = valAvanceFisicoActual;
}

public BigDecimal getValAvanceFisicoAcumulado() {


return valAvanceFisicoAcumulado;
}

public void setValAvanceFisicoAcumulado(BigDecimal


valAvanceFisicoAcumulado) {
this.valAvanceFisicoAcumulado = valAvanceFisicoAcumulado;
}

public BigDecimal getValAvanceFisicoActualPorc() {


return valAvanceFisicoActualPorc;
}

public void setValAvanceFisicoActualPorc(BigDecimal


valAvanceFisicoActualPorc) {
this.valAvanceFisicoActualPorc = valAvanceFisicoActualPorc;
}

public BigDecimal getValAvanceFisicoAcumuladoPorc() {


return valAvanceFisicoAcumuladoPorc;
}

public void setValAvanceFisicoAcumuladoPorc(BigDecimal


valAvanceFisicoAcumuladoPorc) {
this.valAvanceFisicoAcumuladoPorc = valAvanceFisicoAcumuladoPorc;
}

public BigDecimal getAvanceFinancieroActual() {


return avanceFinancieroActual;
}

public void setAvanceFinancieroActual(BigDecimal


avanceFinancieroActual) {
this.avanceFinancieroActual = avanceFinancieroActual;
}

public BigDecimal getAvanceFinancieroActualPorc() {


return avanceFinancieroActualPorc;
}

public void setAvanceFinancieroActualPorc(BigDecimal


avanceFinancieroActualPorc) {
this.avanceFinancieroActualPorc = avanceFinancieroActualPorc;
102
}

public BigDecimal getAvanceFinancieroAcumulado() {


return avanceFinancieroAcumulado;
}

public void setAvanceFinancieroAcumulado(BigDecimal


avanceFinancieroAcumulado) {
this.avanceFinancieroAcumulado = avanceFinancieroAcumulado;
}

public BigDecimal getAvanceFinancieroAcumuladoPorc() {


return avanceFinancieroAcumuladoPorc;
}

public void setAvanceFinancieroAcumuladoPorc(BigDecimal


avanceFinancieroAcumuladoPorc) {
this.avanceFinancieroAcumuladoPorc = avanceFinancieroAcumuladoPorc;
}

public Integer getNumDia() {


return numDia;
}

public void setNumDia(Integer numDia) {


this.numDia = numDia;
}

public Proyecto getProyecto() {


return proyecto;
}

public void setProyecto(Proyecto proyecto) {


this.proyecto = proyecto;
}

@Override
public int hashCode() {
int hash = 0;
hash += (idCronograma != null ? idCronograma.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields
are not set
if (!(object instanceof Cronograma)) {
return false;
}
Cronograma other = (Cronograma) object;
if ((this.idCronograma == null && other.idCronograma != null) ||
(this.idCronograma != null &&
!this.idCronograma.equals(other.idCronograma))) {
return false;
}
return true;
}
103
@Override
public String toString() {
return "com.pe.Model.Cronograma[idCronograma=" + idCronograma +
"]";
}

Tabla Nº 4.72: Código fuente de la clase entidad. Cronograma

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package com.pe.Model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
*
* @author Nel
*/
@Entity
@Table(name = "AvanceFisico")
@NamedQueries({
@NamedQuery(name = "AvanceFisico.findAll", query = "SELECT a FROM
AvanceFisico a"),
@NamedQuery(name = "AvanceFisico.findByIdAvanceFisico", query = "SELECT
a FROM AvanceFisico a WHERE a.idAvanceFisico = :idAvanceFisico"),
@NamedQuery(name = "AvanceFisico.findByProyecto", query = "SELECT a
FROM AvanceFisico a WHERE a.proyecto.idProyecto = :id order by a.numDia
asc"),
@NamedQuery(name = "AvanceFisico.findByNumDia", query = "SELECT a FROM
AvanceFisico a WHERE a.numDia = :numDia")})
public class AvanceFisico implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
104
@Column(name = "IdAvanceFisico")
private Integer idAvanceFisico;
@Column(name = "ValAvanceFisicoActual")
private BigDecimal valAvanceFisicoActual;
@Column(name = "ValAvanceFisicoActualPorc")
private BigDecimal valAvanceFisicoActualPorc;
@Column(name = "ValAvanceFisicoAcumulado")
private BigDecimal valAvanceFisicoAcumulado;
@Column(name = "ValAvanceFisicoAcumuladoPorc")
private BigDecimal valAvanceFisicoAcumuladoPorc;
@Column(name = "ValSaldoAvanceFisico")
private BigDecimal valSaldoAvanceFisico;
@Column(name = "ValSaldoAvanceFisicoPorc")
private BigDecimal valSaldoAvanceFisicoPorc;
@Column(name = "NumDia")
private Integer numDia;
@Column(name = "Estado")
private Integer estado;
@Column(name = "revision")
private Boolean revision;
@JoinColumn(name = "IdProyecto", referencedColumnName =
"IdProyecto")
@ManyToOne
private Proyecto proyecto;

@OneToMany(mappedBy = "avanceFisico")
private List<ImagenAvanceFisico> imagenAvanceFisicoList;

public AvanceFisico() {
}

public AvanceFisico(Integer idAvanceFisico) {


this.idAvanceFisico = idAvanceFisico;
}

public Integer getIdAvanceFisico() {


return idAvanceFisico;
}

public Boolean getRevision() {


return revision;
}

public void setRevision(Boolean revision) {


this.revision = revision;
}

public void setIdAvanceFisico(Integer idAvanceFisico) {


this.idAvanceFisico = idAvanceFisico;
}

public BigDecimal getValAvanceFisicoActual() {


return valAvanceFisicoActual;
}

public void setValAvanceFisicoActual(BigDecimal


valAvanceFisicoActual) {
this.valAvanceFisicoActual = valAvanceFisicoActual;
105
}

public BigDecimal getValAvanceFisicoActualPorc() {


return valAvanceFisicoActualPorc;
}

public void setValAvanceFisicoActualPorc(BigDecimal


valAvanceFisicoActualPorc) {
this.valAvanceFisicoActualPorc = valAvanceFisicoActualPorc;
}

public BigDecimal getValAvanceFisicoAcumulado() {


return valAvanceFisicoAcumulado;
}

public void setValAvanceFisicoAcumulado(BigDecimal


valAvanceFisicoAcumulado) {
this.valAvanceFisicoAcumulado = valAvanceFisicoAcumulado;
}

public BigDecimal getValAvanceFisicoAcumuladoPorc() {


return valAvanceFisicoAcumuladoPorc;
}

public void setValAvanceFisicoAcumuladoPorc(BigDecimal


valAvanceFisicoAcumuladoPorc) {
this.valAvanceFisicoAcumuladoPorc =
valAvanceFisicoAcumuladoPorc;
}

public BigDecimal getValSaldoAvanceFisico() {


return valSaldoAvanceFisico;
}

public void setValSaldoAvanceFisico(BigDecimal


valSaldoAvanceFisico) {
this.valSaldoAvanceFisico = valSaldoAvanceFisico;
}

public BigDecimal getValSaldoAvanceFisicoPorc() {


return valSaldoAvanceFisicoPorc;
}

public void setValSaldoAvanceFisicoPorc(BigDecimal


valSaldoAvanceFisicoPorc) {
this.valSaldoAvanceFisicoPorc = valSaldoAvanceFisicoPorc;
}

public Integer getNumDia() {


return numDia;
}

public void setNumDia(Integer numDia) {


this.numDia = numDia;
}

public Integer getEstado() {


return estado;
106
}

public void setEstado(Integer estado) {


this.estado = estado;
}

public Proyecto getProyecto() {


return proyecto;
}

public void setProyecto(Proyecto proyecto) {


this.proyecto = proyecto;
}

public List<ImagenAvanceFisico> getImagenAvanceFisicoList() {


return imagenAvanceFisicoList;
}

public void setImagenAvanceFisicoList(List<ImagenAvanceFisico>


imagenAvanceFisicoList) {
this.imagenAvanceFisicoList = imagenAvanceFisicoList;
}

@Override
public int hashCode() {
int hash = 0;
hash += (idAvanceFisico != null ? idAvanceFisico.hashCode()
: 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id
fields are not set
if (!(object instanceof AvanceFisico)) {
return false;
}
AvanceFisico other = (AvanceFisico) object;
if ((this.idAvanceFisico == null && other.idAvanceFisico !=
null) || (this.idAvanceFisico != null &&
!this.idAvanceFisico.equals(other.idAvanceFisico))) {
return false;
}
return true;
}

@Override
public String toString() {
return "com.pe.Model.AvanceFisico[idAvanceFisico=" +
idAvanceFisico + "]";
}

Tabla Nº 4.73: Código fuente de la clase entidad. AvanceFisico

107
@Override
public boolean saveCronograma(Cronograma crono, Proyecto proyecto) {
try {

crono.setProyecto(proyecto);
em.persist(crono);

return true;

} catch (Exception e) {
System.out.println("ERROROROR");
e.printStackTrace();
return false;
// TODO: handle exception
}
}

@Override
public boolean saveAvanceFisico(List<AvanceFisico> crono, Proyecto
proyecto) {
try {
for(AvanceFisico cronograma : crono){
cronograma.setProyecto(proyecto);
em.persist(cronograma);
}
return true;

} catch (Exception e) {
System.out.println("ERROROROR");
e.printStackTrace();
return false;
// TODO: handle exception
}
}

Tabla Nº 4.74: Código fuente. Método ProyectoDAOimpl.

package com.pe.Controller;

import java.awt.Image;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.richfaces.event.FileUploadEvent;
import org.richfaces.model.UploadedFile;

import com.pe.Dao.ProyectoDao;
import com.pe.Model.AvanceFinanciero;
import com.pe.Model.AvanceFisico;
import com.pe.Model.Cronograma;
108
import com.pe.Model.ImagenAvanceFisico;
import com.pe.Model.Proyecto;

@ManagedBean(name = "fisicoController")
@SessionScoped
public class AvanceFisicoControler {
@EJB
private ProyectoDao controlProyectodao;

private String codigoSnip = "";


private List<AvanceFisico> listaAvance = new
ArrayList<AvanceFisico>();
private String mensaje = "";
private String dia = "";
private String avanceFisicoActual = "";
private String avanceFisicoAcumulado = "";
private String avanceFinancieroActual = "";
private String avanceFinancieroAcumulado = "";
private String saldo = "";
private boolean opcion = false;
private boolean opcioningreso = true;
private Proyecto proyeto = new Proyecto();
private List<Cronograma> listaCronograma;
private int codigoVer = 0;
private List<ImagenAvanceFisico> listaImagen = new
ArrayList<ImagenAvanceFisico>();

public List<ImagenAvanceFisico> getListaImagen() {


listaImagen = controlProyectodao
.findListaImagenes(codigoVer);
if(listaImagen==null){
listaImagen= new ArrayList<ImagenAvanceFisico>();
}
return listaImagen;
}

public void setListaImagen(List<ImagenAvanceFisico> listaImagen) {


this.listaImagen = listaImagen;
}

public List<Cronograma> getListaCronograma() {


return listaCronograma;
}

public void setListaCronograma(List<Cronograma> listaCronograma) {


this.listaCronograma = listaCronograma;
}

public int getCodigoVer() {


return codigoVer;
}

public void setCodigoVer(int codigoVer) {


this.codigoVer = codigoVer;
}

109
public UploadedFile getItem() {
return item;
}

public void setItem(UploadedFile item) {


this.item = item;
}

public ImagenAvanceFisico getImagenAvance() {


return imagenAvance;
}

public void setImagenAvance(ImagenAvanceFisico imagenAvance) {


this.imagenAvance = imagenAvance;
}

public List<ImagenAvanceFisico> getListaImagenAvanceFisicos() {


return listaImagenAvanceFisicos;
}

public void setListaImagenAvanceFisicos(


List<ImagenAvanceFisico> listaImagenAvanceFisicos) {
this.listaImagenAvanceFisicos = listaImagenAvanceFisicos;
}

public String getCodigoSnip() {


return codigoSnip;
}

public void setCodigoSnip(String codigoSnip) {


this.codigoSnip = codigoSnip;
}

public List<AvanceFisico> getListaAvance() {

return listaAvance;
}

public void setListaAvance(List<AvanceFisico> listaAvance) {


this.listaAvance = listaAvance;
}

public String getMensaje() {


return mensaje;
}

public void setMensaje(String mensaje) {


this.mensaje = mensaje;
}

public String getDia() {


return dia;
}

public void setDia(String dia) {


this.dia = dia;
}

110
public String getAvanceFisicoActual() {
return avanceFisicoActual;
}

public void setAvanceFisicoActual(String avanceFisicoActual) {


this.avanceFisicoActual = avanceFisicoActual;
}

public String getAvanceFisicoAcumulado() {


return avanceFisicoAcumulado;
}

public void setAvanceFisicoAcumulado(String avanceFisicoAcumulado) {


this.avanceFisicoAcumulado = avanceFisicoAcumulado;
}

public String getAvanceFinancieroActual() {


return avanceFinancieroActual;
}

public void setAvanceFinancieroActual(String avanceFinancieroActual)


{
this.avanceFinancieroActual = avanceFinancieroActual;
}

public String getAvanceFinancieroAcumulado() {


return avanceFinancieroAcumulado;
}

public void setAvanceFinancieroAcumulado(String


avanceFinancieroAcumulado) {
this.avanceFinancieroAcumulado = avanceFinancieroAcumulado;
}

public String getSaldo() {


return saldo;
}

public void setSaldo(String saldo) {


this.saldo = saldo;
}

public boolean isOpcion() {


return opcion;
}

public void setOpcion(boolean opcion) {


this.opcion = opcion;
}

public boolean isOpcioningreso() {


return opcioningreso;
}

public void setOpcioningreso(boolean opcioningreso) {


this.opcioningreso = opcioningreso;
}

111
public Proyecto getProyeto() {
return proyeto;
}

public void setProyeto(Proyecto proyeto) {


this.proyeto = proyeto;
}

private UploadedFile item;


private ImagenAvanceFisico imagenAvance = new ImagenAvanceFisico();
private List<ImagenAvanceFisico> listaImagenAvanceFisicos = new
ArrayList<ImagenAvanceFisico>();

public void listener(FileUploadEvent event) throws Exception {


try {
if (listaImagenAvanceFisicos == null) {
listaImagenAvanceFisicos = new
ArrayList<ImagenAvanceFisico>();
}
imagenAvance = new ImagenAvanceFisico();
item = event.getUploadedFile();

imagenAvance.setImagen(item.getData());
imagenAvance.setFecha(new Date());

listaImagenAvanceFisicos.add(imagenAvance);

} catch (Exception a) {
System.out.println("ERORR AL CARGAR LOS FICHEROS");
}

public void buscaProyecto() {

proyeto = controlProyectodao.findProyecto(codigoSnip.trim());
if (proyeto == null) {
mensaje = "Ingrese un código SNIP registrado
anteriormente";
proyeto = new Proyecto();
return;
}
listaAvance = controlProyectodao.findListaAvanceFisico(proyeto
.getIdProyecto());
if (listaAvance == null) {
listaAvance = new ArrayList<AvanceFisico>();
avanceFisicoAcumulado = "0.00";
saldo = proyeto.getPpto().toString();

int h = listaAvance.size();

listaCronograma =
controlProyectodao.findListaCronograma(proyeto
.getIdProyecto(),1);
Cronograma seleccion = null;
System.out.println("Avance2");
112
try {
seleccion = listaCronograma.get(h);
} catch (Exception e) {
mensaje = "Ya registró todos los avances físicos del
proyecto";
return;
}

System.out.println("Avance3");
dia = "" + seleccion.getNumDia();

AvanceFisico fisico = null;


try {
fisico = listaAvance.get(h - 1);
} catch (Exception e) {
avanceFisicoAcumulado = "0.00";
saldo = proyeto.getPpto().toString();
e.printStackTrace();
opcion = true;
opcioningreso = false;
return;
// TODO: handle exception
}
saldo = seleccion.getProyecto().getPpto()

.subtract(fisico.getValAvanceFisicoAcumulado()).toString();
avanceFisicoAcumulado = fisico.getValAvanceFisicoActualPorc()
.toString();
System.out.println("Avance4");
mensaje = "Registre el avance físico";
opcion = true;
opcioningreso = false;
}

public void guarda() {


if (listaAvance == null) {
mensaje = "El avance físico debe tener elementos";
return;
}
if (controlProyectodao.saveAvanceFisico(listaAvance, proyeto))
{
mensaje = "Avance físico registrado con éxito";
limpiaCabecera();
limpiaCronograma();
return;
} else {
mensaje = "Error al registrar avance físico";
return;
}
}

public void limpiaCronograma() {


dia = "";
avanceFisicoActual = "";
avanceFisicoAcumulado = "";
avanceFinancieroActual = "";
avanceFinancieroAcumulado = "";
saldo = "";
113
listaImagenAvanceFisicos = new ArrayList<ImagenAvanceFisico>();
}

public void limpiaCabecera() {


codigoSnip = "";
proyeto = new Proyecto();
listaAvance = new ArrayList<AvanceFisico>();
opcion = false;
opcioningreso = true;

listaAvance = new ArrayList<AvanceFisico>();

dia = "";
avanceFisicoActual = "";
avanceFisicoAcumulado = "";
}

public void aniadeAvance() {

AvanceFisico avance = new AvanceFisico();


avance.setNumDia(Integer.parseInt(dia));
avance.setProyecto(proyeto);
System.out.println("Avance 2");
avance.setValAvanceFisicoActual(new
BigDecimal(avanceFisicoActual));
listaAvance = controlProyectodao.findListaAvanceFisico(proyeto
.getIdProyecto());
if (listaAvance == null)
listaAvance = new ArrayList<AvanceFisico>();
int h = listaAvance.size();
AvanceFisico fisico = null;
try {
fisico = listaAvance.get(h - 1);
} catch (Exception e) {
// TODO: handle exception
fisico = new AvanceFisico();
fisico.setValAvanceFisicoAcumulado(new
BigDecimal("0.00"));
fisico.setValAvanceFisicoAcumuladoPorc(new
BigDecimal("0.00"));
}

System.out.println("Avance 3");

avance.setValAvanceFisicoAcumulado(fisico.getValAvanceFisicoAcumulado
()
.add(avance.getValAvanceFisicoActual()));

BigDecimal actual = new BigDecimal(avanceFisicoActual);


BigDecimal total = new BigDecimal("100.00");
total = total.multiply(actual);
total = total.divide((proyeto.getPpto()), 2);
total = total.setScale(BigDecimal.ROUND_HALF_UP);
avance.setValAvanceFisicoActualPorc(total);
avance.setValAvanceFisicoAcumuladoPorc(total.add(fisico
.getValAvanceFisicoAcumuladoPorc()));

114
avance.setValAvanceFisicoAcumulado(((proyeto.getPpto()).multiply(avan
ce
.getValAvanceFisicoActualPorc())).divide(new
BigDecimal(
"100.00")));

saldo=(proyeto.getPpto().subtract(avance.getValAvanceFisicoAcumulado(
))).toString();

avance.setRevision(false);
avance.setEstado(0);
avance.setValSaldoAvanceFisico(new
BigDecimal(saldo).setScale(2,
BigDecimal.ROUND_HALF_UP));
actual = new BigDecimal(saldo);

total = new BigDecimal("100.00");


total =
total.subtract(avance.getValAvanceFisicoAcumuladoPorc());
avance.setValSaldoAvanceFisicoPorc(total);
listaCronograma =
controlProyectodao.findListaCronograma(proyeto
.getIdProyecto(),1);
if (controlProyectodao.saveAvanceFisico(avance, proyeto,
listaImagenAvanceFisicos)) {
limpiaCabecera();
limpiaCronograma();
mensaje = "Registro de avance exitoso";
return;
} else {
mensaje = "Error al registrar avance físico";
return;
}
}

public void buscaImagenes() {


listaImagen = controlProyectodao
.findListaImagenes(codigoVer);
if(listaImagen==null){
listaImagen= new ArrayList<ImagenAvanceFisico>();
}

public void actualizaRevision(){


for(AvanceFisico avan: listaAvance){
controlProyectodao.editAvanceFisico(avan);
}

mensaje="Registros actualizados";
}

}
Tabla Nº 4.75: Código fuente. AvanceFisicoControler

115
package com.pe.Controller;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;
import org.primefaces.model.chart.LineChartSeries;

import com.pe.Dao.ProyectoDao;
import com.pe.Model.AvanceFisico;
import com.pe.Model.Cronograma;
import com.pe.Model.Proyecto;
import com.pe.Modeltables.ComparacionFisico;

@ManagedBean(name = "comparativoFisico")
@SessionScoped
public class ComparativoFisicoController {
@EJB
private ProyectoDao controlProyectodao;

private String codigoSnip = "";


private List<AvanceFisico> listaAvance = new
ArrayList<AvanceFisico>();
private List<Cronograma> listaCronograma = new
ArrayList<Cronograma>();
private List<ComparacionFisico> listaComparacion = new
ArrayList<ComparacionFisico>();
private Proyecto proyeto = new Proyecto();
private String mensaje = "";
private boolean opcion = false;
private boolean opcioningreso = true;
private CartesianChartModel financiero = new CartesianChartModel();
private String datoVisual = "";

public String getDatoVisual() {


return datoVisual;
}

public void setDatoVisual(String datoVisual) {


this.datoVisual = datoVisual;
}

public CartesianChartModel getFinanciero() {


financiero = new CartesianChartModel();
ChartSeries actual = new ChartSeries();
ChartSeries estimado = new ChartSeries();
actual.setLabel("Actual");
estimado.setLabel("Estimado");
System.out.println("RETORNA VALOR");
// TODO: handle exception
datoVisual = "";

116
try {
actual.set(0, 0);
estimado.set(0, 0);
} catch (Exception e) {
e.printStackTrace();
actual.set(0, 0);
estimado.set(0, 0);
System.out.println("OTRO ERROR");
// TODO: handle exception
}

int h = 3;

for (ComparacionFisico compara : listaComparacion) {


h = h + 3;
datoVisual = "A";
try {

actual.set(compara.getDia(),
compara.getValorFisicoAcumulado());
estimado.set(compara.getDia(),

compara.getValorFisicoAcumuladoEstim());

} catch (Exception e) {

e.printStackTrace();
System.out.println("OTRO ERROR");
// TODO: handle exception
}

financiero.addSeries(actual);
financiero.addSeries(estimado);

return financiero;
}

public void setFinanciero(CartesianChartModel financiero) {


this.financiero = financiero;
}

public boolean isOpcion() {


return opcion;
}

public void setOpcion(boolean opcion) {


this.opcion = opcion;
}

public boolean isOpcioningreso() {


return opcioningreso;
}

public void setOpcioningreso(boolean opcioningreso) {


this.opcioningreso = opcioningreso;
}
117
public List<ComparacionFisico> getListaComparacion() {
return listaComparacion;
}

public void setListaComparacion(List<ComparacionFisico>


listaComparacion) {
this.listaComparacion = listaComparacion;
}

public String getCodigoSnip() {


return codigoSnip;
}

public void setCodigoSnip(String codigoSnip) {


this.codigoSnip = codigoSnip;
}

public List<AvanceFisico> getListaAvance() {


return listaAvance;
}

public void setListaAvance(List<AvanceFisico> listaAvance) {


this.listaAvance = listaAvance;
}

public List<Cronograma> getListaCronograma() {


return listaCronograma;
}

public void setListaCronograma(List<Cronograma> listaCronograma) {


this.listaCronograma = listaCronograma;
}

public Proyecto getProyeto() {


return proyeto;
}

public void setProyeto(Proyecto proyeto) {


this.proyeto = proyeto;
}

public String getMensaje() {


return mensaje;
}

public void setMensaje(String mensaje) {


this.mensaje = mensaje;
}

public void buscaProyecto() {


proyeto = controlProyectodao.findProyecto(codigoSnip.trim());
if (proyeto == null) {
mensaje = "Ingrese un código SNIP registrado
anteriormente";
proyeto = new Proyecto();
return;
}
118
listaAvance = controlProyectodao.findListaAvanceFisico(proyeto
.getIdProyecto());
listaCronograma =
controlProyectodao.findListaCronograma(proyeto
.getIdProyecto(),1);

int h = 0;
listaComparacion = new ArrayList<ComparacionFisico>();
ComparacionFisico comparacion;

opcion = true;
opcioningreso = false;

for (Cronograma cronograma : listaCronograma) {


comparacion = new ComparacionFisico();
comparacion.setDia(cronograma.getNumDia());
comparacion.setValorfisicoactualEstim(cronograma
.getValAvanceFisicoActual());
comparacion.setValorfisicoactualPorcEstim(cronograma
.getValAvanceFisicoActualPorc());
comparacion.setValorFisicoAcumuladoEstim(cronograma
.getValAvanceFisicoAcumulado());
comparacion.setValorFisicoAcumuladoPorcEstim(cronograma
.getValAvanceFisicoAcumuladoPorc());

try {
AvanceFisico fisico = listaAvance.get(h);
comparacion.setValorfisicoactual(fisico
.getValAvanceFisicoActual());
comparacion.setValorfisicoactualPorc(fisico
.getValAvanceFisicoActualPorc());
comparacion.setValorFisicoAcumulado(fisico
.getValAvanceFisicoAcumulado());
comparacion.setValorFisicoAcumuladoPorc(fisico
.getValAvanceFisicoAcumuladoPorc());

} catch (Exception e) {

comparacion.setValorfisicoactual(new
BigDecimal("0.00"));
comparacion.setValorfisicoactualPorc(new
BigDecimal("0.00"));
comparacion.setValorFisicoAcumulado(new
BigDecimal("0.00"));
comparacion.setValorFisicoAcumuladoPorc(new
BigDecimal("0.00"));

}
listaComparacion.add(comparacion);
h++;
}

mensaje = "Realice la comparación";

public void genera() {

119
}
}

Tabla Nº 4.76: Código fuente. ComparativoFisicoController.

CREATE TABLE [dbo].[Cronograma](


[IdCronograma] [int] IDENTITY(1,1) NOT NULL,
[ValAvanceFisicoActual] [numeric](20, 2) NULL,
[ValAvanceFisicoActualPorc] [numeric](10, 2) NULL,
[ValAvanceFisicoAcumulado] [numeric](20, 2) NULL,
[ValAvanceFisicoAcumuladoPorc] [numeric](6, 2) NULL,
[AvanceFinancieroActual] [numeric](20, 2) NULL,
[AvanceFinancieroActualPorc] [numeric](6, 2) NULL,
[AvanceFinancieroAcumulado] [numeric](20, 2) NULL,
[AvanceFinancieroAcumuladoPorc] [numeric](20, 2) NULL,
[NumDia] [int] NULL,
[IdProyecto] [nvarchar](20) NULL,
[Estado] [int] NULL,
[FechaInicio] [datetime] NULL,
[FechaFin] [datetime] NULL,
CONSTRAINT [Cronogramapk] PRIMARY KEY CLUSTERED
(
[IdCronograma] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END

Tabla Nº 4.77: Código SQL. TablaCronograma.

Nº HU Nº TI NOMBRE CLASE CONTROL RESULTADO

5 1 CronogramaController Satisfactorio

8 1 AvanceFisicoControler Satisfactorio

9 1 AvanceFinanControler Satisfactorio

11 1 ReporteController Satisfactorio

12 1 ReporteController Satisfactorio

1 ComparativoFisicoController Satisfactorio
16
2 ComparativoFinanController Satisfactorio

Tabla Nº 4.78: Reporte de pruebas unitarias. Primera iteración

Nº HU Nº TI NOMBRE CLASE CONTROL RESULTADO

5 1 Realizar registro de cronograma de ejecución Satisfactorio

120
8 1 Registrar avance físico Satisfactorio

9 1 Registrar avance financiero (Actualizar) Satisfactorio

11 1 Emitir reporte avance físico Satisfactorio

12 1 Emitir reporte avance financiero Satisfactorio

1 Mostrar comparativo avance físico Satisfactorio


16
2 Mostrar comparatvivo avance financiero Satisfactorio

Tabla Nº 4.79: Reporte de prueba integración. Primera iteración

Nº CASO PRUEBA 1

Propósito Acceder al sistema ejecución de proyectos del GRA

ACTIVIDAD

Ejecutar el sistema ejecución de proyectos, e ingresar a la


Inicialización
página de logueo.

Descripción de datos de
Usuario, password.
entrada

RESULTADOS

Sr. : Emerson Neliño QUISPE HUAMÁN : Responsable del


Esperado
proyecto

Reales Accede al sistema ejecución de proyectos del GRA

Tabla Nº 4.80: Reporte de prueba de aceptación. Iniciar sesión.

Nº CASO PRUEBA 2

Propósito Mostrar comparativo avance físico real vs cronograma físico

ACTIVIDAD

Ejecutar el sistema de ejecución de proyectos, e ingresar el


Inicialización
código SNIP del proyecto.

Descripción de datos de
Código SNIP del proyecto.
entrada

RESULTADOS

Cuadro comparativo del avance físico real ejecutado vs


Esperado
cronograma físico valorizado en soles.

Visualización del comparativo del avance físico real ejecutado vs


Reales
avance físico cronogramado.

121
Tabla Nº 4.81: Reporte de prueba de aceptación. Mostrar comparativo avance físico real
ejecutado vs avance físico cronogramado de ejecución de proyectos del GRA.

Nº CASO PRUEBA 3

Mostrar comparativo avance financiero real vs cronograma


Propósito
financiero

ACTIVIDAD

Ejecutar el sistema de ejecución de proyectos, e ingresar el


Inicialización
código SNIP del proyecto.

Descripción de datos de
Código SNIP del proyecto.
entrada

RESULTADOS

Cuadro comparativo del avance financiero real ejecutado vs


Esperado
cronograma financiero.

Visualización del comparativo del avance financiero real


Reales
ejecutado vs avance financiero cronogramado.

Tabla Nº 4.82: Reporte de prueba de aceptación. Mostrar comparativo avance financiero real
ejecutado vs avance financiero cronogramado de ejecución de proyectos del GRA.

Nº CASO PRUEBA 4

Propósito Imprimir avance físico

ACTIVIDAD

Ejecutar el sistema de ejecución de proyectos, e ingresar a la


Inicialización
página de reportes.

Descripción de datos de
Código SNIP, seleccionar tipo de reporte Avance físico.
entrada

RESULTADOS

Lista de datos mensuales de la ejecución del avance físico real


Esperado
valorizado en soles.

Reporte de avance físico actual, acumulado, porcentaje y saldo


Reales
del proyecto.

Tabla Nº 4.83: Reporte de prueba de aceptación. Avance físico mensual de proyectos en


ejecución del GRA.

Nº CASO PRUEBA 5

122
Propósito Imprimir avance financiero

ACTIVIDAD

Ejecutar el sistema de ejecución de proyectos, e ingresar a la


Inicialización
página de reportes.

Descripción de datos de
Código SNIP, seleccionar tipo de reporte Avance financiero.
entrada

RESULTADOS

Lista de datos mensuales de la ejecución del avance financiero


Esperado
real en soles.

Reporte de avance financiero actual, acumulado, porcentaje y


Reales
saldo del proyecto.

Tabla Nº 4.84: Reporte de prueba de aceptación. Avance financiero mensual de proyectos en


ejecución del GRA.

123

You might also like