324
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “Gestión de Proyecto Informático Módulo de Gestión de Pre-Proyecto” 4TO. CURSO DE GRADUACION Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autores: Mendoza Burgos Evelyn Alexandra Recillo Reinado María De Los Ángeles Villavicencio López Johnny Fernando GUAYAQUIL-ECUADOR 2007

UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

  • Upload
    vanthuy

  • View
    239

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“Gestión de Proyecto Informático

Módulo de Gestión de Pre-Proyecto”

4TO. CURSO DE GRADUACION

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Mendoza Burgos Evelyn Alexandra

Recillo Reinado María De Los Ángeles

Villavicencio López Johnny Fernando

GUAYAQUIL-ECUADOR

2007

Page 2: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

AGRADECIMIENTO

A nuestros padres, quienes con su amor,

paciencia y desdén siempre nos animaron a

escoger una carrera de la cual nos podamos sentir

orgullosos.

Al personal docente, que nos hicieron partícipes

de sus conocimientos y experiencias adquiridas a

lo largo de su carrera profesional; a Dios, quien

siempre puso en nuestro corazón, el amor, el

coraje y la voluntad para seguir adelante y

permitirnos ser profesionales de una carrera digna

de recomendar a nuestros hijos.

Al amor, porque siempre estuvo presente en

nuestros corazones y es el motor para lograr

grandes propósitos.

Page 3: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

DEDICATORIA

La tesis va dirigida a Dios, por darnos la fuerza y

la sabiduría para seguir adelante hasta conseguir

nuestros propósitos y anhelos; A nuestros padres

quienes estuvieron motivándonos a lo largo de

nuestra preparación profesional hasta lograr

vernos convertidos en Ingenieros; Al amor, que

siempre está presente en todas las actividades

que deseemos emprender.

Page 4: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

TRIBUNAL DE GRADUACIÓN

Presidente Tribunal 1er. Vocal

2do. Vocal Secretario

Page 5: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en sistemas

Computacionales, Art. 26)

Mendoza Burgos Evelyn Alexandra

[email protected]

Recillo Reinado María De Los Ángeles

[email protected]

Villavicencio López Johnny Fernando

[email protected]

Page 6: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

RESUMEN

Actualmente las Organizaciones han optimizado y mejorado la forma de

llevar a cabo sus actividades habituales mediante la implementación de la

tecnología.

Sin embargo, debido a la necesidad de mejorar y atender eficientemente los

Requerimientos/Necesidades de mejoras en los mecanismos de trabajo de

las áreas de la Empresa, se desarrolló un “Módulo de Gestión de Pre-

Proyecto” con la finalidad de optimizar el tiempo de recepción y análisis de lo

requerimientos solicitados por el área cliente, áreas de la Empresa, y la

respectiva planificación para llevar a cabo el proyecto que se requiere para

dicha mejora.

Esta aplicación fue diseñada usando la arquitectura de Aplicaciones Cliente /

Servidor, implementado la tecnología Oracle 9i como servidor de la Base de

Datos y MyEclipse para Java como lenguaje de programación de la

aplicación.

El acceso al módulo será evaluado mediante los roles, privilegios y permisos

que tenga configurado el usuario del mismo, proporcionándole así un

username, password y string de conexión a la Base de Datos.

Page 7: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

SUMMARY

Nowadays, Organizations have optimized and improved their way to perform

their usual activities through the use of technology.

However, given the fact that is necessary to fulfill the needs of improval in the

different areas of the company, a “Pre Project Module of Management” was

developed with the objective to optimize the time of reception an analysis of

the requirements of the Client Areas, Enterprise areas, and the planning

needed to materialize the project, necessary for the improvementents.

This technique was designed using the architectures related to Client/Server

Appliccations, implementing Oracle 9i Technology, as a Data Base Server

and My Eclipse for Java as a program code for the application.

The access to the module will be evaluated by means of the roles, privileges

and permissions that the user of the same one has formed, providing to him

this way a username, password and string of connection to the Database.

Page 8: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

INDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

TRIBUNAL DE GRADUACIÓN IV

DECLARACIÓN EXPRESA V

RESUMEN VI

INDICE GENERAL VIII

Page 9: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

TABLA DE CONTENIDOS

1 INTRODUCCIÓN ................................................................................... 15

1.1 Antecedentes y Problemática ......................................................... 15

1.2 Soluciones a la problemática .......................................................... 16

1.3 Opciones del Módulo ...................................................................... 16

1.4 Opciones de Acceso a la aplicación: .............................................. 17

1.5 VISIÓN ........................................................................................... 18

1.6 MISIÓN ........................................................................................... 19

1.7 OBJETIVOS GENERALES ............................................................. 19

1.8 OBJETIVOS ESPECÍFICOS .......................................................... 20

1.9 ALCANCES DEL PROYECTO ....................................................... 21

1.9.1 Ingreso de Proyectos al Sistema (requerimientos) .................. 21

1.9.2 Nivel Gerencial ........................................................................ 22

1.9.3 Asignación de Códigos por Proyecto ....................................... 23

1.9.4 Asignación de Recursos (Líder de Proyecto) .......................... 24

1.9.5 Asignación de Recursos (Líder SIS) ........................................ 25

1.9.6 Asignación de Recurso Humano ............................................. 27

1.9.7 Asignación de Recursos Informáticos ..................................... 28

1.9.8 Cronograma de actividades para el Pre-Proyecto .................. 28

1.9.9 Definición de configuraciones generales ................................. 31

1.9.10 Estados del Proyecto ............................................................... 31

1.9.11 Definición de Tipo de Proyecto. ............................................... 32

1.9.12 Aprobación del Plan Técnico del Proyecto. ............................. 32

1.9.13 Reportes de Detalles ............................................................... 32

1.10 FODA DEL MÓDULO DE GESTION DE PRE-PROYECTOS ....... 33

1.10.1 Fortaleza ................................................................................. 33

1.10.2 Oportunidades ......................................................................... 34

1.10.3 Debilidades .............................................................................. 35

1.10.4 Amenazas ............................................................................... 35

1.11 METODOLOGIA ............................................................................. 36

1.12 ARQUITECTURA ........................................................................... 38

Page 10: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

1.13 TECNOLOGIA ................................................................................ 39

1.14 RECURSOS ................................................................................... 41

1.14.1 Hardware: ................................................................................ 41

1.14.2 Software: ................................................................................. 42

1.14.3 Recurso Humano: .................................................................... 42

1.15 CRONOGRAMA DE TRABAJO DEL PROYECTO ......................... 42

2 ANALISIS DEL MODELO DE GESTIÓN DE PRE-PROYECTOS ......... 48

2.1 REQUERIMIENTOS ....................................................................... 48

2.2 MODELO ENTIDAD RELACION .................................................... 49

2.2.1 Análisis del Modelo Entidad Relación. ..................................... 49

2.3 CASOS DE USO ............................................................................ 59

2.4 DIAGRAMAS DE PROCESOS ....................................................... 88

2.5 DIAGRAMA DE FLUJO DE DATOS ............................................. 101

3 DISEÑO DEL MODELO DE GESTIÓN DE PRE-PROYECTOS ......... 105

3.1 Descripción de Clases Principales ............................................... 105

3.1.1 LiderProyecto ........................................................................ 105

3.1.1.1 Descripción de los campos ............................................ 105

3.1.1.2 Descripción de funciones y procedimientos .................. 106

3.1.2 AsignaRecurso ...................................................................... 107

3.1.2.1 Descripción de los campos ............................................ 107

3.1.2.2 Descripción de funciones y procedimientos .................. 108

3.1.3 AsignaInfor ............................................................................ 109

3.1.3.1 Descripción de los campos ............................................ 109

3.1.3.2 Descripción de funciones y procedimientos .................. 110

3.1.4 AsignaSIS .............................................................................. 111

3.1.4.1 Descripción de los campos ............................................ 111

3.1.4.2 Descripción de funciones y procedimientos .................. 112

3.1.5 Configuración ........................................................................ 113

3.1.5.1 Descripción de los campos ............................................ 113

3.1.5.2 Descripción de funciones y procedimientos .................. 114

3.1.6 DefineProyecto ...................................................................... 115

3.1.6.1 Descripción de los campos ............................................ 115

3.1.6.2 Descripción de funciones y procedimientos .................. 116

3.1.7 Cronograma .......................................................................... 117

3.1.7.1 Descripción de los campos ............................................ 118

3.1.7.2 Descripción de funciones y procedimientos .................. 119

3.1.8 Estado ................................................................................... 121

3.1.8.1 Descripción de los campos ............................................ 122

3.1.8.2 Descripción de funciones y procedimientos .................. 123

3.1.9 Aprueba ................................................................................. 124

Page 11: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

3.1.9.1 Descripción de los campos ............................................ 125

3.1.9.2 Descripción de funciones y procedimientos .................. 125

3.2 Diseño de Pantallas ...................................................................... 126

3.2.1 Asignaciones ......................................................................... 126

3.2.1.1 Asignación de Líder SIS ................................................. 126

3.2.1.2 Asignación de Recurso Humano .................................... 127

3.2.1.3 Asignación de Recurso Informático ................................ 128

3.2.1.4 Consulta del Líder de Proyectos .................................... 129

3.2.2 Configuración de Parámetros ................................................ 130

3.2.3 Definición de Tipo de Proyectos ............................................ 131

3.2.4 Cronograma de Actividades .................................................. 131

3.2.5 Estados y Aprobaciones ........................................................ 132

3.2.5.1 Estados del Proyecto ..................................................... 132

3.2.5.2 Aprobación del Plan Técnico .......................................... 133

3.2.6 Reportería ............................................................................. 134

3.2.6.1 Reporte de Estados del Proyecto. .................................. 134

3.2.6.2 Reporte de Líderes Asignados al Proyecto .................... 135

3.2.6.3 Reporte de Actividades del Proyecto ............................. 136

4 CODIFICACIÓN DEL MODELO DE GESTIÓN DE PRE-PROYECTOS 138

4.1 ESTÁNDARES ............................................................................. 138

4.1.1 Estándares sobre la Base de Datos ...................................... 139

4.1.1.1 Usuarios y Tablas ........................................................... 139

4.1.1.2 Sinónimos y Secuencias ................................................ 140

4.1.1.3 Paquetes, procedimientos y funciones ........................... 141

4.1.2 Estándares sobre la Codificación .......................................... 142

4.1.2.1 Codificación PL/SQL ...................................................... 142

4.1.2.2 Codificación Java ........................................................... 143

4.1.2.3 Codificación JSP – My Esclipse ..................................... 143

4.1.2.4 Interfaces........................................................................ 144

4.2 DEFINICIÓN DE PRINCIPALES PROCESOS ............................. 145

4.2.1 Proceso Líder de Proyecto .................................................... 145

4.2.2 Proceso Líder SIS ................................................................. 145

4.2.3 Proceso Asigna Recurso ....................................................... 146

4.2.4 Proceso Asigna Recurso Informático .................................... 146

4.2.5 Proceso Cronograma ............................................................ 147

4.2.6 Proceso Estado ..................................................................... 147

4.2.7 Proceso Aprueba ................................................................... 148

4.3 DIAGRAMA DE FLUJO ................................................................ 148

5 PRUEBAS ............................................................................................ 150

5.1 RECOMENDACIONES ................................................................. 150

Page 12: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

5.2 Modelo de Flujo de Pruebas ......................................................... 151

5.3 Pruebas de Caja Blanca ............................................................... 151

5.3.1 Asignación Líder SIS ............................................................. 151

5.3.2 Ingreso de Actividades de un proyecto. ................................. 173

5.3.3 Recursos Humanos ............................................................... 196

5.4 Pruebas de Caja Blanca ............................................................... 200

5.4.1 Asignación de Recursos Informáticos. .................................. 200

6 RECOMENDACIONES Y CONCLUSIONES ....................................... 202

6.1 RECOMENDACIONES ................................................................. 202

6.2 CONCLUSIONES ......................................................................... 203

Page 13: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

13

INDICE DE FIGURAS

El modelo de construcción de prototipos ...................................................... 36

Modelo en Espiral ......................................................................................... 38

Arquitectura Cliente – Servidor ..................................................................... 39

Cronograma de Trabajo General – Fase 1 ................................................... 43

Cronograma de Trabajo – Fase 2 ................................................................. 47

Modelo Entidad Relación – Inicial ................................................................. 58

Modelo Entidad Relación – Final .................................................................. 58

Casos de uso – Actores de los casos de Uso ............................................... 59

Caso de uso 1 – Asignación de Líderes ....................................................... 60

Caso de uso 2 – Revisión ............................................................................. 61

Caso de uso 3 – Cronograma Estimado ....................................................... 63

Caso de uso 4 – Fases del Cronograma ...................................................... 64

Caso de uso 5 – Actividades del Cronograma .............................................. 66

Caso de uso 6 – Envío del Cronograma ....................................................... 67

Caso de uso 7 – Elaboración Plan Técnico por Líder SIS ............................ 69

Caso de uso 8 – Verificar Presupuesto ......................................................... 70

Caso de uso 9 – Aplica transferencia de Dinero ........................................... 72

Caso de uso 10 – Envío de Plan Técnico al Gerente ................................... 73

Caso de uso 11 – Gerente Aprueba Plan Técnico ........................................ 75

Caso de uso 12 – Selección recurso Informático .......................................... 77

Caso de uso 13 – Selección recurso Humano .............................................. 78

Caso de uso 14 – Emitir solicitud .................................................................. 80

Caso de uso 15 – Asigno recurso Informático .............................................. 81

Caso de uso 16 – Verificar disponibilidad del Recurso Humano................... 83

Caso de uso 17 – Solicitud de Recurso Humano .......................................... 84

Caso de uso 18 – Asignación de Recurso Humano ...................................... 85

Caso de uso 19 – Configuraciones Generales ............................................. 87

Diagrama de procesos 1: Asignación de líderes ........................................... 89

Diagrama de procesos 2: Revisión DDF ....................................................... 90

Diagrama de procesos 3: Elaboración Cronograma Estimado ..................... 90

Diagrama de procesos 4: Fases del Cronograma ......................................... 91

Diagrama de procesos 5: Definir Actividades dentro del Cronograma .......... 92

Diagrama de procesos 6: Enviar Cronograma al Gerente ............................ 93

Diagrama de procesos 7: Aprobación del plan técnico por líder SIS ............ 93

Diagrama de procesos 8: Verificar Presupuesto ........................................... 94

Diagrama de procesos 9: Aplica transferencia de dinero .............................. 95

Diagrama de procesos 10: Envió plan técnico al Gerente ............................ 95

Diagrama de procesos 11: Gerente aprueba plan técnico ............................ 96

Diagrama de procesos 12: Selección recurso Informático ............................ 96

Page 14: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

14

Diagrama de procesos 13: Selección recurso Humano ................................ 97

Diagrama de procesos 14: Emitir Solicitud ................................................... 98

Diagrama de procesos 15: Asignación Recurso Informáticos ....................... 98

Diagrama de procesos 16: Verificar disponibilidad recurso Humano ............ 99

Diagrama de procesos 17: Solicitud Recurso Humano ................................. 99

Diagrama de procesos 18: Asignación de Recurso Humano ...................... 100

Diagrama de procesos 19: Configuraciones Generales .............................. 100

Diagrama de Flujo de Datos ....................................................................... 101

Page 15: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

15

CAPÍTULO 1

1 INTRODUCCIÓN

1.1 Antecedentes y Problemática

Actualmente las Empresas se encuentran en la constante búsqueda

de la automatización de sus sistemas, que genere ahorro de tiempo,

dinero y esfuerzo físico y que mediante ello se logre llevar a cabo las

transacciones rutinarias que se realizan en el día a día y lo más

importante de todo, que se lleve a cabo en el menor tiempo posible.

Ante todo este preámbulo, las organizaciones han optado por

proporcionar una solución al actual esquema de control y recepción de

proyectos que se realizan manualmente implementando así un módulo

que permita ayudar y llevar un mayor control, recepción y evaluación

de las necesidades que puedan existir en las diversas áreas de la

Empresa, la cuales serán evaluadas y llevadas a cabo por el área de

Sistemas.

Esta automatización mejorará la Gestión del Pre –Proyecto entre el

Gerente y el Líder del proyecto, permitiendo que la comunicación y el

Page 16: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

16

tiempo de respuesta se den en un lapso de tiempo considerablemente

corto.

1.2 Soluciones a la problemática

El Gestor de Pre-proyectos permitirá una administración óptima y

eficaz sobre los requerimientos solicitados por las diferentes áreas que

conforman la Organización, optimizando el uso eficiente de los

recursos, debido a que las transacciones serán automatizadas gracias

a la tecnología implementada, otorgándole así un valor agregado a las

actividades desempeñadas ya que se presenta una ventaja potencial

sobre las diferentes aplicaciones que se hayan implementado

anteriormente en la Empresa

El Gestor proveerá al Gerente y al Líder de proyecto todas las

opciones necesarias para el correcto análisis, diseño, desarrollo e

implementación del mismo.

1.3 Opciones del Módulo

El Gerente y Líder de proyecto que hagan uso del módulo dispondrán

de algunas opciones, tales como:

Analizar el requerimiento

Page 17: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

17

Realizar solicitud de Recursos

Asignar recursos a cada proyecto

Cambio de Estados del Proyecto

Cambio de Estados del documento - Plan Técnico

Elaborar cronograma por Proyecto

Definir actividades principales (hitos) y secundarias

Asignar tiempos estimados para la realización de cada

actividad

El Gerente y Líder de proyecto serán considerados usuarios finales los

que podrán hacer uso de estas opciones en forma segura desde

cualquier terminal conectada en red, teniendo en cuenta los privilegios

y su autenticación sobre el módulo implementado.

1.4 Opciones de Acceso a la aplicación:

Los Usuarios finales del Proyecto al momento de utilizar el aplicativo

necesitan ingresar la siguiente información:

Código de usuario

Clave de usuario

Page 18: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

18

Tanto el Gerente y Líder de Proyecto podrán acceder a las opciones

que dispondrá el módulo de acuerdo a los roles que se les haya

configurado.

Para el desarrollo de este aplicativo nos basaremos en el uso de las

herramientas Netbeans o Eclipse. Cabe recalcar que esta aplicación

será desarrollada usando la tecnología Java en conjunto con la

potente base de datos Oracle 9i.

1.5 VISIÓN

Lograr que la solicitud de proyectos o requerimientos futuros se

convierta en una secuencia sencilla y transparente de procesos

interrelacionados que den como resultado soluciones rápidas,

altamente funcionales que satisfagan en su totalidad las necesidades

plasmadas en los requerimientos; permitiendo así a la empresa una

mayor proyección de crecimiento en el medio en el cual se

desempeña.

Page 19: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

19

1.6 MISIÓN

Ofrecer a las personas involucradas en la gestión y desarrollo de

proyectos informáticos una herramienta altamente funcional, capaz de

automatizar la mayoría de los procesos inherentes a la administración

de los mismos teniendo como premisa fundamental la disponibilidad

de información totalmente confiable que sirva como base para la toma

de decisiones de manera oportuna y acertada.

1.7 OBJETIVOS GENERALES

Ofrecer una herramienta funcional capaz de automatizar, en gran

parte, los procesos que involucran la administración de los proyectos

informáticos, otorgando la información necesaria para la adecuada

toma de decisiones.

Implementación del módulo de Gestión de Pre - Proyectos que permita

la administración y control de los requerimientos informáticos

solicitados por las diversas áreas que integran la organización, las

cuales se llevarán a cabo por los ingenieros del área de Sistemas.

Page 20: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

20

1.8 OBJETIVOS ESPECÍFICOS

Se tendrán presente los siguientes objetivos:

Lograr el ingreso y control de los requerimientos del área solicitante

por medio de una interfaz.

Asignación de los Ingenieros en Sistemas que participarán en el

desarrollo del proyecto.

La asignación adecuada de la infraestructura necesaria para llevar

a cabo la implementación del proyecto.

Limitar la asignación de Proyectos al líder SIS con la finalidad que

no se le sobrecargue de actividades.

Controlar las fases o etapas del proyecto mediante el cronograma

estimado de realización del proyecto.

Generación automática de las actividades del proyecto, tales como

fases de análisis, documentación, desarrollo, etc.

Page 21: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

21

Generación de un cronograma estimado para la realización del

proyecto.

1.9 ALCANCES DEL PROYECTO

El alcance del presente módulo es implementar en el Sistema la

automatización de los registros de los pre-proyectos que son

requeridos por las diversas áreas que conforman la Compañía

(Financiero, Sistemas, Cobranzas, Inventario, etc.)

1.9.1 Ingreso de Proyectos al Sistema (requerimientos)

El ingreso será por departamento o área de la Empresa.

Asignar a cada proyecto la prioridad, indicando cual es el

que deberá ser desarrollado de manera urgente.

Prioridades Pesos

ALTA 3

MEDIA 2

BAJA 1

Page 22: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

22

Nota: Este punto se encuentra soportado por el Módulo 2

de Gestión de Requerimientos, lo cual implica que ya no se

contemple como parte de nuestro alcance.

Asignar a cada proyecto la dimensión, para ser evaluado

por el módulo que le corresponde realizar el presupuesto.

Dimensión Valor

PEQUEÑO 1

MEDIANO 2

GRANDE 3

Nota: Este punto ya fue cubierto por el alcance del Módulo 2,

lo cual implica que ya no se contemple como parte de nuestro

alcance.

1.9.2 Nivel Gerencial

Una vez que la Gerencia atendió el requerimiento del área

solicitante, se considerarán los siguientes puntos:

Identificar la bitácora en donde estén almacenados

los recursos de Hardware, Software y Humano que

Page 23: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

23

posee la Empresa junto con las pruebas de

conocimientos correspondientes para cada recurso

humano.

Por medio de una interfaz ingresar las características

de los recursos, requeridos por proyectos, sean estos

de Hardware, Software o Humano.

Bitacorizar los recursos seleccionados por Proyectos

y Departamentos para que el Módulo de presupuesto

pueda obtener dichos datos, junto con el módulo de

proveedores.

1.9.3 Asignación de Códigos por Proyecto

Se deberá seguir el siguiente formato:

[COD_DEPARTAMENTO + SECUENCIAL 4

DIGITOS] - NOMBRE_PROYECTO

Ejemplo:

Departamento de Contabilidad 12

Dígitos del Proyecto 1000

Nombre del Proyecto Cuentas por pagar

Código del proyecto [121000] – Cuentas por pagar

Page 24: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

24

Nota: Este punto ya fue cubierto por el alcance del Módulo 2,

lo cual implica que ya no se contemple como parte de nuestro

alcance.

1.9.4 Asignación de Recursos (Líder de Proyecto)

Por medio de una interfaz o pantalla se presentará un

listado de los candidatos a líderes de proyectos al

Gerente de Proyectos, los cuales podrán ser escogidos

dependiendo de la capacidad y nivel de conocimiento

que se requiera, esto se lo efectuará por medio de un

check box u otra alternativa de selección.

Además se tendrá por cada uno de ellos una caja de

texto para registrar el proyecto al cual ha sido asignado,

esta última opción será obligatoria.

Una vez que el líder ha sido asignado a un proyecto, se

deberá notificar dicha asignación a través de un mail u

otro medio de comunicación.

Page 25: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

25

Nota: La asignación del Líder de Proyectos ya no se

contempla como parte de nuestro alcance puesto que ya

se encuentra asignado una vez que se generó el

requerimiento.

1.9.5 Asignación de Recursos (Líder SIS)

Por medio de una interfaz o pantalla se presentará un

listado de los candidatos a líder SIS del Proyecto al

Gerente de Proyectos, los cuales podrán ser escogidos

por medio de un check box u otra alternativa de

selección.

Luego de que el líder tiene conocimiento del proyecto al

que fue asignado, este emitirá las características o

perfiles de los recursos que requiere para el desarrollo

del proyecto.

Por cada proyecto que posea el estado procesado o

terminado se deberá actualizar la bitácora de pesos que

posea el líder con respecto a los proyectos que tiene a su

Page 26: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

26

cargo, para poder asignarle un nuevo proyecto y liberar

recursos para ser reutilizados.

Límite de asignación de Proyectos a un líder el cual se

llevará a cabo de la siguiente manera:

Se proveerá una interfaz mediante la cual se

permitirá configurar el límite de proyectos que

serán asignados al líder SIS.

Se tendrá un máximo de proyectos asignados al

líder que consiste en el siguiente esquema:

Se sumarán los pesos de los proyectos asignados

al líder, esa sumatoria se la verificará contra el

valor límite configurado; si ese valor límite es

inferior indica que aún se puede asignar proyecto

al líder, caso contrario no se realizará la

asignación del proyecto al líder.

Anteriormente se establecía de la siguiente manera:

Se establecerá un máximo de proyectos al tiempo

por cada líder, donde dicho límite será dinámico,

Page 27: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

27

ya que dependerá de la sumatoria de los pesos de

las alternativas mostradas en la siguiente tabla:

Parámetros Pesos

Prioridad Máximo 21 de peso

Cantidad de Recursos Máximo 30 personas

Se establece como mayor prioridad 21 ya que es

la sumatoria de los mayores pesos por rangos, es

decir:

10(ALTA) + 7(MEDIA) + 4(BAJA) = 21

1.9.6 Asignación de Recurso Humano

Se mostrará por medio de una interfaz, al Líder SIS del

proyecto los posibles candidatos que colaborarán en el

desarrollo del Proyecto asignado, para que sean

escogidos dependiendo de la capacidad y nivel de

conocimiento que se requiera, los cuales serán

escogidos por medio de un check box u otra alternativa

de selección.

Page 28: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

28

1.9.7 Asignación de Recursos Informáticos

Se mostrará por medio de una interfaz, al Líder SIS del

proyecto todos los recursos informáticos, sean esos

Hardware o Software, los cuales serán escogidos por

medio de un check box u otra alternativa de selección.

1.9.8 Cronograma de actividades para el Pre-Proyecto

Luego de la asignación del Líder SIS al Proyecto, se

deberá emitir el cronograma de trabajo con los hitos

principales presentados en la siguiente tabla:

ACTIVIDADES TIPO

- Inicio de Proyecto 0

- Capacitación a Recursos 0

- Introducción 1

- Modelo Entidad Relación 1

- Descripción de Estándares 1

- Descripción de motores o Sistemas 1

- Otras actividades 1

- Fin de la Capacitación 0

- Plan Técnico 0

- Elaboración Plan Técnico 1

- Aprobación del plan Técnico 1

Page 29: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

29

- Plan Técnico Aprobado 0

- Fase de Análisis 0

- Análisis detallado 1

- Elaborar Dercas 1

- Revisar Dercas internamente 1

- Ajustes al documento 1

- Revisar y aprobar Dercas con Usuarios 1

- Dercas Aprobado 0

- Fase de diseño (Desarrollos Preliminares) 0

- Elaborar Manual de Diseño 1

- Diseño terminado 0

- Fase de Desarrollo 0

- Configuraciones 1

- Procesos 1

- Transacciones 1

- Reportes 1

- Desarrollo Terminado 0

- Pruebas y Correcciones 0

- Preparar ambiente 1

- Elaborar informe de pruebas internas 1

- Elaborar plan de pruebas 1

- Pruebas internas y correcciones 1

- Cambios probados 0

- Capacitación 0

- Elaborar Manual de Usuario 1

- Capacitación al Usuario 1

- Personal capacitado 0

- Instalación y soporte 0

Page 30: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

30

- Elaborar control de objetos 1

- Elaborar plan de puesta en producción 1

- Elaborar informe de verificaciones post-

producción 1

- Instalación 1

- Verificación post – producción 1

- Elaborar manual del operador 1

- Capacitación al operador 1

- Soporte post – producción 1

- Instalación y soporte culminado 0

- Fin del Proyecto 0

Se debe tomar en consideración, que las actividades detalladas

en la tabla anterior pueden llegar a ser modificadas por parte

del usuario según las necesidades que requiera cubrir el

proyecto al cual fue asignado.

Las Actividades o tareas que posean Tipo H, serán llamadas

Hitos, mientras que las que tienen especificado Tipo A

continuarán con su antigua definición, es decir, actividad.

Estos Hitos y Actividades podrán ser visualizados por el Usuario

encargado de crear el cronograma, ya que este ingresará por

parámetros los tiempos necesarios para cada actividad y

además se brindará la opción de añadir y modificar actividades.

Page 31: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

31

Una vez ingresados los tiempos y las actividades del

cronograma, el usuario visualizará las barras que indicarán los

tiempos requeridos para cada uno de los hitos.

También se podrá visualizar un diagrama de barras por las

actividades descritas para cada proyecto.

Se definieron los siguientes alcances adicionales para el

proyecto.

1.9.9 Definición de configuraciones generales

Se configurará mediante una interfaz la cantidad máxima

de proyectos que se asignarán al líder SIS del Proyecto.

1.9.10 Estados del Proyecto

Se proveerá una interfaz mediante la cual se realizará el

cambio de estadio del proyecto. Es decir, si el proyecto

esta “En curso, Suspendido, Stand By, etc”.

Page 32: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

32

1.9.11 Definición de Tipo de Proyecto.

Se proveerá una interfaz mediante la cual se realizará la

definición del tipo de Proyecto. Esto es con la finalidad

de identificar si el Proyecto es de tipo informático,

software, telemática, contable, etc.

1.9.12 Aprobación del Plan Técnico del Proyecto.

Se proveerá una interfaz mediante la cual se definirá si el

Plan Técnico de dicho proyecto fue Aceptado o No.

1.9.13 Reportes de Detalles

Se muestra a nivel de detalle los siguientes reportes:

Detalle de los estados del Proyecto.

Detalle de Líderes Asignados a Proyectos.

Detalle de Actividades del Proyecto.

Page 33: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

33

1.10 FODA DEL MÓDULO DE GESTION DE PRE-

PROYECTOS

1.10.1 Fortaleza

El módulo permitirá llevar un estándar de flujo de información,

sus obligaciones y restricciones a cada persona que esta

involucrada directa o indirectamente en el flujo.

Debido a la especificación de roles y privilegios existirá un

mayor control sobre la data que posee la Empresa.

Manejo Visual de los requerimientos solicitados por la empresa.

Manejo visual de los recursos que dispone la empresa y si

estos están disponibles o no para ser asignados a un proyecto.

Llevar un control de los proyectos asignados a cada participante

y líder SIS para optimizar la asignación de los proyectos a

realizar.

Permitirá disponer una base de líderes y colaboradores con

experiencia y profesionalismo ya que se encontrarán en

continua capacitación para la participación en un proyecto,

obteniendo personal eficiente y bien calificado acorde a sus

conocimientos.

Llevar un mejor control de las actividades que involucra un

proyecto.

Page 34: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

34

Administración eficaz del tiempo para llevar a cabo las tareas

estipuladas en el cronograma.

Minimización de los recursos suministros, tiempo y humano.

1.10.2 Oportunidades

Ampliar los conocimientos por parte del staff de

programación.

La realización de los updates de las plataformas

(herramientas de programación) sin afectar a nuestro módulo

gestor de proyectos.

La realización de upgrades sobre la plataforma de trabajo

(Sistemas Operativos), lo cual mejorará la velocidad de

funcionamiento de consultas y reportes que genere nuestro

módulo.

Expansión en el mercado debido a la automatización del

100% de las actividades de la empresa.

Realizar un Help Desk para poder ayudar al personal de otras

áreas para que puedan formular sus requerimientos y por

tanto darles un encaminamiento correcto hacia sus

soluciones.

Ahorro de recursos utilizados por la Empresa.

Page 35: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

35

1.10.3 Debilidades

Fallas repentinas de los componentes de un computador, red,

servidor, etc., que hagan uso del módulo, el cual interferirá

en la realización del proyecto de manera continua ya que esto

involucra paralizar las actividades hasta que se den

soluciones al inconveniente suscitado.

Mal uso de la aplicación por parte de los usuarios debido a la

falta de experiencia o conocimiento del mismo.

1.10.4 Amenazas

Saturación del ordenador o computador; instalación de

software o aplicaciones innecesarias que afectarían el

rendimiento del Módulo Gestor de Pre-Proyectos y del

experto en sistemas.

Filtración u obtención de información de la empresa por

medio de algún programa o accesos de hackers a la red.

Mal uso del módulo por usuarios nuevos o inexpertos que

podrían afectar el rendimiento del mismo.

La instalación de alguna herramienta que cause conflictos o

afecte el normal funcionamiento del computador o servidor

central.

Page 36: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

36

Cambio de políticas de uso sobre la herramienta o flujo de

información.

Orientación por parte del Cliente hacia otras aplicaciones

expuestas al mercado por la competencia.

1.11 METODOLOGIA

El modelo utilizado para la implementación del módulo será el Modelo

en Espiral, debido a que combina dos modelos importantes como son:

el modelo lineal secuencial y el modelo de construcción de prototipos.

El modelo lineal secuencial (Ciclo de vida clásico)

Es un enfoque sistemático y secuencial del desarrollo del software que

comienza en un nivel de sistemas y progresa de la siguiente manera:

El modelo de construcción de prototipos

Análisis Diseño

Prueba Mantenimiento

Código

Page 37: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

37

En este modelo se identifican un conjunto de requisitos del módulo a

desarrollar, tales como, entradas, procesamientos y salidas. Con esto

se elabora un prototipo inicial como punto de |partida que sirve para

detallar objetivos más concretos del producto final y que satisfaga al

usuario.

Por otra parte el Modelo en Espiral proporciona el potencial para el

refinamiento continuo del modelo inicial y desarrollo de versiones

incrementales del software así como también el análisis de riesgos del

mismo.

Atender Requerimiento

Elaboración Prototipo

Probar Prototipo

Page 38: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

38

Modelo en Espiral

La finalidad como tal, es maximizar la reutilización de código, así como

construir y almacenar objetos complejos.

1.12 ARQUITECTURA

Para el desarrollo de nuestro sistema se utilizará la arquitectura 3

capas – 3 Tier. En la aplicación Cliente – Servidor se nos presenta la

ventaja que se tendrá dividida a la aplicación en capas, tales como:

Composición Visual, Reglas y Objetos del negocio. Esto permitirá

mantener un estándar de programación, manejar el concepto de los

roles de trabajo sobre el aplicativo, privilegios de acceso, etc.

Planificación Análisis de Riesgos

Comunicación con el Cliente

Ingeniería

Evaluación del Cliente

Construcción y Adaptación

Page 39: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

39

Arquitectura Cliente – Servidor

1.13 TECNOLOGIA

En este módulo nos hemos enfocado en la tecnología J2EE y la

potente base de datos Oracle 9i como plataforma de desarrollo, donde

dicho lenguaje será el apropiado para la creación de nuestros objetos.

Java y Oracle son considerados hasta la actualidad una de las

mejores opciones para construir aplicaciones cliente/servidor gracias a

la potencialidad que ofrece al momento de implementar un nuevo

sistema.

Page 40: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

40

Debido a que la mayor parte del desarrollo será realizado en Java, la

herramienta que usaremos para crear los applets de Java, las

aplicaciones, sus objetos, etc. están entre Eclipse y JCreator para

Java.

Eclipse

Eclipse posee un editor visual, que ofrece, compilación incremental de

código, un potente depurador, un navegador de clases, un gestor de

archivos y proyectos, pero no se limita sólo a esto. La versión estándar

de Eclipse proporciona también una biblioteca de refactorización de

código y una lista de tareas e incluye una herramienta para completar

código.

El asistente de contenido, encargado de mostrar los métodos y

atributos de las clases con las que se está trabajando, ya formen parte

de las APIs de JAVA o de cualquier otra clase en el build path, aunque

estén en ficheros JAR.

Cabe notar que la herramienta Eclipse es una aplicación amigable

para el usuario; la desventaja que se presenta en esta aplicación al

momento de su ejecución es que se necesita de un mayor

performance y capacidad de los equipos.

Page 41: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

41

Otra herramienta a usar para el diseño de las interfaces que va a

interactuar en el módulo es el Netbeans, la misma que están en un

libre acceso para la comunidad informática.

PL/SQL

PL/SQL es un lenguaje procedimental que ORACLE desarrolló como

extensión al SQL estándar con el objetivo de proveer un medio para la

ejecución de lógica procedimental en la base de datos.

La aplicación PL/SQL se instala como un cliente de la Base de Datos

Oracle. El PL/SQL es un lenguaje procedimental, no declarativo, es

decir, que en el código a desarrollar, su código debe especificar

exactamente cómo se deben realizar las tareas o actividades.

1.14 RECURSOS

1.14.1 Hardware:

Una Equipo con todas las aplicaciones necesarias para

el desarrollo del Módulo.

Servidor de base de datos transaccionales

Page 42: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

42

Switch de 5 puertos

Cableado estructurado

Capacidad disponible en disco duro aproximadamente

será de 300 MB

515 de memoria RAM como mínimo

1.14.2 Software:

Sistema operativo Windows XP Professional.

Aplicación Eclipse.

Base de Datos Oracle 9i.

1.14.3 Recurso Humano:

Para el desarrollo del proyecto será necesario contar con 3

Ingenieros en Sistemas, los cuales se citan a continuación:

Evelyn Alexandra Mendoza Burgos

María De Los Ángeles Recillo Reinado

Johnny Fernando Villavicencio López

1.15 CRONOGRAMA DE TRABAJO DEL PROYECTO

En el gráfico que se muestra se puede notar un cronograma de trabajo

general para llevar a cabo la realización del proyecto, este se llevará a

cabo por el Módulo 3:

Page 43: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

43

Cronograma de Trabajo General – Fase 1

Se cita a continuación una breve descripción del contenido del

cronograma de manera general.

Capacitación del módulo a implementar.

Reunión con el usuario para conocer los requerimientos el

gestor de proyectos a implementar.

Page 44: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

44

Análisis y elaboración del Alcance del módulo del Gestor de

proyectos.

Análisis del módulo de Gestor de Pre-Proyectos y definición de

los alcances propuestos para lograr el desarrollo del proyecto.

Revisión Alcances

Reunión realizada por el Departamento de Graduación para

notificar a cada grupo la aceptación, modificación o rechazo de

los alcances.

Elaboración del Modelo Entidad Relación (MER)

Análisis y revisiones previas con integrantes de cada grupo

para la realización del Modelo Entidad Relación.

Integración del Modelo Entidad Relación - MER

Reunión realizada dentro de las instalaciones de la Carrera con

la finalidad de definir las estructuras generales y principales con

sus respectivos atributos.

Se definieron las dependencias entre los grupos, para evitar

conflictos e inconsistencias en la data, logrando así la

Integridad de la misma.

Page 45: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

45

Reunión efectuada por el Departamento de Graduación

Capacitación final a cargo del Ing. Juan Morales sobre la visión

Macro del Modelo del Gestor de Proyectos, es decir el flujo de

información entre los módulos.

Entrega del MER Integrado y su documentación

La documentación realizada sobre las estructuras que

contendrá el Modelo Entidad Relación fue entregada al Ing.

Fausto Saltos para su posterior análisis y aprobación.

Elaboración de los Scripts del MER

Elaboración de los scripts de las estructuras del Modelo Entidad

Relación Integrado que se insertarán en la Base de Datos, los

cuales fueron enviados por correo electrónico a todos los

grupos.

Elaboración del DFD (Diagrama de Flujo de Datos)

Reunión efectuada para definir las actividades y los procesos

que realiza el módulo.

Page 46: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

46

Entrega del DFD

La entrega se realizo en el departamento de graduación al Ing.

Abel Alarcón.

En el gráfico que se muestra se puede notar un cronograma de trabajo

para llevar a cabo la realización del proyecto en su segunda Fase:

Page 47: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

47

Cronograma de Trabajo – Fase 2

Page 48: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

48

CAPÍTULO 2

2 ANALISIS DEL MODELO DE GESTIÓN DE PRE-PROYECTOS

2.1 REQUERIMIENTOS

Mediante la implementación del Gestor de Pre-Proyecto se proveerá

al Gerente y al Líder de proyecto todas las opciones necesarias para

el correcto análisis, diseño, desarrollo e implementación del mismo.

Su funcionalidad básica inicia con la solicitud del recurso y culminando

con la elaboración del Cronograma en el cual se establecerán tiempos

estimados para cada una de las actividades a realizar.

Este Gestor brindará los siguientes servicios:

Consulta de Recursos Humanos, de Software y Hardware que se

encuentran disponibles para la asignación de proyectos.

Solicitud de Recursos Informáticos y Humanos, cuando no existe

disponibilidad en la organización.

Page 49: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

49

Elaboración del Plan Técnico

Elaboración y Visualización del cronograma inicial del Proyecto

Consulta del Presupuesto para la implementación del proyecto

aceptado, lo que incluye transferencia de dinero entre los proyectos

de las mimas áreas, si su presupuesto pasa de lo proyectado.

Al recibir el estatus del proyecto por parte del Módulo de Aprobación

del Presupuesto se definirá el estado adecuado al proyecto para

definir que esta en curso.

Para la utilización de estas aplicaciones debe tener el rol necesario

para poder tener acceso a dichas interfaces.

2.2 MODELO ENTIDAD RELACION

2.2.1 Análisis del Modelo Entidad Relación.

El modelo entidad relación correspondiente al Módulo a

implementar contendrá las siguientes estructuras a detallar:

Page 50: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

50

GPP_ACTIVIDADES

La estructura permitirá describir las actividades principales

que se deben llevar a cabo para la implementación del

proyecto, así como también el tiempo estimado de

implementación del mismo, por ejemplo, las fases de un

proyecto como lo son el análisis, desarrollo, puesta en

marcha, etc..

A continuación se citarán los campos que contendrá la

estructura:

CAMPO DESCRIPCION

CODIGO_ACTIVIDAD Es un secuencial dependiendo del departamento

ACTIVIDAD_PROYECTO

Este campo contiene el secuencial de las actividades de un proyecto

CODIGO_PROYECTO

Este campo contiene el código del proyecto, en el cual esta ingresando las actividades

CODIGO_ESTADO

Este campo contiene el código del estado de la actividad, si esta realizada o no

Page 51: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

51

DESCRIPCION_ACTIVIDAD Este campo contiene el nombre de la actividad o hito

ACTIVIDAD_PREDECESORA Este campo contiene el código de la actividad predecesora

ACTIVIDAD_HITO Este campo nos indica si la actividad es un Hito o no.

FECHA_INICIAL_REAL

Este campo es la fecha de inicio de una actividad este dato no es ingresado por usuario sino es el dato real de la iniciación de la actividad

FECHA_FINAL_REAL

Este campo es la fecha de final de una actividad este dato no es ingresado por usuario sino es el dato real de la finalización de la actividad

TIEMPO_ACTIVIDAD

Este campo es el tiempo que se demora en efectuar determinada actividad es un dato real no es ingresado por un usuario

FECHA_INICIAL_ESTIMADA

Este dato es ingresado por el usuario es un dato aproximado cuando empezará una actividad se lo maneja por un margen de error humano

FECHA_FINAL_ESTIMADA

Este dato es ingresado por el usuario es un dato aproximado cuando culminará una actividad se lo maneja por un margen de error humano

TIEMPO_ESTIMADO

Este dato es el tiempo que se podrá demorar una actividad esto lo ingresa el usuario

OBSERVACION

Es para agregar algún comentario relevante de alguna actividad o un hito

ASIGNACION_ACTIVIDAD

Este campo nos indicará que grupo hizo el ultimo cambio al registro

PARTIC_ACTIVIDAD

Este campo contendrá a todos los recursos humanos que están asignados a esa actividad

Page 52: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

52

GPP_TIPO_PROYECTO

La estructura permitirá describir el tipo de proyecto que se

este implementando para las diferentes áreas o un proyecto

especifico.

A continuación se citarán los campos que contendrá la

estructura:

CAMPO DESCRIPCION

CODIGO_TIPO_PROYECTO Este campo contiene el código del tipo de proyecto

CODIGO_ESTADO

Este campo contiene el código del estado del tipo de proyecto

DESCRIPCION

Este campo contiene la descripción del tipo de proyecto

Page 53: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

53

GPP_PRIVILEGIOS

La estructura permitirá obtener los privilegios que contiene

cada usuario.

A continuación se citarán los campos que contendrá la

estructura:

CAMPO DESCRIPCION

CODIGO_PRIVILEGIO

Este campo contiene el código del privilegio que tiene asignado un usuario

DESCRIPCION

Este campo contiene la descripción de los privilegios que tiene un usuario

VALOR_PRIVILEGIO

Este campo tiene el valor de los privilegios asignados a un usuario

GPP_CARACERISTICAS_PROYECTOS

La estructura permitirá obtener las características del

proyecto y los conocimientos aplicados para poder

desarrollar el proyecto.

Page 54: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

54

A continuación se citarán los campos que contendrá la

estructura:

CAMPO DESCRIPCION

CODIGO_CARACTERISTICA_PROYECTO

Este campo contiene el código de la característica del proyecto

CODIGO_PROYECTO

Este campo contendrá el código del proyecto el cual es recibido por la tabla gen_proyectos.

DESCRIPCION_RECURSO

Este campo contiene los recursos aplicados para este proyecto.

CONOCIMIENTO_1

Este campo almacenará el perfil en que fue desarrollado el proyecto.

CONOCIMIENTO_2

Este campo almacenará el perfil en que fue desarrollado el proyecto.

CONOCIMIENTO_3

Este campo almacenará el perfil en que fue desarrollado el proyecto.

CONOCIMIENTO_4

Este campo almacenará el perfil en que fue desarrollado el proyecto.

MGI_EQUIPOS

La estructura permitirá registrar y llevar un control de los

equipos existentes en la organización los cuales son usados

para la elaboración de proyectos.

Page 55: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

55

A continuación se citarán los campos que contendrá la

estructura:

CAMPO DESCRIPCION

CODIGO_EQUIPO Este campo contiene el código del equipo

DESCRIPCION

Este campo contiene la descripción detallada del equipo hardware.

CODIGO_ESTADO

Este campo contiene el código del estado del equipo; es para catalogarlo como disponible o no, según su estado.

FECHA_INGRESO Este campo contiene la fecha de ingreso de un equipo.

OBSERVACION

Este campo contiene alguna observación del equipo ya sea si puedes estar sujeto alguna garantía por contrato.

CODIGO_SUB_TIPO_SERVICIO

Este campo contiene el código del subtipo servicio el cual se encuentra relacionado a la tabla GPC_SUB_TIPO_SERVICIO.

MGI_SOFTWARE

La estructura permitirá registrar y llevar un control de las

aplicaciones e instaladores existentes en la organización los

cuales son usados para la elaboración de proyectos.

A continuación se citarán los campos que contendrá la

estructura:

Page 56: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

56

CAMPO DESCRIPCION

CODIGO_SOFTWARE Este campo contiene el código del software.

DESCRIPCION

Este campo contiene la descripción detallada del software.

FECHA_INGRESO Este campo contiene la fecha de ingreso de un software.

CODIGO_ESTADO

Este campo contiene el código del estado del software; es para catalogarlo como disponible o no, según su estado.

CODIGO_SUB_TIPO_SERVICIO

Este campo contiene el código del subtipo servicio el cual se encuentra relacionado a la tabla GPC_SUB_TIPO_SERVICIO.

MGI_ASIGNACION

La estructura permitirá registrar todos los equipos y software

que están asignados a un proyecto.

A continuación se citarán los campos que contendrá la

estructura:

Page 57: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

57

CAMPO DESCRIPCION

CODIGO_ASIGNACION Este campo contiene el código de la asignación.

CODIGO_PROYECTO

Este campo contiene el código del proyecto que esta relacionada con la tabla GEN_PROYECTOS.

CODIGO_EQUIPO

Este campo contiene el código de equipo que fue asignado al proyecto en algún momento.

CODIGO_SOFTWARE

Este campo contiene el código del software que fue asignado al proyecto en algún momento.

CODIGO_ESTADO

Este campo contiene el código del estado de la asignación; es para catalogarlo como disponible o no según su estado.

FECHA_ASIGNACION Este campo contiene la fecha de asignación del proyecto.

A continuación se muestra el Modelo Entidad Relación de manera

general:

GPP_ACTIVIDADES

GPP_PRIVILEGIO

GPP_DIMENSION

GPP_DETALLE_ACTIVI_RECU

GPP_RECURSO_ASIGNADO

GPP_SOLICITUD_RECURSO

GPP_ESTADO_ACTIVIDAD

GPP_TIPO_RECURSO

GEN_PROYECTOS

CLC_PARTICIPANTE

GPP_DOCUMENTACION

Page 58: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

58

Modelo Entidad Relación – Inicial

Este MER Inicial es con el cual se comenzó a desarrollar nuestro

módulo, el mismo fue cambiando a lo largo del desarrollo del mismo,

por motivos de integración y duplicidad en la información de las tablas

se fueron reduciendo lo cual será mostrado en la imagen siguiente:

Modelo Entidad Relación – Final

GPP_TIPO_PROYECTO

GEN_ESTADO

GPP_PRIVILEGIO GEN_PROYECTOS

CLC_PARTICIPANTE_PROYECTO GPP_ACTIVIDADES

GPP_CARACTERISTICAS_PROYECTOS

CEH_HISTORICO_HITO

CEH_DET_ACT_RECURSO

MGI_EQUIPOS MGI_SOFTWARE

MGI_ASIGNACION

GPC_SUB_TIPO_SERVICIO

Page 59: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

59

El MER que se visualiza esta seccionado por 2 colores: el primero es el

color negro el cual indica que son las estructuras de nuestro Módulo;

las de color azul indican que son las tablas de los módulos con las

cuáles se interactuará. Se nota la reducción de tablas, las mismas

fueron eliminadas puesto que se presentaban problemas por la

duplicidad de datos a nivel de la Base de Datos.

Para mayor detalle acerca del Modelo Entidad Relación ver Anexo 1

2.3 CASOS DE USO

Un diagrama de Casos de Uso nos permitirá mostrar las diversas

secuencias de acciones, que el módulo realiza para obtener un resultado

útil para el usuario.

Actores que intervienen

Casos de uso – Actores de los casos de Uso

Líder de Proyecto

Gerente de Proyecto

Actores externos

Page 60: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

60

Asignación de Líderes

Asignación de Líderes del Proyecto.-

En este caso de uso se muestra al Gerente de Proyecto (actor), quien va

a asignar un líder SIS a un Proyecto determinado.

En el gráfico que se muestra a continuación se verán los tres procesos

involucrados:

Caso de uso 1 – Asignación de Líderes

Nombre: Asignación de Lideres

Descripción: Permite al gerente seleccionar los posibles lideres de proyectos donde se escogerá el mas idóneo para llevar a cabo el control del mismo, esta información se lo obtendrá del Módulo de Control de Líderes y Colaboradores.

Actores:1 Gerente de Proyecto (Principal)

Selecciona

r líder SIS

Bajar

DDF

Gerente de

Proyecto

Módulo de Control de

Líderes y

Colaboradores

Page 61: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

61

Módulo de Control de Líderes y Colaboradores (Secundarios)

Precondiciones: El gerente baja el DDF y analiza su contenido, por medio de una interfaz selecciona un líder del modulo de Control de lideres y colaboradores;

Flujo Normal: 1. El sistema de manera grafica muestra el nombre y código del

proyecto. En una matriz. 2. Al momento de hacer clic en el nombre del proyecto se le

mostrará la opción para bajar el DDF de forma impresa o digital.

3. El sistema le proporciona al usuario un listado de todos los líderes de proyecto que tiene la empresa.

4. El usuario selecciona el líder y selecciona los proyectos que se le va asignar al líder.

5. El sistema realiza la lógica de negocio estandarizada al momento de asignarle un proyecto a un líder.

1. El sistema si la asignación del líder no cumple con la lógica del negocio se presentara un mensaje el cual indique que escoja otro líder

Poscondiciones: El líder del proyecto ya fue asignado.

Revisión del DDF

Este caso fue implementado para que el actor verifique los datos y

procesos mencionados dentro de un proyecto por medio del DDF.

Caso de uso 2 – Revisión

Revisión DDF

Líder de Proyecto

Page 62: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

62

Nombre: Revisión del DDF

Descripción: Permite al líder de proyecto revisar el DDF (Documento de Definiciones Funcionales) y darle el visto bueno para seguir con el análisis del requerimiento solicitado.

Actores: Líder de proyectos.

Precondiciones: El líder de proyectos verifica el DDF para indicar si se debe realizar algún cambio o mejorar el DDF planteado.

Flujo Normal:

1. El sistema le brinda por medio de interfaz todos los proyectos que le fueron asignados.

2. El líder le da clic en nombre del proyecto y se le abrirá el DDF o se lo podrá descargar, el sistema hace las gestiones para ver los privilegios que tiene el usuario que desea descargar el archivo.

3. El líder analiza el DDF

Flujo Alternativo:

1. El DDF esta incompleto

Poscondiciones: El líder elabora el plan técnico.

Elaboración de Cronograma Estimado

Este caso fue implementado para la elaboración del cronograma con la

información necesaria para desarrollar el proyecto, esto se realiza

mediante la revisión del DDF que fue previamente revisado en el caso

de uso Revisión de DDF.

Page 63: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

63

Caso de uso 3 – Cronograma Estimado

Nombre: Elaboración de Cronograma Estimado

Descripción: Líder del proyecto efectúa el cronograma estimado para el proyecto.

Actor: Líder de Proyecto

Precondiciones: El DDF debió ser aprobado previamente por el líder del proyecto

Flujo Normal: 1. El actor elabora el cronograma estimado. 2. El sistema le brinda al actor una interfaz donde él

podrá almacenar los tiempos estipulados a desarrollarse el proyecto.

3. Al momento de ingresar cada actividad correspondiente a un proyecto el sistema realiza la lógica del negocio para verificar los datos antes de ser almacenado en la Base.

Flujo Alternativo:

1. El sistema le pide al usuario ingresar bien los datos ya que hay inconsistencia en alguno de ellos.

Poscondiciones: Definir las fases.

Elaboración de Cronograma

Estimado

<<include>>

Elaborar

Cronogram

a

Revisión

DDF

Líder de

Proyecto

Page 64: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

64

Definir Fases dentro del Cronograma

Este caso lo usa el líder del proyecto para almacenar las fases del

cronograma usando la información almacenada con anterioridad en el

caso de Elaborar Cronograma.

Caso de uso 4 – Fases del Cronograma

Nombre: Definir fases dentro del Cronograma

Descripción: Permite al actor definir las fases dentro de un cronograma para que esta información sea utilizada para los siguientes procesos del módulo.

Actores: Líder del Proyecto

Precondiciones: El líder del proyecto definirá las fases que se van a incluir

Definir Fases dentro del

Cronograma

<<Include>>

Definir

fases del

cronograma

Elaborar

Cronogram

a

Líder de

Proyecto

Page 65: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

65

en el proyecto

Flujo Normal:

1. El actor recibirá de manera grafica el nombre del Proyecto.

2. El sistema le brinda de forma grafica los campos que debe ingresar las fases.

3. La manera que se tiene para diferenciar que es una fases es que las fases se las considera como hito.

4. El sistema guarda la información al momento que el actor presiona Enter o presiona el botón Guardar

Flujo Alternativo:

1. El sistema verifica si no ha ingresado ninguna fase el actor, en este caso se le notificara al actor que ingrese las fases del proyecto

Poscondiciones: Fases definidas

Definir Actividades dentro del Cronograma

Se utiliza este caso para definir las actividades que llevará un

cronograma la información necesaria para poder realizar esto es el

código del proyecto y tener previamente definido las fases del

cronograma.

Page 66: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

66

Definir Actividades dentro del

Cronograma

<<include>>

Caso de uso 5 – Actividades del Cronograma

Nombre: Definir Actividades dentro del Cronograma

Descripción: Permite al actor elaborar las actividades que incluyen en el cronograma definiendo como fases las actividades que se las consideran como hitos.

Actores: Líder del Proyecto

Precondiciones: El líder del proyecto definirá las actividades que van a efectuarse para poder llegar a cumplir con el proyecto asignado al líder del proyecto.

Flujo Normal:

1. El actor recibirá de manera grafica el nombre del Proyecto.

2. El sistema le genera una matriz con todas las actividades ya asignadas para ese proyecto; si desea continuar asignándole actividades a un proyecto la cual se podrá hacer en la fila adicional que el sistema le brindará.

3. El actor deberá ingresar datos en la fila vacía, presiona enter.

Líder de

Proyecto

Definir

actividades

del

cronograma

Definir

fases del

cronograma

Page 67: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

67

Envió cronograma estimado al

Gerente

4. El sistema hace las gestiones para poder ingresar los datos en la base, la cual es ejecuta por la regla del negocio.

5. El sistema realiza una consulta al actor si desea guardar los datos.

6. Realiza un Commit en la base de datos.

Flujo Alternativo:

1. El sistema realiza un Rollback.

Poscondiciones: Actividades definidas

Envió cronograma estimado al Gerente

Este caso lo utiliza el líder del proyecto para poder enviarle el

cronograma estimado al Gerente de Proyecto; la información que el

necesita, es tener asignado los tiempos a las Fases y Actividades del

proyecto del cronograma.

Caso de uso 6 – Envío del Cronograma

Líder de

Proyecto

Gerente de

Proyecto

Envió de

cronograma

estimado

Revisión DDF

Asignar tiempo a las

fases y actividades

Page 68: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

68

Nombre: Envió cronograma estimado al Gerente

Descripción: Permite al actor principal enviare el cronograma estimado por medio del sistema al actor secundario.

Actores: Líder del Proyecto (Actor Principal) Gerente de proyecto (Actor secundario)

Precondiciones: El líder del proyecto cuando haya terminado de asignar los tiempos a las actividades y fases deberá enviar el cronograma al gerente de Proyecto.

Flujo Normal: 1. El actor principal ingresa el código del proyecto y presiona

el botón generar 2. El sistema le muestra de manera visual el cronograma. 3. El actor principal presiona el botón enviar 4. El sistema envía el cronograma estimado al Gerente de

Proyecto

Flujo Alternativo:

1. El sistema verifica si al momento de ejecutar la acción de enviar el cronograma se encuentre seleccionado el cronograma, si no es así, el sistema le envía una alerta al actor.

Poscondiciones: cronograma enviado

Aprobar el Plan Técnico por Líder SIS

Este caso se lo efectúa para poder definir los recursos a utilizar en el

proyecto, esto será el recurso Humano e Informático en el plan técnico.

Page 69: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

69

Caso de uso 7 – Elaboración Plan Técnico por Líder SIS

Nombre: Aprobación del Plan Técnico por Líder SIS

Descripción: Permite al actor que en este caso es el líder del proyecto a revisar el plan técnico en el cual incluyen en el área la solicitud de recursos humano e Informáticos que va a ser usado en un determinado proyecto.

Actores: Líder del Proyecto

Precondiciones: El líder del proyecto ya debió haber aprobado el DDF recibido para poder pasar a esta fase del modulo.

Flujo Normal: 1. El actor principal selecciona el área. 2. El sistema presenta por medio de una interfaz la matriz

donde están todos los proyectos de esa área con su plan técnico y el estado del plan técnico.

3. El actor selecciona el estado que desea darle al plan técnico y presiona el botón OK.

4. El actor hace un clic encima del estado.

Aprobar el Plan Técnico por Líder SIS

<<include>>

Líder de

Proyecto

Recibe el

Plan Técnico

Aprobar el

Plan Técnico

Revisión

DDF

Page 70: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

70

5. El sistema realiza la gestión de cambiar el estado al plan técnico.

6. EL sistema llama a la matriz ya con el nuevo estado asignado por el actor.

Flujo Alternativo:

1. El actor aprueba con un estado que no es Aprobado.

Poscondiciones: Fue aprobado el plan Técnico, notificar si hay disponibilidad de presupuesto

Verificar Presupuesto

En este caso de uso se notificara al actor después de haber procesado

el plan técnico si este tiene el presupuesto correcto o si el presupuesto

excede a lo estipulado en las normativas del modulo Módulo de Control

Presupuesto y Costos del Proyecto

Caso de uso 8 – Verificar Presupuesto

Líder de

Proyecto

Verificar

Presupuesto

Módulo de Control

Presupuesto y Costos del

Proyecto

Page 71: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

71

Nombre: Verificar Presupuesto

Descripción: Permite al actor saber por medio de un mensaje si este proyecto esta en los rangos predeterminados para asignarle el presupuesto o se excede del valor.

Actores: Líder del Proyecto (Actor Principal) Módulo de Control Presupuesto y Costos del Proyecto (Actor Secundario)

Precondiciones: El líder debió haber pasado por el caso de uso de Elaboración del Plan Técnico por Líder SIS sin ninguna novedad para que este caso lo pueda analizar.

Flujo Normal:

1. El actor selecciona el botón Presupuesto 2. El sistema va a verificar los valores para el presupuesto del

proyecto

3. El sistema le notifica que si hay presupuesto disponible

Flujo Alternativo:

1. El sistema verifica y si no hay presupuesto, el sistema generará una interfaz grafica indicándole que no hay presupuesto disponible

Poscondiciones: Según las salidas de flujo podrá ir al envió del plan técnico o aplicar transferencia de dinero

Aplica Transferencia de Dinero

Este caso fue implementado para que el usuario decida consultar si

existe algún modo de llevar que exista disponibilidad de presupuesto de

este proyecto esto se lo consulta al modulo de Control y Costos del

Proyecto.

Page 72: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

72

Aplica Transferencia de

Dinero

<<include>>

Caso de uso 9 – Aplica transferencia de Dinero

Nombre: Aplica Transferencia de Dinero

Descripción: Permite al actor saber si existe la posibilidad de poder seguir con el proyecto ya que sobrepasa el presupuesto si se puede aplicar la transferencia de dinero entre proyectos.

Actores: Líder del Proyecto (Actor Principal) Módulo de Control Presupuesto y Costos del Proyecto (Actor Secundario)

Precondiciones: El sistema le envía una notificación al actor principal, indicándole que no hay presupuesto disponible.

Flujo Normal: 1. El actor presiona le botón de aplicar transferencia. 2. El sistema hace las gestiones para consultar con el modulo

de control de Presupuestos y costos del Proyecto para saber si es aplicable la transferencia

3. El sistema notifica que si es aplicable la transferencia

Aplica

Transferenci

a de Dinero

Verificar

Presupuesto

Líder de

Proyecto Módulo de Control

Presupuesto y Costos del

Proyecto

Page 73: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

73

<<include>>

<<include>>

Envió del Plan Técnico al Gerente

Flujo Alternativo:

1. El sistema verifica y si no hay presupuesto, el sistema regresará al caso de uso Elaboración del Plan Técnico por Líder SIS

Poscondiciones: Según las salidas este podrá ir al envió del plan técnico al gerente o directamente a la elaboración del plan técnico.

Envío del Plan Técnico al Gerente

El líder del proyecto le envía el plan técnico al Gerente sin antes de

haber pasado por la verificación del presupuesto y si no fue aprobada en

esta instancia verificar si este proyecto se le podría aplicar la

transferencia de dinero.

Caso de uso 10 – Envío de Plan Técnico al Gerente

Líder de

Proyecto

Aplica

Transferenci

a de Dinero

Envió Plan

Técnico al

Gerente

Verificar

Presupuesto

<<include>>

<<include>>

Page 74: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

74

Nombre: Envió del Plan Técnico al Gerente

Descripción: Permite al actor enviar el plan técnico ya aprobado, verificado su presupuesto y asignado los recursos al proyecto.

Actores: Líder del Proyecto

Precondiciones: El sistema recibe la información de los casos de Verificar presupuesto y aplicar transferencia de dinero.

Flujo Normal:

1. El actor selecciona el proyecto el cual va a ser enviado al Gerente de Proyecto

2. El sistema genera el código, el nombre y el líder del proyecto en una interfaz grafica.

3. El sistema mostrara los atributos del proyecto su presupuesto, si fue asignada alguna transferencia.

4. El actor deberá presionar el botón enviar plan técnico. 5. El sistema hace las gestiones para enviar esa información al

Gerente de Proyecto.

Flujo Alternativo:

1. El sistema verifica si el proyecto seleccionado ya fue verificado el presupuesto y asignado los recursos necesarios sino el sistema le generará un mensaje indicándole que el proyecto le falta llenar las solicitudes de Recursos humanos e Informáticos.

Poscondiciones: Esta información enviada por el líder deberá ser verificada por el Gerente de Proyecto.

Page 75: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

75

Gerente aprueba Plan Técnico

Gerente Aprueba Plan Técnico

El gerente deberá aprobar el plan técnico, obteniendo la información del

cronograma y del Plan técnico ya realizado por el líder del proyecto.

Caso de uso 11 – Gerente Aprueba Plan Técnico

Nombre: Gerente Aprueba Plan Técnico

Descripción: Permite al actor revisar el cronograma y el plan técnico realizado por el líder del proyecto para analizar y aprobar o no el plan técnico.

Actores: Gerente del Proyecto

Precondiciones: El sistema debió darle la información necesaria del cronograma y el plan técnico realizado por el líder del proyecto.

Gerente de

Proyecto

Envió de

cronograma

estimado

Gerente

Aprueba Plan

Técnico

Envió Plan

Técnico al

Gerente

<<include>

>

<<include>>

Page 76: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

76

Flujo Normal:

1. El actor selecciona el proyecto de una matriz 2. El sistema genera el código, el nombre y el líder del

proyecto 3. El sistema le muestra al actor el plan técnico y el

cronograma elaborado por el líder de proyecto. 4. El gerente aprueba el plan técnico presionando el botón

aprobar.

Flujo Alternativo: Si el Gerente presiona el botón No aprobar el sistema hace las gestione para realizar el caso de uso Elaboración del Plan Técnico por Líder SIS

Poscondiciones: Si el caso termino con el flujo normal este seguirá a selección del recurso información y humano si sale por el flujo alternativo regresa al líder para que este realice el plan técnico.

Selección Recurso Informático

El líder por medio del sistema verificará si el modulo de Módulo de

Gestión de Infraestructura del Proyecto tiene las especificaciones

necesarias de los recursos que necesita para el proyecto.

Page 77: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

77

Selección recurso Informático

Caso de uso 12 – Selección recurso Informático

Nombre: Selección recurso Informático

Descripción: Permite al actor revisar los recursos informáticos que constan con la empresa y si pueden ser asignados al proyecto.

Actores: Líder del Proyecto (Actor principal) Modulo de Gestión de infraestructura del Proyecto (Actor Secundario)

Precondiciones: El gerente aprobó el plan técnico elaborado por el Líder del Proyecto.

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema le da el código, nombre y líder del proyecto 3. El sistema gestiona con el actor secundario para poder

mostrarle de forma visual los recursos informáticos que posee la empresa.

4. El actor principal escoge los recursos que necesita 5. el sistema almacena la información de los recursos

Líder de

Proyecto

<<include>>

Gerente

Aprueba

Plan Técnico

Selección

recurso

Informático

Módulo de Gestión de

Infraestructura del

Proyecto

Page 78: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

78

Selección recurso Humano

seleccionados por el actor.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún; si el sistema verificará si aun no se han escogido los recursos si es así no se guardará la información que relacione el proyecto con el recurso.

Poscondiciones: Si el recurso asignado por el actor al proyecto esta disponible, asigno el recurso informático, si no esta disponible hacer las gestiones necesarias para emitir solicitud de recurso informático.

Selección Recurso Humano

El líder por medio del sistema verificará si el modulo de Módulo de

Control de Líderes y Colaboradores tiene las especificaciones

necesarias de los recursos que necesita para el proyecto.

Caso de uso 13 – Selección recurso Humano

<<include>>

Líder de

Proyecto

Gerente

Aprueba

Plan Técnico

Selección

recurso

Humano Módulo de Control de

Líderes y Colaboradores

Page 79: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

79

Nombre: Selección recurso Humano

Descripción: Permite al actor revisar los recursos humano que constan con la empresa y si pueden ser asignados al proyecto.

Actores: Líder del Proyecto (Actor principal) Módulo de Control de Líderes y Colaboradores (Actor Secundario)

Precondiciones: El gerente aprobó el plan técnico elaborado por el Líder del Proyecto.

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema le da el código, nombre y líder del proyecto 3. El actor efectúa un filtro para poder ver la información que

el desea, es decir, con el perfil que el desee. 4. El sistema gestiona con el actor secundario para poder

mostrarle de forma visual los recursos humanos idóneas. 5. El actor principal escoge los recursos que necesita 6. El sistema almacena la información de los recursos

seleccionados por el actor.

Flujo Alternativo: 1. Si el líder no selecciona un proyecto no aprobado por el

gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún; si el sistema verificará si aun no se han escogido los recursos humanos si es así no se guardará la información que relacione el proyecto con el recurso.

Poscondiciones: El recurso humano esta seleccionado.

Emitir solicitud de recurso Informático nuevo

Este caso se lo realiza ya que no constamos con la infraestructura

necesaria para hacer el proyecto o debemos hacerle un update a un

equipo o algún software.

Page 80: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

80

Emitir solicitud de recurso

informático nuevo o para

mejoras

Caso de uso 14 – Emitir solicitud

Nombre: Emitir solicitud de recurso Informático nuevo

Descripción: Permite al actor enviarle al modulo de Gestión de Infraestructura del Proyecto una solicitud para realizar un update o upgrade a un equipo o alguna aplicación necesaria para desarrollar el proyecto.

Actores: Líder del Proyecto (Actor principal) Módulo de Gestión de Infraestructura del Proyecto (Actor Secundario)

Precondiciones: No existe un equipo o una aplicación para desarrollar el proyecto, o se necesita realizar alguna mejora en un equipo existente.

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema genera el nombre, código y líder del proyecto.

Líder de

Proyecto

Emitir solicitud de

Recurso

Informático

nuevo

Selección

recurso

Informático

Módulo de Gestión de

Infraestructura del

Proyecto

<<include>>

Page 81: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

81

3. El sistema por medio de una interfaz grafica le muestra los campos a llenar

4. El actor principal llena los campos con los recursos informáticos que desea adquirir

5. El sistema emite la solicitud al actor secundario.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún.

Poscondiciones: La solicitud fue emitida al Módulo de Gestión de Infraestructura del Proyecto.

Asignación de Recurso Informático

En este caso se realiza la asignación definitiva de los recursos

informáticos al proyecto

Caso de uso 15 – Asigno recurso Informático

Asigno recurso Informático

Líder de

Proyecto

<<include>>

Emitir solicitud de

Recurso

Informático

nuevo o para

mejoras Selección

recurso

Informático

Asigno

Recurso

Informático <<include>>

Page 82: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

82

Nombre: Asigno recurso Informático

Descripción: Permite al actor definir a todos los recursos que ya fueron entregados al proyecto y gestionados con el modulo de infraestructura.

Actores: Líder del Proyecto (Actor principal)

Precondiciones: Si hay disponibilidad de los recursos informáticos; o ya fue emitida la solicitud de recurso informático nuevo o mejora.

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema genera el nombre, código y líder del proyecto. 3. El sistema por medio de una interfaz visual muestra la relación

que existe entre los recursos informáticos y el proyecto el cual ya le pertenece

4. El actor verifica los datos y presiona el botón continuar 5. El sistema almacena la información.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún o la solicitud todavía no es emitida.

Poscondiciones: Elaborar el cronograma final en base al estimado.

Verificar disponibilidad de Recurso Humano

El líder debe saber cuando esta libre un colaborador o un participante de

proyecto, toma información del caso de uso de Selección de Recurso

Humano.

Page 83: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

83

Caso de uso 16 – Verificar disponibilidad del Recurso Humano

Nombre: Verificar disponibilidad de Recurso Humano

Descripción: Permite al actor verificar de los recursos humanos que el selecciono cual de ellos esta disponible o no.

Actores: Líder del Proyecto (Actor principal)

Precondiciones: EL caso de uso Selección del Recurso Humano

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema genera el nombre, código y líder del proyecto. 3. El sistema de manera visual le muestra al actor el personal

que están disponible y el personal que no esta disponible.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún.

Poscondiciones: Si el recurso esta disponible irá a asignación de recurso humano y si no esta disponible tendrá que realizar una solicitud de recurso humano.

Verificar

disponibilidad

de recurso

humano Líder de

Proyecto

Page 84: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

84

Solicitud de Recurso Humano

Solicitud de Recurso Humano

El Líder del proyecto le enviara al Módulo de Control de Líderes y

Colaboradores el perfil de las personas que necesitan integrarlas al

proyecto.

Caso de uso 17 – Solicitud de Recurso Humano

Nombre: Solicitud de Recurso Humano

Descripción: Permite al actor solicitar por medio del sistema al modulo de control de lideres y Colaboradores el personal que se necesita para comenzar a realizar el proyecto con los respectivos perfiles.

Actores: Líder del Proyecto (Actor principal) Módulo de Control de Líderes y Colaboradores (Actor secundario)

Precondiciones: El caso de uso Verificar disponibilidad de Recurso Humano

Módulo de Control de

Líderes y Colaboradores

Verificar

disponibilidad

de recurso

humano

Solicitud

Recurso

Humano

<<include>>

Líder de

Proyecto

Page 85: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

85

Flujo Normal:

1. El actor principal buscar proyecto y lo selecciona. 2. El sistema genera el nombre, código y líder del proyecto. 3. el sistema le brinda una interfaz al actor principal 4. EL actor principal digitara a las personas que necesita ese

proyecto con sus respectivos perfiles y porcentajes de conocimiento.

5. El sistema almacena la información y gestiona para enviársela al actor secundario los datos ingresados por el actor principal.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún; o todavía esta en una fase previa a esta.

Poscondiciones: Va a ir al caso de uso Selección de Recurso Humano para que el modulo haga las gestiones pertinentes para contratar el personal.

Asignación de Recurso Humano

En esta etapa el líder ya tiene definido las personas que participaran en

el proyecto por que están disponibles.

Caso de uso 18 – Asignación de Recurso Humano

Asignación de Recurso Humano

Líder de

Proyecto

Verificar

disponibilidad

de recurso

humano

Asignación

Recurso

Humano

<<Include>> Módulo de Control de

Líderes y Colaboradores

Page 86: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

86

Nombre: Asignación de Recurso Humano

Descripción: Permite al actor tener definido todas las personas que van a entrar en el proyecto

Actores: Líder del Proyecto (Actor principal) Módulo de Control de Líderes y Colaboradores (Actor secundario)

Precondiciones: EL caso de uso Verificar disponibilidad de Recurso Humano

Flujo Normal:

1. El actor principal busca el proyecto y lo selecciona. 2. El sistema genera el nombre, código y líder del proyecto. 3. El sistema por medio de una interfaz visual mostrara todas las

personas que estarán en el proyecto. 4. El sistema guarda y almacena la relación entre el proyecto y el

recurso humano.

Flujo Alternativo:

1. Si el líder no selecciona un proyecto no aprobado por el gerente, el sistema le enviara una alerta indicando que no ha sido aprobado aún; o todavía esta en una fase previa a esta.

Poscondiciones: Elaborará el cronograma final en base al estimado.

Configuraciones Generales

El Gerente de Sistemas realiza las configuraciones necesarias para

tener la cantidad máxima de proyectos que se le puede asignar a un

líder y el peso máximo que puede tener un líder.

Page 87: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

87

Configuraciones Generales

Caso de uso 19 – Configuraciones Generales

Nombre: Configuraciones Generales

Descripción: Permite al actor definir las reglas de negocios para poder asignarle proyectos a los lideres.

Actores: Gerente de Proyecto

Precondiciones: EL caso de uso debe verificar que es un gerente de proyecto para poder realizar estos ingresos a la base de datos.

Flujo Normal: 1. El actor hace clic en el botón Generar. 2. El sistema genera la matriz donde se encuentra la

Cantidad de Proyectos, Prioridad y Peso del Proyecto actual.

3. El actor si desea cambiar estas configuraciones deberá actualizar el campo Cantidad.

4. El actor debe presionar Enter o el Botón Guardar.

Gerente de

Proyecto Verificar

Prioridad de la

Empresa

Ingresar Cantidad

Máxima

Cantidad

<<include>>

Asignar el

Peso a

Proyecto

Page 88: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

88

5. El sistema hace las gestiones para actualizar los datos, los otros campos se actualizan con referencia de la cantidad de Proyecto y la prioridad más alta que se encuentra en la tabla Gen_proyectos.

Flujo Alternativo:

1. No se cambia los datos ya existentes en la tabla.

Poscondiciones: Elaborará el cronograma final en base al estimado.

2.4 DIAGRAMAS DE PROCESOS

Diagrama de procesos es una herramienta que permite visualizar un

sistema como una red de procesos funcionales, conectados entre sí por

conductos y almacenes de datos. Siendo éste, una de las herramientas

más comúnmente usadas, sobre todo por sistemas operacionales en los

cuales las funciones del sistema son de gran importancia y son más

complejos que los datos que éste maneja.

Especificaciones:

Flecha. Indica el sentido y trayectoria del proceso de información o

tarea.

Rectángulo. Se usa para representar un evento o proceso determinado.

Rombo. Se utiliza para representar una condición. Normalmente el flujo

de información entra por arriba y sale por un lado si la condición se

cumple o sale por el lado opuesto si la condición no se cumple.

Page 89: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

89

INICIO

Presentar Nombre y código de

Proyecto

DeseaDescargar

DDF

Descargar DDF

No

Si

Elegir Lider SIS

No

Si

Guardar Datos en la

Base

FIN

Tiene

Permiso Descargar

Si

No

Líder Es Apto

Círculo. Representa un punto de conexión entre procesos. Se utiliza

cuando es necesario dividir un diagrama de flujo en varias partes.

Diagrama de procesos 1: Asignación de líderes

Page 90: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

90

INICIO

Seleccionar

Proyecto

Descargar

DDF

Aprobar

DDF

Si

Cambiar

estado al

DDF

FINNo

Diagrama de procesos 2: Revisión DDF

INICIO

Seleccionar

Proyecto

Asignar

Tiempo

FIN

Diagrama de procesos 3: Elaboración Cronograma Estimado

Page 91: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

91

INICIO

Seleccionar

Proyecto

Elaborar

Fases

Desea

Guardar

FIN

Si

No

Diagrama de procesos 4: Fases del Cronograma

Page 92: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

92

INICIO

Seleccionar

Proyecto

Ingresar

Datos

Desea

Guardar

Si

No

Consultar

Regla de

Negocio

Desea

Guardar

Si

Guardar en

la Base

No

Ingresar

Otra

Actividad

No

1

1

FIN

Si

Diagrama de procesos 5: Definir Actividades dentro del Cronograma

Page 93: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

93

INICIO

Seleccionar

Proyecto

Enviar

Cronograma

Gerente

Recibe

FIN

Diagrama de procesos 6: Enviar Cronograma al Gerente

INICIO

Seleccionar

Proyecto

Si

Aprobar

Plan

Técnico

FIN

No

Diagrama de procesos 7: Aprobación del plan técnico por líder SIS

Page 94: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

94

INICIO

Seleccionar

Proyecto

Verificar

Presupuesto

Presupuesto

disponible

FIN

Si

No

Presupuesto

Disponible

Diagrama de procesos 8: Verificar Presupuesto

Page 95: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

95

INICIO

Seleccionar

Proyecto

Aplicar

Transferencia

Apto para

transferencia

Realizar

Transferencia

Si

Desea

salir

No

Si

FIN

Diagrama de procesos 9: Aplica transferencia de dinero

INICIO

Seleccionar

Proyecto

Enviar Plan

Tècnico

FIN

Diagrama de procesos 10: Envió plan técnico al Gerente

Page 96: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

96

Diagrama de procesos 11: Gerente aprueba plan técnico

INICIO

Seleccionar

Proyecto

Seleccionar los

Recursos

Informaticos

Desea

Guardar

No

Si

Almacenar

en la Base

FIN

Diagrama de procesos 12: Selección recurso Informático

INICIO

Seleccionar Proyecto

Revisar Plan tècnico y

cronograma

FIN

Aprobar Plan Tècnico

Si

No

Page 97: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

97

INICIO

Seleccionar

Proyecto

Seleccionar el

perfil de los

participante

Ingresar el

número de

participantes

Desea seleccionar

otros participantes

Si

No

Guardar

datos en la

Base

Desea

Seleccionar

otro proyecto

FIN

Si

No

Diagrama de procesos 13: Selección recurso Humano

Page 98: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

98

INICIO

Seleccionar

Proyecto

Ingresar datos

para emitir

solicitud

Emitir

Solicitud

Enviar

olicitud

Si

No

Desea

salir

No

FINSi

Diagrama de procesos 14: Emitir Solicitud

INICIO

Seleccionar

Proyecto

Proyecto

Aprobado por

Gerente

No

Asignar

Recursos

Si

FIN

Diagrama de procesos 15: Asignación Recurso Informáticos

Page 99: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

99

INICIO

Seleccionar

Proyecto

Seleccionar

los RRHH

no asignado

FIN

Diagrama de procesos 16: Verificar disponibilidad recurso Humano

INICIO

Seleccionar

Proyecto

Seleccionar

Perfil

Seleccionar

el número

de RRHH

Existe otro

perfil para

proyecto

No

Si

Enviar

Solicitud

FIN

Diagrama de procesos 17: Solicitud Recurso Humano

Page 100: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

100

Asignar

Recurso a

otro proyecto

INICIO

Seleccionar

Proyecto

Seleccionar

RRHH al

proyecto

Guardar

relaciòn

Si

FIN

No

Diagrama de procesos 18: Asignación de Recurso Humano

INICIO

Generar

Configuraciones

generales actuales

Cambiar el registro

de Proyecto máximo

asignados a lideres

Guardar

cambios

No

Guardar

cambios

Si

FIN

Diagrama de procesos 19: Configuraciones Generales

Page 101: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

101

2.5 DIAGRAMA DE FLUJO DE DATOS

Durante la etapa de análisis se obtuvo el DFD (Diagrama de Flujo de

Datos), el cual se encargará de definir paso a paso todas las actividades

que se llevarán a cabo a lo largo de la implementación del proyecto y

las que deberán interactuar con los demás módulos.

A continuación se muestra, de manera general y breve, el diagrama de

flujo de datos.

GERENTE

ATIENDE

REQUERIMIENTO

GERENTE ASIGNA

LÍDER SIS Y

CONSULTA LÍDER

PROYECTO

ENVÍO Y REVISIÓN

DE DDF POR

LÍDER SIS

LÍDER SIS

ELLABORA PLAN

TÉCNICO Y

CRONOGRAMA

DEFINIR FASES

DENTRO DEL

CRONOGRAMA

DEFINIR

ACTIVIDADES

DENTRO DEL

CRONOGRAMA

ASIGNAR TIEMPO

A LAS FASES Y

ACTIVIDADES

CRONOGRAMA

PRE-FINALIZADO

DISPONIBILIDAD

RECURSOS

REQUERIMIENTO

ATENDIDO

DDF

REVISADO

IDENTIFICAR

LAS FASES

ACTIVIDADES

DEFINIDAS

TIEMPO

DEFINIDO

PLAN

TÉCNICO

LÍDERES

SELECCIONADOS

O & M

ENVÍA

REQUERIMIENTO

A SISTEMAS

VERIFICAR

PRESUPUESTO

PRESUPUESTO

APROBADO

REVISIÓN CRONOGRAMA

PARA PRESUPUESTO

PRESUPUESTO

NO APROBADO

CAMBIO ESTADO

PROYECTO

ASIGNAR

RECURSO

HUMANO /

INFORMATICO

FASES

DEFINIDAS

GERENTE

REVISA

PLAN

TÉCNICO

PLAN TECNICO

GERENTE

LIDER RECIBE

PLAN TECNICO

ENVIO PLAN

TECNICO

PLAN TECNICO

APROBADO

P. TEC. NO APROBADO

SELECCIONA

RECURSO

SI

ASIGNACIÓN

RECURSO

HUMANO /

INFORMATICO

NO

SOLICITUD

RECURSO

HUMANO E

INFORMÁTICO

RECURSOS

ASIGNADOS

ELABORO

CRONOGRAMA

FINAL EN BASE AL

ESTIMADO

SOLICITUD

APROBADA /

CONTRATO

VENCE

FECHA PLAZO

CAMBIO ESTADO

PROYECTO

Diagrama de Flujo de Datos

Page 102: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

102

Se explica, de manera general, los procesos que se involucran en el

Diagrama de Flujo de Datos.

PROYECTO SELECCIONADO

El Gerente de Proyectos obtiene el proyecto por parte del departamento

O&M, este se encargará de actualizar el proyecto obteniendo el Líder del

Proyecto, para luego realizar la respectiva selección del Líder SIS.

Dicha selección la podrá realizar una vez que se visualice a manera de

reporte los líderes que cumplan con el perfil requerido para dicho

proyecto.

LIDER SIS ELABORA PLAN TECNICO Y CRONOGRAMA ESTIMADO

Líder SIS procederá a realizar el cronograma inicial de trabajo y el Plan

Técnico para poder comenzar con el desarrollo del proyecto requerido

SOLICITUD RECURSO HUMANO E INFORMATICO

Se solicitará mediante interfaz los recursos necesarios para la

elaboración del proyecto.

CONSULTAR PRESUPUESTO

Page 103: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

103

Se consulta la disponibilidad del presupuesto con que cuente el área

solicitante del requerimiento, en caso de que no exista el presupuesto

necesario, se procederá a aplicar la transferencia de dinero de un área a

otra, previa autorización; en caso de que no se apruebe la transferencia

de dinero el líder de Proyecto deberá modificar el Plan Técnico

ajustándolo al presupuesto existente en cada área de la organización.

Cabe tomar en consideración que la elaboración del Plan técnico y el

cronograma deberán ser realizadas en paralelo, es decir, de manera

conjunta.

CRONOGRAMA INICIAL

En este caso, luego que el DDF esté completo, a más de realizar el Plan

Técnico, el Líder SIS elaborará el cronograma estimado en donde

definirá las fases del proyecto y sus correspondientes hitos que

involucran el desarrollo del mismo.

Una vez que se hayan definido dichas actividades se les asignarán el

tiempo de realización (en días) por parte del desarrollador. Tanto el

Cronograma como el Plan Técnico serán emitidos al Gerente de

Proyectos.

Page 104: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

104

ASIGNACION DE RECURSOS

Debido a que el Plan Técnico está aprobado se procederá a la

asignación de recursos sean estos Informáticos o Humano; en caso de

que no exista disponibilidad por parte del mismo, se emitirá una solicitud

correspondiente al recurso humano / recurso informático

Al momento de la asignación del recurso humano se deberá seleccionar

dicho participantes que cumplan con el perfil requerido, en caso de que

dicho recurso no esté disponible (asignado a un proyecto). Una vez

realizada la asignación del recurso informático y humano se elaborará el

cronograma final en base al cronograma inicial.

Para mayor detalle acerca del Diagrama de Flujo de Datos ver

Anexo 2.

Page 105: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

105

CAPÍTULO 3

3 DISEÑO DEL MODELO DE GESTIÓN DE PRE-PROYECTOS

3.1 Descripción de Clases Principales

3.1.1 LiderProyecto

Esta clase servirá para registrar los líderes del proyecto, es decir,

el gerente del área generadora del requerimiento.

LIDERPROYECTO CodigoProyecto Area NombreProyecto Respondable

getArea() setArea(String area) getCodigoProyecto() setCodigoProyecto(Integer codigoProyecto) getNombreProyecto() setNombreProyecto(String nombreProyecto) getRespondable() setRespondable(String respondable)

3.1.1.1 Descripción de los campos

CodigoProyecto: Obtiene el código del proyecto.

Area: Describe el área del proyecto

NombreProyecto: Describe el nombre del proyecto.

Page 106: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

106

Responsable: Describe el nombre del responsable del

área generadora del proyecto.

3.1.1.2 Descripción de funciones y

procedimientos

getArea(): función que obtiene el área al cual pertenece el

proyecto.

setArea(String area): función que recibe como parámetro

el área del proyecto.

getCodigoProyecto(): función que obtiene el código del

proyecto.

setCodigoProyecto(Integer codigoProyecto): función

que recibe como parámetro el código del proyecto.

getNombreProyecto(): función que obtiene el nombre del

proyecto.

setNombreProyecto(String nombreProyecto): función

que recibe como parámetro el nombre del proyecto.

getResponsable(): función que obtiene el código del

responsable del proyecto, es decir, el responsable del área

generadora del proyecto.

Page 107: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

107

setResponsable(String responsable): función que recibe

como parámetro el nombre del responsable del área

generadora del proyecto.

3.1.2 AsignaRecurso

Esta clase servirá para asignar a los recursos (colaboradores) que

participarán en un proyecto, de acuerdo a los conocimientos

escogidos y requeridos por el líder SIS.

ASIGNARECURSO descripcion_area descripcion_proyecto recurso

getDescripcion_area() setDescripcion_area(String descripcion_area) getDescripcion_proyecto() setDescripcion_proyecto(String descripcion_proyecto) getRecurso() setRecurso(String recurso)

3.1.2.1 Descripción de los campos

Descripcion_area: Describe el área al cual pertenece el

proyecto y sobre el cual se asignará el recurso.

Page 108: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

108

Descripcion_proyecto: Describe el proyecto actual

Recurso: identificará la recurso que se va asignar.

3.1.2.2 Descripción de funciones y

procedimientos

getDescripcion_area(): función que obtiene la descripción

del área al que pertenece el proyecto.

setDescripcion_area(String descripcion_area):

función que recibe como parámetro la descripción del área

del proyecto.

getDescripcion_proyecto() : función que obtiene la

descripción del proyecto.

setDescripcion_proyecto(String descripcion_proyecto)

: función que recibe como parámetro la descripción del

proyecto.

GetRecurso() : función que obtiene el recurso que

participará en el proyecto.

setRecurso(String recurso) : función que recibe como

parámetro el recurso que participará en el proyecto.

Page 109: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

109

3.1.3 AsignaInfor

Esta clase servirá para asignar a los recursos informáticos

(hardware y/o software). Estos serán asignados por el Gerente de

Proyectos.

AsignaInfor descripcion_area descripcion_proyecto recurso

getDescripcion_area() setDescripcion_area(String descripcion_area) getDescripcion_proyecto() setDescripcion_proyecto(String descripcion_proyecto) getRecurso() setRecurso(String recurso)

3.1.3.1 Descripción de los campos

Descripcion_area: Describe el área al cual pertenece el

proyecto y sobre el cual se asignará el recurso.

Descripcion_proyecto: Describe el proyecto actual

Recurso: identificará la recurso que se va asignar.

Page 110: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

110

3.1.3.2 Descripción de funciones y

procedimientos

getDescripcion_area(): función que obtiene la descripción

del área al que pertenece el proyecto.

setDescripcion_area(String descripcion_area):

función que recibe como parámetro la descripción del área

del proyecto.

getDescripcion_proyecto() : función que obtiene la

descripción del proyecto.

setDescripcion_proyecto(String descripcion_proyecto)

: función que recibe como parámetro la descripción del

proyecto.

GetRecurso() : función que obtiene el recurso que

participará en el proyecto.

setRecurso(String recurso) : función que recibe como

parámetro el recurso que participará en el proyecto.

Page 111: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

111

3.1.4 AsignaSIS

Esta clase servirá para asignar a los recursos (líderes del

proyecto). Estos serán asignados por el Gerente de Proyectos

AsignaSIS codigoProyecto proyecto areas liderSIS

getAreas() setAreas(String areas) getCodigoProyecto() setCodigoProyecto(Integer codigoProyecto) getLiderSIS() setLiderSIS(String liderSIS) getProyecto() setProyecto(String proyecto)

3.1.4.1 Descripción de los campos

CodigoProyecto: Obtiene el código del proyecto con el

cual se va a realizar la asignación.

Proyecto: Describe el proyecto actual

Áreas: identificará el área al cual se hace referencia.

Recurso: identificará la recurso que se va asignar, en este

caso el líder SIS.

Page 112: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

112

3.1.4.2 Descripción de funciones y

procedimientos

getAreas(): función que obtiene la descripción del área al

que pertenece el proyecto.

setAreas(String areas): función que recibe como

parámetro la descripción del área del proyecto.

getCodigoProyecto(): función que obtiene el código del

proyecto.

setCodigoProyecto(Integer codigoProyecto) : función

que recibe como parámetro el código del proyecto.

getLiderSIS(): función que obtiene el líder que participará

en el proyecto.

setLiderSIS(String liderSIS): función que recibe como

parámetro el líder que participará en el proyecto.

getProyecto(): función que obtiene la descripción del

proyecto.

setProyecto(String proyecto):función que recibe como

parámetro la descripción del proyecto.

Page 113: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

113

3.1.5 Configuración

Esta clase servirá para realizar la configuración de la cantidad

límite de proyectos que se le serán asignados al líder SIS.

Configuracion id_tipo_parametro descripcion_tipo_parametro id_parametro desripcion_parametro peso cantidad prioridad

getCantidad() setCantidad(String cantidad) getPeso() setPeso(String peso) getPrioridad() setPrioridad(Integer prioridad)

3.1.5.1 Descripción de los campos

id_tipo_parametro: es el código del tipo de parámetro se

quiere capturar, ya sea cantidad límite o el peso del

proyecto.

descripcion_tipo_parametro: descripción del tipo de

parámetro

id_parametro: código del parámetro al que se va a

referenciar.

descripcion_parametro: descripción del parámetro.

valor: valor numérico del parámetro

Page 114: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

114

peso: peso que se asignará al líder de proyectos de

acuerdo a la cantidad de proyectos que se le haya

asignado.

cantidad: cantidad de proyectos que se le asignan al

Líder SIS

prioridad: se describe la prioridad del proyecto, es decir, la

necesidad de que se lleve a cabo lo más pronto posible.

3.1.5.2 Descripción de funciones y

procedimientos

getCantidad(): función que obtiene la cantidad de

proyectos que le serán asignados al líder SIS.

setCantidad(String cantidad): función que recibe como

parámetro la cantidad de proyectos que le serán asignados

al líder SIS.

getPeso() : función que obtiene el peso del proyecto que

se le asignó al líder.

setPeso(String peso): función que recibe como parámetro

el peso del proyecto que se le asignó al líder.

getPrioridad() : función que obtiene la prioridad del

proyecto.

Page 115: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

115

setPrioridad(Integer prioridad) : función que recibe como

parámetro la prioridad del proyecto.

3.1.6 DefineProyecto

Esta clase servirá para realizar la configuración de la cantidad

límite de proyectos que se le serán asignados al líder SIS.

DefineProyecto codigo_proy descripcionTipo descripcionProyecto

getCodigo_proy setCodigo_proy(Integer codigo_proy) getDescripcionProyecto() setDescripcionProyecto(String descripcionProyecto) getDescripcionTipo() setDescripcionTipo(String descripcionTipo)

3.1.6.1 Descripción de los campos

codigo_proy: describe el código del proyecto.

descripcionTipo: descripción del tipo de proyecto a

implementarse.

descripcionProyecto: descripción del proyecto.

Page 116: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

116

3.1.6.2 Descripción de funciones y

procedimientos

getCodigo_proy: función que obtiene el código del

proyecto.

setCodigo_proy(Integer codigo_proy): función que

recibe como parámetro el código del proyecto.

getDescripcionProyecto(): función que obtiene la

descripción del proyecto.

setDescripcionProyecto(String descripcionProyecto):

función que recibe como parámetro la descripción del

proyecto.

getDescripcionTipo(): función que obtiene la descripción

del tipo de proyecto a implementarse.

setDescripcionTipo(String descripcionTipo): función

que recibe como parámetro la descripción del tipo de

proyecto a implementarse.

Page 117: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

117

3.1.7 Cronograma

Esta clase servirá para identificar las diferentes actividades e hitos

ingresados al Cronograma por parte del Líder junto con sus

correspondientes tiempos de duración, incluidas las fechas y su

actividad predecesora.

CRONOGRAMA CodigoProyecto codigoArea porcentaje orden cod_actividad actividad hito ls_hito predecesora fechaInicio fechaFin asignacionActividad estado tiempo recurso observación

GetActividad(); setActividad(String actividad) getFechaFin() setFechaFin(Date fechaFin) getFechaInicio() setFechaInicio(Date fechaInicio) getHito() setHito(Boolean hito) getObservacion() setObservacion(String observacion) getOrden() setOrden(Integer orden) getPredecesora() setPredecesora(Integer predecesora) getRecurso() setRecurso(String recurso) getTiempo()

Page 118: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

118

setTiempo(Integer tiempo) getCodigoProyecto() setCodigoProyecto(Integer codigoProyecto) getCod_actividad() setCod_actividad(Integer cod_actividad) getLs_hito() setLs_hito(String ls_hito)

3.1.7.1 Descripción de los campos

CodigoProyecto: código del proyecto actual

CodigoArea: código del área al que pertenece el proyecto.

Porcentaje: porcentaje de avance del proyecto Orden: orden o secuencial de la tabla

Cod_actividad: código de la actividad del proyecto

Actividad: descripción de la actividad.

Hito: valor del hito (boolean).

Ls_hito: valor del hito (String).

Predecesora: actividad que precede o depende de otra

FechaInicio: fecha en la cual inicia la actividad

FechaFin: fecha en la cual finaliza la actividad

AsignacionActividad: grupo q realiza la asignación de

la actividad

Estado: indica el estado de la actividad

Tiempo: indica el tiempo que se tomará en llevar a cabo la

actividad.

Page 119: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

119

Recurso: asesor que llevará a cabo dicha actividad.

Observacion: observación que se desee citar sobre la

actividad que se está ingresando.

3.1.7.2 Descripción de funciones y

procedimientos

GetActividad(): función que obtiene la descripción de la

actividad que se está registrando.

setActividad(String actividad) : función que recibe como

parámetro la descripción de la actividad

getFechaFin() : función que obtiene la fecha fin de la

actividad que se está registrando.

setFechaFin(Date fechaFin): función que recibe como

parámetro la fecha fin de la actividad

getFechaInicio(): función que obtiene la fecha de inicio de

la actividad que se está registrando.

setFechaInicio(Date fechaInicio): función que recibe

como parámetro la fecha de inicio de la actividad

getHito(): función que obtiene si la actividad es hito o no en

valor booleano.

Page 120: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

120

setHito(Boolean hito): función que recibe como parámetro

el hito de la actividad en valor booleano

getObservacion() : función que obtiene la observación de

la actividad.

setObservacion(String observacion): función que recibe

como parámetro la observación adicional a la

actividad.

GetOrden(): función que obtiene el secuencial de la

actividad.

setOrden(Integer orden): función que recibe como

parámetro el secuencial de la actividad.

GetPredecesora(): función que obtiene la actividad.

Predecesora.

setPredecesora(Integer predecesora): función que recibe

como parámetro la actividad predecesora.

GetRecurso() : función que obtiene el recurso de la

actividad.

setRecurso(String recurso) : función que recibe como

parámetro el recurso que participa en la actividad.

GetTiempo(): función que obtiene el tiempo en el que se

llevará a cabo la actividad.

Page 121: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

121

setTiempo(Integer tiempo): función que recibe como

parámetro el tiempo de la actividad.

GetCodigoProyecto() : función que obtiene el código del

proyecto.

setCodigoProyecto(Integer codigoProyecto): función

que recibe como parámetro el código del proyecto.

getCod_actividad(): función que obtiene el código de la

actividad a ser identificada

setCod_actividad(Integer cod_actividad) : función que

recibe como parámetro el código de la actividad.

getLs_hito() : función que obtiene si la actividad es hito o

no en valor String.

setLs_hito(String ls_hito): función que recibe como

parámetro el hito de la actividad en valor String que puede

ser H o A.

3.1.8 Estado

Esta Clase es creada para obtener el detalle de los estados, los

cuales serán utilizados para cambiar el estado del proyecto, se

detallan los campos y las funciones a utilizarse.

Page 122: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

122

ESTADO

Codigo_proy Descripcion_proyecto descripcion_area estado sec

setCodigo_proy(Integer codigo_proy) getCodigo_proy() setDescripcion_proyecto(String descripcion_proyecto) getDescripcion_proyecto() setDescripcion_area(String descripcion_area) getDescripcion_area() setEstado(String estado) getEstado() getSec() setSec(Integer sec)

3.1.8.1 Descripción de los campos

Codigo_proy: Código del Proyecto el cual servirá para

actualizar el estado del proyecto.

Descripcion_proyecto: Describe el proyecto al que se

está referenciando.

Descripcion_area: Describe el área solicitante del

proyecto

Estado: Describe el estado actual del Proyecto

Sec: Identificar el secuencial que se visualiza en pantalla.

Page 123: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

123

3.1.8.2 Descripción de funciones y

procedimientos

getCodigo_proy(): Función que retornará el código del

proyecto.

setCodigo_proy(Integer codigo_proy): Esta función va a

recibir el parámetro del código del proyecto con el cual se

realizará la actualización del estado del proyecto.

getDescripcion_proyecto(): Función que va a devolver al

descripción del proyecto.

setDescripcion_proyecto(String descripcion_proyecto):

Esta función va a recibir como parámetro la descripción del

proyecto que identificará el nombre del proyecto que se

está aplicando.

getDescripcion_area(): Función que devolverá el área al

que pertenece el proyecto.

setDescripcion_area(String descripcion_area):

Esta función va a recibir como parámetro la descripción del

área del proyecto

getEstado(): Función que devolverá el estado del proyecto.

setEstado(String estado):

Page 124: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

124

Esta función va a recibir como parámetro la descripción del

estado del proyecto

getSec() :función que devuelve el secuencial u orden de la

tabla

setSec(Integer sec): función que recibe como parámetro

el orden de la tabla

3.1.9 Aprueba

Esta clase es creada para obtener las aprobaciones de los

documentos del plan técnico, los cuáles serán de utilización para

el líder SIS y para el Gerente de Sistemas, a continuación se

detallan los campos y las funciones a utilizarse.

APRUEBA

codigo_doc codigo_proy descripcion descripcion_proyecto

getCodigo_doc() setCodigo_doc(Integer codigo_doc) getCodigo_proy() setCodigo_proy(Integer codigo_proy) getDescripcion() setDescripcion(String descripcion) getDescripcion_proyecto() setDescripcion_proyecto(String descripcion_proyecto)

Page 125: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

125

3.1.9.1 Descripción de los campos

Codigo_doc : Código del Documento mediante el cual se

actualizará el estado del plan técnico.

Codigo_proy: Código del proyecto al que se está

referenciando.

Descripcion: Describe el estado del actual el pan técnico.

Descripcion_proyecto: Describe el nombre del proyecto

actual.

3.1.9.2 Descripción de funciones y

procedimientos

getCodigo_doc(): Función que retornará el código del

documento que será actualizado, con el estado Documento

Aprobado Plan Técnico, Documento Sin Aprobar Plan

Técnico.

setCodigo_doc(Integer codigo_doc): Esta función va a

recibir el parámetro del código del documento que me

permitirá actualizar el estado del Plan Técnico.

Page 126: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

126

getCodigo_proy(): Función que retornará el código del

proyecto con el cual se obtiene el documento del proyecto.

setCodigo_proy(Integer codigo_proy): Esta función va a

recibir el parámetro del código del proyecto que me

permitirá obtener el documento a actualizar.

getDescripcion(): Función que retornará la descripción del

estado actual del plan técnico.

setDescripcion(String descripcion): Esta función va a

recibir como parámetro la descripción del estado actual del

plan técnico.

getDescripcion_proyecto(): Función que retornará la

descripción del proyecto.

setDescripcion_proyecto(String descripcion_proyecto):

Esta función va a recibir como parámetro la descripción del

proyecto.

3.2 Diseño de Pantallas

3.2.1 Asignaciones

3.2.1.1 Asignación de Líder SIS

Esta sección permitirá al Gerente de Proyectos

asignar al Líder SIS de un determinado proyecto.

Page 127: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

127

La interfaz mediante la cual se realizará la

asignación es la siguiente:

3.2.1.2 Asignación de Recurso Humano

Esta sección permitirá al Líder SIS asignar al los

asesores o participantes requeridos para la

realización de un proyecto.

Los recursos humanos serán asignados en base a

sus conocimientos.

La interfaz mediante la cual se realizará la

asignación es la siguiente:

Page 128: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

128

3.2.1.3 Asignación de Recurso Informático

Esta sección permitirá al Líder SIS asignar al los

recursos informáticos, sean estos hardware o

software que se requieran para el desarrollo del

proyecto.

La interfaz mediante la cual se realizará la

asignación es la siguiente:

Page 129: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

129

3.2.1.4 Consulta del Líder de Proyectos

En esta interfaz se consultarán los líderes de Proyecto o

Líderes que generaron el requerimiento hacia Sistemas.

La interfaz mediante la cual se consultarán a los líderes de

los proyectos es la siguiente:

Page 130: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

130

3.2.2 Configuración de Parámetros

Esta sección permitirá definir la cantidad máxima de

proyectos que le será asignado al Líder SIS del Proyecto.

Page 131: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

131

3.2.3 Definición de Tipo de Proyectos

Esta sección permitirá definir el tipo de Proyecto al cual

estará relacionado el Proyecto.

3.2.4 Cronograma de Actividades

Esta sección permitirá mostrar todas las actividades

concernientes a un proyecto que le haya sido asignado al

Líder SIS.

La interfaz mediante la cual se tendrá el cronograma de

trabajo es la siguiente:

Page 132: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

132

3.2.5 Estados y Aprobaciones

3.2.5.1 Estados del Proyecto

Esta sección permitirá cambiar el estado del

proyecto de acuerdo a la situación en la cual se

presente, es decir, si el estado actual del proyecto

es 'Suspendido' y se quiere actualizar dicho estado a

'En Curso', mediante la aplicación de esta opción se

logrará dicho propósito.

La interfaz a aplicar es la siguiente:

Page 133: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

133

3.2.5.2 Aprobación del Plan Técnico

Esta sección permitirá cambiar el estado de

aprobación del Plan Técnico de un proyecto.

Los estados pueden ser 'Documento Aprobado –

Plan Técnico' y 'Documento no Aprobado – Plan

Técnico'.

La interfaz a aplicar es la siguiente:

Page 134: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

134

3.2.6 Reportería

3.2.6.1 Reporte de Estados del Proyecto.

Esta sección permitirá consultar a manera de reporte

los estados del proyecto.

La interfaz que permite dicho propósito es la

siguiente:

Page 135: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

135

3.2.6.2 Reporte de Líderes Asignados al

Proyecto

Esta sección permitirá consultar a manera de reporte

los proyectos asignados por líder.

La interfaz que permite dicho propósito es la

siguiente:

Page 136: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

136

3.2.6.3 Reporte de Actividades del Proyecto

Esta sección permitirá consultar a manera de reporte

las actividades que se llevarán a cabo dentro de un

proyecto (Cronograma de actividades).

La interfaz que permite dicho propósito es la

siguiente:

Page 137: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

137

Page 138: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

138

CAPÍTULO 4

4 CODIFICACIÓN DEL MODELO DE GESTIÓN DE PRE-PROYECTOS

4.1 ESTÁNDARES

Al momento de desarrollar un Sistema Computacional se deben seguir

ciertos lineamientos, debido a que el desarrollo es realizado por un

grupo de trabajo los cuales poseen diferentes maneras de codificar; si

dicha codificación llegase a ser implementada, la parte externa deberá

revisar aquellos estándares definidos por los desarrolladores, es por ello

que en nuestro Gestor de Pre-Proyecto se especificaron atributos,

estándares, reglas de negocio, entre otras; donde los principales

procesos de nuestro módulo reflejan la correcta lógica del negocio.

La funcionalidad básica de nuestro módulo inicia con la solicitud del

recurso humano e informático; elaboración de la documentación,

culminando con la asignación de los recursos a un proyecto

especificado.

Más adelante se muestra en forma detallada el desarrollo de los

principales procesos que conforman nuestro módulo.

Page 139: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

139

4.1.1 Estándares sobre la Base de Datos

Durante la realización del Modelo Entidad Relación se definieron

estándares sobre los usuarios, tablas, sinónimos, secuencias,

paquetes, procedimientos y funciones ha se utilizadas dentro de

cada módulo.

4.1.1.1 Usuarios y Tablas

El nombre del usuario fue definido utilizando las tres

primeras iniciales que identifican al módulo, seguido

del estándar _user.

Lo que corresponde a la contraseña, esta sería igual

al usuario anteriormente definido, para que en un

futuro cada módulo modifique dicha clave.

GPP_USER / GPP_USER

Las tablas creadas dentro de la base de datos deben

tener el siguiente formato:

Page 140: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

140

Las tres primeras letras describen al módulo

propietario de dichas tablas, seguido del nombre de

la tabla en plural.

GPP_ACTIVIDADES – GEN_ESTADOS

4.1.1.2 Sinónimos y Secuencias

Los sinónimos se dan a nivel de tablas,

procedimientos y paquetes los cuales iban a ser

creados, conservando el nombre inicial del objeto.

La creación de la secuencia fue definida de la

siguiente forma:

Las tres primeras letras corresponden a las iniciales

que describen al módulo al cual le corresponde dicha

secuencia, seguido de la constante SEQ y por último

el nombre de la secuencia.

GPP_SEQ_SOLICITUD

Page 141: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

141

4.1.1.3 Paquetes, procedimientos y

funciones

Los nombres de los paquetes, procedimientos y

funciones deben ser muy descriptivos, indicando de

manera implícita la funcionalidad y transaccionalidad

del paquete.

Lo que corresponde a los paquetes estos fueron

divididos en dos tipos, los transaccionales conocidos

como trx y los funcionales como obj.

Los paquetes transaccionales manejarán todo lo que

corresponde a validaciones y cálculos sobre

variables y campos, mientras que los obj realizarán

acciones directas sobre las tablas, tales como

insert, update, y delete.

El formato es el siguiente:

GPPK_TRX_NOMBREPAQUETE

GPPK_OBJ_NOMBREPAQUETE

Page 142: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

142

4.1.2 Estándares sobre la Codificación

Antes de iniciar con la codificación o programación se definieron

estándares a nivel de grupo tales como, nombres de variables,

caja de texto, combos, clases e interfaces, así como también

comentarios antes de cada codificación, los cuales describen el

funcionamiento de aquella línea.

4.1.2.1 Codificación PL/SQL

El estándar definido para las variables a ser usadas

dentro de los procedimientos, funciones y paquetes

es el siguiente:

ESTANDAR TIPO DATO

LN_ PN_ NUMBER

LV_ PV_ VARCHAR2

LD_ PD_ DATE

LC_ CURSOR

El primer caracter indica que es una variable local (L)

o un parámetro(P) de entrada o salida, seguida de la

primera inicial del tipo de dato, a continuación el

nombre de la variable anteponiéndole el signo „_‟,

cabe recalcar que los nombres de las variables

deben ser descriptivas.

Por ejemplo: LN_CONT; LD_FECHA_INICIO;

Page 143: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

143

4.1.2.2 Codificación Java

El estándar establecido sobre la creación de las

clases se basó en la funcionalidad que se desea

realizar sobre las tablas incluidas dentro de la base

de datos, por ejemplo:

PUBLIC CLASS CRONOGRAMA

{

}

Más adelante se detallan las clases utilizadas dentro

de los procesos prioritarios para nuestro módulo.

4.1.2.3 Codificación JSP – My Esclipse

Previa la codificación se definieron estándares sobre

eventos y variables, tales como se muestran en la

siguiente tabla:

ESTANDAR TIPO DE EVENTO

CMB_ COMBO

TXT_ TEXTO

B_ BOTÓN

CHECK_ CKECK BOX

Después del estándar seguirá el nombre de la

variable definido para el evento a utilizar.

Page 144: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

144

Adicionalmente, a esto se estableció que para

declarar una variable, la cual tendrá almacenado un

query, seguirá el siguiente formato:

LS_NOMBRE

4.1.2.4 Interfaces

Sobre las interfaces se han aplicados estándares

definidos por el Módulo de Personalización,

Administración de Usuarios y Seguridades, los

cuales definieron la hoja de estilos, la que involucra

colores, fuentes, estilo de la fuente y su tamaño,

entre otras características, embebidas en diferentes

estilos.

Page 145: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

145

4.2 DEFINICIÓN DE PRINCIPALES PROCESOS

Después de haber definido las reglas del negocio para la transacción

que debe realizar nuestro módulo, se establecieron los principales

procesos que se ejecutan y detallan a continuación:

4.2.1 Proceso Líder de Proyecto

Mediante la consulta del líder de proyectos asignado por el

Departamento de O & M, podremos identificar quien es la persona

responsable del requerimiento enviado al área de Sistema.

4.2.2 Proceso Líder SIS

La asignación del Líder SIS dependerá de los lineamientos

establecidos por el departamento de Sistemas, ya que antes de

realizar dicha asignación se deberá realizar una sumatoria de la

cantidad y los pesos de los proyectos al cual se encuentra

asignado actualmente y verificar en que fase se encuentra.

Si la sumatoria de la cantidad y el peso de los proyectos excede el

valor definido, no se podrá asignar dicho recurso al Proyecto

actual.

Page 146: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

146

Luego de haber verificado los lineamientos se procederá a

bitacorizar dicha transacción en caso de que el flujo haya tenido

su secuencia normal.

4.2.3 Proceso Asigna Recurso

A través de la interfaz se presentarán todos los proyectos que

posean como estado „PA‟, lo que indica que el módulo de

Presupuesto da por aprobada la factibilidad del proyecto.

Para realizar la transacción de asignación de recursos, el Líder

SIS seleccionará el Proyecto y a su vez escogerá los

conocimientos necesarios para su desarrollo, lo cual le permitirá

visualizar todos los recursos disponibles y los cuales podrán ser

asignados al Proyecto seleccionado, de no existir recursos se

emitirá una solicitud para la respectiva contratación del personal.

4.2.4 Proceso Asigna Recurso Informático

Previa la asignación del recurso informático el líder SIS deberá

realizar el respectivo ingreso de los recursos necesarios para

dicha asignación, debido a que el módulo de presupuesto requiere

esa información para aprobar el presupuesto.

Page 147: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

147

Una vez aprobado el presupuesto, se podrá asignar los recursos a

través de una interfaz en la cual se visualizará lo antes

seleccionado. De no existir el recurso se emitirá una solicitud para

la respectiva compra y la asignación se la realizará de manera

transparente para el usuario.

4.2.5 Proceso Cronograma

Esta interfaz le permite realizar un cronograma por proyecto; aquí

deberá ingresar la cantidad de recursos a utilizar además de

seleccionar el código del Proyecto, lo que le permitirá digitar las

actividades necesarias a través de una matriz, junto con la

actividad que la precede seguida de sus fechas de inicio y fin,

también podrá asignar al(los) recurso(s) que tendrán la

responsabilidad de realizar dicha tarea o actividad; de forma

automática se visualizará el tiempo para cada tarea y como

elemento importante el usuario o líder SIS deberá identificar si la

actividad ingresada es un Hito o una actividad normal.

4.2.6 Proceso Estado

Este proceso brinda la oportunidad de actualizar o modificar el

estado de los proyectos que pertenecen a un área en particular.

Por ejemplo, si un proyecto en particular posee el estado de

Page 148: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

148

„Suspendido‟ y se desea cambiar a „En curso‟, a través de esta

interfaz se puede lograr dicho objetivo.

4.2.7 Proceso Aprueba

A través de este proceso se podrá realizar la aprobación de

Documento „Plan Técnico‟ de un Proyecto escogido. Los estados

pueden ser 'Documento Aprobado – Plan Técnico' y 'Documento

no Aprobado – Plan Técnico'. Además podrá definir y bitacorizar

que tipo de proyecto se esta realizado.

4.3 DIAGRAMA DE FLUJO

Los procesos anteriormente identificados y detallados conforman una

transacción, la cual podrá ser visualizada a través del siguiente

diagrama de flujo elaborado para su mayor comprensión:

Page 149: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

149

INICIO

VISUALIZACIÓN DEL LÍDER DE

PROYECTO

ASIGNACIÓN DE LÍDER SIS

ELABORAR PLAN

TÉCNICO ELABORAR

CRONOGRAMA

PLAN TÉCNICO APROBADO

DISPONIBILIDAD RECURSOS

ASIGNO RECURSOS

EMITO SOLICITUD

SOLICITUD APROBADA

CAMBIO DE ESTADO POR PROYECTOS

FIN

APROBACION DE PRESUPUESTO

Page 150: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

150

CAPÍTULO 5

5 PRUEBAS

5.1 RECOMENDACIONES

Hay multitud de conceptos asociados a las tareas de pruebas;

clasificarlas es difícil, pues no son mutuamente disjuntas, sino muy

entrelazadas. En lo que sigue usaremos la siguiente estructura para la

presentación:

Fases de prueba:

CAJA BLANCA: En estas pruebas estamos siempre observando el

código que las pruebas se dedican a ejecutar con ánimo de "probarlo

todo". Esta noción de prueba total se formaliza en lo que se llama

"cobertura".

CAJA NEGRA: Las pruebas de caja negra se centran en lo que se

espera de un módulo, es decir, intentan encontrar casos en que el

módulo no se atiene a su especificación. Por ello se denominan

pruebas funcionales, y el probador se limita a suministrarle datos como

Page 151: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

151

entrada y estudiar la salida, sin preocuparse de lo que pueda estar

haciendo el módulo por dentro.

5.2 Modelo de Flujo de Pruebas

5.3 Pruebas de Caja Blanca

5.3.1 Asignación Líder SIS

La prueba de asignación Líder SIS se lo realizará verificando el

máximo de Proyectos que se puede asignar, el peso máximo que

puede ser asignado; los valores máximos serán parametrizados y

se podrán cambiar por medio de una interfaz.

Evaluación Depuración

Ejecución de Pruebas

Configuración de Pruebas

Correcciones

Planificación de Pruebas

Diseño de Pruebas

Plan de pruebas

Análisis de errores

Estadísticas de errores

Page 152: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

152

Para esta prueba vamos asignarle un máximo de Proyecto de 5,

este valor se multiplicará para sacar su peso máximo que en este

caso es 15.

PROCEDURE asig_lider_sis (pn_codigo_lider IN clc_participante.codigo_participante%TYPE, pn_codigo_proy IN gen_proyectos.codigo_proyecto%TYPE, pv_user IN VARCHAR2, pv_error OUT VARCHAR2)IS -------------------------------------------------- -- CANTIDAD DE PROYECTOS POR LIDER -- ASUMIENDO QUE EN EL COMBO SE -- ESCOJE A UN LIDER (TIPO_PARTICIPANTE = LIDER) -------------------------------------------------- CURSOR c_cant_proy (pn_codigo_lider NUMBER) IS SELECT COUNT(*) FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); -- debe estar en el estado que lo deja Nathalie /* SELECT COUNT(*) FROM GEN_PROYECTOS PY, CLC_PARTICIPANTE_PROYECTO PP WHERE PP.CODIGO_PARTICIPANTE = PN_CODIGO_LIDER AND PP.ESTADO = 'A' AND PP.CODIGO_TIPO_PARTICIPANTE = 1 AND PP.CODIGO_PROYECTO = PY.CODIGO_PROYECTO AND PY.CODIGO_ESTADO IN ('EC', 'PA'); -- en curso o en desarrollo cuando yo lo apruebo*/ ----------------------- -- PESO DE PROYECTOS ----------------------- CURSOR c_peso_proy (pn_codigo_lider NUMBER) IS SELECT SUM(PY.PESO_PROYECTO) FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); -- debe estar en el estado que lo deja Nathalie /*SELECT SUM(py.PESO_PROYECTO) FROM GEN_PROYECTOS py, CLC_PARTICIPANTE_PROYECTO pp WHERE pp.CODIGO_PARTICIPANTE = pn_codigo_lider AND pp.ESTADO = 'A' AND pp.CODIGO_TIPO_PARTICIPANTE = 1 AND pp.CODIGO_PROYECTO = py.codigo_proyecto AND py.CODIGO_ESTADO IN('EC', 'PA'); -- en curso o en desarrollo*/ ------------------------------------ -- LOS PROYECTOS QUE POSEE UN LIDER ------------------------------------ CURSOR c_proyectos_lider (pn_codigo_lider NUMBER) IS SELECT DISTINCT PY.CODIGO_PROYECTO FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); /*SELECT DISTINCT py.CODIGO_PROYECTO FROM GEN_PROYECTOS py, CLC_PARTICIPANTE_PROYECTO pp WHERE pp.CODIGO_PARTICIPANTE = pn_codigo_lider AND pp.ESTADO = 'A' AND pp.CODIGO_PROYECTO = py.codigo_proyecto AND py.CODIGO_ESTADO IN('EC', 'PA');*/

Page 153: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

153

-------------------------------------------------------- -- PARA OBTENER EL VALOR DE LA PRIORIDAD DE UN PROYECTO -------------------------------------------------------- CURSOR c_prioridad_proy (pn_codigo_proy NUMBER) IS SELECT PR.PRIORIDAD_INICIAL FROM GEN_PROYECTOS PY, GRE_PRIORIDAD PR WHERE PY.CODIGO_PROYECTO = PN_CODIGO_PROY AND PR.CODIGO_PRIORIDAD = PY.CODIGO_PRIORIDAD AND PY.CODIGO_ESTADO = 'AO'; -------------------------- -- FASE DE LOS PROYECTOS -------------------------- CURSOR c_fase_proy (pn_codigo_proyecto NUMBER) IS SELECT PY.CODIGO_PROYECTO, PY.NOMBRE_PROYECTO, D.CODIGO_ACTIVIDAD, D.PORCENTAJE_CUMPLIMIENTO, A.DESCRIPCION_ACTIVIDAD, A.TIEMPO_REAL FROM GEN_PROYECTOS PY, GPP_ACTIVIDADES A, CEH_DET_ACT_RECURSO D WHERE PY.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.CODIGO_PROYECTO = PY.CODIGO_PROYECTO AND A.CODIGO_PROYECTO = D.CODIGO_PROYECTO AND A.CODIGO_ACTIVIDAD = D.CODIGO_ACTIVIDAD AND D.PORCENTAJE_CUMPLIMIENTO > 0 AND PY.CODIGO_ESTADO IN('EC', 'PA'); CURSOR C_ACT (PN_CODIGO_ACTIVIDAD NUMBER)IS SELECT DISTINCT 'X'--, A.PORCENTAJE_CUMPLIMIENTO FROM GPP_ACTIVIDADES A, CEH_DET_ACT_RECURSO D WHERE A.CODIGO_ACTIVIDAD = PN_CODIGO_ACTIVIDAD AND A.CODIGO_ACTIVIDAD = D.CODIGO_ACTIVIDAD AND A.DESCRIPCION_ACTIVIDAD LIKE '%PRUEBAS%' OR A.DESCRIPCION_ACTIVIDAD LIKE '%IMPLEMENTACION%' AND D.PORCENTAJE_CUMPLIMIENTO NOT IN (100) AND A.PORCENTAJE_CUMPLIMIENTO NOT IN (100); ---------------------------------------------- -- CURSOR QUE OBTIENE LA CANTIDAD Y EL PESO -- MAXIMO DE PROYECTOS PARA UN LIDER SIS ---------------------------------------------- CURSOR C_MAXIMO IS SELECT TO_NUMBER(P.VALOR) CANTIDAD, TO_NUMBER(PT.VALOR) PESO FROM GEN_PARAMETROS P, GEN_PARAMETROS PT WHERE P.ID_PARAMETRO = 'CANT_PROY' AND PT.ID_PARAMETRO = 'PESO_PROY'; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE OBTIENE EL TIPO PARTICIPANTE -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR c_participante (pn_codigo_lider NUMBER) IS SELECT p.codigo_tipo_participante FROM clc_participante p WHERE p.codigo_participante = pn_codigo_lider; BAND NUMBER := 1; ln_cant_proy NUMBER := 0; ln_peso_proy NUMBER := 0; ln_prioridad NUMBER := 0; ln_peso_total NUMBER := 0; LN_CANT_MAX NUMBER := 0;

Page 154: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

154

LN_PESO_MAX NUMBER := 0; ln_tipo_participante NUMBER := 0; LB_GUARDADO BOOLEAN := TRUE; LB_ASIGNA_LIDER BOOLEAN := FALSE; LV_FASE VARCHAR2(2); lv_hito VARCHAR2(100); lv_error VARCHAR2(100); lv_aplicacion VARCHAR2(100):= 'GPPK_TRX_ASIGNACION.ASIG_LIDER_SIS'; le_error EXCEPTION; le_error_general EXCEPTION; BEGIN -- cantidad de proyectos por lideres OPEN c_cant_proy (pn_codigo_lider); FETCH c_cant_proy INTO ln_cant_proy; CLOSE c_cant_proy; IF ln_cant_proy = 0 THEN BAND := 0; -- NO TIENE PROYECTOS END IF; IF BAND = 1 THEN -- SI TIENE PROYECTOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- total de pesos de proyectos asignados a un lider -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LOS LIMITES PARA EL LIDER SIS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- el valor de 5 es por efectos de prueba -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF ln_cant_proy > LN_CANT_MAX THEN -- 5 proyectos como máximo lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtengo la prioridad del proyecto actual, -- la cual se convierte en peso del proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_prioridad_proy(pn_codigo_proy); FETCH c_prioridad_proy INTO ln_prioridad; CLOSE c_prioridad_proy; -- -- -- -- -- -- -- -- -- -- -- Codigo del participante -- -- -- -- -- -- -- -- -- -- OPEN c_participante (pn_codigo_lider); FETCH c_participante INTO ln_tipo_participante; CLOSE c_participante; -- -- -- -- -- -- -- -- -- -- -- calculo del peso total

Page 155: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

155

-- -- -- -- -- -- -- -- -- -- ln_peso_total := nvl(ln_prioridad, 0) + nvl(ln_peso_proy, 0); IF ln_peso_total > LN_PESO_MAX THEN -- 5 proy * 3 peso(alta) LV_ERROR := 'El Líder está sobrecargado, no se puede asignar. El peso máximo es ' || LN_PESO_MAX; RAISE le_error; END IF; FOR x IN c_proyectos_lider (pn_codigo_lider) LOOP --BEGIN lv_hito := NULL; LV_FASE := NULL; FOR i IN c_fase_proy (x.CODIGO_PROYECTO) LOOP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- solo almacena el ultimo hito porque se esta evaluando -- actividad por actividad, no varias actividades a la vez -- entonces solo habra un hito en curso -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN LV_FASE := NULL; -- -- -- -- -- -- -- -- -- -- -- OPEN C_ACT (I.CODIGO_ACTIVIDAD); FETCH C_ACT INTO LV_FASE; --, LN_PORC; CLOSE C_ACT; -- -- -- -- -- -- -- -- -- -- -- IF LV_FASE IS NOT NULL THEN--((i.DESCRIPCION_ACTIVIDAD = fase_critica_1) OR (i.DESCRIPCION_ACTIVIDAD = fase_critica_2)) THEN LV_HITO := i.DESCRIPCION_ACTIVIDAD; END IF; IF LV_FASE IS NOT NULL AND (I.PORCENTAJE_CUMPLIMIENTO >= 85 AND I.PORCENTAJE_CUMPLIMIENTO <= 100) THEN lv_hito := 'T'; -- indica que ya termino la etapa critica LB_ASIGNA_LIDER := TRUE; END IF; IF I.PORCENTAJE_CUMPLIMIENTO < 85 THEN LB_ASIGNA_LIDER := FALSE; END IF; EXCEPTION WHEN OTHERS THEN -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); if pv_error is not null then pv_error := lv_error || ' - ' || pv_error; else pv_error := lv_error; end if; END; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- insertar la fase de acuerdo a lo quemado -- en la declaracion, esto es momentaneo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF NOT LB_ASIGNA_LIDER THEN

Page 156: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

156

lv_error := 'El líder se encuentra en una etapa crítica, imposible asignar'; RAISE le_error_general; END IF; -- LB_ASIGNA_LIDER := TRUE; END LOOP; ELSE -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder será asignado al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); UPDATE CLC_PARTICIPANTE PT SET PT.NO_PROY_ASIGNADOS = (PT.NO_PROY_ASIGNADOS + 1) WHERE PT.codigo_participante = PN_CODIGO_LIDER; UPDATE GEN_PROYECTOS D SET D.LIDER_SIS = PN_CODIGO_LIDER WHERE D.CODIGO_PROYECTO = PN_CODIGO_PROY; COMMIT; IF LB_GUARDADO THEN -- pv_error := 'BIEN'; GENK_BITACORIZACION.P_BITACORIZA_INFO(lv_aplicacion, SYSDATE, USER, 'EL LIDER ' || pn_codigo_lider || 'FUE ASIGNADO CON EXITO AL PROYECTO '|| pn_codigo_proy, 'MODULO_GPP', NULL, NULL, pv_error); END IF; END IF; IF LB_ASIGNA_LIDER THEN -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto

Page 157: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

157

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder serà asigando al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); END IF; EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN le_error_general THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN OTHERS THEN pv_error := SQLERRM; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); END;

Page 158: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

158

Manejaremos tres posibles casos:

Caso a: Líder SIS tiene asignado tres proyectos y cada uno tiene

los Pesos 2, 3, 1.

Caso b: Líder SIS tiene asignado cuatro proyectos y cada uno

pesa 4, 3, 3, 4.

Caso c: Líder SIS tiene asignado dos proyectos los cuales están

en las fases de pruebas.

Caso a:

-- cantidad de proyectos por lideres OPEN c_cant_proy (pn_codigo_lider); FETCH c_cant_proy INTO ln_cant_proy; CLOSE c_cant_proy; IF ln_cant_proy = 0 THEN BAND := 0; -- NO TIENE PROYECTOS END IF; IF BAND = 1 THEN -- SI TIENE PROYECTOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- total de pesos de proyectos asignados a un lider -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LOS LIMITES PARA EL LIDER SIS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- el valor de 5 es por efectos de prueba -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF ln_cant_proy > LN_CANT_MAX THEN -- 5 proyectos como máximo lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF;

Page 159: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

159

Abrir Cursor

Cantidad de

Proyectos

Recorrer cursor y

obtener número de

proyectos

Número de

Proyectos = 0

No

Número de

Proyectos = 1

Si

Abrir Cursor

C_maximo

Recorrer cursor y

obtener Peso de los

proyectos

Abrir Cursor

Peso de

Proyectos

Recorrer cursor y

obtener la

cantidad y el peso

maximo

Cantidad de

Proyecto > a

cantidad Máxima

Abrir Cursor

Prioridad

proyecto

Recorrer cursor y

obtener la Prioridad

del proyectos

Sumar la

prioridad con el

peso total de

los proyectos

La suma es >

al peso

màximo

No

No

No

1

Page 160: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

160

Esta parte recibe el código del proyecto y abre el cursor

obteniendo la cantidad de proyecto en la variable ln_cant_proy,

En la condición pregunta si el valor de esta variable es igual a

cero esto indicará que el líder no tiene asignado proyectos.

Pregunta si band igual a 1 entonces indica que si tiene proyecto.

En el cursor c_peso_proyec me retorna el peso de todos los

proyectos asignados a ese líder en este caso es de 6 en la

variable ln_peso_proy.

En el cursor c_maximo me retorna el número de proyectos

máximo y el peso máximo que son 5 y 15 respectivamente.

En esta parte se identifica la cantidad de proyectos que tiene

asignado el líder verificando que no pase del máximo permitido,

luego obtiene la prioridad del proyecto que se le desea asignar al

líder.

Page 161: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

161

FOR x IN c_proyectos_lider (pn_codigo_lider) LOOP --BEGIN lv_hito := NULL; LV_FASE := NULL; FOR i IN c_fase_proy (x.CODIGO_PROYECTO) LOOP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- solo almacena el ultimo hito porque se esta evaluando -- actividad por actividad, no varias actividades a la vez -- entonces solo habra un hito en curso -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN LV_FASE := NULL; -- -- -- -- -- -- -- -- -- -- -- OPEN C_ACT (I.CODIGO_ACTIVIDAD); FETCH C_ACT INTO LV_FASE; --, LN_PORC; CLOSE C_ACT; -- -- -- -- -- -- -- -- -- -- -- IF LV_FASE IS NOT NULL THEN--((i.DESCRIPCION_ACTIVIDAD = fase_critica_1) OR (i.DESCRIPCION_ACTIVIDAD = fase_critica_2)) THEN LV_HITO := i.DESCRIPCION_ACTIVIDAD; END IF; IF LV_FASE IS NOT NULL AND (I.PORCENTAJE_CUMPLIMIENTO >= 85 AND I.PORCENTAJE_CUMPLIMIENTO <= 100) THEN lv_hito := 'T'; -- indica que ya termino la etapa critica LB_ASIGNA_LIDER := TRUE; END IF; IF I.PORCENTAJE_CUMPLIMIENTO < 85 THEN LB_ASIGNA_LIDER := FALSE; END IF; EXCEPTION WHEN OTHERS THEN -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); if pv_error is not null then pv_error := lv_error || ' - ' || pv_error; else pv_error := lv_error; end if; END; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- insertar la fase de acuerdo a lo quemado -- en la declaracion, esto es momentaneo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF NOT LB_ASIGNA_LIDER THEN lv_error := 'El líder se encuentra en una etapa crítica, imposible asignar'; RAISE le_error_general; END IF; -- LB_ASIGNA_LIDER := TRUE; END LOOP; ELSE

Page 162: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

162

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder será asignado al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); UPDATE CLC_PARTICIPANTE PT SET PT.NO_PROY_ASIGNADOS = (PT.NO_PROY_ASIGNADOS + 1) WHERE PT.codigo_participante = PN_CODIGO_LIDER; UPDATE GEN_PROYECTOS D SET D.LIDER_SIS = PN_CODIGO_LIDER WHERE D.CODIGO_PROYECTO = PN_CODIGO_PROY; COMMIT; IF LB_GUARDADO THEN -- pv_error := 'BIEN'; GENK_BITACORIZACION.P_BITACORIZA_INFO(lv_aplicacion, SYSDATE, USER, 'EL LIDER ' || pn_codigo_lider || 'FUE ASIGNADO CON EXITO AL PROYECTO '|| pn_codigo_proy, 'MODULO_GPP', NULL, NULL, pv_error); END IF; END IF;

Page 163: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

163

En esta parte verifica si el líder tiene algún proyecto en las fases

críticas lo cual significa que no se podrá asignar otro proyecto en

este momento ya que la carga del Líder es muy alta.

Si es así, la variable lb_asigna_lider va estar en TRUE o FALSE

dependiendo si está o no en alguna fase critica en el cual no se

podrá asignarle proyectos; pero en este caso los proyectos que

está asignado el líder no están en las fases críticas.

Como el líder está disponible va a grabar en la tabla

CLC_PARTICIPANTE_PROYECTO, por medio de la función que

accesamos del módulo de Colaboradores.

Actualiza en la tabla GEN _ PROYECTOS el campo lider_SIS.

Informe de Análisis

Nombre: Asignación Líder SIS

Caso: Líder SIS tiene asignado tres proyectos y cada uno tiene los Pesos 2, 3, 1.

Evaluación: Evaluando el flujo de las líneas de códigos minuciosamente se ha llegado a la conclusión que no hay problemas al momento de evaluar este caso.

Análisis: En este caso no hay novedades que reportar a los desarrolladores porque se han cumplido con los estándares definidos y correctamente se ha llevado su flujo.

Page 164: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

164

Caso b

-- cantidad de proyectos por lideres OPEN c_cant_proy (pn_codigo_lider); FETCH c_cant_proy INTO ln_cant_proy; CLOSE c_cant_proy; IF ln_cant_proy = 0 THEN BAND := 0; -- NO TIENE PROYECTOS END IF; IF BAND = 1 THEN -- SI TIENE PROYECTOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- total de pesos de proyectos asignados a un lider -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LOS LIMITES PARA EL LIDER SIS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- el valor de 5 es por efectos de prueba -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF ln_cant_proy > LN_CANT_MAX THEN -- 5 proyectos como máximo lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF;

Page 165: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

165

Abrir Cursor

Cantidad de

Proyectos

Recorrer cursor y

obtener número de

proyectos

Número de

Proyectos = 0

No

Número de

Proyectos = 1

Si

Abrir Cursor

C_maximo

Recorrer cursor y

obtener Peso de los

proyectos

Abrir Cursor

Peso de

Proyectos

Recorrer cursor y

obtener la

cantidad y el peso

maximo

Cantidad de

Proyecto > a

cantidad Máxima

Abrir Cursor

Prioridad

proyecto

Recorrer cursor y

obtener la Prioridad

del proyectos

Sumar la

prioridad con el

peso total de

los proyectos

La suma es >

al peso

màximo

Si

No

No

El Líder está sobrecargado, no se

puede asignar. El peso máximo es ' ||

LN_PESO_MAX

Page 166: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

166

Esta parte recibe el código del proyecto y abre el cursor

obteniendo la cantidad de proyectos en la variable ln_cant_proy,

En la condición pregunta si el valor de esta variable es igual a

cero, esto indicará que el líder no tiene proyecto a cargo.

Pregunta si band es igual a 1, entonces indica que si tiene

proyectos.

El cursor c_peso_proyec retorna el peso de todos los proyectos

asignados a ese líder, en este caso es de 14 en la variable

ln_peso_proy.

El cursor c_maximo retorna el número de proyectos máximo y el

peso máximo que son 5 y 15 respectivamente.

En esta parte se verifica la cantidad de proyectos que tiene

asignado el líder más la prioridad del proyecto que se quiere

asignar verificando que no pase del máximo permitido, pero en

este caso sobrepasa del peso máximo y presenta un mensaje.

Page 167: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

167

Informe de Análisis

Nombre: Asignación Líder SIS

Caso: Líder SIS tiene asignado cuatro proyectos y cada uno pesa 4, 3, 3, 4.

Evaluación: Evaluando el flujo de las líneas de códigos minuciosamente se ha llegado a la conclusión que la restricción de asignarle un Líder al proyecto se lo está realizando adecuadamente.

Análisis: No existe ninguna novedad que reportar ya que esta siendo bien analizado la lógica del negocio.

Caso c:

-- cantidad de proyectos por lideres OPEN c_cant_proy (pn_codigo_lider); FETCH c_cant_proy INTO ln_cant_proy; CLOSE c_cant_proy; IF ln_cant_proy = 0 THEN BAND := 0; -- NO TIENE PROYECTOS END IF; IF BAND = 1 THEN -- SI TIENE PROYECTOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- total de pesos de proyectos asignados a un lider -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LOS LIMITES PARA EL LIDER SIS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- el valor de 5 es por efectos de prueba -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF ln_cant_proy > LN_CANT_MAX THEN -- 5 proyectos como máximo lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF;

Page 168: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

168

Abrir Cursor

Cantidad de

Proyectos

Recorrer cursor y

obtener número de

proyectos

Número de

Proyectos = 0

No

Número de

Proyectos = 1

Si

Abrir Cursor

C_maximo

Recorrer cursor y

obtener Peso de los

proyectos

Abrir Cursor

Peso de

Proyectos

Recorrer cursor y

obtener la

cantidad y el peso

maximo

Cantidad de

Proyecto > a

cantidad Máxima

Abrir Cursor

Prioridad

proyecto

Recorrer cursor y

obtener la Prioridad

del proyectos

Sumar la

prioridad con el

peso total de

los proyectos

La suma es >

al peso

màximo

No

No

No

1

Page 169: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

169

Esta parte recibe el código del proyecto y abre el cursor

obteniendo la cantidad de proyecto en la variable ln_cant_proy,

En la condición pregunta si el valor de esta variable es igual a

cero esto indicará que el líder no tiene asignado proyectos.

Pregunta si band igual a 1 entonces indica que si tiene proyecto.

En el cursor c_peso_proyec me retorna el peso de todos los

proyectos asignados a ese líder en este caso es de 6 en la

variable ln_peso_proy.

En el cursor c_maximo me retorna el número de proyectos

máximo y el peso máximo que son 5 y 15 respectivamente.

En esta parte se identifica la cantidad de proyectos que tiene

asignado el líder verificando que no pase del máximo permitido,

luego obtiene la prioridad del proyecto que se le desea asignar al

líder.

Page 170: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

170

FOR x IN c_proyectos_lider (pn_codigo_lider) LOOP --BEGIN lv_hito := NULL; LV_FASE := NULL; FOR i IN c_fase_proy (x.CODIGO_PROYECTO) LOOP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- solo almacena el ultimo hito porque se esta evaluando -- actividad por actividad, no varias actividades a la vez -- entonces solo habra un hito en curso -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN LV_FASE := NULL; -- -- -- -- -- -- -- -- -- -- -- OPEN C_ACT (I.CODIGO_ACTIVIDAD); FETCH C_ACT INTO LV_FASE; --, LN_PORC; CLOSE C_ACT; -- -- -- -- -- -- -- -- -- -- -- IF LV_FASE IS NOT NULL THEN--((i.DESCRIPCION_ACTIVIDAD = fase_critica_1) OR (i.DESCRIPCION_ACTIVIDAD = fase_critica_2)) THEN LV_HITO := i.DESCRIPCION_ACTIVIDAD; END IF; IF LV_FASE IS NOT NULL AND (I.PORCENTAJE_CUMPLIMIENTO >= 85 AND I.PORCENTAJE_CUMPLIMIENTO <= 100) THEN lv_hito := 'T'; -- indica que ya termino la etapa critica LB_ASIGNA_LIDER := TRUE; END IF; IF I.PORCENTAJE_CUMPLIMIENTO < 85 THEN LB_ASIGNA_LIDER := FALSE; END IF; EXCEPTION WHEN OTHERS THEN -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); if pv_error is not null then pv_error := lv_error || ' - ' || pv_error; else pv_error := lv_error; end if; END; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- insertar la fase de acuerdo a lo quemado -- en la declaracion, esto es momentaneo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF NOT LB_ASIGNA_LIDER THEN lv_error := 'El líder se encuentra en una etapa crítica, imposible asignar'; RAISE le_error_general; END IF; -- LB_ASIGNA_LIDER := TRUE; END LOOP; ELSE

Page 171: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

171

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder será asignado al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); UPDATE CLC_PARTICIPANTE PT SET PT.NO_PROY_ASIGNADOS = (PT.NO_PROY_ASIGNADOS + 1) WHERE PT.codigo_participante = PN_CODIGO_LIDER; UPDATE GEN_PROYECTOS D SET D.LIDER_SIS = PN_CODIGO_LIDER WHERE D.CODIGO_PROYECTO = PN_CODIGO_PROY; COMMIT; IF LB_GUARDADO THEN -- pv_error := 'BIEN'; GENK_BITACORIZACION.P_BITACORIZA_INFO(lv_aplicacion, SYSDATE, USER, 'EL LIDER ' || pn_codigo_lider || 'FUE ASIGNADO CON EXITO AL PROYECTO '|| pn_codigo_proy, 'MODULO_GPP', NULL, NULL, pv_error); END IF; END IF;

Page 172: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

172

Verificar si el

líder SIS tiene un

proyecto en la

Fase crítica

1

Ciclo hasta terminar

todos loe proyectos

Si

El líder se encuentra en una etapa

crítica, imposible asignar

El programa verifica si el líder que esta por ser asignado al

proyecto esta disponible, en este caso no se le puede asignar

más proyectos al líder ya que en este momento el líder se

encuentra en las fases criticas de un determinado proyecto.

Informe de Análisis

Nombre: Asignación Líder SIS

Caso: Líder SIS tiene asignado dos proyectos los cuales están en las fases de pruebas

Evaluación: Evaluando el flujo de las líneas de códigos minuciosamente se ha llegado a la conclusión que la restricción de asignarle un Líder al proyecto se lo está realizando adecuadamente.

Análisis: No existe ninguna novedad que reportar ya que esta siendo bien analizado la lógica del negocio.

Page 173: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

173

5.3.2 Ingreso de Actividades de un proyecto.

Al ingresar las actividades de un proyecto primero se debe

escoger el proyecto antes de realizar el ingreso de nuevas

actividades, si el proyecto tiene actividades asignadas, se genera

un reporte donde salen todas las actividades ingresadas

anteriormente y una línea en blanco en la cual se pueda ingresar

las actividades por proyecto.

PROCEDURE CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO IN GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2); PROCEDURE CNP_REC_ESTANDAR(PV_RECURSO IN VARCHAR2, PN_CODIGO_PROY IN NUMBER, PV_CADENA OUT VARCHAR2, PV_ERROR OUT VARCHAR2); PROCEDURE CNP_ACTIVIDADES (PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE, PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2); PROCEDURE CNP_ACTUALIZA_ACT(PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE,

Page 174: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

174

PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2); end GPPK_TRX_ACTIVIDADES; / create or replace package body GPPK_TRX_ACTIVIDADES IS /* ACTUALIZA LOS DATOS DEL CAMPO DEL CONOGRAMA QUE CORRESPONDE A RECURSOS R1-R2 */ /* PROCEDURE CN_ACTUALIZA_RECURSOS(PN_CODIGO_PROYECTO IN GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2) IS LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(50); BEGIN LV_ERROR := NULL; IF PN_CODIGO_PROYECTO IS NULL THEN LV_ERROR := 'NO '; EXCEPTION WHEN LE_ERROR THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN OTHERS THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); END;*/ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ACTUALIZA LOS VALORES REALES DE LOS -- HITOS DE ACUERDO A SUS ACTIVIDADES. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO IN GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2) AS CURSOR OBTIENE_HITOS (PN_CODIGO_PROYECTO NUMBER) IS

Page 175: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

175

SELECT A.CODIGO_ACTIVIDAD FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.ACTIVIDAD_HITO = 'H' AND A.CODIGO_ESTADO = 'A' ORDER BY A.CODIGO_ACTIVIDAD; CURSOR OBTIENE_CRONOGRAMA (PN_CODIGO_PROYECTO NUMBER, PN_CODIGO_ACT NUMBER) IS SELECT A.CODIGO_ACTIVIDAD, A.ACTIVIDAD_PROYECTO, A.ACTIVIDAD_HITO, A.TIEMPO_ESTIMADO, A.FECHA_FINAL_ESTIMADA FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.CODIGO_ACTIVIDAD > PN_CODIGO_ACT AND A.CODIGO_ESTADO ='A' ORDER BY A.CODIGO_ACTIVIDAD; LE_ERROR EXCEPTION; LN_TIEMPO NUMBER := 0; LN_VALOR NUMBER := 0; LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO'; LD_FECHA_FIN GPP_ACTIVIDADES.FECHA_FINAL_ESTIMADA%TYPE; BEGIN LV_ERROR := NULL; IF PN_CODIGO_PROYECTO IS NULL THEN LV_ERROR := 'El código del proyecto no debe ser nulo'; RAISE LE_ERROR; END IF; FOR I IN OBTIENE_HITOS(PN_CODIGO_PROYECTO) LOOP FOR J IN OBTIENE_CRONOGRAMA (PN_CODIGO_PROYECTO, I.CODIGO_ACTIVIDAD) LOOP IF J.ACTIVIDAD_HITO = 'A' THEN LN_VALOR := 1; LD_FECHA_FIN := J.FECHA_FINAL_ESTIMADA; LN_TIEMPO := LN_TIEMPO + J.TIEMPO_ESTIMADO; END IF; EXIT WHEN J.ACTIVIDAD_HITO = 'H'; END LOOP; BEGIN IF LN_VALOR = 0 THEN UPDATE GPP_ACTIVIDADES SET TIEMPO_ESTIMADO = TIEMPO_ESTIMADO, FECHA_FINAL_ESTIMADA = FECHA_FINAL_ESTIMADA WHERE CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND CODIGO_ACTIVIDAD = I.CODIGO_ACTIVIDAD; ELSE UPDATE GPP_ACTIVIDADES SET TIEMPO_ESTIMADO = LN_TIEMPO, FECHA_FINAL_ESTIMADA = LD_FECHA_FIN WHERE CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND CODIGO_ACTIVIDAD = I.CODIGO_ACTIVIDAD; END IF; COMMIT; LN_TIEMPO := 0; EXCEPTION WHEN OTHERS THEN

Page 176: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

176

PV_ERROR := SQLERRM || ' - CNP_TIEMPO_HITO'; END; END LOOP; EXCEPTION WHEN LE_ERROR THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN OTHERS THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); END; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDIMIENTO QUE REGULARIZA EL INGRESO DE -- LOS RECURSOS QUE CORRESPONDEN A LA ACTIVIDAD -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_REC_ESTANDAR(PV_RECURSO IN VARCHAR2, PN_CODIGO_PROY IN NUMBER, PV_CADENA OUT VARCHAR2, PV_ERROR OUT VARCHAR2)IS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE VERIFICA LA CANTIDAD DE -- RECURSOS ASIGNADOS A UN PROYECTO -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_CANT_RECURSOS (PN_CODIGO_PROY NUMBER)IS SELECT P.TOTAL_RECURSO_HUMANO FROM GEN_PROYECTOS P WHERE P.CODIGO_PROYECTO = PN_CODIGO_PROY; LE_ERROR EXCEPTION; LV_R1 VARCHAR2(3); LV_R2 VARCHAR2(3); LV_R3 VARCHAR2(3); LV_R4 VARCHAR2(3); LV_CARACT VARCHAR2(1); LV_CARACTER VARCHAR2(5); LV_CARACTER_1 VARCHAR2(20); LV_CARACTER_2 VARCHAR2(20); LV_CADENA_TOTAL VARCHAR2(15); LV_ERROR VARCHAR2(100); LV_CADENA VARCHAR2(100); LV_SUBST VARCHAR2(100); LN_LONGITUD NUMBER:=0; LN_EXTRAE NUMBER:=0; LN_R1 NUMBER:=0;

Page 177: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

177

LN_R2 NUMBER:=0; LN_R3 NUMBER:=0; LN_R4 NUMBER:=0; --LN_B NUMBER:=0; LN_A NUMBER:=0; LN_CONT NUMBER:=0; LN_INDICE NUMBER:=0; LN_ASCII NUMBER:=0; LN_CARACT NUMBER:=0; LN_SIGNOS NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_CARACTERES NUMBER:=0; --BAND BOOLEAN:=FALSE; BEGIN LV_ERROR := NULL; LV_CADENA := REPLACE(PV_RECURSO, ' ', ''); LV_CARACTER_1 := SUBSTR(LV_CADENA, 1,1); LV_CARACTER_2 := SUBSTR(LV_CADENA, LENGTH(LV_CADENA),1); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE AL INICIO NO HAYA UNA RAYA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_1 = '-' THEN LV_CARACTER_1 := SUBSTR(LV_CADENA, 2,LENGTH(LV_CADENA)); LV_CADENA := LV_CARACTER_1; LN_CARACT := LN_CARACT + 1; -- SUMA LAS RAYITAS END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO CUAL CADENA USAR EN EL CASO DE QUE -- PRIMERO TENGA LA RAYA - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_2 = '-'THEN LV_CARACTER_2 := SUBSTR(LV_CADENA, 1, LENGTH(LV_CADENA)-1); LV_CADENA := LV_CARACTER_2; LN_CARACT := LN_CARACT + 1;-- SUMA LAS RAYITAS END IF; BEGIN LN_ASCII := TO_NUMBER(LV_CADENA); LN_LONGITUD := LENGTH(LV_CADENA); EXCEPTION WHEN OTHERS THEN LN_LONGITUD := 0; END; IF LN_CARACT BETWEEN 0 AND 2 THEN IF LN_LONGITUD > 1 THEN LV_ERROR := 'Debe ingresar los recursos que esten en el siguiente rango 1 - 4'; RAISE LE_ERROR; END IF; END IF; -- -- -- -- -- -- -- -- SETEO VARIABLES -- -- -- -- -- -- -- --LN_B := 0; LN_A := 1; LN_ASCII := 0; LN_EXTRAE := 0; LN_SIGNOS := 0; LN_CARACTERES := 0; LN_LONGITUD := LENGTH (LV_CADENA);

Page 178: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

178

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO CARACTERES POR MEDIO DEL ASCII -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- LOOP LN_INDICE := LN_INDICE + 1; LV_CARACT := SUBSTR(LV_CADENA, LN_INDICE, 1); LN_ASCII := ASCII(LV_CARACT); EXIT WHEN LV_CARACT IS NULL; IF (LN_ASCII > 48 AND LN_ASCII < 53) OR LN_ASCII = 45 THEN LN_CARACTERES := LN_CARACTERES + 1; -- SUMO LA CANTIDAD DE RECURSOS ELSE LN_SIGNOS := LN_SIGNOS + 1; END IF; END LOOP; IF LN_SIGNOS > 0 THEN LV_ERROR := 'Debe ingresar los recursos que esten en el siguiente rango 1 - 4'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CICLO PARA SETEAR LOS RECURSOS R1-R2 ETC. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- LN_CARACTERES := 0; LOOP IF (LN_LONGITUD = LN_EXTRAE) THEN EXIT; ELSE LN_EXTRAE := INSTR (LV_CADENA, '-', 1 , LN_A); IF LN_EXTRAE = 0 THEN LV_SUBST := LV_CADENA; ELSE LV_SUBST := SUBSTR(LV_CADENA , 1, LN_EXTRAE - 1); LV_CADENA := SUBSTR(LV_CADENA , LN_EXTRAE + 1); END IF; END IF; LV_CARACTER := SUBSTR (LV_SUBST, LENGTH(LV_SUBST),1); LN_CARACTERES := LN_CARACTERES + 1; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- RECURSOS SETEADOS PARA EL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_SUBST IS NULL THEN LV_ERROR := 'RECURSO MAL INGRESADO'; RAISE LE_ERROR; END IF; IF LV_CARACTER = '1' THEN LV_R1 := 'R1'; LN_R1 := LN_R1 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF LV_CARACTER = '2' THEN LV_R2 := 'R2'; LN_R2 := LN_R2 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF LV_CARACTER = '3' THEN LV_R3 := 'R3'; LN_R3 := LN_R3 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF;

Page 179: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

179

IF LV_CARACTER = '4' THEN LV_R4 := 'R4'; LN_R4 := LN_R4 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF (LV_CARACTER = '5' OR LV_CARACTER = '6' OR LV_CARACTER = '7' OR LV_CARACTER = '8' OR LV_CARACTER = '9' OR LV_CARACTER = '0') THEN LV_ERROR := 'No debe ingresar más de 4 recursos.'; RAISE LE_ERROR; END IF; EXIT WHEN LN_CONT = 4 OR LN_EXTRAE = 0; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE NO SE INGRESE UN RECURSO 2 VECES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LN_R1 > 1 OR LN_R2 > 1 OR LN_R3 > 1 OR LN_R4 > 1 THEN LV_ERROR := 'No debe ingresar el mismo recurso dos veces'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE SOLO INGRESE 4 RECURSOS O LO QUE INDICA EN LA TABLA -- VALIDO QUE NO INGRESE CARACTERES ESPECIALES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_CANT_RECURSOS(PN_CODIGO_PROY); FETCH C_CANT_RECURSOS INTO LN_CANT_RECURSOS; CLOSE C_CANT_RECURSOS; IF LN_CARACTERES > LN_CANT_RECURSOS THEN LV_ERROR := 'La cantidad de recursos es diferente a la especificada (' || LN_CANT_RECURSOS || ') - (1 - 4)'; RAISE LE_ERROR; END IF; LV_CADENA_TOTAL := LV_R1 || '-' || LV_R2 || '-' || LV_R3 || '-' || LV_R4; -- -- -- -- -- -- -- -- -- -- -- -- -- -- REEMPLAZO CARACTERES DUPLICADOS -- -- -- -- -- -- -- -- -- -- -- -- -- LV_CADENA_TOTAL := REPLACE(LV_CADENA_TOTAL, '---', '-'); LV_CADENA_TOTAL := REPLACE(LV_CADENA_TOTAL, '--', '-'); LV_CARACTER_1 := SUBSTR(LV_CADENA_TOTAL, 1, 1); LV_CARACTER_2 := SUBSTR(LV_CADENA_TOTAL, LENGTH(LV_CADENA_TOTAL), 1); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ELIMINO EL PRIMER CARACTER DE LA CADENA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_1 = '-' THEN LV_CADENA_TOTAL := SUBSTR(LV_CADENA_TOTAL, 2, LENGTH(LV_CADENA_TOTAL)); END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ELIMINO EL ULTIMO CARACTER DE LA CADENA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_2 = '-' THEN LV_CADENA_TOTAL := SUBSTR(LV_CADENA_TOTAL, 1, LENGTH(LV_CADENA_TOTAL)-1); END IF; PV_CADENA := LV_CADENA_TOTAL; EXCEPTION WHEN le_error THEN PV_ERROR := LV_ERROR; END;

Page 180: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

180

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROGRAMA PRINCIPAL QUE REALIZA EL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_ACTIVIDADES (PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE, PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2)IS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LA PRIMERA FECHA DE UN CRONOGRAMA -- EN CASO DE QUE EXISTE REGISTROS ANTERIORES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHA_FIN(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA ULTIMA ACTIVIDAD DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_VERIF_ULTIMA_ACTIV (PN_CODIGO_PROYECTO NUMBER) IS SELECT COUNT(*) FROM GPP_ACTIVIDADES AC WHERE AC.CODIGO_ACTIVIDAD = (SELECT MAX(A.CODIGO_ACTIVIDAD) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO) AND UPPER(AC.DESCRIPCION_ACTIVIDAD) LIKE '%FIN % PROY%'; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA FECHA MINIMA Y MAXIMA DEL PROYECTO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHAS_MIN_MAX(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA), MAX(A.FECHA_FINAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; LE_ERROR EXCEPTION; LN_PREDECESORA NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_ACTIVIDAD NUMBER:=0; LB_NOT_FOUND BOOLEAN; LB_BAND BOOLEAN; LV_ACT VARCHAR2(1); AUX_FI VARCHAR2(20); AUX_FF VARCHAR2(20); AUX_FIC VARCHAR2(20);

Page 181: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

181

LD_FECHA_INICIO DATE; LD_FECHA_FIN DATE; LD_SYSDATE DATE; LD_FECHA_INIC_CRONOG DATE; LD_FECHA_MIN DATE; LD_FECHA_MAX DATE; LV_RECURSOS VARCHAR2(20); LV_HITO VARCHAR2(1):= 'A'; LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_ACTIVIDADES'; BEGIN LV_ERROR := NULL; PN_TIEMPO := 0; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE LAS VARIABLES NO SEAN NULAS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LV_ACT FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PROYECTO AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; --LV_ERROR := 'La actividad u orden que quiere ingresar ya existe en el Proyecto'; --RAISE LE_ERROR; END; IF LV_ACT = 'X' THEN LV_ERROR := 'La actividad u orden que quiere ingresar ya existe en el Proyecto'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INICIO EL PROCESO DE VALIDACION -- -- -- -- -- -- -- -- -- -- -- -- -- IF PN_ACTIVIDAD_PROYECTO IS NULL THEN lv_error := 'El orden de la actividad no debe ser nulo'; RAISE le_error; END IF; IF pn_codigo_proyecto IS NULL THEN lv_error := 'El código del proyecto no debe ser nulo'; RAISE le_error; END IF; IF PV_DESCRIPCION_ACTIVIDAD IS NULL THEN lv_error := 'La actividad no debe ser nula'; RAISE le_error; END IF; LV_HITO := UPPER(PV_HITO); IF (LV_HITO <> 'A' AND LV_HITO <> 'H') OR LV_HITO IS NULL THEN lv_error := 'El hito debe estar entre A o H'; RAISE le_error; END IF; IF PN_ACTIVIDAD_PREDECESORA IS NULL THEN ln_predecesora := 0; ELSE --HECHO POR JOHNNY PRUEBA PARA QUE NO INGRESE LOS NUMEROS INVALIDOS BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LN_ACTIVIDAD

Page 182: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

182

FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PREDECESORA AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; END; IF LN_ACTIVIDAD IS NULL OR LN_ACTIVIDAD = 0 THEN LV_ERROR := 'La actividad predecesora que quiere ingresar no existe en el Proyecto'; RAISE LE_ERROR; END IF; ln_predecesora := PN_ACTIVIDAD_PREDECESORA; END IF; IF lv_hito = 'A' THEN IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha de inicio de la actividad'; RAISE LE_ERROR; END IF; IF PV_FECHA_FINAL IS NULL THEN LV_ERROR := 'Ingrese la fecha fin de la actividad'; RAISE LE_ERROR; END IF; ELSE IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha inicio del hito'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- SI PERMITE LA FECHA FINAL NULA PARA EL HITO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --SELECT TO_DATE(PV_FECHA_INICIAL, 'DD/MM/YYYY') INTO LV_FI FROM DUAL; LD_FECHA_FIN := TO_DATE(PV_FECHA_INICIAL,'DD-MM-YYYY'); LB_BAND := TRUE; END IF; IF LB_BAND THEN LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); ELSE LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); LD_FECHA_FIN := TO_DATE(PV_FECHA_FINAL, 'DD-MM-YYYY'); END IF; LB_BAND := FALSE; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE VERIFICA LA PRIMERA FECHA DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHA_FIN(PN_CODIGO_PROYECTO); FETCH C_FECHA_FIN INTO LD_FECHA_INIC_CRONOG; LB_NOT_FOUND := C_FECHA_FIN%NOTFOUND; CLOSE C_FECHA_FIN; AUX_FI := TO_CHAR(LD_FECHA_INICIO, 'MM-YYYY'); AUX_FF := TO_CHAR(LD_FECHA_FIN, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR QUE LAS FECHAS SEAN MAYORES A LA PRIMERA FECHA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LB_NOT_FOUND THEN LD_SYSDATE := TO_CHAR(SYSDATE, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE LAS FECHAS NO SEAN MENORES A LA PRIMERA FECHA INGRESADA -- EN CASO QUE NO HAYA VALIDA EL MES Y AÑO EN CURSO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Page 183: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

183

IF (AUX_FI <= LD_SYSDATE) OR (AUX_FF <= LD_SYSDATE) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; ELSE AUX_FIC := TO_CHAR(LD_FECHA_INIC_CRONOG, 'MM-YYYY'); IF AUX_FIC IS NOT NULL THEN IF (AUX_FI < AUX_FIC) OR (AUX_FF < AUX_FIC) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- CALCULO EL TIEMPO ENTRE LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- PN_TIEMPO := LD_FECHA_FIN - LD_FECHA_INICIO + 1; -- SUMAR EL DIA QUE SE QUEDA EN LA RESTA IF PN_TIEMPO < 0 THEN LV_ERROR := 'La fecha de inicio debe ser menor que la fecha final'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR LA CAJA DE TEXTO QUE INVOLUCRA A LOS RECURSOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF PV_RECURSO IS NULL THEN LV_ERROR := 'Ingrese el o los recursos responsables de la actividad'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INDICA LAS 4 VARIABLES ESTANDARES -- -- -- -- -- -- -- -- -- -- -- -- -- CNP_REC_ESTANDAR(PV_RECURSO, PN_CODIGO_PROYECTO, LV_RECURSOS, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERTA LAS ACTIVIDADES DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- GPPK_OBJ_ACTIVIDADES.INSERT_ACTIVIDADES(PN_ACTIVIDAD_PROYECTO, PN_CODIGO_PROYECTO, upper(PV_DESCRIPCION_ACTIVIDAD), upper(LV_HITO), LN_PREDECESORA, LD_FECHA_INICIO, --/*TO_DATE(LD_FECHA_INICIO, 'DD-MM-YYYY'),--*/PV_FECHA_INICIAL, LD_FECHA_FIN, --/*TO_DATE(LD_FECHA_FIN, 'DD-MM-YYYY'), --*/PV_FECHA_FINAL, upper(PV_OBSERVACION), LV_RECURSOS, PN_TIEMPO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF;

Page 184: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

184

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA SI ES LA ULTIMA ACTIVIDAD -- PARA ACTUALIZAR LOS TIEMPOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_VERIF_ULTIMA_ACTIV(PN_CODIGO_PROYECTO); FETCH C_VERIF_ULTIMA_ACTIV INTO LN_CANT_RECURSOS; CLOSE C_VERIF_ULTIMA_ACTIV; IF LN_CANT_RECURSOS > 0 THEN GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- OBTENER FECHA MINIMA Y MAXIMA -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHAS_MIN_MAX(PN_CODIGO_PROYECTO); FETCH C_FECHAS_MIN_MAX INTO LD_FECHA_MIN, LD_FECHA_MAX; CLOSE C_FECHAS_MIN_MAX; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CAMBIAR EL ESTADO DEL PROYECTO Y ACTUALIZA LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UPDATE GEN_PROYECTOS P SET P.CODIGO_ESTADO = 'CR', P.FECHA_INICIO = LD_FECHA_MIN, P.FECHA_FIN = LD_FECHA_MAX, P.FECHA_INICIO_REAL = LD_FECHA_MIN, P.FECHA_FIN_REAL = LD_FECHA_MAX, P.TIEMPO_PROYECTO = TO_NUMBER((LD_FECHA_FIN - LD_FECHA_INICIO) + 1) WHERE P.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; COMMIT; END IF; COMMIT; EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); IF PV_ERROR IS NOT NULL THEN PV_ERROR := LV_ERROR /*|| ' - ' || pv_error*/; END IF; END; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ACTUALIZA LA ACTIVIDAD DE UN PROYECTO SIGUIENDO LAS -- MISMAS CONSIDERACIONES QUE SE TOMAN PARA REALIZA UN INSERT -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_ACTUALIZA_ACT(PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --

Page 185: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

185

GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE, PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2)IS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LA PRIMERA FECHA DE UN CRONOGRAMA -- EN CASO DE QUE EXISTE REGISTROS ANTERIORES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHA_FIN(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA ULTIMA ACTIVIDAD DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_VERIF_ULTIMA_ACTIV (PN_CODIGO_PROYECTO NUMBER) IS SELECT COUNT(*) FROM GPP_ACTIVIDADES AC WHERE AC.CODIGO_ACTIVIDAD = (SELECT MAX(A.CODIGO_ACTIVIDAD) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO) AND UPPER(AC.DESCRIPCION_ACTIVIDAD) LIKE '%FIN % PROY%'; LE_ERROR EXCEPTION; LN_PREDECESORA NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_ACTIVIDAD NUMBER:=0; LB_NOT_FOUND BOOLEAN; LB_BAND BOOLEAN; --LV_ACT VARCHAR2(1); AUX_FI VARCHAR2(20); AUX_FF VARCHAR2(20); AUX_FIC VARCHAR2(20); LD_FECHA_INICIO DATE; LD_FECHA_FIN DATE; LD_SYSDATE DATE; LD_FECHA_INIC_CRONOG DATE; LV_RECURSOS VARCHAR2(20); LV_HITO VARCHAR2(1); LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_ACTIVIDADES'; BEGIN LV_ERROR := NULL; PN_TIEMPO := 0; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INICIO EL PROCESO DE VALIDACION

Page 186: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

186

-- -- -- -- -- -- -- -- -- -- -- -- -- IF PN_ACTIVIDAD_PROYECTO IS NULL THEN lv_error := 'Especifique la actividad a modificar'; RAISE le_error; END IF; IF pn_codigo_proyecto IS NULL THEN lv_error := 'El código del proyecto no debe ser nulo'; RAISE le_error; END IF; IF PN_ACTIVIDAD_PREDECESORA IS NOT NULL THEN -- PARA QUE NO INGRESE LOS NUMEROS INVALIDOS BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LN_ACTIVIDAD FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PREDECESORA AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; END; IF LN_ACTIVIDAD IS NULL OR LN_ACTIVIDAD = 0 THEN LV_ERROR := 'La actividad predecesora que quiere ingresar no existe en el Proyecto'; RAISE LE_ERROR; END IF; ln_predecesora := PN_ACTIVIDAD_PREDECESORA; END IF; IF lv_hito IS NOT NULL THEN IF lv_hito = 'H' OR lv_hito = 'A' THEN IF lv_hito = 'A' THEN IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha de inicio de la actividad'; RAISE LE_ERROR; END IF; IF PV_FECHA_FINAL IS NULL THEN LV_ERROR := 'Ingrese la fecha fin de la actividad'; RAISE LE_ERROR; END IF; ELSE IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha inicio del hito'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- SI PERMITE LA FECHA FINAL NULA PARA EL HITO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --SELECT TO_DATE(PV_FECHA_INICIAL, 'DD/MM/YYYY') INTO LV_FI FROM DUAL; LD_FECHA_FIN := TO_DATE(PV_FECHA_INICIAL,'DD-MM-YYYY'); LB_BAND := TRUE; END IF; IF LB_BAND THEN LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); ELSE LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); LD_FECHA_FIN := TO_DATE(PV_FECHA_FINAL, 'DD-MM-YYYY'); END IF; LB_BAND := FALSE; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Page 187: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

187

-- CURSOR QUE VERIFICA LA PRIMERA FECHA DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHA_FIN(PN_CODIGO_PROYECTO); FETCH C_FECHA_FIN INTO LD_FECHA_INIC_CRONOG; LB_NOT_FOUND := C_FECHA_FIN%NOTFOUND; CLOSE C_FECHA_FIN; AUX_FI := TO_CHAR(LD_FECHA_INICIO, 'MM-YYYY'); AUX_FF := TO_CHAR(LD_FECHA_FIN, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR QUE LAS FECHAS SEAN MAYORES A LA PRIMERA FECHA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LB_NOT_FOUND THEN LD_SYSDATE := TO_CHAR(SYSDATE, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE LAS FECHAS NO SEAN MENORES A LA PRIMERA FECHA INGRESADA -- EN CASO QUE NO HAYA VALIDA EL MES Y AÑO EN CURSO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF (AUX_FI <= LD_SYSDATE) OR (AUX_FF <= LD_SYSDATE) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; ELSE AUX_FIC := TO_CHAR(LD_FECHA_INIC_CRONOG, 'MM-YYYY'); IF AUX_FIC IS NOT NULL THEN IF (AUX_FI < AUX_FIC) OR (AUX_FF < AUX_FIC) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- CALCULO EL TIEMPO ENTRE LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- PN_TIEMPO := LD_FECHA_FIN - LD_FECHA_INICIO + 1; -- SUMAR EL DIA QUE SE QUEDA EN LA RESTA IF PN_TIEMPO < 0 THEN LV_ERROR := 'La fecha de inicio debe ser menor que la fecha final'; RAISE LE_ERROR; END IF; END IF; END IF; IF LV_HITO IS NULL THEN LD_FECHA_INICIO := NULL; LD_FECHA_FIN := NULL; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR LA CAJA DE TEXTO QUE INVOLUCRA A LOS RECURSOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF PV_RECURSO IS NOT NULL THEN -- -- -- -- -- -- -- -- -- -- -- -- -- -- INDICA LAS 4 VARIABLES ESTANDARES -- -- -- -- -- -- -- -- -- -- -- -- -- CNP_REC_ESTANDAR(PV_RECURSO, PN_CODIGO_PROYECTO, LV_RECURSOS, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR;

Page 188: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

188

END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERTA LAS ACTIVIDADES DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- GPPK_OBJ_ACTIVIDADES.ACT_ACTIVIDADES(pn_codigo_actividad => PN_ACTIVIDAD_PROYECTO, pn_codigo_proyecto => PN_CODIGO_PROYECTO, pv_descripcion => upper(PV_DESCRIPCION_ACTIVIDAD), pv_hito => upper(LV_HITO), pn_predecesora => LN_PREDECESORA, pd_fecha_inicial => LD_FECHA_INICIO, --/*TO_DATE(LD_FECHA_INICIO, 'DD-MM-YYYY'),--*/PV_FECHA_INICIAL, pd_fecha_final => LD_FECHA_FIN, --/*TO_DATE(LD_FECHA_FIN, 'DD-MM-YYYY'), --*/PV_FECHA_FINAL, pv_observacion => upper(PV_OBSERVACION), pv_recurso => LV_RECURSOS, pn_tiempo => PN_TIEMPO, pv_msg_error => LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA SI ES LA ULTIMA ACTIVIDAD -- PARA ACTUALIZAR LOS TIEMPOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_VERIF_ULTIMA_ACTIV(PN_CODIGO_PROYECTO); FETCH C_VERIF_ULTIMA_ACTIV INTO LN_CANT_RECURSOS; CLOSE C_VERIF_ULTIMA_ACTIV; IF LN_CANT_RECURSOS > 0 THEN GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ENVIAR LA ALARMA AL GRUPO DE NORKA INDICANDO -- QUE EL CRONOGRAMA YA FUE CULMINADO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- COMMIT; END IF; COMMIT; EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); IF PV_ERROR IS NOT NULL THEN PV_ERROR := LV_ERROR /*|| ' - ' || pv_error*/;

Page 189: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

189

END IF; END; end GPPK_TRX_ACTIVIDADES;

Manejaremos los siguientes casos:

Caso a: La actividad que se vaya asignar es la quinta actividad

ingresada en el mismo proyecto.

Caso b: En la actividad ingreso en el campo de partic_proyecto

se va a insertar un símbolo (ASCII), para ver la funcionalidad del

proceso que realiza la inserción en gpp_Actividades.

Page 190: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

190

Caso a:

Ingresa

Datos de la

actividad

Verifica si existen

campos nulos

No

Verifica si es hito

No

SiPermitir que sea

nula la fecha final

Valida que la f.

de Ingreso mayor

a la f. Inicial

Abrir Cursor

Fecha Inicio

Proyectos

Si

Sumar las

fechas de

actividades

Valida que

ingrese el

responsable de

la act.

Si

Llama

procedimiento

que

estandariza los

recursos

Valida que

ingrese el

responsable de

la act.

Insertar actividad

Page 191: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

191

En el primer caso antes de ingresar la actividad a la tabla se debe

validar los parámetros que reciben el procedimiento que va a

realizar la inserción; pero en este caso los valores ingresados son

completos y correctos.

Luego se verifica si la actividad por ingresarse es hito; para saber

si es permitido el que no tenga la fecha fin o si debe ser

obligatorio, en este caso si es un hito y no lleva la fecha fin de la

actividad.

Se recorre un cursor para obtener la fecha que comenzó la

primera actividad del proyecto; para poderlo comparar con las

fechas que se esta ingresando la cual no deben ser mayores.

Realiza la inserción de las actividades de un proyecto

Page 192: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

192

Informe de Análisis

Nombre: Ingreso de Actividades de un proyecto

Caso: La actividad que se vaya asignar es la quinta actividad ingresada en el mismo proyecto.

Evaluación: Evaluando el flujo de las líneas de códigos minuciosamente se ha llegado a la conclusión que el correcto manejo de información conlleva al ingreso exitoso de una actividad.

Análisis: No existe novedad o alguna sugerencia de este caso y no se levantará ningún tema de atención sobre el proyecto.

Caso B:

En este caso solo vamos a revisar el modelo que realiza las

validaciones para líder.

Page 193: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

193

PROCEDURE CNP_REC_ESTANDAR(PV_RECURSO IN VARCHAR2, PN_CODIGO_PROY IN NUMBER, PV_CADENA OUT VARCHAR2, PV_ERROR OUT VARCHAR2)IS CURSOR C_CANT_RECURSOS (PN_CODIGO_PROY NUMBER)IS SELECT P.TOTAL_RECURSO_HUMANO FROM GEN_PROYECTOS P WHERE P.CODIGO_PROYECTO = PN_CODIGO_PROY; LE_ERROR EXCEPTION; LV_R1 VARCHAR2(3); LV_R2 VARCHAR2(3); LV_R3 VARCHAR2(3); LV_R4 VARCHAR2(3); LV_CARACT VARCHAR2(1); LV_CARACTER VARCHAR2(5); LV_CARACTER_1 VARCHAR2(20); LV_CARACTER_2 VARCHAR2(20); LV_CADENA_TOTAL VARCHAR2(15); LV_ERROR VARCHAR2(100); LV_CADENA VARCHAR2(100); LV_SUBST VARCHAR2(100); LN_LONGITUD NUMBER:=0; LN_EXTRAE NUMBER:=0; LN_R1 NUMBER:=0; LN_R2 NUMBER:=0; LN_R3 NUMBER:=0; LN_R4 NUMBER:=0; --LN_B NUMBER:=0; LN_A NUMBER:=0; LN_CONT NUMBER:=0; LN_INDICE NUMBER:=0; LN_ASCII NUMBER:=0; LN_CARACT NUMBER:=0; LN_SIGNOS NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_CARACTERES NUMBER:=0; BAND BOOLEAN:=FALSE; BEGIN J_ LV_ERROR := NULL; LV_CADENA := REPLACE(PV_RECURSO, ' ', ''); LV_CARACTER_1 := SUBSTR(LV_CADENA, 1,1); LV_CARACTER_2 := SUBSTR(LV_CADENA, LENGTH(LV_CADENA),1); IF LV_CARACTER_1 = '-' THEN LV_CARACTER_1 := SUBSTR(LV_CADENA, 2,LENGTH(LV_CADENA)); LV_CADENA := LV_CARACTER_1; LN_CARACT := LN_CARACT + 1; -- SUMA LAS RAYITAS END IF; IF LV_CARACTER_2 = '-'THEN LV_CARACTER_2 := SUBSTR(LV_CADENA, 1, LENGTH(LV_CADENA)-1); LV_CADENA := LV_CARACTER_2; LN_CARACT := LN_CARACT + 1;-- SUMA LAS RAYITAS END IF; BEGIN LN_ASCII := TO_NUMBER(LV_CADENA); LN_LONGITUD := LENGTH(LV_CADENA); EXCEPTION WHEN OTHERS THEN LN_LONGITUD := 0; END;

Page 194: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

194

Abrir Cursor

Cantidad de

Recursos

Elimina espacio

en blanco

Ln_signos > 0

Si

Suma los

signo que

encuentre

Valida si inicia

con raya o no

Suma el número

de rayas

Verifica por medio de

código ASCII, para no

coger caracteres

especiales

Si

Debe Ingresar los recursos que estén

en el siguiente rango 1 - 4

Page 195: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

195

Primero lo que se analiza es el número de recursos que están

asignados a un proyecto, para luego recopilarlos y en algún

momento poder saber cuantos participantes se van asignar a un

proyecto esto permitirá tener una restricción cuando se vayan

asignar.

Luego verifica por medio del código Ascii que los datos que están

ingresando no son caracteres especiales; pero en este caso si lo

son por ende salio el mensaje de error.

Informe de Análisis

Nombre: Ingreso de Actividades de un proyecto

Caso: En la actividad ingreso en el campo de partic_proyecto se va a insertar un símbolo (ASCII), para ver la funcionalidad del proceso que realiza la inserción en gpp_Actividades.

Evaluación: Evaluando el flujo de las líneas de codificación después de un exhaustivo desarrollo de pruebas y hemos notado la gran robustez a nivel de seguridades.

Análisis: No existe novedad o alguna sugerencia de este caso y no se levantará ningún tema de atención sobre el proyecto.

Page 196: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

196

5.3.3 Recursos Humanos

Para insertar los recursos humanos debemos recuperar de

gen_proyectos el número de recursos que se le puede asignar a

un proyecto basándonos en eso vamos asignar los recursos.

procedure gpp_asigna_recursos ( pv_codigo in varchar2 ,pv_participantes in varchar2 ,pn_cant_recursos in number ,pv_msg_error out varchar2) is lv_trama varchar2(50); lv_caracter varchar2(50); lv_parametro varchar2(50); lv_campo varchar2(50); lv_valor varchar2(50); cadena_resultante varchar2(100); lv_msg_error varchar2(100):=NULL; ln_contador number := 0; ln_codigoProyecto number; ln_codigoParticipante number; le_mi_error exception; --lb_guardar boolean:= true; ln_totalRecursos number:= 0; begin if pv_codigo is null then lv_msg_error:= 'Código del proyecto con valor Nulo'; raise le_mi_error; end if; if pv_participantes is null then lv_msg_error:= 'La trama de los participantes esta vacía '; raise le_mi_error; end if; if pn_cant_recursos is null then lv_msg_error:= 'No hay cantidad de recursos para el proyecto'; raise le_mi_error; end if; lv_trama := pv_participantes; -- se tiene la trama de los participantes lv_parametro := pv_codigo; -- se tiene el codigo del participante ln_codigoProyecto := to_number (pv_codigo); -- convierte a number el código del proyecto --lv_trama := lv_trama||'|'; for i in 1 .. length(lv_trama) loop lv_caracter:=substr(lv_trama,i,1); if lv_caracter not in ('|') then lv_campo:=lv_campo||lv_caracter; elsif lv_caracter = '|' then ln_contador := ln_contador + 1; if ln_contador = 1 then

Page 197: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

197

lv_parametro := nvl(lv_campo,0); elsif ln_contador = 2 then lv_valor := lv_campo; ln_codigoParticipante := to_number(lv_valor); ln_totalRecursos := ln_totalRecursos + 1; INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, DESCRIPCION, FECHA_ASIGNACION, fecha_ing , fecha_mod , CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (ln_codigoParticipante, ln_codigoProyecto, 'R', 'El participante será asignado al proyecto:' || ln_codigoProyecto, SYSDATE, SYSDATE, SYSDATE, 'GRUPO3', 'N',-- NO SE ENCUENTRA DISPONIBLE 'A' ); commit; -- llamada a paquete para que realice la asignacion del recurso humano /*BEGIN lb_guardar:= admin.clck_guardar_datos.f_asignar_partic_proyecto (ln_codigoParticipante ,ln_codigoProyecto ,'R' ,'El participante será asignado al proyecto:' || ln_codigoProyecto ,sysdate ,'N' -- estado de participante que ya no estará disponible ,'P' -- estado pendiente ,'GRUPO3' ,'A'); if lb_guardar then genk_bitacorizacion.p_bitacoriza_info(lv_aplicacion, sysdate, user, 'el participante ' || ln_codigoParticipante || 'fue asignado con exito al proyecto '|| ln_codigoProyecto, 'modulo_gpp', null, NULL, lv_msg_error ); end if; if lb_guardar = false then lv_msg_error := lv_aplicacion|| ' Problemas al asignar el participante en clck_guardar_datos. function f_asignar_partic_proyecto: '|| sqlerrm; raise le_mi_error; end if; EXCEPTION

Page 198: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

198

WHEN OTHERS THEN lv_msg_error := SQLERRM; RAISE le_mi_error; END; */ -- llamada a pck para que inserte en gpp_caracteristicas_proyecto BEGIN gppk_obj_caracteristicas.inserta_caracteristicas(pv_codigo_caract => ln_codigoParticipante ,pv_codigo_proy => ln_codigoProyecto ,pv_descripcion => 'RECURSO ASIGNADO' ,pv_msg_error =>lv_msg_error ); if lv_msg_error is not null then raise le_mi_error ; end if; EXCEPTION WHEN OTHERS THEN pv_msg_error := SQLERRM; END; cadena_resultante := cadena_resultante||'|'||lv_valor; ln_contador := 0; end if; lv_campo := ''; end if; end loop; dbms_output.put_line(cadena_resultante); cadena_resultante := substr(cadena_resultante,2); -- muestra solo la cadena que se desea dbms_output.put_line(cadena_resultante); if ln_totalRecursos = pn_cant_recursos then lv_msg_error := 'Participantes Asignados Satisfactoriamente'; dbms_output.put_line(lv_msg_error); --====== Se actualiza la cantidad de recursos que participarán en el proyecto==========-- gppk_trx_recurso_humano.gpp_actualiza_recursos( ln_codigoProyecto,ln_totalRecursos, lv_msg_error); if lv_msg_error is not null then raise le_mi_error; end if; else lv_msg_error := 'Sólo se asignaron '||ln_totalRecursos ||' participantes'; dbms_output.put_line(lv_msg_error); --====== Se actualiza la cantidad de recursos que participarán en el proyecto==========-- gppk_trx_recurso_humano.gpp_actualiza_recursos( ln_codigoProyecto, pn_cant_recursos, lv_msg_error); if lv_msg_error is not null then raise le_mi_error; end if; end if; exception when le_mi_error then pv_msg_error := lv_msg_error; GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_msg_error, null, null, null, pv_msg_error); when others then pv_msg_error := lv_aplicacion|| 'GPP_ASIGNA_RECURSOS - No se encontraron datos : '||

Page 199: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

199

sqlerrm; GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, pv_msg_error, null, null, null, pv_msg_error); end gpp_asigna_recursos;

Revisa si al

momento de

ingresa no existe

datos en null

Obtiene el perfil

de las personas

que necesitan

para el proyecto

Desea guardar datos en

la tabla

clc_participante_proyect

o

Si

Grabar datos en la

tabla

clc_participante_pr

oyecto

Grabar datos en

la tabla

gpp_caracteristica

s_proyecto

Para proceder con la asignación, los recursos que se seleccionan

serán aquellos que poseen el conocimiento requerido para llevar a

cabo el proyecto.

Page 200: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

200

Una vez seleccionados los participantes del proyecto se

procederá con la definición de los participantes lo cual se

almacenará en GPP_CARATERISTICAS_PROYECTOS el código

de los participantes asignados al proyecto los cuales tendrán

relación con el campo partic_proyecto de la tabla

GEN_PROYECTOS.

Informe de Análisis

Nombre: Recursos Humanos

Caso: Definición de los participantes de un proyecto

Evaluación: Evaluando la lógica de negocio que es aplicada en la definición de los participantes de un proyecto es muy acertada.

Análisis: No existe ninguna irregularidad al momento de la definición de los participantes que se necesite ser notificada.

5.4 Pruebas de Caja Blanca

5.4.1 Asignación de Recursos Informáticos.

La asignación de los recursos informáticos a un proyecto se lo

realiza de la siguiente manera:

Page 201: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

201

Verifica si hay disponibilidad en la empresa, para poder cambiar el

estado a asignado, en el caso de no existir disponibilidad en la

empresa lo que se realiza es genera una interfaz por dónde la

cual se solicite la compra de un equipo.

Asignación de

Recursos Informàticos

Salida

SalidaSolicitud de recurso

Actualizar en

MGI_DISPONIBLE

código DEL

PROYECTO.

El modulo de recursos informáticos se recibe el código del

proyecto y la fecha que se le asigne a la transacción, luego

dependiendo de la salida verifica si hay recursos para insertarlos

en MGI_ASIGNACION, de no existir recursos para asignar se

emitirá una solicitud de recurso.

Informe de Análisis

Nombre: Recursos Informáticos

Caso: Participante Proyecto

Evaluación: Evaluando la lógica de negocio que es aplicada en el modelo de asignación de recursos informáticos; solos existen dos posibles salidas.

Análisis: No existe ninguna irregularidad al momento de la definición de los recursos que se necesite ser notificada.

Page 202: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

202

CAPÍTULO 6

6 RECOMENDACIONES Y CONCLUSIONES

6.1 RECOMENDACIONES

Al momento de hacer uso del Gestor de Pre – Proyectos es necesario

que se realice una breve revisión del manual de diseño para que la

navegación por las diferentes páginas les sea más fácil y entendible, es

decir, realizar un preámbulo antes de comenzar a trabajar en el Módulo

que se presenta.

Las diferentes opciones que provee el módulo permitirán al usuario

realizar las diversas tareas pertinentes según le haya sido asignado su

rol de una manera sencilla y sin la necesidad de recurrir a los

documentos impresos, puesto que estos se encuentran digitalizados.

Las opciones e interfaces que posee el módulo son una visión global y

básica del gran mundo de la programación usando la tecnología Oracle

con Java, de tal manera que a posteriori puedan ser ampliados por

Ingenieros en Sistemas de acuerdo a las necesidades que se presenten

a lo largo de la implementación de la Aplicación.

Page 203: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

203

Se recomienda a las generaciones futuras que al momento de escoger el

tópico de graduación autoevalúen sus conocimientos, para que de esta

manera puedan examinar sus deficiencias y/o carencias a fin de

afianzarlos y poder aportar un valor agregado al proyecto que

emprendan.

También se debe tomar en consideración que no sólo el aplicativo Web

es necesario para emprender su proyecto sino también el acceso a la

Base de Datos, en nuestro caso Oracle 9I, mediante la herramienta

PL/SQL Developer, la interacción de ambas herramientas hicieron

posible que el proyecto esté actualmente en sus manos.

6.2 CONCLUSIONES

Mediante la automatización de Sistemas se llevan a cabo tareas de

manera simplificada y sencilla, sin la necesidad de recurrir a procesos

complejos. El proyecto en cuestión provee interfaces para que el usuario

realice las diferentes tareas concernientes a su cargo.

Cabe destacar que la integración del proyecto en cuestión nos preparó y

capacitó para tener la facilidad de comprensión ante situaciones

Page 204: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

204

adversas, complejidad de procesos, análisis de factibilidad de los

proyectos, establecer comunicaciones interpersonales y tecnológicas, la

compatibilidad entre versiones existentes de los aplicativos

implementados y todos aquellos factores que intervienen en un mundo

competitivo y de avanzada tecnología. Cabe mencionar también que se

tomó en consideración la capacidad de Gestionar Proyectos, esto es, la

administración de proyectos en su totalidad, tales como costos en

infraestructura, costos en tiempos para llevar a cabo el desarrollo del

proyecto, cantidad de recursos humanos necesarios, etc.

El Curso de Graduación Oracle y Java ha aportado un valor potencial

para nuestro crecimiento profesional y académico, logrando que los

percances y dificultades presentadas a lo largo del curso hayan sido

resueltos y sobrepuestos gracias a la persistencia e ímpetu que poseen

los Ingenieros en Sistemas.

El Sistema Gestor de Pre-Proyectos fue desarrollado con la finalidad de

cubrir las expectativas y necesidades del Cliente, las cuales fueron

expuestas en su momento; poniendo a manifiesto que las solicitudes o

requerimientos del Cliente pueden divergir por lo que sería necesario

contemplar la Gestión de Proyectos (análisis, estudio de factibilidad,

diseño, presupuestos, etc.) ante un nuevo requerimiento, para que la

Page 205: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

205

implementación de una versión posterior a este Proyecto se culmine con

éxito.

Por lo que podemos concluir que el Proyecto se llevó a cabo con éxito

cubriendo los puntos del alcance previamente analizados y recordar

que: "No es cuánto hagamos, sino cuánto amor ponemos en lo que

hacemos. No es cuánto damos, sino cuánto amor ponemos en lo que

damos."

Page 206: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

206

ANEXOS

ANEXO 1

Modelo Entidad Relación

GPP_ACTIVIDADES

PK CODIGO_ACTIVIDAD INTEGER

ACTIVIDAD_PROYECTO NUMERIC(4;0)FK1 CODIGO_PROYECTO INTEGER ACTIVIDAD_HITO VARCHAR(1) PORCENTAJE_CUMPLIMIENTO INTEGER DESCRIPCION_ACTIVIDAD VARCHAR(100) ACTIVIDAD_PREDECESORA NUMERIC(3;0) FECHA_INICIAL_REAL DATETIME FECHA_FINAL_REAL DATETIME TIEMPO_REAL NUMERIC(3;0) FECHA_INICIAL_ESTIMADA DATETIME FECHA_FINAL_ESTIMADA DATETIME TIEMPO_ESTIMADO NUMERIC(3;0) OBSERVACION VARCHAR(100) ASIGNACION_ACTIVIDAD VARCHAR(4) PARTIC_ACTIVIDAD VARCHAR(100)FK2 CODIGO_ESTADO VARCHAR(3) PESO_AVANCE_PORCENTUAL_EST NUMERIC(4;0) PESO_AVANCE_PORCENTUAL_REA NUMERIC(4;0)

GPP_PRIVILEGIO

PK CODIGO_PRIVILEGIO VARCHAR(2)

DESCRIPCION VARCHAR(100) VALOR_PRIVILEGIO NUMERIC(1,0)

MÓDULO DE GESTIÓN DEL PRE-PROYECTOGRUPO Nº 3

GPP_CARACTERISTICAS_PROYECTO

PK CODIGO_CARACTERISTICA_PROYECTO INTEGER

FK1 CODIGO_PROYECTO INTEGER DESCRIPCION_RECURSO VARCHAR(100) CONOCIMIENTO_1 VARCHAR(50) CONOCIMIENTO_2 VARCHAR(50) CONOCIMIENTO_3 VARCHAR(50) CONOCIMIENTO_4 VARCHAR(50)

GPP_TIPO_PROYECTO

PK CODIGO_TIPO_PROYECTO INTEGER

FK1 CODIGO_ESTADO VARCHAR(3) DESCRIPCION VARCHAR(100)

MGI_ASIGNACION

PK CODIGO_ASIGNACION INTEGER

FK1 CODIGO_PROYECTO INTEGER CODIGO_EQUIPO INTEGER CODIGO_SOFTWARE INTEGERFK2 CODIGO_ESTADO VARCHAR(3) FECHA_ASIGNACION DATETIME

MGI_EQUIPOS

PK CODIGO_EQUIPO INTEGER

DESCRIPCION VARCHAR(100)FK1 CODIGO_ESTADO VARCHAR(3) FECHA_INGRESO DATETIME OBSERVACION VARCHAR(100)FK2 CODIGO_SUB_TIPO_SERVICIO VARCHAR(10)

MGI_SOFTWARE

PK CODIGO_SOFTWARE INTEGER

DESCRIPCION VARCHAR(100) FECHA_INGRESO DATETIME CODIGO_ESTADO VARCHAR(3)FK1 CODIGO_SUB_TIPO_SERVICIO VARCHAR(10)

Page 207: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

GERENTE ATIENDE

REQUERIMIENTO

GERENTE ASIGNA LÍDER SIS Y

CONSULTA LÍDER PROYECTO

ENVÍO Y REVISIÓN DE DDF POR

LÍDER SIS

LÍDER SIS ELLABORA PLAN

TÉCNICO Y CRONOGRAMA

DEFINIR FASES DENTRO DEL

CRONOGRAMA

DEFINIR ACTIVIDADES DENTRO DEL

CRONOGRAMA

ASIGNAR TIEMPO A LAS FASES Y ACTIVIDADES

CRONOGRAMA PRE-FINALIZADO

DISPONIBILIDADRECURSOS

REQUERIMIENTO

ATENDIDO

DDF

REVISADO

IDENTIFICARLAS FASES

ACTIVIDADESDEFINIDAS

TIEMPODEFINIDO

PLAN TÉCNICO

LÍDERES

SELECCIONADOS

O & M

ENVÍA REQUERIMIENTO

A SISTEMAS

VERIFICAR PRESUPUESTO

PRESUPUESTO

APROBADO

REVISIÓN CRONOGRAMA PARA PRESUPUESTO

PRESUPUESTO

NO APROBADO

CAMBIO ESTADO PROYECTO

ASIGNAR RECURSO HUMANO /

INFORMATICO

FASES

DEFINIDAS

GERENTE REVISA PLAN

TÉCNICO

PLAN TECNICO

GERENTE

LIDER RECIBE PLAN TECNICO

ENVIO PLAN TECNICO

PLAN TECNICO APROBADO

P. TEC. NO APROBADO

SELECCIONA RECURSO

SI

ASIGNACIÓN RECURSO HUMANO /

INFORMATICO

NO

SOLICITUD RECURSO HUMANO E

INFORMÁTICO

RECURSOSASIGNADOS

ELABORO CRONOGRAMA

FINAL EN BASE AL ESTIMADO

SOLICITUD

APROBADA / CONTRATO

VENCE

FECHA PLAZO

CAMBIO ESTADO PROYECTO

ANEXO 2

Diagrama de Flujo de Datos

Page 208: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

BIBLIOGRAFÍA

www.programacion.net Sección Java

www.elprisma.com

www.ingenierosoftware.com/analisisydiseno/uml.php

www.clikear.com/manuales/uml/index.asp

es.tldp.org/Tutoriales/doc-modelado-sistemas-UML/multiple-

html/index.html

The Object Management Group (OMG) http://www.omg.org

IBM Racional Software http://www.rational.com

Brigde Point UML Suite http://www.projtech.com

Page 209: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

10

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“Gestión de Proyecto Informático

Módulo de Gestión de Pre-Proyecto”

4TO. CURSO DE GRADUACION

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Mendoza Burgos Evelyn Alexandra

Recillo Reinado María De Los Ángeles

Villavicencio López Johnny Fernando

GUAYAQUIL-ECUADOR

2007

Page 210: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

10

AGRADECIMIENTO

A nuestros padres, quienes con su amor,

paciencia y desdén siempre nos animaron a

escoger una carrera de la cual nos podamos sentir

orgullosos.

Al personal docente, que nos hicieron partícipes

de sus conocimientos y experiencias adquiridas a

lo largo de su carrera profesional; a Dios, quien

siempre puso en nuestro corazón, el amor, el

coraje y la voluntad para seguir adelante y

permitirnos ser profesionales de una carrera digna

de recomendar a nuestros hijos.

Al amor, porque siempre estuvo presente en

nuestros corazones y es el motor para lograr

grandes propósitos.

Page 211: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

DEDICATORIA

La tesis va dirigida a Dios, por darnos la fuerza y

la sabiduría para seguir adelante hasta conseguir

nuestros propósitos y anhelos; A nuestros padres

quienes estuvieron motivándonos a lo largo de

nuestra preparación profesional hasta lograr

vernos convertidos en Ingenieros; Al amor, que

siempre está presente en todas las actividades

que deseemos emprender.

Page 212: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

TRIBUNAL DE GRADUACIÓN

Presidente Tribunal 1er. Vocal

2do. Vocal Secretario

Page 213: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en sistemas

Computacionales, Art. 26)

Mendoza Burgos Evelyn Alexandra

[email protected]

Recillo Reinado María De Los Ángeles

[email protected]

Villavicencio López Johnny Fernando

[email protected]

Page 214: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

RESUMEN

Actualmente las Organizaciones han optimizado y mejorado la forma de

llevar a cabo sus actividades habituales mediante la implementación de la

tecnología.

Sin embargo, debido a la necesidad de mejorar y atender eficientemente los

Requerimientos/Necesidades de mejoras en los mecanismos de trabajo de

las áreas de la Empresa, se desarrolló un “Módulo de Gestión de Pre-

Proyecto” con la finalidad de optimizar el tiempo de recepción y análisis de lo

requerimientos solicitados por el área cliente, áreas de la Empresa, y la

respectiva planificación para llevar a cabo el proyecto que se requiere para

dicha mejora.

Esta aplicación fue diseñada usando la arquitectura de Aplicaciones Cliente /

Servidor, implementado la tecnología Oracle 9i como servidor de la Base de

Datos y MyEclipse para Java como lenguaje de programación de la

aplicación.

El acceso al módulo será evaluado mediante los roles, privilegios y permisos

que tenga configurado el usuario del mismo, proporcionándole así un

username, password y string de conexión a la Base de Datos.

Page 215: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

SUMMARY

Nowadays, Organizations have optimized and improved their way to perform

their usual activities through the use of technology.

However, given the fact that is necessary to fulfill the needs of improval in the

different areas of the company, a “Pre Project Module of Management” was

developed with the objective to optimize the time of reception an analysis of

the requirements of the Client Areas, Enterprise areas, and the planning

needed to materialize the project, necessary for the improvementents.

This technique was designed using the architectures related to Client/Server

Appliccations, implementing Oracle 9i Technology, as a Data Base Server

and My Eclipse for Java as a program code for the application.

The access to the module will be evaluated by means of the roles, privileges

and permissions that the user of the same one has formed, providing to him

this way a username, password and string of connection to the Database.

Page 216: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

INDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

TRIBUNAL DE GRADUACIÓN IV

DECLARACIÓN EXPRESA V

RESUMEN VI

INDICE GENERAL VIII

Page 217: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

TABLA DE CONTENIDOS

MANUAL TECNICO ...................................................................................... 10

1 INSTALACIÓN DE ORACLE 9I ......................................................... 10

2 INSTALACIÓN DEL ENTORNO DE UN DESARROLLO INTEGRADO (IDE). 16

3 INSTALACIÓN DE JAVA. .................................................................. 17

Descarga del software ........................................................................... 17

Instalación del jdk .................................................................................. 17

4 Configuración del jdk .......................................................................... 18

5 INSTALACIÓN DE TOMCAT 5. ......................................................... 19

6 DIAGRAMA ENTIDAD RELACION .................................................... 24

7 IMPLEMENTACIÓN DE LA HERRAMIENTA PL/SQL ....................... 25

8 CREACION DE PAQUETES .............................................................. 29

GPPK_OBJ_PROYECTOS .......................................................................... 29

GPPK_OBJ_ESTADO_PROYECTO ............................................................ 30

GPPK_OBJ_CARACT_PROYECTO ............................................................ 31

GPPK_OBJ_ACTIVIDADES ......................................................................... 32

GPPK_TRX_RECURSO_HUMANO ............................................................. 33

GPPK_TRX_CONFIGURACION .................................................................. 34

GPPK_TRX_ASIGNACION .......................................................................... 35

GPPK_TRX_ACTIVIDADES ......................................................................... 36

9 CODIFICACION DEL DESARROLLO DEL PROYECTO ................... 37

IMPLEMENTACION DE PAQUETERA EN PL/SQL .............................. 37

IMPLEMENTACION DE CODIGO EN JAVA ......................................... 67

MANUAL DE USUARIO ................................................................................ 93

1 MANUAL PARA EL GERENTE DE SISTEMAS ................................. 93

1.1. Asignación Líder de Sistemas – Líder SIS ........................................ 93

1.2. Consulta del Líder de Proyectos ........................................................ 94

Page 218: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

1.3. Configuración de Cantidad Máxima Proyectos .................................. 95

1.4. Estados del Proyecto ......................................................................... 96

1.5. Plan Técnico del Proyecto .................................................................. 97

1.6. Reportes ............................................................................................. 99

1.6.1. Reporte de Estados del Proyecto ....................................................... 99

1.6.2. Reporte de Líderes SIS ................................................................... 100

1.6.3. Reporte de Actividades del Proyecto ............................................... 101

2 MANUAL PARA EL LIDER SIS ........................................................ 102

2.1. Definiciones del Proyecto ................................................................. 102

2.2. Cronograma ..................................................................................... 103

2.3. Asignación de Recurso Humano ...................................................... 106

2.4. Definición de Recursos Informáticos ................................................ 109

2.5. Asignación de Recursos Informáticos .............................................. 110

2.6. Definición de Recursos Humanos Solicitados .................................. 112

2.7. Reportes ........................................................................................... 113

2.7.1. Reporte de Estados del Proyecto ..................................................... 113

2.7.2. Reporte de Líderes SIS ................................................................... 113

2.7.3. Reporte de Actividades del Proyecto ............................................... 114

Page 219: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

10

MANUAL TECNICO

Antes de proceder a la introducción del Manual Técnico, se debe considerar la

instalación previa al desarrollo del proyecto.

Para lograr dicho objetivo se necesitó de la instalación de:

Instalación de Oracle 9i

Instalación del Entorno de un Desarrollo Integrado (IDE).

Instalación de Java.

Instalación de Tomcat 5.

1 INSTALACIÓN DE ORACLE 9I

Al instalar el programa, se solicitará la ruta en la cual se instalarán los

archivos de configuración del instalador.

Page 220: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

11

A continuación, después de presionar el botón Siguiente

seleccionaremos el tipo de instalación que deseemos:

En nuestro caso, puesto que crearemos la base de datos en el

servidor donde estamos realizando la instalación seleccionaremos

Page 221: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

12

Oracle9i Database 9.2.0.1.0. Luego procedemos a seleccionar el

tipo de instalación deseada.

Seleccionamos la opción Personalizada para proceder con la

instalación, en este caso aparecería una ventana como esta:

Page 222: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

13

Luego seleccionaremos la siguiente opción Uso General .

El siguiente paso es seleccionar el puerto el cual es 2030.

Page 223: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

14

Además se debe especificar el nombre de la base de datos.

Nota: el SID es el identificador interno que utilizará Oracle para

referenciar a la base de datos.

Page 224: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

15

Se debe seleccionar la ubicación de los archivos de la base de

datos que la instalación creará.

Luego se visualizará el resumen de los productos a instalar.

Luego se insertan los siguientes Cd’s de Instalación.

La siguiente ventana indica que la instalación ha finalizado:

Page 225: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

16

2 INSTALACIÓN DEL ENTORNO DE UN DESARROLLO

INTEGRADO (IDE).

Para proceder con la instalación del Entorno IDE se debe descargar

la aplicación de la siguiente ruta: http://www.eclipse.org/ en forma de

archivo ZIP y solo tenemos que descomprimirlo en la carpeta donde

desee tenerlo instalado. Para ejecutarlo solo hay que arrancar el

fichero Eclipse.exe Una vez arrancado lo único que nos pedirá es

que le demos la ruta por defecto donde se desee que el eclipse nos

vaya guardando los proyectos que creemos:

Page 226: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

17

Después de esto nos aparecerá la ventana principal de Eclipse:

3 INSTALACIÓN DE JAVA.

Descarga del software

Primero es necesario descargar los programas, de sus sitios web

de origen:

1. Abre la página de J2SE 1.4.2.

Instalación del jdk

1.- Se deberá dar clic en el programa de instalación del jdk:

"j2sdk-1_4_2_06-windows-i586-p.exe".

2.- Luego una vez que se hayan aceptado los acuerdos de

lincencia, dar clic en Next, luego Install.

Page 227: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

18

4 Configuración del jdk

Para configurar el Jdk se deberá abrir la consola de Windows pero

también lo podemos ver en "Menú Inicio" > Programas >

Accesorios. O desde el "Menú Inicio" >Ejecutar y escribir "cmd" o

“command”.

En consola de Windows se deberá escribir java, si no lo tienes

configurado se debe:

1. Pulsamos con el botón derecho del Mouse sobre "Mi PC" y

seleccionamos la opción "Propiedades".

2. Luego seleccionamos la pestaña "Opciones avanzadas" y

pulsamos en el botón inferior "Variables de entorno".

3. Sobre la variable Path dar clic y debemos pulsar el botón

"Modificar”.

4. En el cuadro de valor de variable del sistema se añade al

final => c:\j2sdk1.4.2_06\bin y luego Aceptar los cambios

Page 228: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

19

5 INSTALACIÓN DE TOMCAT 5.

Para proceder con la instalación del Apache Tomcat 5.5 debemos

descargar => Tomcat 5.5 para Windows

Luego de esto procedemos a crear en el Directorio C: la carpeta Tomcat.

( C:\Tomcat ), una vez creada la carpeta se debe descomprimir los

archivos en dicha carpeta.

Una vez descomprimido el archivo, procedemos a la configuración del

entorno desarrollo Eclipse, damos clic en la opción Window =>

Preferentes

Page 229: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

20

Debemos dar clic en el árbol con la Opción Server, dentro del cual

se escoge la opción > Installed Runtimes y dar click en el botón

Add.

Page 230: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

21

Procedemos a elegir la carpeta con el nombre de Apache >

opción Apache Tomcat v5.5 y dar clic en botón Next

Luego debemos elegir donde está el Tomcat 5.5, para lo cual

elegiremos la opción Browse y elegiremos la ruta donde se

encuentra.

Page 231: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

22

Una vez que eligió donde esta instalado Tomcat 5.5 deberá hacer

clic en el botón aceptar y después en el botón Finish y después

clic en el botón Ok

Page 232: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

23

Al final obtendrá un Server para poder realizar el deploy de sus

proyectos en eclipse en ambiente de desarrollo

Page 233: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

24

6 DIAGRAMA ENTIDAD RELACION

El presente Diagrama muestra las estructuras que serán

necesarias para llevar a cabo el desarrollo del módulo.

Cabe resaltar que el módulo interactúa con otros componentes

adicionales que son parte del proyecto como tal.

Modelo Entidad Relación

Page 234: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

25

7 IMPLEMENTACIÓN DE LA HERRAMIENTA PL/SQL

Las estructuras creadas para el desarrollo del presente proyectos

son:

Gpp_actividades

Gpp_caracteristicas_proyecto

Gpp_privilegio

Gpp_tipo_proyecto

Se muestra la estructura GPP_ACTIVIDADES y sus respectivos

campos.

TABLE GPP_ACTIVIDADES

Page 235: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

26

La finalidad de la creación de esta estructura es registrar todas las

actividades que se llevarán a cabo en un proyecto.

A continuación se describirán cada uno de los campos de la

estructura:

NOMBRE TIPO DATO

DESCRIPCION

CODIGO_ACTIVIDAD NUMBER Código de la actividad que pertenece a un proyecto

ACTIVIDAD_PROYECTO NUMBER(4) secuencial de la Actividad del proyecto

CODIGO_PROYECTO NUMBER Código del Proyecto

ACTIVIDAD_HITO VARCHAR2(1) Indica si dicha Actividad es un Hito => 'H' o una Actividad => 'A'

PORCENTAJE_CUMPLIMIENTO NUMBER Registra el porcentaje de cumplimiento de dicha tarea

DESCRIPCION_ACTIVIDAD VARCHAR2(100) Descripción de la actividad

ACTIVIDAD_PREDECESORA NUMBER(3) Indica si dicha tarea depende de otra

FECHA_INICIAL_REAL DATE Fecha de inicio de la actividad

FECHA_FINAL_REAL DATE Fecha Final de la actividad

TIEMPO_REAL NUMBER(3) Tiempo que se llevará a cabo la actividad

FECHA_INICIAL_ESTIMADA DATE Fecha de inicio de la actividad

FECHA_FINAL_ESTIMADA DATE Fecha Final de la actividad

TIEMPO_ESTIMADO NUMBER(3) Tiempo que se llevará a cabo la actividad

OBSERVACION VARCHAR2(100) Descripción General

ASIGNACION_ACTIVIDAD VARCHAR2(4) Indica el grupo que realizó el registro de la actividad

PARTIC_ACTIVIDAD VARCHAR2(100) Registra el participante de la actividad

CODIGO_ESTADO VARCHAR2(3) Indica el codigo de la actividad

PESO_AVANCE_PORCENTUAL_EST NUMBER(4) Indica el peso porcentual estimado

PESO_AVANCE_PORCENTUAL_REA NUMBER(4) Indica el peso porcentual real

Page 236: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

27

Se muestra la estructura GPP_CARACTERISTICAS_PROYECTO y

sus respectivos campos.

TABLE GPP_CARACTERITICAS_PROYECTO

A continuación se describirán cada uno de los campos de la

estructura:

NOMBRE TIPO DATO DESCRIPCION CODIGO_CARACTERISTICA_PROYECTO

NUMBER

Código de la característica del proyecto

CODIGO_PROYECTO NUMBER

Describe el código del proyecto

DESCRIPCION_RECURSO

VARCHAR2(100)

Describe el recurso que se encuentra registrado en dicha estructura

CONOCIMIENTO_1

VARCHAR2(50)

Describe el área de conocimiento o información del recurso

CONOCIMIENTO_2

VARCHAR2(50)

Describe el área de conocimiento o información del recurso

CONOCIMIENTO_3

VARCHAR2(50)

Describe el área de conocimiento o información del recurso

CONOCIMIENTO_4

VARCHAR2(50)

Describe el área de conocimiento o información del recurso

CARACT_RECURSOS VARCHAR2(5)

Indica la característica del recurso

Se muestra la estructura GPP_PRIVILEGIO y sus respectivos

campos.

Page 237: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

28

TABLE GPP_PRIVILEGIO

A continuación se describirán cada uno de los campos de la

estructura:

NOMBRE TIPO DATO DESCRIPCION CODIGO_PRIVILEGIO VARCHAR2(2) Código del privilegio que tiene el usuario

DESCRIPCION VARCHAR2(100) Decribe el privilegio

VALOR_PRIVILEGIO NUMBER(1) El valor del privilegio

Se muestra la estructura GPP_TIPO_PROYECTO y sus respectivos

campos.

TABLE GPP_TIPO_PROYECTO

A continuación se describirán cada uno de los campos de la

estructura:

NOMBRE TIPO DATO DESCRIPCION CODIGO_TIPO_PROYECTO NUMBER Código del Tipo de Proyecto

CODIGO_ESTADO VARCHAR2(3)

Estado del tipo de Proyecto, A=> activo

DESCRIPCION

VARCHAR2(100)

Describe el tipo de Proyecto que puede ser: Informático, Software, etc

Page 238: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

29

8 CREACION DE PAQUETES

Los paquetes realizados y utilizados a lo largo del desarrollo

de nuestro módulo nos han ayudado a realizar diferentes

tareas sobre los campos y registros de la base de datos.

Existe una calificación:

1. TRX Transaccionales

2. OBJ Funcionales

Los TRX son aquellos en donde se realizan procesos de

barrido, comparaciones, transacciones sobre la base de

datos, mientras que los OBJ ejecutan los insert, delete,

truncate entre otros.

GPPK_OBJ_PROYECTOS

Se creó el siguiente paquete con la finalidad de actualizar

los campos peso y estado del proyecto.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure actp_proyectos Actualiza el campo estado del proyecto

procedure actpeso_proyectos Actualiza el peso del proyecto

Page 239: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

30

GPPK_OBJ_ESTADO_PROYECTO

Se creó el siguiente paquete con la finalidad de actualizar

los campos peso y estado del proyecto.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure gpp_actualizar Actualiza el estado dependiendo del proyecto

procedure actp_proyectos

update gen_proyectos set codigo_estado = pv_codigo_estado where gen_proyectos.codigo_proyecto = pn_codigo_proyecto;

update gen_proyectos set codigo_estado = pv_codigo_estado where gen_proyectos.codigo_proyecto = pn_codigo_proyecto;

procedure actpeso_proyectos

update gen_proyectos set peso_proyecto = pn_peso_proyecto where gen_proyectos.codigo_proyecto = pn_codigo_proyecto;

Page 240: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

31

GPPK_OBJ_CARACT_PROYECTO

Este paquete se creo con la finalidad de poseer bitacorizada

información adicional. A continuación se muestra una breve

descripción de los mismos.

PROCESO DESCRIPCION

procedure ingreso_caract_proyecto Inserta datos en la tabla

insert into gpp_caracteristicas_proyecto (codigo_caracteristica_proyecto, codigo_proyecto, descripcion_recurso, conocimiento_1, conocimiento_2, conocimiento_3 ) values (ln_seq, pn_codigo_proyecto, pv_descripcion, pv_conocimiento_1, pv_conocimiento_2, pv_conocimiento_3);

Page 241: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

32

GPPK_OBJ_ACTIVIDADES

Este paquete tiene la finalidad de bitacorizar las diferentes

actividades que se realizan sobre un proyecto, junto con los

responsables de ejecutarla, además de las fechas inicio y fin,

junto con el tiempo en días de las mismas.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure insert_actividades Inserta datos a la tabla

procedure act_actividades Actualiza los registros dependiendo del código del proyecto

update gpp_actividades set fecha_inicial_real = pd_fecha_inicial, fecha_final_real = pd_fecha_final, tiempo_real = pn_tiempo, actividad_hito = pv_hito, fecha_inicial_estimada = nvl(pd_fecha_inicial,SYSDATE), fecha_final_estimada = nvl(pd_fecha_final, SYSDATE), tiempo_estimado = nvl(pn_tiempo,0), codigo_actividad = pn_codigo_actividad, descripcion_actividad = pv_descripcion, actividad_predecesora = pn_predecesora, observacion = pv_observacion, partic_actividad = pv_recurso where codigo_actividad = pn_codigo_actividad and codigo_proyecto = pn_codigo_proyecto;

Page 242: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

33

GPPK_TRX_RECURSO_HUMANO

Para realizar la asignación de recurso humano se realizó un

paquete el cual valida la información, filtrándola de tal

manera que los datos bitacorizados en la base estén

consistentes para posibles reportes; por integridad.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure gpp_actualiza_recursos Actualiza el total de recursos humanos por proyecto

update gen_proyectos p set p.total_recurso_humano = pn_cantRecursos where p.codigo_proyecto = pn_codigoProyecto;

Page 243: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

34

GPPK_TRX_CONFIGURACION

Antes de realizar la asignación del líder se debe almacena la

cantidad máxima de proyectos asignados a un líder junto con

su mayor peso; es por ello que se creo este paquete, el cual

inserta y actualiza dicha transacción.

Esta información deberá ser ingresada por el Gerente de

Proyectos.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure cnp_limite_proyectos Inserción directa a la tabla

INSERT INTO GEN_TIPOS_PARAMETROS

(ID_TIPO_PARAMETRO, DESCRIPCION) VALUES (NVL(ln_tipo_parametro,1),

'LIMITANTES PARA EL LIDER SIS'); COMMIT; INSERT INTO GEN_PARAMETROS

(ID_TIPO_PARAMETRO, ID_PARAMETRO, DESCRIPCION, VALOR, TIPO_DATO)

VALUES(NVL(ln_tipo_parametro,1), 'CANT_PROY', 'CANTIDAD MAXIMA DE PROYECTOS', pv_cantidad, 'NUMBER');

COMMIT; INSERT INTO GEN_PARAMETROS

(ID_TIPO_PARAMETRO, ID_PARAMETRO, DESCRIPCION, VALOR, TIPO_DATO)

VALUES(NVL(ln_tipo_parametro,1), 'PESO_PROY', 'PESO MAXIMO DE PROYECTOS', ln_peso, 'NUMBER');

COMMIT;

Page 244: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

35

GPPK_TRX_ASIGNACION

Dentro de esta codificación se realiza la respectiva

asignación del Líder SIS y el Líder de Proyectos. El líder SIS

deberá ser evaluado antes de realizarse dicha asignación,

por ejemplo, ver el peso de los proyectos que él tiene hasta

el momento, entre otros.

Con respecto al Líder de Proyectos, este podrá ser

visualizado a través de un proceso.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure asig_lider_proy Presenta el nombre del Lider del Proyecto

procedure asig_lider_sis Actualización del Líder SIS en la tabla GEN_PROYECTOS

----------------------------------------------------- -- total de pesos de proyectos asignados a un lider ----------------------------------------------------- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; ----------------------------------------- -- OBTIENE LOS LIMITES PARA EL LIDER SIS ----------------------------------------- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); IF ln_cant_proy > LN_CANT_MAX THEN lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF;

Page 245: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

36

GPPK_TRX_ACTIVIDADES

Al momento de realizar el cronograma, se deberá ingresar

varias actividades con sus respectivos responsables, ya que

cada actividad será evaluada antes de ser insertada, también

se actualizarán los recursos asignados, de esta manera el

proyecto continuará el flujo requerido.

A continuación se muestra una breve descripción de los

mismos.

PROCESO DESCRIPCION

procedure CNP_TIEMPO_HITO Actualiza las fechas del cronograma por hitos.

procedure CNP_REC_ESTANDAR Actualización el recurso ingresado por el usuario

procedure CNP_ACTIVIDADES Inserta y valida las actividades

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO CARACTERES POR MEDIO DEL ASCII -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- LOOP LN_INDICE := LN_INDICE + 1; LV_CARACT := SUBSTR(LV_CADENA, LN_INDICE, 1); LN_ASCII := ASCII(LV_CARACT); EXIT WHEN LV_CARACT IS NULL; IF (LN_ASCII > 48 AND LN_ASCII < 53) OR LN_ASCII = 45 THEN LN_CARACTERES := LN_CARACTERES + 1; -- SUMO LA CANTIDAD DE RECURSOS ELSE LN_SIGNOS := LN_SIGNOS + 1; END IF; END LOOP; IF LN_SIGNOS > 0 THEN LV_ERROR := 'Debe ingresar los recursos que esten en el siguiente rango 1 - 4'; RAISE LE_ERROR; END IF;

Page 246: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

37

9 CODIFICACION DEL DESARROLLO DEL PROYECTO

IMPLEMENTACION DE PAQUETERA EN PL/SQL

La parametrización más considerable a nivel de paquetería en

Oracle son:

Asignación Líder SIS,

Elaboración del Cronograma,

Asignación de Recursos Humanos,

Asignación de Recursos Informáticos.

Asignación de líder SIS:

Dentro de la codificación que nos permite realizar la asignación

del Líder SIS, se ha establecido el control de la cantidad de

proyectos asignados actualmente a un lider, al igual que el peso

que reflejan dichas asignaciones.

Tambien se realiza una verificación sobre la etapa en que se

encuentra ya que de estar en una crítica no se le deberá asignar

proyectos.

Page 247: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

38

PROCEDURE asig_lider_sis (pn_codigo_lider IN clc_participante.codigo_participante%TYPE, pn_codigo_proy IN gen_proyectos.codigo_proyecto%TYPE, pv_user IN VARCHAR2, pv_error OUT VARCHAR2)IS -------------------------------------------------- -- CANTIDAD DE PROYECTOS POR LIDER -- ASUMIENDO QUE EN EL COMBO SE -- ESCOJE A UN LIDER (TIPO_PARTICIPANTE = LIDER) -------------------------------------------------- CURSOR c_cant_proy (pn_codigo_lider NUMBER) IS SELECT COUNT(*) FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); -- debe estar en el estado que lo deja Nathalie /* SELECT COUNT(*) FROM GEN_PROYECTOS PY, CLC_PARTICIPANTE_PROYECTO PP WHERE PP.CODIGO_PARTICIPANTE = PN_CODIGO_LIDER AND PP.ESTADO = 'A' AND PP.CODIGO_TIPO_PARTICIPANTE = 1 AND PP.CODIGO_PROYECTO = PY.CODIGO_PROYECTO AND PY.CODIGO_ESTADO IN ('EC', 'PA'); -- en curso o en desarrollo cuando yo lo apruebo*/ ----------------------- -- PESO DE PROYECTOS ----------------------- CURSOR c_peso_proy (pn_codigo_lider NUMBER) IS SELECT SUM(PY.PESO_PROYECTO) FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); -- debe estar en el estado que lo deja Nathalie /*SELECT SUM(py.PESO_PROYECTO) FROM GEN_PROYECTOS py, CLC_PARTICIPANTE_PROYECTO pp WHERE pp.CODIGO_PARTICIPANTE = pn_codigo_lider AND pp.ESTADO = 'A' AND pp.CODIGO_TIPO_PARTICIPANTE = 1 AND pp.CODIGO_PROYECTO = py.codigo_proyecto AND py.CODIGO_ESTADO IN('EC', 'PA'); -- en curso o en desarrollo*/ ------------------------------------ -- LOS PROYECTOS QUE POSEE UN LIDER ------------------------------------ CURSOR c_proyectos_lider (pn_codigo_lider NUMBER) IS SELECT DISTINCT PY.CODIGO_PROYECTO FROM GEN_PROYECTOS PY WHERE PY.LIDER_SIS = pn_codigo_lider AND PY.CODIGO_ESTADO IN ('AO'); /*SELECT DISTINCT py.CODIGO_PROYECTO FROM GEN_PROYECTOS py, CLC_PARTICIPANTE_PROYECTO pp WHERE pp.CODIGO_PARTICIPANTE = pn_codigo_lider AND pp.ESTADO = 'A' AND pp.CODIGO_PROYECTO = py.codigo_proyecto AND py.CODIGO_ESTADO IN('EC', 'PA');*/ -------------------------------------------------------- -- PARA OBTENER EL VALOR DE LA PRIORIDAD DE UN PROYECTO -------------------------------------------------------- CURSOR c_prioridad_proy (pn_codigo_proy NUMBER) IS SELECT PR.PRIORIDAD_INICIAL FROM GEN_PROYECTOS PY, GRE_PRIORIDAD PR WHERE PY.CODIGO_PROYECTO = PN_CODIGO_PROY

Page 248: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

39

AND PR.CODIGO_PRIORIDAD = PY.CODIGO_PRIORIDAD AND PY.CODIGO_ESTADO = 'AO'; -------------------------- -- FASE DE LOS PROYECTOS -------------------------- CURSOR c_fase_proy (pn_codigo_proyecto NUMBER) IS SELECT PY.CODIGO_PROYECTO, PY.NOMBRE_PROYECTO, D.CODIGO_ACTIVIDAD, D.PORCENTAJE_CUMPLIMIENTO, A.DESCRIPCION_ACTIVIDAD, A.TIEMPO_REAL FROM GEN_PROYECTOS PY, GPP_ACTIVIDADES A, CEH_DET_ACT_RECURSO D WHERE PY.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.CODIGO_PROYECTO = PY.CODIGO_PROYECTO AND A.CODIGO_PROYECTO = D.CODIGO_PROYECTO AND A.CODIGO_ACTIVIDAD = D.CODIGO_ACTIVIDAD AND D.PORCENTAJE_CUMPLIMIENTO > 0 AND PY.CODIGO_ESTADO IN('EC', 'PA'); CURSOR C_ACT (PN_CODIGO_ACTIVIDAD NUMBER)IS SELECT DISTINCT 'X'--, A.PORCENTAJE_CUMPLIMIENTO FROM GPP_ACTIVIDADES A, CEH_DET_ACT_RECURSO D WHERE A.CODIGO_ACTIVIDAD = PN_CODIGO_ACTIVIDAD AND A.CODIGO_ACTIVIDAD = D.CODIGO_ACTIVIDAD AND A.DESCRIPCION_ACTIVIDAD LIKE '%PRUEBAS%' OR A.DESCRIPCION_ACTIVIDAD LIKE '%IMPLEMENTACION%' AND D.PORCENTAJE_CUMPLIMIENTO NOT IN (100) AND A.PORCENTAJE_CUMPLIMIENTO NOT IN (100); ---------------------------------------------- -- CURSOR QUE OBTIENE LA CANTIDAD Y EL PESO -- MAXIMO DE PROYECTOS PARA UN LIDER SIS ---------------------------------------------- CURSOR C_MAXIMO IS SELECT TO_NUMBER(P.VALOR) CANTIDAD, TO_NUMBER(PT.VALOR) PESO FROM GEN_PARAMETROS P, GEN_PARAMETROS PT WHERE P.ID_PARAMETRO = 'CANT_PROY' AND PT.ID_PARAMETRO = 'PESO_PROY'; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE OBTIENE EL TIPO PARTICIPANTE -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR c_participante (pn_codigo_lider NUMBER) IS SELECT p.codigo_tipo_participante FROM clc_participante p WHERE p.codigo_participante = pn_codigo_lider; BAND NUMBER := 1; ln_cant_proy NUMBER := 0; ln_peso_proy NUMBER := 0; ln_prioridad NUMBER := 0; ln_peso_total NUMBER := 0; LN_CANT_MAX NUMBER := 0; LN_PESO_MAX NUMBER := 0; ln_tipo_participante NUMBER := 0; LB_GUARDADO BOOLEAN := TRUE; LB_ASIGNA_LIDER BOOLEAN := FALSE; LV_FASE VARCHAR2(2); lv_hito VARCHAR2(100); lv_error VARCHAR2(100); lv_aplicacion VARCHAR2(100):= 'GPPK_TRX_ASIGNACION.ASIG_LIDER_SIS';

Page 249: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

40

le_error EXCEPTION; le_error_general EXCEPTION; BEGIN -- cantidad de proyectos por lideres OPEN c_cant_proy (pn_codigo_lider); FETCH c_cant_proy INTO ln_cant_proy; CLOSE c_cant_proy; IF ln_cant_proy = 0 THEN BAND := 0; -- NO TIENE PROYECTOS END IF; IF BAND = 1 THEN -- SI TIENE PROYECTOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- total de pesos de proyectos asignados a un lider -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_peso_proy (pn_codigo_lider); FETCH c_peso_proy INTO ln_peso_proy; CLOSE c_peso_proy; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LOS LIMITES PARA EL LIDER SIS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_MAXIMO; FETCH C_MAXIMO INTO LN_CANT_MAX, LN_PESO_MAX; CLOSE C_MAXIMO; LN_CANT_MAX := nvl(LN_CANT_MAX, 5); LN_PESO_MAX := nvl(LN_PESO_MAX, 15); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- el valor de 5 es por efectos de prueba -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF ln_cant_proy > LN_CANT_MAX THEN -- 5 proyectos como máximo lv_error := 'No se pueden asignar más de ' || LN_CANT_MAX || ' proyectos al Líder seleccionado. ' || ln_cant_proy; RAISE le_error; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtengo la prioridad del proyecto actual, -- la cual se convierte en peso del proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN c_prioridad_proy(pn_codigo_proy); FETCH c_prioridad_proy INTO ln_prioridad; CLOSE c_prioridad_proy; -- -- -- -- -- -- -- -- -- -- -- Codigo del participante -- -- -- -- -- -- -- -- -- -- OPEN c_participante (pn_codigo_lider); FETCH c_participante INTO ln_tipo_participante; CLOSE c_participante; -- -- -- -- -- -- -- -- -- -- -- calculo del peso total -- -- -- -- -- -- -- -- -- -- ln_peso_total := nvl(ln_prioridad, 0) + nvl(ln_peso_proy, 0); IF ln_peso_total > LN_PESO_MAX THEN -- 5 proy * 3 peso(alta) LV_ERROR := 'El Líder está sobrecargado, no se puede asignar. El peso máximo es ' || LN_PESO_MAX; RAISE le_error; END IF;

Page 250: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

41

FOR x IN c_proyectos_lider (pn_codigo_lider) LOOP --BEGIN lv_hito := NULL; LV_FASE := NULL; FOR i IN c_fase_proy (x.CODIGO_PROYECTO) LOOP -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- solo almacena el ultimo hito porque se esta evaluando -- actividad por actividad, no varias actividades a la vez -- entonces solo habra un hito en curso -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN LV_FASE := NULL; -- -- -- -- -- -- -- -- -- -- -- OPEN C_ACT (I.CODIGO_ACTIVIDAD); FETCH C_ACT INTO LV_FASE; --, LN_PORC; CLOSE C_ACT; -- -- -- -- -- -- -- -- -- -- -- IF LV_FASE IS NOT NULL THEN--((i.DESCRIPCION_ACTIVIDAD = fase_critica_1) OR (i.DESCRIPCION_ACTIVIDAD = fase_critica_2)) THEN LV_HITO := i.DESCRIPCION_ACTIVIDAD; END IF; IF LV_FASE IS NOT NULL AND (I.PORCENTAJE_CUMPLIMIENTO >= 85 AND I.PORCENTAJE_CUMPLIMIENTO <= 100) THEN lv_hito := 'T'; -- indica que ya termino la etapa critica LB_ASIGNA_LIDER := TRUE; END IF; IF I.PORCENTAJE_CUMPLIMIENTO < 85 THEN LB_ASIGNA_LIDER := FALSE; END IF; EXCEPTION WHEN OTHERS THEN -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); if pv_error is not null then pv_error := lv_error || ' - ' || pv_error; else pv_error := lv_error; end if; END; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- insertar la fase de acuerdo a lo quemado -- en la declaracion, esto es momentaneo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF NOT LB_ASIGNA_LIDER THEN lv_error := 'El líder se encuentra en una etapa crítica, imposible asignar'; RAISE le_error_general; END IF; -- LB_ASIGNA_LIDER := TRUE; END LOOP; ELSE

Page 251: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

42

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder será asignado al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); UPDATE CLC_PARTICIPANTE PT SET PT.NO_PROY_ASIGNADOS = (PT.NO_PROY_ASIGNADOS + 1) WHERE PT.codigo_participante = PN_CODIGO_LIDER; UPDATE GEN_PROYECTOS D SET D.LIDER_SIS = PN_CODIGO_LIDER WHERE D.CODIGO_PROYECTO = PN_CODIGO_PROY; COMMIT; IF LB_GUARDADO THEN -- pv_error := 'BIEN'; GENK_BITACORIZACION.P_BITACORIZA_INFO(lv_aplicacion, SYSDATE, USER, 'EL LIDER ' || pn_codigo_lider || 'FUE ASIGNADO CON EXITO AL PROYECTO '|| pn_codigo_proy, 'MODULO_GPP', NULL, NULL, pv_error); END IF; END IF; IF LB_ASIGNA_LIDER THEN -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- obtiene los datos e insetar -- insertar en la tabla de clc_participante proyecto -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION,

Page 252: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

43

FECHA_ING, FECHA_MOD, CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (PN_CODIGO_LIDER, PN_CODIGO_PROY, 'A', ln_tipo_participante, 'El líder serà asigando al proyecto ' || PN_CODIGO_PROY, SYSDATE, SYSDATE, SYSDATE, pv_user, 'S', 'A'); END IF; EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN le_error_general THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN OTHERS THEN pv_error := SQLERRM; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); END;

Page 253: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

44

Elaboración del Cronograma:

Para la elaboracion del cronograma es necesario que el líder SIS

establezca las actividades a realizar por cada proyecto junto con

el recurso responsable de la misma, además del tiempo y sus

fechas iniciales y finales.

También deberá establecer si dicha actividad es un hito o no.

PROCEDURE CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO IN GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2) AS CURSOR OBTIENE_HITOS (PN_CODIGO_PROYECTO NUMBER) IS SELECT A.CODIGO_ACTIVIDAD FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.ACTIVIDAD_HITO = 'H' AND A.CODIGO_ESTADO = 'A' ORDER BY A.CODIGO_ACTIVIDAD; CURSOR OBTIENE_CRONOGRAMA (PN_CODIGO_PROYECTO NUMBER, PN_CODIGO_ACT NUMBER) IS SELECT A.CODIGO_ACTIVIDAD, A.ACTIVIDAD_PROYECTO, A.ACTIVIDAD_HITO, A.TIEMPO_ESTIMADO, A.FECHA_FINAL_ESTIMADA FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND A.CODIGO_ACTIVIDAD > PN_CODIGO_ACT AND A.CODIGO_ESTADO ='A' ORDER BY A.CODIGO_ACTIVIDAD; LE_ERROR EXCEPTION; LN_TIEMPO NUMBER := 0; LN_VALOR NUMBER := 0; LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO'; LD_FECHA_FIN GPP_ACTIVIDADES.FECHA_FINAL_ESTIMADA%TYPE; BEGIN LV_ERROR := NULL; IF PN_CODIGO_PROYECTO IS NULL THEN LV_ERROR := 'El código del proyecto no debe ser nulo'; RAISE LE_ERROR; END IF; FOR I IN OBTIENE_HITOS(PN_CODIGO_PROYECTO) LOOP FOR J IN OBTIENE_CRONOGRAMA (PN_CODIGO_PROYECTO, I.CODIGO_ACTIVIDAD) LOOP IF J.ACTIVIDAD_HITO = 'A' THEN LN_VALOR := 1;

Page 254: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

45

LD_FECHA_FIN := J.FECHA_FINAL_ESTIMADA; LN_TIEMPO := LN_TIEMPO + J.TIEMPO_ESTIMADO; END IF; EXIT WHEN J.ACTIVIDAD_HITO = 'H'; END LOOP; BEGIN IF LN_VALOR = 0 THEN UPDATE GPP_ACTIVIDADES SET TIEMPO_ESTIMADO = TIEMPO_ESTIMADO, FECHA_FINAL_ESTIMADA = FECHA_FINAL_ESTIMADA WHERE CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND CODIGO_ACTIVIDAD = I.CODIGO_ACTIVIDAD; ELSE UPDATE GPP_ACTIVIDADES SET TIEMPO_ESTIMADO = LN_TIEMPO, FECHA_FINAL_ESTIMADA = LD_FECHA_FIN WHERE CODIGO_PROYECTO = PN_CODIGO_PROYECTO AND CODIGO_ACTIVIDAD = I.CODIGO_ACTIVIDAD; END IF; COMMIT; LN_TIEMPO := 0; EXCEPTION WHEN OTHERS THEN PV_ERROR := SQLERRM || ' - CNP_TIEMPO_HITO'; END; END LOOP; EXCEPTION WHEN LE_ERROR THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); WHEN OTHERS THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); END; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDIMIENTO QUE REGULARIZA EL INGRESO DE -- LOS RECURSOS QUE CORRESPONDEN A LA ACTIVIDAD -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_REC_ESTANDAR(PV_RECURSO IN VARCHAR2, PN_CODIGO_PROY IN NUMBER, PV_CADENA OUT VARCHAR2, PV_ERROR OUT VARCHAR2)IS

Page 255: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

46

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE VERIFICA LA CANTIDAD DE -- RECURSOS ASIGNADOS A UN PROYECTO -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_CANT_RECURSOS (PN_CODIGO_PROY NUMBER)IS SELECT P.TOTAL_RECURSO_HUMANO FROM GEN_PROYECTOS P WHERE P.CODIGO_PROYECTO = PN_CODIGO_PROY; LE_ERROR EXCEPTION; LV_R1 VARCHAR2(3); LV_R2 VARCHAR2(3); LV_R3 VARCHAR2(3); LV_R4 VARCHAR2(3); LV_CARACT VARCHAR2(1); LV_CARACTER VARCHAR2(5); LV_CARACTER_1 VARCHAR2(20); LV_CARACTER_2 VARCHAR2(20); LV_CADENA_TOTAL VARCHAR2(15); LV_ERROR VARCHAR2(100); LV_CADENA VARCHAR2(100); LV_SUBST VARCHAR2(100); LN_LONGITUD NUMBER:=0; LN_EXTRAE NUMBER:=0; LN_R1 NUMBER:=0; LN_R2 NUMBER:=0; LN_R3 NUMBER:=0; LN_R4 NUMBER:=0; --LN_B NUMBER:=0; LN_A NUMBER:=0; LN_CONT NUMBER:=0; LN_INDICE NUMBER:=0; LN_ASCII NUMBER:=0; LN_CARACT NUMBER:=0; LN_SIGNOS NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_CARACTERES NUMBER:=0; --BAND BOOLEAN:=FALSE; BEGIN LV_ERROR := NULL; LV_CADENA := REPLACE(PV_RECURSO, ' ', ''); LV_CARACTER_1 := SUBSTR(LV_CADENA, 1,1); LV_CARACTER_2 := SUBSTR(LV_CADENA, LENGTH(LV_CADENA),1); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE AL INICIO NO HAYA UNA RAYA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_1 = '-' THEN LV_CARACTER_1 := SUBSTR(LV_CADENA, 2,LENGTH(LV_CADENA)); LV_CADENA := LV_CARACTER_1; LN_CARACT := LN_CARACT + 1; -- SUMA LAS RAYITAS END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO CUAL CADENA USAR EN EL CASO DE QUE -- PRIMERO TENGA LA RAYA - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_2 = '-'THEN LV_CARACTER_2 := SUBSTR(LV_CADENA, 1, LENGTH(LV_CADENA)-1); LV_CADENA := LV_CARACTER_2; LN_CARACT := LN_CARACT + 1;-- SUMA LAS RAYITAS

Page 256: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

47

END IF; BEGIN LN_ASCII := TO_NUMBER(LV_CADENA); LN_LONGITUD := LENGTH(LV_CADENA); EXCEPTION WHEN OTHERS THEN LN_LONGITUD := 0; END; IF LN_CARACT BETWEEN 0 AND 2 THEN IF LN_LONGITUD > 1 THEN LV_ERROR := 'Debe ingresar los recursos que esten en el siguiente rango 1 - 4'; RAISE LE_ERROR; END IF; END IF; -- -- -- -- -- -- -- -- SETEO VARIABLES -- -- -- -- -- -- -- --LN_B := 0; LN_A := 1; LN_ASCII := 0; LN_EXTRAE := 0; LN_SIGNOS := 0; LN_CARACTERES := 0; LN_LONGITUD := LENGTH (LV_CADENA); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO CARACTERES POR MEDIO DEL ASCII -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- LOOP LN_INDICE := LN_INDICE + 1; LV_CARACT := SUBSTR(LV_CADENA, LN_INDICE, 1); LN_ASCII := ASCII(LV_CARACT); EXIT WHEN LV_CARACT IS NULL; IF (LN_ASCII > 48 AND LN_ASCII < 53) OR LN_ASCII = 45 THEN LN_CARACTERES := LN_CARACTERES + 1; -- SUMO LA CANTIDAD DE RECURSOS ELSE LN_SIGNOS := LN_SIGNOS + 1; END IF; END LOOP; IF LN_SIGNOS > 0 THEN LV_ERROR := 'Debe ingresar los recursos que esten en el siguiente rango 1 - 4'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CICLO PARA SETEAR LOS RECURSOS R1-R2 ETC. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- LN_CARACTERES := 0; LOOP IF (LN_LONGITUD = LN_EXTRAE) THEN EXIT; ELSE LN_EXTRAE := INSTR (LV_CADENA, '-', 1 , LN_A); IF LN_EXTRAE = 0 THEN LV_SUBST := LV_CADENA; ELSE LV_SUBST := SUBSTR(LV_CADENA , 1, LN_EXTRAE - 1); LV_CADENA := SUBSTR(LV_CADENA , LN_EXTRAE + 1); END IF; END IF;

Page 257: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

48

LV_CARACTER := SUBSTR (LV_SUBST, LENGTH(LV_SUBST),1); LN_CARACTERES := LN_CARACTERES + 1; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- RECURSOS SETEADOS PARA EL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_SUBST IS NULL THEN LV_ERROR := 'RECURSO MAL INGRESADO'; RAISE LE_ERROR; END IF; IF LV_CARACTER = '1' THEN LV_R1 := 'R1'; LN_R1 := LN_R1 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF LV_CARACTER = '2' THEN LV_R2 := 'R2'; LN_R2 := LN_R2 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF LV_CARACTER = '3' THEN LV_R3 := 'R3'; LN_R3 := LN_R3 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF LV_CARACTER = '4' THEN LV_R4 := 'R4'; LN_R4 := LN_R4 + 1; -- PARA QUE NO SE REPITA LN_CONT := LN_CONT + 1; END IF; IF (LV_CARACTER = '5' OR LV_CARACTER = '6' OR LV_CARACTER = '7' OR LV_CARACTER = '8' OR LV_CARACTER = '9' OR LV_CARACTER = '0') THEN LV_ERROR := 'No debe ingresar más de 4 recursos.'; RAISE LE_ERROR; END IF; EXIT WHEN LN_CONT = 4 OR LN_EXTRAE = 0; END LOOP; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE NO SE INGRESE UN RECURSO 2 VECES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LN_R1 > 1 OR LN_R2 > 1 OR LN_R3 > 1 OR LN_R4 > 1 THEN LV_ERROR := 'No debe ingresar el mismo recurso dos veces'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE SOLO INGRESE 4 RECURSOS O LO QUE INDICA EN LA TABLA -- VALIDO QUE NO INGRESE CARACTERES ESPECIALES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_CANT_RECURSOS(PN_CODIGO_PROY); FETCH C_CANT_RECURSOS INTO LN_CANT_RECURSOS; CLOSE C_CANT_RECURSOS; IF LN_CARACTERES > LN_CANT_RECURSOS THEN LV_ERROR := 'La cantidad de recursos es diferente a la especificada (' || LN_CANT_RECURSOS || ') - (1 - 4)'; RAISE LE_ERROR; END IF; LV_CADENA_TOTAL := LV_R1 || '-' || LV_R2 || '-' || LV_R3 || '-' || LV_R4; -- -- -- -- -- -- -- -- -- -- -- -- --

Page 258: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

49

-- REEMPLAZO CARACTERES DUPLICADOS -- -- -- -- -- -- -- -- -- -- -- -- -- LV_CADENA_TOTAL := REPLACE(LV_CADENA_TOTAL, '---', '-'); LV_CADENA_TOTAL := REPLACE(LV_CADENA_TOTAL, '--', '-'); LV_CARACTER_1 := SUBSTR(LV_CADENA_TOTAL, 1, 1); LV_CARACTER_2 := SUBSTR(LV_CADENA_TOTAL, LENGTH(LV_CADENA_TOTAL), 1); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ELIMINO EL PRIMER CARACTER DE LA CADENA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_1 = '-' THEN LV_CADENA_TOTAL := SUBSTR(LV_CADENA_TOTAL, 2, LENGTH(LV_CADENA_TOTAL)); END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ELIMINO EL ULTIMO CARACTER DE LA CADENA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LV_CARACTER_2 = '-' THEN LV_CADENA_TOTAL := SUBSTR(LV_CADENA_TOTAL, 1, LENGTH(LV_CADENA_TOTAL)-1); END IF; PV_CADENA := LV_CADENA_TOTAL; EXCEPTION WHEN le_error THEN PV_ERROR := LV_ERROR; END; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROGRAMA PRINCIPAL QUE REALIZA EL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_ACTIVIDADES (PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE, PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2)IS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LA PRIMERA FECHA DE UN CRONOGRAMA -- EN CASO DE QUE EXISTE REGISTROS ANTERIORES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHA_FIN(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA ULTIMA ACTIVIDAD DEL CRONOGRAMA

Page 259: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

50

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_VERIF_ULTIMA_ACTIV (PN_CODIGO_PROYECTO NUMBER) IS SELECT COUNT(*) FROM GPP_ACTIVIDADES AC WHERE AC.CODIGO_ACTIVIDAD = (SELECT MAX(A.CODIGO_ACTIVIDAD) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO) AND UPPER(AC.DESCRIPCION_ACTIVIDAD) LIKE '%FIN % PROY%'; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA FECHA MINIMA Y MAXIMA DEL PROYECTO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHAS_MIN_MAX(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA), MAX(A.FECHA_FINAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; LE_ERROR EXCEPTION; LN_PREDECESORA NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_ACTIVIDAD NUMBER:=0; LB_NOT_FOUND BOOLEAN; LB_BAND BOOLEAN; LV_ACT VARCHAR2(1); AUX_FI VARCHAR2(20); AUX_FF VARCHAR2(20); AUX_FIC VARCHAR2(20); LD_FECHA_INICIO DATE; LD_FECHA_FIN DATE; LD_SYSDATE DATE; LD_FECHA_INIC_CRONOG DATE; LD_FECHA_MIN DATE; LD_FECHA_MAX DATE; LV_RECURSOS VARCHAR2(20); LV_HITO VARCHAR2(1):= 'A'; LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_ACTIVIDADES'; BEGIN LV_ERROR := NULL; PN_TIEMPO := 0; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDO QUE LAS VARIABLES NO SEAN NULAS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LV_ACT FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PROYECTO AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; --LV_ERROR := 'La actividad u orden que quiere ingresar ya existe en el Proyecto'; --RAISE LE_ERROR; END; IF LV_ACT = 'X' THEN LV_ERROR := 'La actividad u orden que quiere ingresar ya existe en el Proyecto'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INICIO EL PROCESO DE VALIDACION -- -- -- -- -- -- -- -- -- -- -- -- --

Page 260: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

51

IF PN_ACTIVIDAD_PROYECTO IS NULL THEN lv_error := 'El orden de la actividad no debe ser nulo'; RAISE le_error; END IF; IF pn_codigo_proyecto IS NULL THEN lv_error := 'El código del proyecto no debe ser nulo'; RAISE le_error; END IF; IF PV_DESCRIPCION_ACTIVIDAD IS NULL THEN lv_error := 'La actividad no debe ser nula'; RAISE le_error; END IF; LV_HITO := UPPER(PV_HITO); IF (LV_HITO <> 'A' AND LV_HITO <> 'H') OR LV_HITO IS NULL THEN lv_error := 'El hito debe estar entre A o H'; RAISE le_error; END IF; IF PN_ACTIVIDAD_PREDECESORA IS NULL THEN ln_predecesora := 0; ELSE --HECHO POR JOHNNY PRUEBA PARA QUE NO INGRESE LOS NUMEROS INVALIDOS BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LN_ACTIVIDAD FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PREDECESORA AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; END; IF LN_ACTIVIDAD IS NULL OR LN_ACTIVIDAD = 0 THEN LV_ERROR := 'La actividad predecesora que quiere ingresar no existe en el Proyecto'; RAISE LE_ERROR; END IF; ln_predecesora := PN_ACTIVIDAD_PREDECESORA; END IF; IF lv_hito = 'A' THEN IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha de inicio de la actividad'; RAISE LE_ERROR; END IF; IF PV_FECHA_FINAL IS NULL THEN LV_ERROR := 'Ingrese la fecha fin de la actividad'; RAISE LE_ERROR; END IF; ELSE IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha inicio del hito'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- SI PERMITE LA FECHA FINAL NULA PARA EL HITO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --SELECT TO_DATE(PV_FECHA_INICIAL, 'DD/MM/YYYY') INTO LV_FI FROM DUAL; LD_FECHA_FIN := TO_DATE(PV_FECHA_INICIAL,'DD-MM-YYYY'); LB_BAND := TRUE; END IF; IF LB_BAND THEN LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY');

Page 261: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

52

ELSE LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); LD_FECHA_FIN := TO_DATE(PV_FECHA_FINAL, 'DD-MM-YYYY'); END IF; LB_BAND := FALSE; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE VERIFICA LA PRIMERA FECHA DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHA_FIN(PN_CODIGO_PROYECTO); FETCH C_FECHA_FIN INTO LD_FECHA_INIC_CRONOG; LB_NOT_FOUND := C_FECHA_FIN%NOTFOUND; CLOSE C_FECHA_FIN; AUX_FI := TO_CHAR(LD_FECHA_INICIO, 'MM-YYYY'); AUX_FF := TO_CHAR(LD_FECHA_FIN, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR QUE LAS FECHAS SEAN MAYORES A LA PRIMERA FECHA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LB_NOT_FOUND THEN LD_SYSDATE := TO_CHAR(SYSDATE, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE LAS FECHAS NO SEAN MENORES A LA PRIMERA FECHA INGRESADA -- EN CASO QUE NO HAYA VALIDA EL MES Y AÑO EN CURSO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF (AUX_FI <= LD_SYSDATE) OR (AUX_FF <= LD_SYSDATE) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; ELSE AUX_FIC := TO_CHAR(LD_FECHA_INIC_CRONOG, 'MM-YYYY'); IF AUX_FIC IS NOT NULL THEN IF (AUX_FI < AUX_FIC) OR (AUX_FF < AUX_FIC) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- CALCULO EL TIEMPO ENTRE LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- PN_TIEMPO := LD_FECHA_FIN - LD_FECHA_INICIO + 1; -- SUMAR EL DIA QUE SE QUEDA EN LA RESTA IF PN_TIEMPO < 0 THEN LV_ERROR := 'La fecha de inicio debe ser menor que la fecha final'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR LA CAJA DE TEXTO QUE INVOLUCRA A LOS RECURSOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF PV_RECURSO IS NULL THEN LV_ERROR := 'Ingrese el o los recursos responsables de la actividad'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INDICA LAS 4 VARIABLES ESTANDARES -- -- -- -- -- -- -- -- -- -- -- -- -- CNP_REC_ESTANDAR(PV_RECURSO, PN_CODIGO_PROYECTO,

Page 262: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

53

LV_RECURSOS, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERTA LAS ACTIVIDADES DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- GPPK_OBJ_ACTIVIDADES.INSERT_ACTIVIDADES(PN_ACTIVIDAD_PROYECTO, PN_CODIGO_PROYECTO, upper(PV_DESCRIPCION_ACTIVIDAD), upper(LV_HITO), LN_PREDECESORA, LD_FECHA_INICIO, --/*TO_DATE(LD_FECHA_INICIO, 'DD-MM-YYYY'),--*/PV_FECHA_INICIAL, LD_FECHA_FIN, --/*TO_DATE(LD_FECHA_FIN, 'DD-MM-YYYY'), --*/PV_FECHA_FINAL, upper(PV_OBSERVACION), LV_RECURSOS, PN_TIEMPO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA SI ES LA ULTIMA ACTIVIDAD -- PARA ACTUALIZAR LOS TIEMPOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_VERIF_ULTIMA_ACTIV(PN_CODIGO_PROYECTO); FETCH C_VERIF_ULTIMA_ACTIV INTO LN_CANT_RECURSOS; CLOSE C_VERIF_ULTIMA_ACTIV; IF LN_CANT_RECURSOS > 0 THEN GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- OBTENER FECHA MINIMA Y MAXIMA -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHAS_MIN_MAX(PN_CODIGO_PROYECTO); FETCH C_FECHAS_MIN_MAX INTO LD_FECHA_MIN, LD_FECHA_MAX; CLOSE C_FECHAS_MIN_MAX; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CAMBIAR EL ESTADO DEL PROYECTO Y ACTUALIZA LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UPDATE GEN_PROYECTOS P SET P.CODIGO_ESTADO = 'CR', P.FECHA_INICIO = LD_FECHA_MIN, P.FECHA_FIN = LD_FECHA_MAX, P.FECHA_INICIO_REAL = LD_FECHA_MIN, P.FECHA_FIN_REAL = LD_FECHA_MAX, P.TIEMPO_PROYECTO = TO_NUMBER((LD_FECHA_FIN - LD_FECHA_INICIO) + 1) WHERE P.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; COMMIT; END IF; COMMIT;

Page 263: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

54

EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); IF PV_ERROR IS NOT NULL THEN PV_ERROR := LV_ERROR /*|| ' - ' || pv_error*/; END IF; END; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ACTUALIZA LA ACTIVIDAD DE UN PROYECTO SIGUIENDO LAS -- MISMAS CONSIDERACIONES QUE SE TOMAN PARA REALIZA UN INSERT -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- PROCEDURE CNP_ACTUALIZA_ACT(PN_ACTIVIDAD_PROYECTO IN NUMBER, --GPP_ACTIVIDADES.ACTIVIDAD_PROYECTO%TYPE, -- ORDEN PV_DESCRIPCION_ACTIVIDAD IN VARCHAR2, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- ACTIVIDAD PV_HITO IN VARCHAR2, --GPP_ACTIVIDADES.ACTIVIDAD_HITO%TYPE, -- HITO PN_ACTIVIDAD_PREDECESORA IN NUMBER DEFAULT 0, --GPP_ACTIVIDADES.DESCRIPCION_ACTIVIDAD%TYPE, -- PREDECESORA PV_FECHA_INICIAL IN VARCHAR2, --GPP_ACTIVIDADES.FECHA_INICIAL_REAL%TYPE, PV_FECHA_FINAL IN VARCHAR2,-----, --GPP_ACTIVIDADES.FECHA_FINAL_REAL%TYPE, PN_TIEMPO IN OUT NUMBER, --GPP_ACTIVIDADES.TIEMPO_REAL%TYPE, -- TIEMPO PV_RECURSO IN OUT VARCHAR2, --GPP_ACTIVIDADES.PARTIC_ACTIVIDAD%TYPE, -- RECURSO PV_OBSERVACION IN VARCHAR2, --GPP_ACTIVIDADES.OBSERVACION%TYPE, -- OBSERVACION PN_CODIGO_PROYECTO IN NUMBER, --GEN_PROYECTOS.CODIGO_PROYECTO%TYPE, PV_ERROR OUT VARCHAR2)IS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OBTIENE LA PRIMERA FECHA DE UN CRONOGRAMA -- EN CASO DE QUE EXISTE REGISTROS ANTERIORES -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_FECHA_FIN(PN_CODIGO_PROYECTO NUMBER) IS SELECT MIN(A.FECHA_INICIAL_ESTIMADA) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA LA ULTIMA ACTIVIDAD DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR C_VERIF_ULTIMA_ACTIV (PN_CODIGO_PROYECTO NUMBER) IS SELECT COUNT(*) FROM GPP_ACTIVIDADES AC WHERE AC.CODIGO_ACTIVIDAD = (SELECT MAX(A.CODIGO_ACTIVIDAD) FROM GPP_ACTIVIDADES A WHERE A.CODIGO_PROYECTO = PN_CODIGO_PROYECTO) AND UPPER(AC.DESCRIPCION_ACTIVIDAD) LIKE '%FIN % PROY%';

Page 264: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

55

LE_ERROR EXCEPTION; LN_PREDECESORA NUMBER:=0; LN_CANT_RECURSOS NUMBER:=0; LN_ACTIVIDAD NUMBER:=0; LB_NOT_FOUND BOOLEAN; LB_BAND BOOLEAN; --LV_ACT VARCHAR2(1); AUX_FI VARCHAR2(20); AUX_FF VARCHAR2(20); AUX_FIC VARCHAR2(20); LD_FECHA_INICIO DATE; LD_FECHA_FIN DATE; LD_SYSDATE DATE; LD_FECHA_INIC_CRONOG DATE; LV_RECURSOS VARCHAR2(20); LV_HITO VARCHAR2(1); LV_ERROR VARCHAR2(100); LV_APLICACION VARCHAR2(100):= 'GPPK_TRX_ACTIVIDADES.CNP_ACTIVIDADES'; BEGIN LV_ERROR := NULL; PN_TIEMPO := 0; -- -- -- -- -- -- -- -- -- -- -- -- -- -- INICIO EL PROCESO DE VALIDACION -- -- -- -- -- -- -- -- -- -- -- -- -- IF PN_ACTIVIDAD_PROYECTO IS NULL THEN lv_error := 'Especifique la actividad a modificar'; RAISE le_error; END IF; IF pn_codigo_proyecto IS NULL THEN lv_error := 'El código del proyecto no debe ser nulo'; RAISE le_error; END IF; IF PN_ACTIVIDAD_PREDECESORA IS NOT NULL THEN --HECHO POR JOHNNY PRUEBA PARA QUE NO INGRESE LOS NUMEROS INVALIDOS BEGIN SELECT F.ACTIVIDAD_PROYECTO INTO LN_ACTIVIDAD FROM GPP_ACTIVIDADES F WHERE F.ACTIVIDAD_PROYECTO = PN_ACTIVIDAD_PREDECESORA AND F.CODIGO_PROYECTO = PN_CODIGO_PROYECTO; EXCEPTION WHEN OTHERS THEN NULL; END; IF LN_ACTIVIDAD IS NULL OR LN_ACTIVIDAD = 0 THEN LV_ERROR := 'La actividad predecesora que quiere ingresar no existe en el Proyecto'; RAISE LE_ERROR; END IF; ln_predecesora := PN_ACTIVIDAD_PREDECESORA; END IF; IF lv_hito IS NOT NULL THEN IF lv_hito = 'H' OR lv_hito = 'A' THEN IF lv_hito = 'A' THEN IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha de inicio de la actividad'; RAISE LE_ERROR; END IF;

Page 265: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

56

IF PV_FECHA_FINAL IS NULL THEN LV_ERROR := 'Ingrese la fecha fin de la actividad'; RAISE LE_ERROR; END IF; ELSE IF PV_FECHA_INICIAL IS NULL THEN LV_ERROR := 'Ingrese la fecha inicio del hito'; RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- SI PERMITE LA FECHA FINAL NULA PARA EL HITO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --SELECT TO_DATE(PV_FECHA_INICIAL, 'DD/MM/YYYY') INTO LV_FI FROM DUAL; LD_FECHA_FIN := TO_DATE(PV_FECHA_INICIAL,'DD-MM-YYYY'); LB_BAND := TRUE; END IF; IF LB_BAND THEN LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); ELSE LD_FECHA_INICIO := TO_DATE(PV_FECHA_INICIAL, 'DD-MM-YYYY'); LD_FECHA_FIN := TO_DATE(PV_FECHA_FINAL, 'DD-MM-YYYY'); END IF; LB_BAND := FALSE; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- CURSOR QUE VERIFICA LA PRIMERA FECHA DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_FECHA_FIN(PN_CODIGO_PROYECTO); FETCH C_FECHA_FIN INTO LD_FECHA_INIC_CRONOG; LB_NOT_FOUND := C_FECHA_FIN%NOTFOUND; CLOSE C_FECHA_FIN; AUX_FI := TO_CHAR(LD_FECHA_INICIO, 'MM-YYYY'); AUX_FF := TO_CHAR(LD_FECHA_FIN, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR QUE LAS FECHAS SEAN MAYORES A LA PRIMERA FECHA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF LB_NOT_FOUND THEN LD_SYSDATE := TO_CHAR(SYSDATE, 'MM-YYYY'); -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDA QUE LAS FECHAS NO SEAN MENORES A LA PRIMERA FECHA INGRESADA -- EN CASO QUE NO HAYA VALIDA EL MES Y AÑO EN CURSO -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF (AUX_FI <= LD_SYSDATE) OR (AUX_FF <= LD_SYSDATE) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; ELSE AUX_FIC := TO_CHAR(LD_FECHA_INIC_CRONOG, 'MM-YYYY'); IF AUX_FIC IS NOT NULL THEN IF (AUX_FI < AUX_FIC) OR (AUX_FF < AUX_FIC) THEN LV_ERROR := 'La fecha ingresada está fuera del rango inicial del cronograma'; RAISE LE_ERROR; END IF; END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- CALCULO EL TIEMPO ENTRE LAS FECHAS -- -- -- -- -- -- -- -- -- -- -- -- -- PN_TIEMPO := LD_FECHA_FIN - LD_FECHA_INICIO + 1; -- SUMAR EL DIA QUE SE QUEDA EN LA RESTA

Page 266: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

57

IF PN_TIEMPO < 0 THEN LV_ERROR := 'La fecha de inicio debe ser menor que la fecha final'; RAISE LE_ERROR; END IF; END IF; END IF; IF LV_HITO IS NULL THEN LD_FECHA_INICIO := NULL; LD_FECHA_FIN := NULL; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VALIDAR LA CAJA DE TEXTO QUE INVOLUCRA A LOS RECURSOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- IF PV_RECURSO IS NOT NULL THEN -- -- -- -- -- -- -- -- -- -- -- -- -- -- INDICA LAS 4 VARIABLES ESTANDARES -- -- -- -- -- -- -- -- -- -- -- -- -- CNP_REC_ESTANDAR(PV_RECURSO, PN_CODIGO_PROYECTO, LV_RECURSOS, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- INSERTA LAS ACTIVIDADES DEL CRONOGRAMA -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- GPPK_OBJ_ACTIVIDADES.ACT_ACTIVIDADES(pn_codigo_actividad => PN_ACTIVIDAD_PROYECTO, pn_codigo_proyecto => PN_CODIGO_PROYECTO, pv_descripcion => upper(PV_DESCRIPCION_ACTIVIDAD), pv_hito => upper(LV_HITO), pn_predecesora => LN_PREDECESORA, pd_fecha_inicial => LD_FECHA_INICIO, --/*TO_DATE(LD_FECHA_INICIO, 'DD-MM-YYYY'),--*/PV_FECHA_INICIAL, pd_fecha_final => LD_FECHA_FIN, --/*TO_DATE(LD_FECHA_FIN, 'DD-MM-YYYY'), --*/PV_FECHA_FINAL, pv_observacion => upper(PV_OBSERVACION), pv_recurso => LV_RECURSOS, pn_tiempo => PN_TIEMPO, pv_msg_error => LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- VERIFICA SI ES LA ULTIMA ACTIVIDAD -- PARA ACTUALIZAR LOS TIEMPOS -- -- -- -- -- -- -- -- -- -- -- -- -- -- OPEN C_VERIF_ULTIMA_ACTIV(PN_CODIGO_PROYECTO); FETCH C_VERIF_ULTIMA_ACTIV INTO LN_CANT_RECURSOS; CLOSE C_VERIF_ULTIMA_ACTIV; IF LN_CANT_RECURSOS > 0 THEN GPPK_TRX_ACTIVIDADES.CNP_TIEMPO_HITO(PN_CODIGO_PROYECTO, LV_ERROR); IF LV_ERROR IS NOT NULL THEN RAISE LE_ERROR; END IF;

Page 267: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

58

COMMIT; END IF; COMMIT; EXCEPTION WHEN le_error THEN pv_error := lv_error; -- BITACORIZAR EL ERROR GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_error, null, null, null, pv_error); IF PV_ERROR IS NOT NULL THEN PV_ERROR := LV_ERROR /*|| ' - ' || pv_error*/; END IF; END;

Asignación de Recurso Humano al Proyecto:

El líder SIS se encarga de seleccionar los perfiles necesarios de

acorde a lo requerido por el proyecto, previa selección deberá

escoger los conocimientos para realizar la asignación.

procedure gpp_actualiza_recursos (pv_codigo in varchar2 , pn_cantidad in number ,pv_msg_error out varchar2) is lv_msg_error VARCHAR2(1000):= NULL; le_mi_error EXCEPTION; begin if pv_codigo is null then lv_msg_error:= 'Código del proyecto con valor Nulo'; raise le_mi_error; end if; if pn_cantidad is null then lv_msg_error:= 'Número de recursos con valor Nulo'; raise le_mi_error; end if; begin

Page 268: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

59

update gen_proyectos p set p.total_recurso_humano = pn_cantidad where p.codigo_proyecto = pv_codigo ; commit; exception when others then pv_msg_error := sqlerrm; end; EXCEPTION when le_mi_error then pv_msg_error := lv_msg_error; GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_msg_error, null, null, null, pv_msg_error); when others then pv_msg_error := 'ocurrió el siguiente error ' || sqlerrm || '. ' || lv_aplicacion; end gpp_actualiza_recursos; --================ procedimiento que asigna los recursos humanos al proyecto =============-- procedure gpp_asigna_recursos ( pv_codigo in varchar2 ,pv_participantes in varchar2 ,pn_cant_recursos in NUMBER ,ps_codigo_user in varchar2 ,pv_msg_error out varchar2) is lv_trama varchar2(50); lv_caracter varchar2(50); lv_parametro varchar2(50); lv_campo varchar2(50); lv_valor varchar2(50); cadena_resultante varchar2(100); lv_msg_error varchar2(100):=NULL; ln_contador number := 0; ln_codigoProyecto number; ln_codigoParticipante number; le_mi_error exception; lb_guardar boolean:= true; ln_totalrecursos number:= 0; LN_CANTIDAD NUMBER :=0; lv_guarda varchar2(100); ln_cantidad_proy NUMBER :=0; ln_tipo_participante number:=0; CURSOR C_CANT_REC (PN_CODIGO NUMBER)IS SELECT P.TOTAL_RECURSO_HUMANO FROM GEN_PROYECTOS P WHERE P.CODIGO_PROYECTO = PN_CODIGO; cursor c_cant_proyectos (pn_codigo number, pn_codigo_participante number)is select p.no_proy_asignados from clc_participante p, clc_participante_proyecto pp where p.codigo_participante = pp.codigo_participante and pp.codigo_participante = pn_codigo_participante and pp.codigo_proyecto = pn_codigo;

Page 269: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

60

begin if pv_codigo is null then lv_msg_error:= 'Código del proyecto con valor Nulo'; raise le_mi_error; end if; if pv_participantes is null then lv_msg_error:= 'La trama de los participantes esta vacía '; raise le_mi_error; end if; if pn_cant_recursos is null then lv_msg_error:= 'No hay cantidad de recursos para el proyecto'; raise le_mi_error; end if; lv_trama := pv_participantes; -- se tiene la trama de los participantes lv_parametro := pv_codigo; -- se tiene el codigo del participante ln_codigoProyecto := to_number (pv_codigo); -- convierte a number el código del proyecto --lv_trama := lv_trama||'|'; OPEN C_CANT_REC(ln_codigoProyecto); FETCH C_CANT_REC INTO LN_CANTIDAD; CLOSE C_CANT_REC; for i in 1 .. length(lv_trama) loop lv_caracter:=substr(lv_trama,i,1); if lv_caracter not in ('|') then lv_campo:=lv_campo||lv_caracter; elsif lv_caracter = '|' then ln_contador := ln_contador + 1; if ln_contador = 1 then lv_parametro := nvl(lv_campo,0); elsif ln_contador = 2 then lv_valor := lv_campo; ln_codigoParticipante := to_number(lv_valor); ln_totalRecursos := ln_totalRecursos + 1; select p.CODIGO_TIPO_PARTICIPANTE into ln_tipo_participante from CLC_PARTICIPANTE p where p.CODIGO_PARTICIPANTE = ln_codigoParticipante; INSERT INTO CLC_PARTICIPANTE_PROYECTO (CODIGO_PARTICIPANTE, CODIGO_PROYECTO, CODIGO_PRIVILEGIO, CODIGO_TIPO_PARTICIPANTE, DESCRIPCION, FECHA_ASIGNACION, fecha_ing , fecha_mod , CODIGO_USUARIO_ING, ESTADO_PARTICIPANTE, ESTADO) VALUES (ln_codigoParticipante, ln_codigoProyecto, 'R', ln_tipo_participante, 'El participante será asignado al proyecto:' || ln_codigoProyecto, SYSDATE, SYSDATE, SYSDATE,

Page 270: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

61

ps_codigo_user, 'N',-- NO SE ENCUENTRA DISPONIBLE 'A' ); update clc_participante d set d.disponibilidad ='N' where d.codigo_participante = ln_codigoParticipante; commit; BEGIN OPEN c_cant_proyectos (ln_codigoProyecto, ln_codigoParticipante ); FETCH c_cant_proyectos INTO ln_cantidad_proy; CLOSE c_cant_proyectos; IF ln_cantidad_proy IS NOT NULL THEN update clc_participante d set d.no_proy_asignados = ln_cantidad_proy + 1 where d.codigo_participante = ln_codigoParticipante; commit; END IF; EXCEPTION WHEN no_data_found THEN NULL; WHEN OTHERS THEN NULL; END; -- llamada a pck para que inserte en gpp_caracteristicas_proyecto BEGIN gppk_obj_caracteristicas.inserta_caracteristicas(pv_codigo_caract => ln_codigoParticipante ,pv_codigo_proy => ln_codigoProyecto ,pv_descripcion => 'RECURSO ASIGNADO' ,pv_msg_error =>lv_msg_error ); if lv_msg_error is not null then raise le_mi_error ; end if; EXCEPTION WHEN OTHERS THEN pv_msg_error := SQLERRM; END; cadena_resultante := cadena_resultante||'|'||lv_valor; ln_contador := 0; end if; lv_campo := ''; end if; end loop; dbms_output.put_line(cadena_resultante); cadena_resultante := substr(cadena_resultante,2); -- muestra solo la cadena que se desea dbms_output.put_line(cadena_resultante); IF ln_totalrecursos <= LN_CANTIDAD THEN if ln_totalRecursos = pn_cant_recursos THEN lv_msg_error := 'Participantes Asignados Satisfactoriamente'; dbms_output.put_line(lv_msg_error); else lv_msg_error := 'Sólo se asignaron '||ln_totalRecursos ||' participantes'; dbms_output.put_line(lv_msg_error); end if; END IF; exception

Page 271: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

62

when le_mi_error then pv_msg_error := lv_msg_error; GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, lv_msg_error, null, null, null, pv_msg_error); when others then pv_msg_error := lv_aplicacion|| 'GPP_ASIGNA_RECURSOS - No se encontraron datos : '|| sqlerrm; GENK_BITACORIZACION.P_BITACORIZA_ERROR(lv_aplicacion, sysdate, user, pv_msg_error, null, null, null, pv_msg_error); end gpp_asigna_recursos;

Asignación de Recurso Informático:

Para proceder con la asignación de los recursos informáticos al

proyecto se lo subdividiendo en dos grupos los cuales son

hardware y software.

---------------------------------------------------------- ---para ingresar en la tabla de mg_asignacion --esto ocurre cuando se asigna un hardware a un proyecto ---------------------------------------------------------- PROCEDURE gpp_ingresa_recursos(pv_codigo IN VARCHAR2, pv_trama1 IN VARCHAR2, pv_error OUT VARCHAR2 )IS CURSOR c_proyecto IS SELECT COUNT(*) FROM MGI_ASIGNACION A, MGI_EQUIPOS E, GPC_SUB_TIPO_SERVICIO S WHERE A.CODIGO_PROYECTO = PV_CODIGO AND A.CODIGO_EQUIPO = E.CODIGO_EQUIPO AND E.CODIGO_SUB_TIPO_SERVICIO = S.CODIGO_SUB_TIPO_SERVICIO AND S.CODIGO_TIPO_SERVICIO = 10; lv_trama VARCHAR2(100); lv_error VARCHAR2(100); le_error EXCEPTION; le_mi_error EXCEPTION; ln_codigoProyecto NUMBER; lv_parametro VARCHAR2(100); ln_equipo NUMBER; ln_sec NUMBER;

Page 272: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

63

cadena_resultante varchar2(100); ln_contador NUMBER:=0; lv_caracter VARCHAR2(100); LV_CAMPO VARCHAR2(50); --ln_cantidad_infor number := 0; lv_valor VARCHAR2(50); ln_cantidad NUMBER:=0; ln_maximo NUMBER:=0; ln_cantidad_asig NUMBER:=0; BEGIN IF pv_codigo IS NULL THEN lv_error := 'Ingresar el Codigo del Proyecto'; RAISE le_error; END IF; IF pv_trama1 IS NULL THEN lv_error := 'Ingrese los Equipos'; RAISE le_error; END IF; lv_trama := pv_trama1; -- se tiene la trama de los participantes lv_parametro := pv_codigo; -- se tiene el codigo del participante ln_codigoProyecto := to_number (pv_codigo); --para sacar la cantidad maxima de los recursos informaticos SELECT sum(b.conocimiento_2) INTO ln_maximo FROM gpp_caracteristicas_proyecto b WHERE b.codigo_proyecto = ln_codigoProyecto AND b.descripcion_recurso = '10'; --para recuperar cuantos equipos fueron asignados previamente -- por si acaso se olvido o algo asi por asignar OPEN c_proyecto; FETCH c_proyecto INTO ln_cantidad_asig; CLOSE c_proyecto; --sumo todo que tengo asignado IF ln_cantidad_asig >= ln_maximo THEN lv_error := 'Los recursos seleccionados exceden de lo definido'; RAISE le_mi_error; END IF; ln_maximo := ln_maximo - ln_cantidad_asig; for i in 1 .. length(lv_trama) loop lv_caracter:=substr(lv_trama,i,1); if lv_caracter not in ('|') then lv_campo:=lv_campo||lv_caracter; elsif lv_caracter = '|' then ln_contador := ln_contador + 1; if ln_contador = 1 then lv_parametro := nvl(lv_campo,0); elsif ln_contador = 2 then lv_valor := lv_campo; ln_equipo := to_number(lv_valor); ln_cantidad := ln_cantidad + 1; --comprobar si sobrepasa de lo preasignado que fue aprobado por Norka IF ln_cantidad > ln_maximo THEN

Page 273: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

64

lv_error := 'Los recursos seleccionados exceden de lo Definido'; RAISE le_mi_error; END IF; SELECT MGI_SEQ_ASIGNA.NEXTVAL INTO LN_SEC FROM DUAL; BEGIN INSERT INTO mgi_asignacion( codigo_asignacion, codigo_proyecto, codigo_equipo, codigo_software, codigo_estado, fecha_asignacion ) VALUES( ln_sec, ln_codigoProyecto, --codigo del proyecto ln_equipo, NULL, 'AS',--CODIGO DE ASIGNADO SYSDATE ); COMMIT; ----------------------------------------- --para actuzalizar el estado de equipos-- ----------------------------------------- UPDATE mgi_equipos d SET d.codigo_estado = 'AS' WHERE d.codigo_equipo = ln_equipo; COMMIT; EXCEPTION WHEN OTHERS THEN lv_error := 'Error en el insert de mgi_asignacion'; RAISE le_error; END; cadena_resultante := cadena_resultante||'|'||lv_valor; ln_contador := 0; end if; lv_campo := ''; end if; end loop; EXCEPTION WHEN LE_MI_ERROR THEN PV_ERROR := LV_ERROR; WHEN LE_ERROR THEN PV_ERROR := 'ERROR EN EL PAQUETE: ' || LV_ERROR; WHEN OTHERS THEN PV_ERROR := 'ERROR EN EL PAQUETE: ' || SQLERRM; END; PROCEDURE gpp_ingresa_software(pv_codigo IN VARCHAR2, pv_trama1 IN VARCHAR2, pv_error OUT VARCHAR2 ) IS CURSOR c_proyecto IS SELECT COUNT(*)

Page 274: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

65

FROM MGI_ASIGNACION A, MGI_EQUIPOS E, GPC_SUB_TIPO_SERVICIO S WHERE A.CODIGO_PROYECTO = PV_CODIGO AND A.CODIGO_EQUIPO = E.CODIGO_EQUIPO AND E.CODIGO_SUB_TIPO_SERVICIO = S.CODIGO_SUB_TIPO_SERVICIO AND S.CODIGO_TIPO_SERVICIO = 20; lv_trama VARCHAR2(100); lv_error VARCHAR2(100); le_error EXCEPTION; ln_codigoProyecto NUMBER; lv_parametro VARCHAR2(100); ln_software NUMBER; ln_sec NUMBER; cadena_resultante varchar2(100); ln_contador NUMBER:=0; lv_caracter VARCHAR2(100); LV_CAMPO VARCHAR2(50); --ln_cantidad_infor number := 0; lv_valor VARCHAR2(50); ln_cantidad NUMBER:=0; ln_maximo NUMBER:=0; ln_cantidad_soft NUMBER; BEGIN IF pv_codigo IS NULL THEN lv_error := 'Ingresar el Codigo del Proyecto'; RAISE le_error; END IF; IF pv_trama1 IS NULL THEN lv_error := 'Ingrese los Equipos'; RAISE le_error; END IF; lv_trama := pv_trama1; -- se tiene la trama de los participantes lv_parametro := pv_codigo; -- se tiene el codigo del participante ln_codigoProyecto := to_number (pv_codigo); OPEN c_proyecto; FETCH c_proyecto INTO ln_cantidad_soft; CLOSE c_proyecto; --para sacar la cantidad maxima de los recursos informaticos (software) SELECT sum(b.conocimiento_2) INTO ln_maximo FROM gpp_caracteristicas_proyecto b WHERE b.codigo_proyecto = ln_codigoProyecto AND b.descripcion_recurso = '20'; ln_maximo := ln_maximo + ln_cantidad_soft; for i in 1 .. length(lv_trama) loop lv_caracter:=substr(lv_trama,i,1); if lv_caracter not in ('|') then lv_campo:=lv_campo||lv_caracter; elsif lv_caracter = '|' then ln_contador := ln_contador + 1; if ln_contador = 1 then lv_parametro := nvl(lv_campo,0); elsif ln_contador = 2 then lv_valor := lv_campo; ln_software := to_number(lv_valor);

Page 275: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

66

ln_cantidad := ln_cantidad + 1; --comprobar si sobrepasa de lo preasignado que fue aprobado por Norka IF ln_cantidad > ln_maximo THEN lv_error := 'Los recursos seleccionados exceden de lo definido'; RAISE le_error; END IF; SELECT MGI_SEQ_ASIGNA.NEXTVAL INTO LN_SEC FROM DUAL; BEGIN INSERT INTO mgi_asignacion( codigo_asignacion, codigo_proyecto, codigo_equipo, codigo_software, codigo_estado, fecha_asignacion ) VALUES( ln_sec, ln_codigoProyecto, --codigo del proyecto NULL, ln_software, 'AS',--CODIGO DE ASIGNADO SYSDATE ); COMMIT; ------------------------------------------ --para actualizar el estado del software-- ------------------------------------------ UPDATE mgi_software d SET d.codigo_estado = 'AS' WHERE d.codigo_software = ln_software; COMMIT; EXCEPTION WHEN OTHERS THEN lv_error := 'Error en el insert de mgi_asignacion'; RAISE le_error; END; cadena_resultante := cadena_resultante||'|'||lv_valor; ln_contador := 0; end if; lv_campo := ''; end if; end loop; EXCEPTION WHEN LE_ERROR THEN PV_ERROR := LV_ERROR; WHEN OTHERS THEN PV_ERROR := SQLERRM; END;

Page 276: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

67

IMPLEMENTACION DE CODIGO EN JAVA

Para proceder con la codificación del proyecto damos a conocer el

tipo de conexión que se ha establecido con la base, realizando así

actualizaciones e inserciones de información sobre la misma.

public class BeanBD implements ConstantesSistema { protected PageContext contextoPagina; //private DataSource dataSource; protected Connection conexion; public BeanBD(){} public BeanBD(PageContext p_contextoPagina) throws SQLException { contextoPagina=p_contextoPagina; try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@//localhost:1521/SGPI9I"; String user = "admin"; String pass = "admin"; conexion = DriverManager.getConnection(url, user, pass); } catch (Exception e) { } conexion.setAutoCommit(false); System.out.println("Creado BeanBD "+hashCode()+"."); } public PageContext getContextoPagina() { return contextoPagina; } public void setContextoPagina(PageContext contextoPagina) { this.contextoPagina = contextoPagina; } public ResultSet crearResultSet(String ps_query) throws SQLException { return conexion.createStatement().executeQuery(ps_query); }

Page 277: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

68

Para la creación de Combos dinámicos y la elaboración de

vectores a nivel de JSP se lo implementó de la siguiente forma:

// Este proceso permite crear un combo con la opción TODOS además de lo seleccionado public String crearComboT(String ps_query,String ps_name,String ps_funcionOnChange) throws SQLException { String ls_ini="<select class='text_system' id='"+ps_name+"' name='"+ps_name+"' class='combo' onChange='javascript:"+ps_funcionOnChange+"();' >\n"; String ls_opciones="<option value=''></option>\n"; ls_opciones+="<option value='0'>-- TODOS --</option>\n"; String ls_fin="</select>\n"; ResultSet l_rs=null; try { l_rs=conexion.createStatement().executeQuery(ps_query); while(l_rs.next()) ls_opciones=ls_opciones+"<option value='"+l_rs.getString(1)+"'>"+l_rs.getString(2)+"</option>\n"; } finally { if(l_rs!=null) l_rs.close(); } return ls_ini+ls_opciones+ls_fin; } public Vector consultarEstados1(String estado) { ResultSet l_rs = null; try{ Vector v = new Vector(); String ps_query1; ps_query1 ="select a.nombre_area, p.nombre_proyecto, e.descripcion "+ "from gen_proyectos p, gen_areas a, gen_estados e " + "where p.codigo_area = a.codigo_area " + "and p.codigo_estado = e.codigo_estado "+ "and e.codigo_estado = nvl(decode('" + estado + "','0',e.codigo_estado),'" + estado +"') "+ "order by e.descripcion"; l_rs=conexion.createStatement().executeQuery(ps_query1); while (l_rs.next()) { Estado c=new Estado(); c.setDescripcion_area(l_rs.getString(1)); c.setDescripcion_proyecto(l_rs.getString(2)); c.setEstado(l_rs.getString(3)); v.addElement(c); } l_rs.close(); return v; } catch (SQLException e) {

Page 278: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

69

System.out.println("Error - Consultar Estados1"); return null; } finally { if(l_rs != null) try { l_rs.close(); } catch (SQLException e) { System.out.println("Error - Consultar Estados1"); }}

Para la llamada de los paquetes desde Java se implementó las

siguiente metodología, las cuales realizan la validación de

conexión con la base y el usuario para poder realizar un cambio

en la misma.

public class Cronograma extends BeanBD { Integer codigoProyecto; Integer codigoArea; Integer porcentaje; Integer orden; Integer cod_actividad; String actividad; String hito; String ls_hito; Integer predecesora; //Date fechaInicio; //Date fechaFin; String fechaInicio; String fechaFin; String asignacionActividad; String estado; Integer tiempo; String recurso; String observacion; String nombre_proyecto; public Cronograma() { //Constructor por default } public Cronograma(PageContext p_contextoPagina) throws SQLException { super(p_contextoPagina); } /** * Funcion para guardar una actividad * @param request

Page 279: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

70

* @param response * @throws SQLException */ public String grabar_cronograma (ServletRequest request, ServletResponse response)throws SQLException { System.out.println("Lee parametros"); leeParametros(request); return cnpActividades(); } /** * Llama al Paquete que procesa las actividades */ String cnpActividades() { try { CallableStatement statement = conexion.prepareCall( "begin GPPK_TRX_ACTIVIDADES.CNP_ACTIVIDADES(?, ?, ?, ?, ?, ?, " + " ?, ?, ?, ?, ?); end;"); statement.setInt(1, orden); statement.setString(2, actividad); statement.setString(3, hito); if (predecesora == null) predecesora = 0; statement.setInt(4, predecesora); statement.setString(5, fechaInicio); statement.setString(6, fechaFin); if (tiempo == null) tiempo = 0; statement.setInt(7, tiempo); statement.setString(8, recurso); if (observacion == null) observacion = "-"; statement.setString(9, observacion); statement.setInt(10, codigoProyecto); statement.registerOutParameter(11, java.sql.Types.VARCHAR); statement.execute(); conexion.commit(); System.out.println("EJECUTA EL COMMIT"); //Exito return statement.getString(11); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e2) { e2.printStackTrace(); } //Error return "No se pudo guardar la actividad :("; }

Page 280: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

71

Asignación Lider SIS:

Líder SIS: Para seleccionar un lider SIS a nivel de JSP se lo

realiza escogiendo el área y por medio de una interfaz gráfica se

creará una matriz la cual enviará los proyectos que no tienen lider

asignado.

Para asignarlo como Lider SIS de ese proyecto se debe

seleccionar el lider de su combo, luego haciendo clic en el boton

Ok y seleccionar el proyecto que desee y automáticamente se

actualizará el proyecto con el lider SIS.

ProcesaLiderSIS lider = new ProcesaLiderSIS(pageContext); try { lider.procesaLider(ln_lider, ln_cod_proyecto, lsbError); lsError = lsbError.toString(); %> <script> window.open("../blanco.jsp","hd_resultado"); window.open("tabla_sis.jsp?cod="+<%=cod_area%>, target="hd_resultado"); </script> <%} catch (Exception e) { //e.printStackTrace(); // no queremos mostrar la pila System.out.println("Error al actualizar el Estado del Proyecto: "+e); %> <script> alert("<%=e%>"); </script> <%} %> </body> </html>

Page 281: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

72

<body class = "Mantenimiento"> <FORM name="detalle" method="post"> <input type="hidden" name="cod_area" value=<%=codigo2%>> <table width="750" border="2" align="center" class="text_system"> <tr> <th width="50" scope="col" align="justify" valign="middle" class="menu_system" bgcolor="#A9A9D3" ><span class="Estilo1">Orden</span></th> <th width="150" scope="col" align="justify" valign="middle" class="menu_system" bgcolor="#A9A9D3" ><span class="Estilo1">Área de Proyecto</span></th> <th width="300" scope="col" align="justify" valign="middle" class="menu_system" bgcolor="#A9A9D3"><span class="Estilo1">Descripción del Proyecto </span></th> <th width="180" scope="col" align="justify" valign="middle" class="menu_system" bgcolor="#A9A9D3" ><span class="Estilo1">Lider SIS </span></th> </tr> <% v_conexiones = l_dcw.asignaLiderSIS(codigo2); for (int i=0; i<v_conexiones.size(); i++) { AsignaSIS obj_asig = new AsignaSIS(); obj_asig = (AsignaSIS)v_conexiones.elementAt(i); int pos= i+1; String descripcion_area = obj_asig.getAreas(); String descripcion_proyecto = obj_asig.getProyecto(); String descripcion_lider = obj_asig.getLiderSIS(); Integer codigo=obj_asig.getCodigoProyecto(); if (descripcion_lider == null) { descripcion_lider = "No definido"; } //System.out.println("Codigo Proyecto:" + codigo); %> <tr> <td><%=pos%></td> <td><%=descripcion_area%></td> <td><%=descripcion_proyecto%></td> <td><a href="javascript:valida(<%=codigo%>)"><%=descripcion_lider%></a></td> </tr> <% } %> </table> </FORM> </body> </html>

Page 282: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

73

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <body class = "Mantenimiento"> <% // Obtiene el valor del lider SIS y lo envia al pck String ls_cod_lider =(String)session.getAttribute("code"); //out.println("<script> alert('recibiendo codigo lider : " + ls_cod_lider + "'); </script>"); Integer ln_lider = new Integer(Integer.parseInt(ls_cod_lider)); // Obtiene el código del Proyecto y lo transforma a Integer String cod = request.getParameter("codigo"); Integer ln_cod_proyecto = new Integer(Integer.parseInt(cod)); // Obtiene el código del area y lo envia al jsp String cod_area = request.getParameter("cod_area"); StringBuffer lsbError = new StringBuffer(""); String lsError = ""; // Muestra por consola los valores que recibe la página // Nos asegura que se estén cargando los valores System.out.println("Valor Codigo: "+ln_cod_proyecto); System.out.println("Valor Lider: " +ln_lider); // Llama a la clase ProcesaEstado el cual llama al pck para realizar // el update de los estados del proyecto ProcesaLiderSIS lider = new ProcesaLiderSIS(pageContext); try { lider.procesaLider(ln_lider, ln_cod_proyecto, lsbError); lsError = lsbError.toString(); %> <script> window.open("../blanco.jsp","hd_resultado"); window.open("tabla_sis.jsp?cod="+<%=cod_area%>, target="hd_resultado"); </script> <%} catch (Exception e) { //e.printStackTrace(); // no queremos mostrar la pila System.out.println("Error al actualizar el Estado del Proyecto: "+e); %> <script> alert("<%=e%>"); </script> <%} %> </body> </html>

Page 283: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

74

Cambio de Estado:

Para realizar un cambio de estado de un proyecto se lo efectua de

la siguiente manera:

En un combo constarán todas las áreas de la empresa, al

seleccionar una áerea especifica, una interfaz gráfica le mostrará

todos lo proyectos que existan en esa área por medio de una

matriz, luego en una combo que se llama codigo de estado se

seleccionará el estado que desea cambiar y presiona el botón

OK; luego se hace clic en el link del proyecto y se actualizará el

estado en el proyecto.

<% String ls_codigo_estado = request.getParameter("cmb_estados"); if(ls_codigo_estado!=null) { session.setAttribute("code",ls_codigo_estado); } else ls_codigo_estado=""; // String ls_userApp = (String)session.getAttribute("codigoUsuarioLogin"); String ls_userApp = codigoUsuario; // se crea un objeto para poder llamar a todos los componentes que posea el DibujadorComponentesWeb DibujadorComponentesWeb l_dcw = new DibujadorComponentesWeb(pageContext); String ls_queryRec = " select g.codigo_estado, g.descripcion" + " from gen_estados g" + " where g.codigo_estado in ('EC', 'SB')" + " order by g.descripcion"; String ls_queryLider = "SELECT c.codigo_participante, p.nombre_completo " + "FROM clc_participante c, gen_personas p " + "WHERE c.codigo_persona = p.codigo_persona " + "AND c.codigo_tipo_participante = 1 "; // lider SimpleDateFormat l_df = new SimpleDateFormat("dd/MM/yyyy"); %>

Page 284: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

75

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Estados del Proyecto</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/JavaScript"> <!-- //--> </script> <link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <script> <!-- function cargar() { var codigo=document.estados.cmb_lider_p.value; // captura el codigo del combo if (codigo != null && codigo != '' ) { var url1 = "tabla_estado.jsp?cod="+codigo; // nuevo jsp en el que se dibujara la grid window.open(url1,target="hd_resultado"); // carga la pagina y ubica la inf. en la parte inferior de la misma } } function valida() { var cod_estado=document.estados.cmb_estados.value; var url2 = "estados.jsp?code="+cod_estado; // nuevo jsp en el que se dibujara la grid document.estados.action=url2; document.estados.target="_self"; document.estados.method="get"; document.estados.submit(); } function MM_goToURL() { //v3.0 var i, args=MM_goToURL.arguments; document.MM_returnValue = false; for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'"); } //--> </script> <link href="../estilos/hojaEstiloBlc.css" rel="stylesheet" type="text/css"> </head> <body class = "Mantenimiento"> <form name="estados" class="hover"> <table width="820" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr>

Page 285: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

76

<td width="117" height="66">&nbsp;</td> <td width="696">&nbsp;</td> <td width="7">&nbsp;</td> <!-- <td width="476">&nbsp;</td> --> <!-- <td width="99">&nbsp;</td>--> </tr> <tr> <td height="161">&nbsp;</td> <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="312" height="21" align="left" valign="middle" class="TituloMantenimiento">ESTADOS DEL PROYECTO</td> <td width="357">&nbsp;</td> <td width="27">&nbsp;</td> </tr> <tr> <td height="21" colspan="2" align="left" valign="middle" class="MenuBanner"><!--DWLayoutEmptyCell-->&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td height="3"></td> <td></td> <td></td> </tr> <tr> <td height="108" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="menu_system"> <!--DWLayoutTable--> <tr> <td width="71" height="22"></td> <td width="197"></td> <td width="36"></td> <td width="9"></td> <td width="27"></td> <td width="39"></td> <td width="80"></td> <td width="37">&nbsp;</td> <td width="75" align="left" valign="middle" class="CampoLabel"><em>Fecha:</em></td> <td width="70" align="left" valign="middle" class="TituloAplicacion"> <em><%=l_df.format(new java.util.Date())%></em></td> </tr> <tr> <td height="22" colspan="2" align="left" valign="middle" class="CampoLabel">Gerente de Proyectos:</td> <td colspan="5" align="left" valign="middle" class="UsuarioLogin"> <em><%=ls_userApp%></em></td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="2" rowspan="2" align="left" valign="middle" class="CampoLabel">L&iacute;der SIS: </td> <td colspan="2" rowspan="2" align="left" valign="middle" class="menu_system"> <%=l_dcw.crearComboT(ls_queryLider,"cmb_lider_p", "cargar")%></td> <td height="21">&nbsp;</td> <td>&nbsp;</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="1"></td>

Page 286: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

77

<td rowspan="4" align="left" valign="middle" class="CampoLabel"><input name="b_select" type="button" class="UsuarioLogin" id="b_select" value="Ok" onClick="valida()"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="20" colspan="2" align="left" valign="middle" class="CampoLabel">Estados del Proyecto:</td> <td rowspan="2" align="left" valign="middle" class="menu_system"> <%=l_dcw.crearCombo(ls_queryRec,"cmb_estados")%></td> <td>&nbsp;</td> <td>&nbsp;</td> <td></td> <td>&nbsp;</td> <td>&nbsp;</td> <td></td> </tr> <tr> <td rowspan="3" align="left" valign="middle" class="CampoLabel"><input name="b_regresar" type="submit" class="UsuarioLogin" id="b_regresar" onClick="MM_goToURL('parent','../frame.jsp');return document.MM_returnValue" value="Regresar"></td>

<html> <head> <title> </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <script> // función que obtiene el código de líder function valida(codigo) { var cod_estado=codigo; // codigo del proyecto para actualizar el estado //alert ("Codigo en tabla_estado "+cod_estado); var cod_lider=document.detalle.cod_lider.value; var url2 = "actualiza_estado.jsp?codigo="+cod_estado+"&cod_lider="+cod_lider; window.open(url2,target="hd_limpiar"); } </script> <link href="../estilos/hojaEstiloBlc.css" rel="stylesheet" type="text/css"> </head> <% // se crea un objeto para poder llamar a todos los componentes que posea el DibujadorComponentesWeb DibujadorComponentesWeb l_dcw = new DibujadorComponentesWeb(pageContext); Vector v_conexiones = new Vector(); String codigo2 =request.getParameter("cod"); // recibe parámetro de la pantalla estados.jsp

Page 287: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

78

%> <body class = "Mantenimiento"> <FORM method="post" name="detalle" lass = "Mantenimiento" id="detalle_estado"> <input type="hidden" name="cod_lider" value=<%=codigo2%>> <table width="700" align="center" class="CampoLabel"> <!--DWLayoutTable--> <tr> <th width="690" height="23" align="left" valign="middle" class="TituloMantenimiento" scope="col"><span class="TituloMantenimiento">DETALLE DE ESTADOS DEL PROYECTO </span></th> <tr><th height="1" ></th> </table> <table width="700" border="2" align="center" class="CampoLabel"> <tr> <th width="50" scope="col" align="justify" valign="middle" class="CampoLabel">Orden</th> <th width="150" scope="col" align="justify" valign="middle" class="CampoLabel">Área de Proyecto</th> <th width="300" scope="col" align="justify" valign="middle" class="CampoLabel">Descripción del Proyecto </th> <th width="180" scope="col" align="justify" valign="middle" class="CampoLabel">Estado del Proyecto </th> </tr> <% v_conexiones = l_dcw.consultarEstado(codigo2); for (int i=0; i<v_conexiones.size(); i++) { Estado obj_est = new Estado(); obj_est = (Estado)v_conexiones.elementAt(i); int pos= i+1; String descripcion_area = obj_est.getDescripcion_area(); String descripcion_proyecto = obj_est.getDescripcion_proyecto(); String estado = obj_est.getEstado(); Integer codigo=obj_est.getCodigo_proy(); %> <tr> <td class="CampoLabel"><%=pos%></td> <td class="CampoLabel"><%=descripcion_area%></td> <td class="CampoLabel"><%=descripcion_proyecto%></td> <td class="CampoLabel"><a href="javascript:valida(<%=codigo%>)"><%=estado%></a></td> </tr> <% } %> </table>

<html> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <body class = "Mantenimiento"> <% // Obtiene el valor del estado String ls_codigo_estado=(String)session.getAttribute("code");

Page 288: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

79

//String codigoUsuario=(String)request.getSession().getAttribute("codigoUsuario"); // Obtiene el código del líder String cod_lider = request.getParameter("cod_lider"); // Obtiene el código del Proyecto y lo transforma a Integer String cod = request.getParameter("codigo"); Integer ln_codigo_proyecto = new Integer(Integer.parseInt(cod)); StringBuffer lsbError = new StringBuffer(""); String lsError = ""; // Muestra por consola los valores que recibe la página // Nos asegura que se estén cargando los valores System.out.println("Valor Codigo: "+ln_codigo_proyecto); System.out.println("Valor Estado: "+ls_codigo_estado); System.out.println("Valor Codigo User: "+codigoUsuario); // Llama a la clase ProcesaEstado el cual llama al pck para realizar // el update de los estados del proyecto ProcesaEstado estado = new ProcesaEstado(pageContext); try { estado.procesaEstado(ln_codigo_proyecto, ls_codigo_estado, codigoUsuario, lsbError); lsError = lsbError.toString(); %> <script> window.open("../blanco.jsp","hd_resultado"); window.open("tabla_estado.jsp?cod="+<%=cod_lider%>, target="hd_resultado"); alert ("Estado Actualizado"); </script> <%} catch (Exception e) { //e.printStackTrace(); // no queremos mostrar la pila System.out.println("Error al actualizar el Estado del Proyecto: "+e); %> <script> alert("<%=e%>"); </script> <%} %> </body> </html>

Elaboración del Cronograma

En la elaboración del cronograma, existirán dos clases de

ingresos, cuando sea esta una actividad o sea esta un hito.

Page 289: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

80

Hay algunas validaciones al momento de ingresar las fechas; la

fecha de tope minimo que se puede ingresar es la que no pase de

la fecha de inicialización del proyecto.

Si la actividad que se esta ingresando es un hito no es necesario

que le ponga fecha fin, ya que esta se actualizará cuando se

ingrese otro hito.

Al momento de ingresar una actvidad predecesora y si esta

actividad no esta en el proyecto; saltará un error el cual indicará

que la actividad que ingreso como predecesora no existe en el

proyecto.

<% // String ls_userApp = (String)session.getAttribute("codigoUsuarioLogin"); String ls_userApp = codigoUsuario; String ls_proyectos_crono= "select d.codigo_proyecto, d.nombre_proyecto " + "from gen_proyectos d " + "where d.codigo_estado ='AO' " + "order by d.codigo_proyecto" ; // se crea un objeto para poder llamar a todos los componentes que posea el DibujadorComponentesWeb DibujadorComponentesWeb l_dcw=new DibujadorComponentesWeb(pageContext); SimpleDateFormat l_df = new SimpleDateFormat("dd/MM/yyyy"); String band; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Cronograma Estimado del Proyecto</title> <link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <script> function inserta_cant(){ var cod_proy = document.cronograma.cmb_cron_proyectos.value;

Page 290: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

81

if (cod_proy != null && cod_proy != ''){ /* Permite reducir la pantalla al tamaño deseado o especificado */ window.open('cantidad_recursos.jsp?cod='+cod_proy,'','width=370,height=230,menubar=no,scrollbars=no,toolbar=no,location=no,directories=no,resizable=no,top=250,left=350'); }else{ alert ("Seleccione un proyecto"); } } function cargar() { var codigo=document.cronograma.cmb_cron_proyectos.value; // captura el codigo del combo if (codigo != null && codigo != '' ) { var url1 = "detalle_cronograma.jsp?cod=" + codigo; // nuevo jsp en el que se dibujara la grid window.open(url1,target="hd_resultado"); // carga la pagina y ubica la inf. en la parte inferior de la misma window.open('cronograma2.jsp?ps_id_proyecto='+codigo,"topFrcro2"); }else{ alert('Debe escoger un Proyecto'); } } function barras() { var codigo=document.cronograma.cmb_cron_proyectos.value; // captura el codigo del combo if (codigo != null && codigo != ' ' ) { //alert (codigo); var url1 = "barras_cronograma.jsp?cod=" + codigo; // nuevo jsp en el que se dibujara la grid window.open(url1); // carga la pagina y ubica la inf. en la parte inferior de la misma }else { alert('Debe escoger un Proyecto'); } } function elimina(){ var cod_proy = document.cronograma.cmb_cron_proyectos.value; if (cod_proy != null && cod_proy != ''){ /* Permite reducir la pantalla al tamaño deseado o especificado */ window.open('elimina_cronograma.jsp?cod='+cod_proy,'','width=350,height=250,menubar=no,scrollbars=no,toolbar=no,location=no,directories=no,resizable=no,top=250,left=350'); }else{ alert ("Seleccione un proyecto"); } } function actualiza(){ var cod_proy = document.cronograma.cmb_cron_proyectos.value; if (cod_proy != null && cod_proy != ''){ /* Permite reducir la pantalla al tamaño deseado o especificado */ window.open('actualiza_cronograma.jsp?cod='+cod_proy,'','width=550,height=300,menubar=no,sc

Page 291: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

82

rollbars=no,toolbar=no,location=no,directories=no,resizable=no,top=250,left=350'); }else{ alert ("Seleccione un proyecto"); } } </script> <link href="../estilos/hojaEstiloBlc.css" rel="stylesheet" type="text/css"> </head> <body class = "Mantenimiento"> <form name="cronograma" class="hover"> <table width="910" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="126" height="59">&nbsp;</td> <td width="763">&nbsp;</td> <td width="21">&nbsp;</td> <!-- <td width="476">&nbsp;</td> --> <!-- <td width="99">&nbsp;</td>--> </tr> <tr> <td height="114"></td> <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="748" height="103" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td height="22" colspan="9" align="left" valign="top" class="TituloMantenimiento">CRONOGRAMA</td> <td width="10">&nbsp;</td> <td width="58">&nbsp;</td> <td width="88">&nbsp;</td> </tr> <tr> <td height="22" colspan="11" valign="top" class="MenuBanner"><!--DWLayoutEmptyCell-->&nbsp;</td> <td></td> </tr> <tr> <td width="133" height="1"></td> <td width="237"></td> <td width="21"></td> <td width="75"></td> <td width="9"></td> <td width="25"></td> <td width="30"></td> <td width="11"></td> <td width="35"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="18"></td> <td></td> <td></td> <td></td> <td></td> <td colspan="3" valign="top" class="CampoLabel"><em>Fecha:</em></td> <td colspan="3" rowspan="2" align="left" valign="top"

Page 292: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

83

class="CampoLabel"><em><%=l_df.format(new java.util.Date())%></em></td> <td></td> </tr> <tr> <td rowspan="2" align="left" valign="middle" class="CampoLabel">Líder SIS: </td> <td colspan="5" rowspan="2" align="left" valign="middle" class="UsuarioLogin"> <em><%=ls_userApp%></em></td> <td height="4"></td> <td></td> <td></td> </tr>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <link href="../estilos/hojaEstiloBlc.css" rel="stylesheet" type="text/css"> </head> <body class = "Mantenimiento"> <% int sec = 1; String resultado = null; String accion = request.getParameter("accion"); if ("add".equals(accion)) { //Añadir un linea Cronograma crono = new Cronograma(pageContext); resultado = crono.grabar_cronograma(request, response); pageContext.setAttribute("result", resultado); } Vector datos=new Vector(); Crono crono2 = new Crono(pageContext); datos=crono2.query_cronograma(request.getParameter("cod")); Cronograma cro=new Cronograma(); %> <form name="pagina" method="post" action="?accion=add" onsubmit="if (confirm('Esta seguro de guardar datos?')) return true; else return false;"> <% System.out.println("PARAMETRO DEL CODIGO DEL PROYECTO: " + request.getParameter("cod")); String cod= request.getParameter("cod");%> <input name="cod" type="hidden" value="<%=cod%>"/>

Page 293: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

84

<table width="750" border="2" align="center" class="CampoLabel"> <tr> <th width="74" scope="col" align="justify" valign="middle" class="CampoLabel">Orden</th> <th width="300" scope="col" align="justify" valign="middle" class="CampoLabel">Actividad</th> <th width="46" scope="col" align="justify" valign="middle" class="CampoLabel" >Hito</th> <th width="67" scope="col" align="justify" valign="middle" class="CampoLabel" >Pred.</th> <th width="178" scope="col" align="justify" valign="middle" class="CampoLabel" >Fecha Inicio</th> <th width="166" scope="col" align="justify" valign="middle" class="CampoLabel" >Fecha Fin</th> <th width="41" scope="col" align="justify" valign="middle" class="CampoLabel" >Tiempo</th> <th width="100" scope="col" align="justify" valign="middle" class="CampoLabel" >Recurso</th> <th width="178" scope="col" align="justify" valign="middle" class="CampoLabel" >Observación</th> </tr> </table> <table width="750" border="2" align="center" cellpadding="0" cellspacing="0" class="CampoLabel" > <% for (int i=0; i<datos.size(); i++) { cro = (Cronograma)datos.elementAt(i); %> <tr> <!-- Aqui lleno un campo oculto tipo Array para tener los codigos Actividad q se presentan en la tabla --> <input name="cod_actividad[]" type="hidden" value="<%=cro.getCod_actividad()%>"/> <td height="19" colspan="2" align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="orden<%=cro.getCod_actividad()%>" type="text" class="CampoLabel" size="4" value="<%=cro.getActividadProyecto() %>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="actividad<%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="19" value="<%=cro.getActividad()%>"/></td> <td align="center" valign="middle"><input readonly= "readonly" name="hito<%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size = "1" value="<%=cro.getLs_hito()%>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="predecesora <%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="3" value="<%=cro.getPredecesora()%>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="fecha_inicio<%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="10" value="<%=cro.getFechaInicio()%>" /></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="fecha_fin <%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="9" value="<%=cro.getFechaFin()%>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="tiempo <%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="3" value="<%=cro.getTiempo()%>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly" name="recurso <%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="7" value="<%=cro.getRecurso()%>"/></td> <td align="center" valign="middle" class="CampoLabel"><input readonly= "readonly"

Page 294: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

85

name="observacion <%=cro.getCod_actividad() %>" type="text" class="CampoLabel" size="14" value="<%=cro.getObservacion()%>"/> </td> </tr> <% sec = (Integer.parseInt(cro.getActividadProyecto()))+1; System.out.println("Valor sec= " + sec); } %> <tr> <td height="19" colspan="2" align="center" valign="middle" class="CampoLabel"><input name="orden" readonly="readonly" type="text" class="CampoLabel" size="4" value="<%=sec++%>"/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="actividad" type="text" class="CampoLabel" size="19" value=""/></td> <td align="center" valign="middle" ><input name="hito" type="text" class="CampoLabel" size="1" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="predecesora" type="text" class="CampoLabel" size="3" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="fecha_inicio" type="text" class="CampoLabel" size="10" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="fecha_fin" type="text" class="CampoLabel" size="9" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="tiempo" type="text" class="CampoLabel" size="3" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="recurso" type="text" class="CampoLabel" size="7" value=""/></td> <td align="center" valign="middle" class="CampoLabel" ><input name="observacion" type="text" class="CampoLabel" size="14" value=""/></td> </tr> </table> <br> <table width="82" align="center" > <!--DWLayoutTable--> <tr> <td height="22"><input valign="middle" name="b_guardar" type=submit class="UsuarioLogin" value="Guardar"/></td> <td width="1">&nbsp;</td> </tr> </table> <script type="text/javascript"> window.open('cronograma2.jsp?ps_id_proyecto='+ <%=request.getParameter("cod")%>,"topFrcro2"); </script> </form> <script type="text/javascript"> var msg_presentacion='<%=pageContext.getAttribute("result") %>'; if (msg_presentacion!='null') { alert(msg_presentacion); } </script> </body> </html>

Page 295: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

86

Barras del Cronograma

Para presenter la interfaz que muestre las barras de las

actividades solo recibe por medio de URL el codigo del proyecto,

este método realiza un barrido a la base para retornar las

actividades del proyecto que ingreso y el tiempo en días.

<%@ include file="/WEB-INF/include.jsp"%> <% String ls_userApp="select user from dual"; String ls_actividad; // para las actividades String ls_fecha_ini_act; String ls_fecha_fin_act; String ls_nombre; // Datos para obtener las actividades BarrasCronograma barras_act = new BarrasCronograma(pageContext); BarrasCronograma barras_act2 = new BarrasCronograma(pageContext); int ln_tiempo; String proyecto = request.getParameter("cod"); System.out.println("codigo del proyecto en las barras: " + proyecto); Vector v_barras_act = barras_act.query_actividades(proyecto); %> <script> //window.close("barras_cronograma.jsp"); </script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Gráfico de Actividades del Proyecto</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/JavaScript"> //--> function salir(){ window.close(); } //--> </script>

Page 296: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

87

Definición de Tipo de Proyecto

Esta definición es de gran ayuda para el módulo de reporteria ya

que ellos visualizan el tipo que pertenece el proyecto en curso.

function cargar() { var codigo_proy=document.definicion.cmb_proy.value; // captura el codigo del combo if (codigo_proy != null && codigo_proy != '') { var url1 = "tabla_tipoProyecto.jsp?codProy="+codigo_proy; window.open(url1,target="hd_resultado"); // carga la pagina y ubica la inf. en la parte inferior de la misma } } function valida() { var codigo_tipo=document.definicion.cmb_tipoProy.value; if (codigo_tipo != null && codigo_tipo != '') { var url2 = "define_tipoProyecto.jsp?code_tipo="+codigo_tipo; // nuevo jsp en el que se dibujara la grid document.definicion.action=url2; document.definicion.target="_self"; document.definicion.method="get"; document.definicion.submit(); } } function MM_goToURL() { //v3.0 var i, args=MM_goToURL.arguments; document.MM_returnValue = false; for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'"); } //--> </script> <link href="../estilos/hojaEstilo.css" rel="stylesheet" type="text/css"> </head> <body class = "Mantenimiento"> <form name="definicion" class="hover"> <table width="881" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="127" height="66">&nbsp;</td> <td width="720">&nbsp;</td> <td width="34">&nbsp;</td> </tr> <tr> <td height="163"></td> <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="309" height="21" align="left" valign="middle" class="TituloMantenimiento">DEFINICIONES DEL PROYECTO</td> <td width="393">&nbsp;</td> <td width="18">&nbsp;</td> </tr> <tr>

Page 297: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

88

<td height="21" colspan="2" align="left" valign="middle" class="MenuBanner"><!--DWLayoutEmptyCell-->&nbsp;</td> <td></td> </tr> <tr> <td height="8"></td> <td></td> <td></td> </tr> <tr> <td height="108" colspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="CampoLabel"> <!--DWLayoutTable--> <tr> <td width="71" height="21"></td> <td width="145"></td> <td width="9"></td> <td width="32"></td> <td width="18"></td> <td width="39"></td> <td width="370"></td> </tr> <tr> <td height="22" colspan="2" align="left" valign="middle" class="CampoLabel"> Proyecto: </td> <td>&nbsp;</td> <td align="left" valign="middle" class="CampoLabel"> <%=l_dcw.crearComboT(ls_queryPro,"cmb_proy", "cargar")%></td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td height="26" colspan="2" align="left" valign="middle" class="CampoLabel">Tipo de Proyecto:</td> <td>&nbsp;</td> <td align="left" valign="middle" class="CampoLabel"> <%=l_dcw.crearCombo(ls_queryTipo,"cmb_tipoProy")%></td> <td>&nbsp;</td> <td align="left" valign="middle" class="CampoLabel"> <input name="b_select" type="button" class="UsuarioLogin" id="b_select" value="Ok" onClick="valida()"></td> <td>&nbsp;</td> </tr> <tr> <td height="4"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="26" align="left" valign="middle" class="CampoLabel"><input name="b_regresar" type="submit" class="UsuarioLogin" id="b_regresar" onClick="MM_goToURL('parent','../frame.jsp');return document.MM_returnValue" value="Regresar"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="14"></td>

Page 298: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

89

<td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>

<head> <title> </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <script> // función que obtiene el código de líder function valida(codigo) { var cod_Proyecto=codigo; var cod_Proy=document.detalle.cod_Proy.value; var url2 = "define_tipo.jsp?codigo="+cod_Proyecto+"&cod_Proy="+cod_Proy; window.open(url2,target="hd_limpiar"); } </script> <link href="../estilos/hojaEstiloBlc.css" rel="stylesheet" type="text/css"> </head> <% // se crea un objeto para poder llamar a todos los componentes que posea el DibujadorComponentesWeb DibujadorComponentesWeb l_dcw = new DibujadorComponentesWeb(pageContext); Vector v_conexiones = new Vector(); String codProyecto =request.getParameter("codProy"); // recibe parámetro de la pantalla estados.jsp %> <body class = "Mantenimiento"> <FORM id="detalle_tipo" name="detalle" method="post"> <input type="hidden" name="cod_Proy" value=<%=codProyecto%>> <table width="650" align="center" class="CampoLabel"> <!--DWLayoutTable--> <tr> <th width="640" height="23" align="left" valign="middle" class="TituloMantenimiento" scope="col" ><span class="TextoEnDefault">DETALLE DE TIPOS DE PROYECTOS</span></th> <tr><th height="5" ></th> </table> <table width="650" border="2" align="center" class="CampoLabel">

Page 299: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

90

<tr> <th width="50" align="center" valign="middle" class="CampoLabel" scope="col" >Orden</th> <th width="280" scope="col" align="center" valign="middle" class="CampoLabel" >Descripción del Proyecto </th> <th width="120" scope="col" align="center" valign="middle" class="CampoLabel" >Tipo de Proyecto </th> </tr> <% v_conexiones = l_dcw.consultarTipoProyecto(codProyecto); for (int i=0; i<v_conexiones.size(); i++) { DefineProyecto tipo = new DefineProyecto(); tipo = (DefineProyecto)v_conexiones.elementAt(i); int pos= i+1; String descripcionProyecto = tipo.getDescripcionProyecto(); String descripcionTipo = tipo.getDescripcionTipo(); if (descripcionTipo == null) { descripcionTipo ="No definido"; } Integer codigo=tipo.getCodigo_proy(); %> <tr> <td class="CampoLabel"><%=pos%></td> <td class="CampoLabel"><%=descripcionProyecto%></td> <td class="CampoLabel"><a href="javascript:valida(<%=codigo%>)"><%=descripcionTipo%></a></td> </tr> <% } %> </table> </FORM> </body> </html>

<link href="../estilos/estilo.css" rel="stylesheet" type="text/css"> <%@ include file="/WEB-INF/include.jsp"%> <style type="text/css"> <!-- .style1 {font-size: 9} --> </style> <body class = "Mantenimiento"> <% // Obtiene el valor del tipo de proyecto y lo transforma a Integer // Se lo enviará al pck para que actualice el tipo de proyecto String tipo_proy = (String)session.getAttribute("code_tipo"); Integer ln_tipo_proyecto = new Integer (Integer.parseInt(tipo_proy)); // Obtiene el valor del proyecto y lo transforma a Integer // se lo enviará al pck para que se asigne el tipo de proyecto String cod_Proyecto = request.getParameter("codigo"); Integer ln_codigo = new Integer (Integer.parseInt(cod_Proyecto));

Page 300: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

91

// Obtiene el valor del proyecto y lo envía al jsp tabla_tipoProyecto // para que se actualicen los resultados String cod_Proy = request.getParameter("cod_Proy"); StringBuffer lsbError = new StringBuffer(""); String lsError = ""; // Muestra por consola los valores que recibe la página // Nos asegura que se estén cargando los valores System.out.println("Valor Codigo Proyecto que recibe el pck : "+ln_codigo); System.out.println("Valor Codigo Proyecto que se recibe : "+cod_Proy); System.out.println("Valor Tipo Proyecto que recibe el pck : "+ln_tipo_proyecto); // Llama a la clase DefineTipoProyecto el cual llama al pck para realizar // el update de los tipos de proyecto DefineTipoProyecto defineProyecto = new DefineTipoProyecto(pageContext); try { defineProyecto.defineTipo(ln_codigo, ln_tipo_proyecto, lsbError); lsError = lsbError.toString(); %> <script> window.open("../blanco.jsp",target="hd_resultado"); window.open("tabla_tipoProyecto.jsp?codProy="+<%=cod_Proy%>, target="hd_resultado"); alert("Tipo de Proyecto Definido"); </script> <%} catch (Exception e) { //e.printStackTrace(); // no queremos mostrar la pila System.out.println("Error al actualizar el Tipo de Proyecto => define_tipo.jsp: "+e); %> <script> alert("<%=e%>"); </script> <%} %> </body> </html>

Page 301: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

92

Recursos Informáticos:

Al igual que la asignación de recurso humano, se deberá escoger

de una lista los recursos necesarios para el desarrollo del

proyecto; de no haber stock se emitirá una solicitud para la

adquisición de la misma, al momento de aprobar dicha solicitud el

módulo realizará la asignación de manera transparente para el

usuario.

<%@ page language="java" %>

<%@ page import="project.pojo.GrabaRecurso"%> <%@ include file="/WEB-INF/include.jsp"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html> <style type="text/css">

<!--

.style1 {font-size: 9} -->

</style>

<body class = "Mantenimiento"> <%

// Id del proyecto

String ls_codigo_proyecto=request.getParameter("pid_proyecto");

// Los proyectos seleccionados

String trama = request.getParameter("trama");

StringBuffer lsbError = new StringBuffer("");

String lsError = ""; // Muestra por consola los valores que recibe la página

// Nos asegura que se estén cargando los valores

System.out.println("Valor Codigo: "+ls_codigo_proyecto); System.out.println("Trama : "+trama);

//System.out.println("Cantidad RRHH: "+cant_ri);

// Llama a la clase ProcesaEstado el cual llama al pck para realizar

// el update de los estados del proyecto GrabaRecurso recInf = new GrabaRecurso(pageContext);

try

{ recInf.inserta_hardware(ls_codigo_proyecto,trama,lsbError);

//recInf.asignar_rrinfor (ls_codigo_proyecto,trama,cant_ri,lsbError);

lsError = lsbError.toString(); %>

<%}

catch (Exception e) {

//e.printStackTrace(); // no queremos mostrar la pila

System.out.println("Error al asignar recursos informáticos al Proyecto: "+e); %>

<%}

Page 302: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

93

MANUAL DE USUARIO

El presente manual de usuario tiene como objetivo proporcionar una guía del

Aplicativo que actualmente se encuentra en marcha, a medida que se avance

con la lectura del manual veremos a nivel de detalle los diferentes procesos

que realiza la Aplicación.

1 MANUAL PARA EL GERENTE DE SISTEMAS

1.1. Asignación Líder de Sistemas – Líder SIS

Para proceder a la asignación del Líder SIS se debe acceder a la

pantalla Asigna Líder SIS la misma permitirá asignar al líder que

se encargará de llevar a cabo el proyecto.

Para ello se debe seleccionar el Área del Proyecto, allí se listarán

los proyectos que se tienen en dicha área, luego se deberá

escoger mediante un combo el nombre del Líder a quién se le

designará un proyecto determinado presionando el botón OK.

Botón mediante el cual se escoge el líder

Page 303: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

94

Una vez que se haya presionado el botón OK se deberá dar clic

en la leyenda que dice No Asignado el cual indica que para ese

proyecto no se encuentra asignado un Líder, después de haber

dado clic en el globito que se indica en la figura, se habrá

asignado el Líder al proyecto seleccionado.

1.2. Consulta del Líder de Proyectos

Para proceder a la consulta del Líder de Proyectos, es decir, el

Gerente del Requerimiento, se debe acceder a la pantalla

Consulta Líder Proyectos, la misma permitirá consultar al líder de

Proyectos que originó el requerimiento.

Link que permitirá asignar al líder.

Page 304: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

95

Para ello se debe seleccionar el Área del Proyecto, allí se listarán

los proyectos que se tienen en dicha área y el responsable de

haber generado dicho requerimiento.

1.3. Configuración de Cantidad Máxima Proyectos

Para proceder a la configuración se debe acceder a la pantalla

Configuraciones Generales, la misma permitirá definir la cantidad

máxima de proyectos que le será asignado al líder SIS.

La pantalla es la siguiente:

Responsable Req.

Page 305: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

96

1.4. Estados del Proyecto

Para proceder a la actualización de los Estados del Proyecto se

debe acceder a la pantalla Estados del Proyecto, la misma

permitirá definir el estado actual del Proyecto. La pantalla es la

siguiente:

Campo donde se ingresará cantidad máxima de proyectos

Page 306: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

97

Primero se deberá escoger el Líder SIS del Proyecto, como

resultado de esta selección se listarán los proyectos que el líder

tiene asignado.

Luego se deberá escoger en el combo el Estado a cambiar y

presionando el botón OK indicará que aceptará dicha selección.

Luego se deberá dar clic sobre el hipervínculo para aceptar

dicho cambio de estado.

1.5. Plan Técnico del Proyecto

Para proceder a la aceptación del Plan Técnico del Proyecto se

debe acceder a la pantalla Aprobaciones del Plan Técnico, la

misma permitirá definir el estado del Documento que puede ser:

Botón para seleccionar el Estado

Page 307: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

98

Documento Aprobado

Documento sin Aprobar

La pantalla es la siguiente:

Primero se deberá escoger el Código del Proyecto, como

resultado de esta selección se listará el proyecto y el estado del

documento.

Luego se deberá escoger en el combo el Estado del Plan Técnico

el estado a cambiar y presionando el botón OK indicará que

aceptará dicha selección.

Page 308: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

99

Luego se deberá dar clic sobre el hipervínculo para aceptar dicho

cambio de estado.

1.6. Reportes

1.6.1. Reporte de Estados del Proyecto

Para proceder al reporte de Estados del proyecto se deberá

acceder a la pantalla Reporte de Estados del Proyecto, en primer

lugar se deberá escoger el estado deseado con el cual se listarán

los proyectos.

Botón para seleccionar el Estado

Link

Combo de estados del proyecto

Listado de proyectos

Page 309: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

100

1.6.2. Reporte de Líderes SIS

Esta sección permitirá consultar los líderes que se encuentran

asignados a proyectos de Sistemas.

Para proceder al reporte de Líderes SIS se deberá acceder a la

pantalla Reporte de Proyectos Asignados al Líder, en primer lugar

se deberá escoger el Líder SIS del Proyecto deseado con el cual

se listarán los proyectos que le fueron asignados.

Proyectos Asignados

Page 310: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

101

1.6.3. Reporte de Actividades del Proyecto

Esta sección permitirá consultar las actividades que se llevarán a

cabo dentro de un proyecto (Cronograma de actividades).

Para proceder al reporte de Actividades se deberá acceder a la

pantalla Reporte de Actividades del Proyecto, en primer lugar se

deberá escoger el Código y Nombre del Proyecto, mediante ello

se listarán las actividades correspondientes al proyecto y que se

llevarán a cabo por los Ingenieros en Sistemas.

Listado de Proyectos

Actividades del Proyecto

Page 311: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

102

2 MANUAL PARA EL LIDER SIS

2.1. Definiciones del Proyecto

Para proceder a la definición del Proyecto se debe acceder a la

Interfaz Definiciones del Proyecto, la misma permitirá realizar la

definición de un Proyecto.

Para proceder a la Interfaz de Definiciones del Proyecto se debe

acceder por medio del link Definir Tipo de Proyecto desde el menú

principal.

En el primer combo se seleccionará el nombre del proyecto o

todos como resultado de esta selección se listarán los proyectos y

el tipo de proyecto.

Luego se deberá escoger el tipo de Proyecto accionando el botón

OK mediante el cual se obtendrá el Tipo del proyecto,

Luego se deberá dar clic sobre el hipervínculo para poder

asignarle el tipo de Proyecto y automáticamente se actualiza el

Tipo de Proyecto.

Page 312: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

103

2.2. Cronograma

Para proceder a la Elaboración del Cronograma para un proyecto

se debe acceder a la Interfaz Cronograma, la misma que realiza la

elaboración del cronograma Inicial del proyecto.

Para proceder a la Interfaz de Elaboración de Cronograma se

debe acceder por medio del link de Cronograma de actividades

desde el menú principal.

En la Interfaz se debe seleccionar el nombre del proyecto

automáticamente se genera un listado de todas las actividades

que tenga el proyecto, y un registro adicional donde se ingresara

Link

Botón Seleccionar

el Tipo de Proyecto

Page 313: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

104

una actividad del cronograma, luego se hace clic en el botón

guardar para ingresar una actividad al proyecto.

En la parte Detalle de Actividades se obtiene el tiempo y la

cantidad de los recursos; cada vez que se ingrese una actividad

nueva se actualizará el campo del tiempo total del proyecto.

Al momento de hacer clic en el botón Actualizar, se genera

automáticamente una ventana donde permitirá actualizar una

determinada actividad del proyecto seleccionado.

Page 314: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

105

Al momento de hacer clic en el botón Eliminar, se genera

automáticamente una ventana donde permitirá eliminar una

determinada actividad del proyecto seleccionado.

Al momento de hacer clic en el botón Barras, se genera

automáticamente una ventana donde mostrará a manera de

diagrama de barras, las actividades del proyecto.

Page 315: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

106

Al momento de hacer clic en el botón RRHH, se genera

automáticamente una ventana donde se registra el número de

recursos humanos que se necesitan para el proyecto.

2.3. Asignación de Recurso Humano

Para proceder a la Asignación de Recurso Humano para un

proyecto se debe acceder a la Interfaz Asignación de Recurso

Page 316: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

107

Humano, la misma que realizara una secuencia de procesos para

dicha asignación.

Para proceder a la Interfaz de Asignación de Recurso Humano se

debe acceder por medio del link de Recurso Humanos desde el

menú principal.

En la página Inicial se deberá seleccionar el Área específica o

todas las áreas, en el cual genera un listado de todos los

proyectos que están en el área seleccionada, luego se hace clic

en el link de descripción del Proyecto para seleccionar un

Proyecto.

Áreas de la Empresa

Link

Page 317: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

108

Al momento de hacer clic en un proyecto especifico, se genera

una interfaz la cual obtendrá un listado de todos los conocimientos

que pueden poseer un recurso humano, se seleccionará todos los

conocimientos necesarios que requiere para el proyecto

seleccionado, máximo aceptado son de 4 conocimientos, se hace

clic en Aceptar.

Al momento de seleccionar todos los conocimientos en la interfaz

siguiente aparecerán todos los recursos humanos que coinciden

con los conocimientos seleccionados anteriormente los cuales se

podrán seleccionar a activa el check, y luego hacer clic en

Asignar.

Conocimientos para Seleccionar

Page 318: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

109

Luego de haber seleccionado el participante para el proyecto,

pasa a realizar la definición de los recursos.

2.4. Definición de Recursos Informáticos

Antes de proceder a la Asignación de Recursos Informáticos para

un proyecto se debe definir los mismos que serán parte del

proyecto.

Mediante la cual se listarán los proyectos al cual se le definirán los

recursos sean estos Hardware o Software.

Page 319: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

110

Luego de esto al seleccionar el Proyecto, se listarán los equipos /

software que podrían ser los posibles implementos a utilizarse en el

proyecto.

Luego que se hayan escogido los recursos informáticos, se tendrá

definido el recurso informático para su posterior asignación.

2.5. Asignación de Recursos Informáticos

Para proceder a la Asignación de Recursos Informáticos para un

proyecto se debe acceder a la Interfaz Asignación de Recursos

Informáticos, la misma que realizara una secuencia de procesos

para dicha asignación.

Para proceder a la Interfaz de Asignación de Recursos

Informáticos se debe acceder por medio del link de Recursos

Informáticos desde el menú principal.

Page 320: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

111

En la página Inicial se deberá seleccionar el Área específica o

todas las áreas, mediante el cual se genera una interfaz que

indicará el tipo de asignación que se desee realizar, es decir,

Hardware o Software.

Al momento de hacer clic en determinado botón se desplegará

una pantallita por Hardware o Software, listando los recursos que

se encuentren disponibles para la respectiva asignación al

proyecto.

Áreas de la Empresa

Page 321: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

112

2.6. Definición de Recursos Humanos Solicitados

En caso de que haya sido necesario adquirir Personal o Recurso

Humano para que colabore en un proyecto, este deberá ser

definido luego de su respectiva asignación.

Page 322: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

113

2.7. Reportes

2.7.1. Reporte de Estados del Proyecto

Para proceder al reporte de Estados del proyecto se deberá

acceder a la pantalla Reporte de Estados del Proyecto, en primer

lugar se deberá escoger el estado deseado con el cual se listarán

los proyectos.

2.7.2. Reporte de Líderes SIS

Esta sección permitirá consultar los líderes que se encuentran

asignados a proyectos de Sistemas.

Para proceder al reporte de Líderes SIS se deberá acceder a la

pantalla Reporte de Proyectos Asignados al Líder, en primer lugar

Combo de estados del proyecto

Listado de proyectos

Page 323: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

114

se deberá escoger el Líder SIS del Proyecto deseado con el cual

se listarán los proyectos que le fueron asignados.

2.7.3. Reporte de Actividades del Proyecto

Esta sección permitirá consultar las actividades que se llevarán a

cabo dentro de un proyecto (Cronograma de actividades).

Para proceder al reporte de Actividades se deberá acceder a la

pantalla Reporte de Actividades del Proyecto, en primer lugar se

deberá escoger el Código y Nombre del Proyecto, mediante ello

se listarán las actividades correspondientes al proyecto y que se

llevarán a cabo por los Ingenieros en Sistemas.

Proyectos Asignados

Page 324: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/6967/1/Tesis Completa-121... · UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y

115

Listado de Proyectos

Actividades del Proyecto