137
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA. TRABAJO DE GRADUACIÓN, PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO AUTOR: NATALÍ ELIZABETH LASCANO ROBALINO TUTOR: ING. MILTON GIOVANNY MONCAYO UNDA, MSC. QUITO, 03 DE OCTUBRE 2016

UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · 2.2.6 Sistema de Gestor de Base de Datos ... 3.9.1 Ejemplo de un Caso de Prueba ... Cuadro Comparativo de Metodología Ágil Vs

  • Upload
    ngophuc

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

TRABAJO DE GRADUACIÓN, PREVIO A LA OBTENCIÓN DEL TÍTULO DE

INGENIERO INFORMÁTICO

AUTOR: NATALÍ ELIZABETH LASCANO ROBALINO

TUTOR: ING. MILTON GIOVANNY MONCAYO UNDA, MSC.

QUITO, 03 DE OCTUBRE

2016

ii

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, Natalí Elizabeth Lascano Robalino en calidad de autor del proyecto de integración:

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE REGISTROS

DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA ENTRE

PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA, autorizo a la

Universidad Central del Ecuador hacer uso de todos los contenidos que me pertenecen o

parte de los que contiene esta obra, con fines estrictamente académicos o de investigación.

Los derechos que como autores me corresponden, con excepción de la presente

autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en los

artículos 5, 6, 8; 19 y demás pertinentes de la Ley de Propiedad Intelectual y su

Reglamento.

Asimismo, autorizo a la Universidad Central del Ecuador para que realice la digitalización

y publicación de este trabajo de investigación en el repositorio virtual, de conformidad a

lo dispuesto en el Art. 144 de la Ley Orgánica de Educación Superior.

En la ciudad de Quito, a los 01 días de agosto de 2016.

-----------------------------------------

Natalí Elizabeth Lascano Robalino

CC: 1803904539

Telf. 0983769835

Dirección electrónica: [email protected]

iii

CERTIFICACIÓN DEL TUTOR

Yo, Milton Giovanny Moncayo Unda en calidad de tutor del trabajo de titulación

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE REGISTROS

DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA ENTRE

PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA, elaborado

por el estudiante Natalí Elizabeth Lascano Robalino de la Carrera de Ingeniería

Informática, Facultad de Ingeniería Ciencias Físicas y Matemática de la Universidad

Central del Ecuador, considero que el mismo reúne los requisitos y méritos necesarios en

el campo metodológico y en el campo epistemológico, para ser sometido a la evaluación

por parte del jurado examinador que se designe, por lo que lo APRUEBO, a fin de que el

trabajo Proyecto de Integración sea habilitado para continuar con el proceso de titulación

determinado por la Universidad Central del Ecuador.

En la ciudad de Quito, a los 01 días del mes de agosto de 2016.

Firma del Tutor

ING. MILTON GIOVANNY MONCAYO UNDA, MSC.

CC: 1718933383

Correo electrónico: [email protected]

iv

v

vi

vii

DEDICATORIA

A Dios y a la Santísima Virgen de Agua Santa por guiarme

en cada momento de mi vida.

A mis padres Edwin y Dénice ejemplo de lucha y constancia,

gracias a su apoyo dedicación y entera confianza

por sus exigencias, y sobre todo por el aguante

y las desveladas diarias sin ustedes no lo

hubiera logrado les amo papitos.

A mi hermana por su apoyo, fortaleza.

A mi Britany Lupita mi motor para luchar,

por ti todo mi muñequita, mi

mayor inspiración.

Natalí L.

viii

AGRADECIMIENTOS

Mi profundo agradecimiento, a la Universidad Central del Ecuador, Facultad de

Ingeniería, Ciencias Físicas y Matemática, Carrera de Ingeniería Informática, a mis

maestros que me impartieron sus conocimientos para formarme como profesional.

Un especial agradecimiento a mi tutor de tesis Ing. Giovanny Moncayo, a mis revisores

de proyecto Ing. Santiago Morales e Ing. Arturo Bedón, quienes con su experiencia,

capacidad y paciencia me supieron orientar de manera adecuada en todo el proceso de

este trabajo investigativo.

A la Fundación A Favor de la Vida en especial a la Doctora Sonnia Balladares por

brindarme la total apertura para realizar mi proyecto integrador.

Natalí L.

ix

CONTENIDO

pág.

DEDICATORIA ......................................................................................................... vii

AGRADECIMIENTOS ............................................................................................... viii

CONTENIDO ............................................................................................................ ix

LISTA DE TABLAS. .................................................................................................. xiii

LISTA DE FIGURAS................................................................................................... xv

RESUMEN ............................................................................................................. xviii

ABSTRACT .............................................................................................................. xix

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

1 ANÁLISIS DEL PROBLEMA .................................................................................. 2

1.1 Antecedentes. ..................................................................................................... 2

1.2 Planteamiento del problema. ............................................................................... 3

1.3 Formulación del Problema. .................................................................................. 3

1.3.1 Proceso de registro de bovinos: ................................................................................. 5

1.3.2 Proceso de solicitud de reporte de bovinos. .............................................................. 5

1.4 Objetivos. ............................................................................................................ 7

1.4.1 Objetivo general. ........................................................................................................ 7

1.4.2 Objetivos específicos. ................................................................................................. 7

1.5 Alcance y Limitaciones. ........................................................................................ 7

1.6 Justificación. ........................................................................................................ 8

2 MARCO TEÓRICO. ............................................................................................. 9

2.1 Aspectos de la Fundación a Favor de la Vida (ITAP RURAL). ................................... 9

2.1.1 Fundación a Favor de la Vida (ITAP RURAL). .............................................................. 9

x

2.1.2 DEPS. ......................................................................................................................... 10

2.1.3 Bovinos. .................................................................................................................... 10

2.1.4 Destete. .................................................................................................................... 10

2.1.5 Peso al Nacer. ........................................................................................................... 10

2.1.6 Pedigrí. ...................................................................................................................... 11

2.1.7 Progenie. ................................................................................................................... 11

2.1.8 Circunferencia Escrotal (CE)...................................................................................... 11

2.1.9 Registro Propio (RP). ................................................................................................. 11

2.2 Aspectos Informáticos. ...................................................................................... 11

2.2.1 Sistema Informático. ................................................................................................. 11

2.2.2 Entorno de Desarrollo Integrado “IDE”. ................................................................... 12

2.2.3 Framework. ............................................................................................................... 12

2.2.4 Java Server Faces – JSF. ............................................................................................ 13

2.2.5 Patrón MVC............................................................................................................... 13

2.2.6 Sistema de Gestor de Base de Datos. ....................................................................... 15

2.2.7 Servidor de Aplicaciones. .......................................................................................... 16

2.2.8 Plataforma de desarrollo. ......................................................................................... 17

2.2.9 Consideraciones Arquitecturales Etapas de la instalación. ...................................... 19

2.2.10 Herramientas certificadas. ..................................................................................... 19

3 METODOLOGÍA. .............................................................................................. 24

3.1 Metodología Ágiles. ........................................................................................... 24

3.2 Comparación de Metodologías Ágiles vs Metodologías Tradicionales. ................. 24

3.2.1 Benchmarking, Metodologías de Desarrollo (XP vs SCRUM vs ADAPTIVE SOFTWARE

DEVELOMENT). ................................................................................................................... 25

3.3 Programación Extrema (XP) ............................................................................... 26

3.4 Objetivos de XP. ................................................................................................ 26

3.5 Fases de XP. ...................................................................................................... 28

3.6 Fase de Planificación de Proyecto. ..................................................................... 28

3.6.1 Recopilación de información. ................................................................................... 28

3.6.2 Actores o Roles que Intervienen en el Sistema. ....................................................... 29

3.6.3 Historia de los Usuarios. ........................................................................................... 29

3.6.4 Historia de Usuario 1. Autenticar Usuario. ............................................................... 30

3.6.5 Historia de Usuario 2. Administrar Usuario. ............................................................. 31

xi

3.6.6 Historia de Usuario 3. Administrar Sistema. ............................................................. 31

3.6.7 Historia de Usuario 4. Administrar Bovinos.............................................................. 32

3.6.8 Historia de Usuario 5. Administrar Reportes. ........................................................... 33

3.7 Fase de Diseño. ................................................................................................. 33

3.7.1 Funciones. ................................................................................................................. 34

3.7.2 Diagrama de Casos de Uso. ....................................................................................... 34

3.7.3 Descripción de Casos de Uso. ................................................................................... 36

3.7.4 Diagramas de Secuencia. .......................................................................................... 44

3.7.5 Diagrama de Clases. .................................................................................................. 52

3.7.6 Base de Datos. .......................................................................................................... 54

3.8 Fase de Codificación. ......................................................................................... 56

3.8.1 Estructura del Diseño Gráfico del Sistema. ............................................................... 56

3.8.2 Separación de Componentes del patrón MVC. ......................................................... 58

3.9 Fase de Pruebas. ................................................................................................ 70

3.9.1 Ejemplo de un Caso de Prueba. ................................................................................. 70

4 IMPLEMENTACIÓN DEL SISTEMA ..................................................................... 73

4.1 Matriz certificada de herramientas. ................................................................... 73

4.2 Requerimientos Hardware y Software. ............................................................... 75

4.3 Requerimientos funcionales para ambiente de trabajo. ...................................... 76

4.4 Etapas de la instalación. ..................................................................................... 76

5 CONCLUSIONES Y RECOMENDACIONES ........................................................... 78

5.1 Conclusiones. .................................................................................................... 78

5.2 Recomendaciones ............................................................................................. 79

6. Bibliografía ..................................................................................................... 80

ANEXOS ................................................................................................................. 83

ANEXO A ....................................................................................................................... 84

Oficio de solicitud de proyecto Fundación a Favor de la Vida. .......................................... 84

ANEXO B ....................................................................................................................... 84

Información de planillas de distintas razas de bovinos ...................................................... 85

ANEXO C ....................................................................................................................... 87

Acta de Constitución de Proyecto. ..................................................................................... 87

ANEXO D ....................................................................................................................... 97

xii

Diccionario de Datos. .......................................................................................................... 97

ANEXO E ...................................................................................................................... 105

Certificación de que se Efectuaron las Pruebas pertinentes. ........................................... 105

ANEXO F ...................................................................................................................... 106

Certificación de Implementación del Sistema. ................................................................. 106

ANEXO G ..................................................................................................................... 107

Certificado de la capacitación del Sistema. ...................................................................... 107

ANEXO H ..................................................................................................................... 108

Lista de Capacitación del Sistema. .................................................................................... 108

ANEXO I ...................................................................................................................... 109

PUESTA EN PRODUCCIÓN DEL SISTEMA. ....................................................................... 109

1. Restauración de la Base de Datos. ........................................................................... 109

2. Desplegar el Sistema en el Servidor de Aplicaciones. ............................................. 112

3. Acceso al Sistema. .................................................................................................... 118

xiii

LISTA DE TABLAS

pág.

Tabla 2-1. Benchmarking, Entornos de Desarrollo Integrado (Netbeans 8.0.2 vs Eclipse

Helios vs Jdeveloper 11). ............................................................................................... 12

Tabla 2-2. Cuadro Comparativo – Motor de Base de Datos. ......................................... 15

Tabla 2-3. Cuadro Comparativo – Servidor de Aplicaciones. ........................................ 17

Tabla 3-1. Cuadro Comparativo de Metodología Ágil Vs Metodología Tradicional. ... 25

Tabla 3-2. Benchmarking, Metodología de Desarrollo (XP vs SCRUM vs ADAPTIVE

SOFTWARE DEVELOMENT). .................................................................................... 25

Tabla 3-3. Lista de Historia de Usuarios de la Aplicación. ............................................ 30

Tabla 3-4. Autentificar Usuario. ..................................................................................... 30

Tabla 3-5. Administrar Usuario. ..................................................................................... 31

Tabla 3-6. Administrar Sistema. ..................................................................................... 31

Tabla 3-7. Administrar Bovinos. .................................................................................... 32

Tabla 3-8. Administrar Reportes. ................................................................................... 33

Tabla 3-9. Descripción de Caso de Uso Ingresar al Sistema. ......................................... 36

Tabla 3-10. Descripción de Caso de Uso Cambiar de Contraseña. ................................ 37

Tabla 3-11. Descripción de Caso de Uso Generar Reportes. ......................................... 38

Tabla 3-12. Descripción de Caso de Uso Visualizar Reportes. ...................................... 38

Tabla 3-13. Descripción de Caso de Uso Visualizar de Registro de Bovinos................ 39

Tabla 3-14. Descripción de Caso de Uso Administrar de variables del Sistema. .......... 40

Tabla 3-15. Descripción de Caso de Uso Administrar Haciendas. ................................ 41

Tabla 3-16. Descripción de Caso de Uso Administrar Catálogos. ................................. 42

Tabla 3-17. Descripción de Caso de Uso Administrar Usuarios. ................................... 43

Tabla 3-18. Estructura General del Sistema. .................................................................. 56

Tabla 3-19. Prueba 1. Ingreso al Sistema. ...................................................................... 70

Tabla 4-1.Versiones permitidas de JDK para el Sistema SICOGAN. ........................... 73

Tabla 4-2.Versiones permitidas de Sistema Operativo para el sistema SICOGAN. ...... 74

Tabla 4-3.Versiones probadas, Motor de Base de Datos, sistema SICOGAN. .............. 74

Tabla 4-4.Versiones probadas, Servidor de Aplicaciones, sistema SICOGAN. ............ 75

Tabla 4-5. Requerimientos de hardware y software recomendados. .............................. 76

xiv

Tabla D1.Tabla de Secuencia. ........................................................................................ 97

Tabla D2.Tabla de Altura. .............................................................................................. 98

Tabla D3.Tabla de Bovino.............................................................................................. 98

Tabla D4.Tabla de Categoría. ......................................................................................... 98

Tabla D5.Tabla de Color. ............................................................................................... 99

Tabla D6.Tabla de Configuración. ................................................................................. 99

Tabla D7.Tabla de Ecografía. ......................................................................................... 99

Tabla D8.Tabla de Empresa. ........................................................................................ 100

Tabla D9.Tabla de Escrotal. ......................................................................................... 100

Tabla D10.Tabla de Establo. ........................................................................................ 100

Tabla D11.Tabla de Estado. ......................................................................................... 101

Tabla D12.Tabla de Etapa Vida. .................................................................................. 101

Tabla D13.Tabla de Genero. ........................................................................................ 101

Tabla D14.Tabla de Tipo Medición. ............................................................................ 101

Tabla D15.Tabla de Hacienda. ..................................................................................... 102

Tabla D16.Tabla de Peso. ............................................................................................. 102

Tabla D17.Tabla de Prepucio. ...................................................................................... 102

Tabla D18.Tabla de Raza. ............................................................................................ 103

Tabla D19.Tabla de Rol................................................................................................ 103

Tabla D20.Tabla de Tipo Manejo................................................................................. 103

Tabla D21.Tabla de Tipo Medición. ............................................................................ 103

Tabla D22.Tabla de Tipo Nacimiento. ......................................................................... 104

Tabla D23.Tabla de Tipo Parto. ................................................................................... 104

Tabla D24.Tabla de Tipo Prepucio. ............................................................................. 104

Tabla D25.Tabla de Usuario. ........................................................................................ 104

xv

LISTA DE FIGURAS

pág.

Figura 1-1. Paso de datos de registros. ............................................................................. 3

Figura 1-2. Diagrama de secuencia, transferencia de datos. ............................................ 4

Figura 1-3. Diagrama BPMN Registros de Bovinos. ....................................................... 5

Figura 1-4. Diagrama BPMN Solicitud de Reporte de Bovinos. ..................................... 6

Figura 2-1. Patrón MVC. ................................................................................................ 13

Figura 2-2. Servidor de Aplicaciones. ............................................................................ 16

Figura 2-3. Arquitectura JEE 7. ...................................................................................... 18

Figura 2-4. Separación de Capas en la Arquitectura JEE7. ............................................ 19

Figura 2-5. Logotipo Windows Server 2008 R2. ........................................................... 20

Figura 2-6. Logotipo Java. .............................................................................................. 20

Figura 2-7. Logotipo Glassfish 4.1. ................................................................................ 21

Figura 2-8. Servidor de aplicaciones Glassfish. ............................................................. 21

Figura 2-9. Logotipo NetBeans. ..................................................................................... 22

Figura 2-10. Logotipo PostgreSQL. ............................................................................... 22

Figura 2-11. Logotipo iReport. ....................................................................................... 23

Figura 3-1. Ciclo de Vida XP. ........................................................................................ 27

Figura 3-2. Diagrama de Casos de Uso General. ........................................................... 34

Figura 3-3. Diagrama de Casos de Uso para Súper Administrador................................ 35

Figura 3-4. Diagrama de Casos de Uso para Administrador. ......................................... 35

Figura 3-5. Diagrama de Casos de Uso para Capataz. ................................................... 36

Figura 3-6. Diagrama de Casos de Uso para Secretaria. ................................................ 36

Figura 3-7. Diagrama de Secuencia Login de Usuario. .................................................. 44

Figura 3-8. Diagrama de Secuencia Olvido la Contraseña. ............................................ 45

Figura 3-9. Diagrama de Secuencia Crear Usuario. ....................................................... 45

Figura 3-10. Diagrama de Secuencia Modificar Usuario. .............................................. 46

Figura 3-11. Diagrama de Secuencia Activar Usuario. .................................................. 46

Figura 3-12. Diagrama de Secuencia Desactivar Usuario. ............................................. 47

Figura 3-13. Diagrama de Secuencia Crear Hacienda. ................................................... 47

xvi

Figura 3-14. Diagrama de Secuencia Modificar Hacienda............................................. 48

Figura 3-15. Diagrama de Secuencia Activar Hacienda................................................. 48

Figura 3-16. Diagrama de Secuencia Desactivar Hacienda. .......................................... 49

Figura 3-17. Diagrama de Secuencia Modificar Variable de Sistema. .......................... 49

Figura 3-18. Diagrama de Secuencia Crear Catálogo. ................................................... 50

Figura 3-19. Diagrama de Secuencia Modificar Catálogo General................................ 50

Figura 3-20. Diagrama de Secuencia Generación de Reporte. ....................................... 51

Figura 3-21. Diagrama de Clases, AbstracFacade. ......................................................... 52

Figura 3-22. Diagrama de Clases, Principales del Sistema. ........................................... 53

Figura 3-23. Diagrama Modelo de Datos: Modelo Relacional. ..................................... 55

Figura 3-24. Código Plantilla Estructura General del Sistema. ...................................... 57

Figura 3-25. Plantilla Web del Sistema. ......................................................................... 58

Figura 3-26. Diseño de Entidad CONFIGURACIÓN. ................................................... 58

Figura 3-27.Interfaz de Usuario para el Listado de variables del Sistema SICOGAN. . 69

Figura 3-28.Interfaz de Usuario para la Creación de una Nueva Variable del Sistema. 69

Figura 3-29. Login de Usuario Correcto. ....................................................................... 71

Figura 3-30. Login de Usuario Incorrecto. ..................................................................... 72

Figura 3-31. Ingreso al Sistema. ..................................................................................... 72

Figura 4-1. Requerimientos Funcionales para el Ambiente de Trabajo. ........................ 76

Figura I0-1. Login de Usuario, Postgresql 9.3.2.1 ....................................................... 109

Figura I0-2. Crear Nueva Base de Datos. ..................................................................... 109

Figura I0-3. Base de Datos, Propiedades Generales. .................................................... 110

Figura I0-4. Base de Datos, Propiedades Específicas. ................................................. 110

Figura I0-5. Restaurar Base de Datos. .......................................................................... 111

Figura I0-6. Restaurar Base de Datos. .......................................................................... 111

Figura I0-7. Estructura de la Base de Datos. ................................................................ 112

Figura I0-8. Glassfish, Iniciar Servicio. ....................................................................... 113

Figura I0-9. Glassfish, Inicio de Sesión. ...................................................................... 113

Figura I0-10. Creación de Pool de Conexión. .............................................................. 114

Figura I0-11. Propiedades de Pool de Conexión. ......................................................... 114

Figura I0-12. Propiedades de Pool de Conexión con la Base de Datos........................ 115

Figura I0-13. Verificar la Conexión con la Base de Datos. .......................................... 115

xvii

Figura I0-14. Comprobación de Conexión con la Base de Datos. ............................... 116

Figura I0-15. Creación de JDBC Resources. ................................................................ 116

Figura I0-16. Propiedades de JDBC Resources. .......................................................... 116

Figura I0-17. Deploy, aplicativo SICOGAN, primera parte. ....................................... 117

Figura I0-18. Deploy, aplicativo SICOGAN, segunda parte. ....................................... 117

Figura I0-19. Url de Acceso al Sistema. ....................................................................... 118

Figura I0-20. Login de Usuario. ................................................................................... 118

xviii

RESUMEN

TEMA: DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Autor: Natalí Elizabeth Lascano Robalino

Tutor: Ing. Milton Giovanny Moncayo Unda

El presente trabajo de investigación expone la propuesta de desarrollar un Sistema de

Control Veterinario de Registros de Bovinos Enfocados en la Diferencia Esperada entre

Progenies (DEPS) para la Fundación a Favor de la Vida, el cual está centrado en

automatizar dicho proceso, logrando así que los actores involucrados en dichos procesos

tengan una herramienta que sea flexible, apegado a estándares de calidad de software,

parametrizable a cambios que se presenten en el futuro y principalmente que sea segura,

puesto que la aplicación gestiona datos que son de vital importancia y constituyen el core

del negocio para la fundación.

La aplicación esta implementada bajo la arquitectura JEE7 y sus estándares, JSF, JPA,

EJB, esto bajo una interfaz web, sobre un servidor de aplicaciones Glassfish (V. 4.1), y

en base a las buenas prácticas sugeridas por el Instituto de Gestión de Proyectos (PMI),

publicadas en su Guía de los Fundamentos para la Dirección de Proyectos o guía del

PMBOK®. Además, para el proceso de desarrollo de la aplicación se hace uso de Extreme

Programing (XP) como metodología de desarrollo de software.

PALABRAS CLAVES: PROYECTOS DE DESARROLLO DE SOFTWARE /

GESTIÓN DE PROYECTOS DE SOFTWARE / PMBOK / METODOLOGÍA XP / JEE

/ POSTGRES.

xix

ABSTRACT

TOPIC: “DEVELOPMENT OF A SYSTEM FOR VETERINARY CONTROL OF

BOVINES RECORD FOCUSED ON THE EXPECTED DIFFERENCE

BETWEEN PROGENIES (DEPS) FOR THE “FUNDACIÓN A FAVOR DE LA

VIDA”.

Author: Natalí Elizabeth Lascano Robalino

Tutor: Ing. Milton Giovanny Moncayo Unda

The present research work exposes the proposal to develop a System for Veterinary Control of

Bovines Record Focused on the Expected Difference between Progenies (DEPS) for the

“Fundación a Favor de la Vida”, which is based on automating that process, so achieving that the

actors involved in said processes have a tool that is flexible, following software quality standards,

adjustable to changes that may occur in the future and mainly safety, because the application

manages data of vital importance and constitutes the main economic resource for the foundation.

The application is implemented under the JEE7 architecture and standards: JSF, JPA, EJB under

a web interface on a server of applications Glassfish (V. 4.1), and based on best practices

suggested by the Institute of Projects Management (PMI), published in its Fundaments Guide for

Projects Management or PMBOK® guide. In addition, for the development applications process

it makes use of Extreme Programing (XP) as methodology of software development.

KEYWORDS: SOFTWARE DEVELOPMENT PROJECTS / SOFTWARE PROJECTS

MANAGEMENT / PMBOK / METHODOLOGY XP / JEE / POSTGRES.

1

INTRODUCCIÓN

En la actualidad, los procesos de registro de información, es una necesidad ineludible,

por lo cual es necesario gestionarlos con herramientas informáticas que automaticen,

validen y controlen los datos que serán ingresados, facilitando así la tarea a los

involucrados que intervienen en esta tarea.

De esta forma, el desarrollo de este proyecto integrador está enfocado en solucionar el

problema de la Fundación a Favor de la Vida, ya que no existe un mecanismo para que

se controle el manejo de la información sobre la genética de los bovinos, la misma que

permite obtener la Diferencia Esperada entre Progenies (DEPS). La información sobre

el proceso mencionado anteriormente, será recolectada a través de una herramienta

tecnológica, permitiendo así el normal flujo de información entre el ganadero y la

Fundación, sin que exista un intermediario para realizar este proceso, consiguiendo con

esto que la información esté disponible a cualquier instante en la que sea requerida.

Para el desarrollo de la aplicación se utiliza herramientas de código libre, puesto que esto

es un requerimiento planteado por la República del Ecuador para todas las instituciones

de carácter público, además la herramienta a desarrollar utilizara estándares probados en

el proceso de desarrollo de software, los cuales permitirán que la aplicación sea posible

de mantener en el futuro.

Además de lo citado anteriormente la aplicación mostrará una gran variedad de reportes

los cuales podrán ser fácilmente visualizados en diferentes formatos.

2

1 ANÁLISIS DEL PROBLEMA

1.1 Antecedentes.

La mayor parte de instituciones están implementando sistemas informáticos, los cuales

permiten tener un control del registro de información de los diferentes procesos que se

llevan a cabo dentro de estas.

En la actualidad las aplicaciones son desarrolladas en ambiente web, ya que entre las

demandas que impone la sociedad, se establece que los usuarios puedan tener accesos a

la información desde cualquier lugar donde se encuentren, razón por la cual, el desarrollo

de la aplicación se debe sustentar en un diseño con una arquitectura robusta que permita

trabajar a modo Intranet o Extranet, y que permita a varios usuarios interactuar con la

aplicación al mismo tiempo.

La Fundación a Favor de la Vida, tiene la necesidad de automatizar sus procesos de

control veterinario de registro de bovinos enfocados en la diferencia esperada entre

progenies (DEPS), ya que los procesos aún se los realiza de forma manual, registrando

en libros y carpetas físicas o en ocasiones utilizando utilitarios básicos como Excel, por

lo que su mantenimiento se hace tedioso, derivando a que el usuario ocupe mucho de su

tiempo para cumplir con los requerimientos solicitados por los clientes de la institución.

Así también la Fundación, por como gestiona este proceso, presenta duplicidad de

información de los registros de bovinos, lo que se pretende solventar con el desarrollo de

la aplicación. Así también, en la actualidad, el tiempo que le toma a un usuario responder

a una petición de información es demasiado extenso dado la complejidad de la solicitud,

por esta razón se pretende que con la implementación del sistema se mejore la eficiencia

y eficacia en cuanto a la disponibilidad de la información, apoyando al proceso de la toma

de decisiones por parte de las autoridades.

3

1.2 Planteamiento del problema.

En la actualidad, la mayoría de las empresas están implementando soluciones

informáticas a nivel de automatización de procesos, dado las exigencias que la sociedad

impone en lo referente a las tecnologías de información. La falta de automatización de

procesos permite que los tiempos de respuesta se extiendan, causando malestar en los

clientes y deteniendo el desarrollo de la empresa. Por lo anteriormente expuesto, es

necesario que la Fundación a Favor de la Vida profundice en una propuesta de un sistema

de control de registro de bovinos.

1.3 Formulación del Problema.

La Fundación a Favor de la Vida en la actualidad realiza algunos de sus procesos de

control veterinario para bovinos de forma manual y otros los gestiona en utilitarios

básicos como Excel, debido a que la información que interviene en dichos procesos se

encuentra separada en distintos medios de almacenamiento, de los cuales la mayoría son

manualmente manejados, esto constituye una gran limitante para el funcionamiento

adecuado del proceso de control de registros de bovinos y sus procesos derivados.

Figura 1-1. Paso de datos de registros.

Fuente: Lascano N. año 2016.

Debido a que en la actualidad los requerimientos de las fundaciones cambian

continuamente y los sistemas deben ajustarse a dichos requerimientos, y si no lo hacen,

4

las Fundaciones se ven en la necesidad inherente de adquirir o desarrollar nuevamente el

sistema, éste debe ser completamente configurable y adaptable a los cambios de proceso

que sufra la fundación.

Figura 1-2. Diagrama de secuencia, transferencia de datos.

Fuente: Lascano N. año 2016.

Con el antecedente anteriormente señalado se ha visto la necesidad de diseñar y

desarrollar un sistema de control veterinario de registros de bovinos enfocados en la

diferencia esperada entre progenies.

Para cumplir con este propósito, se necesita considerar los siguientes aspectos.

Conocer los procesos que utiliza la institución para el registro y control de bovinos,

para brindar una herramienta que satisfaga plenamente los requerimientos planteados.

Los procesos que llevará a cabo el sistema, deben estar basados en el reglamento

general de la institución, para que así se adapten plenamente los procesos y los

usuarios no tengan que realizar cambios bruscos en los procesos del día a día.

Para el desarrollo del sistema se utilizara estándares de calidad en el desarrollo de

proyectos de software que permitirán que la aplicación sea escalable, fácil de

mantener y de utilizar.

5

1.3.1 Proceso de registro de bovinos:

El ganadero llena una planilla de nacimientos y destetes; en la cual se registra su

Registro Propio del bovino (RP), sexo, fecha de nacimiento, raza o variedad,

color, código de muerto, peso al nacer, datos de la madre y padre del bovino, fecha

de destete, peso del destete y observaciones.

Se procede a llenar los datos referentes a pesos, alturas, tipo de prepucio, tipo de

manejo de ser el caso, de los bovinos al ser destetados, así también cuando

cumplan la etapa de posdestete y también el año de vida.

Se procede a llenar la siguiente planilla de carniceros; en la cual se registra su RP

cría número de animal, sexo, fecha de nacimiento, raza o variedad, datos del

padre, datos de la madre, hacienda, condición de manejo.

Figura 1-3. Diagrama BPMN Registros de Bovinos.

Fuente: Lascano N. año 2016.

1.3.2 Proceso de solicitud de reporte de bovinos.

El empleado solicita al encargado de la fundación que se le remita la información

referente a un bovino en particular, para esto el usuario encargado debe entregar

un documento en el cual se debe especificar el RP de la cría, fecha de nacimiento,

peso.

6

Si el director de la fundación autoriza que se remita al empleado el reporte

solicitado, se debe informarle a este que su petición fue autorizada y se procede a

enviar una solicitud al área de control veterinario para que ejecuten el reporte en

el sistema.

El área de control veterinario obtiene el reporte del sistema y remite el documento

detallando datos como: RP cría número de animal, sexo, fecha de nacimiento, raza

o variedad, color, código de muerto, pero al nacer, RP padre, RP madre, fecha de

nacimiento de la madre, fecha de nacimiento del padre, fecha de nacimiento de la

receptora, Fecha de destete, peso del destete, manejo, observaciones.

Figura 1-4. Diagrama BPMN Solicitud de Reporte de Bovinos.

Fuente: Lascano N. año 2016.

Con el desarrollo de la aplicación se pretende automatizar los procesos que se detallaron

anteriormente; y también mantener los datos que intervienen en el proceso de manera

centralizada, con el fin de que no exista duplicidad de la información y así lograr que la

información esté disponible cuando los usuarios lo requieran, obteniendo de esta forma

una mejor toma de decisiones por parte de las autoridades, las cuales apoyaran al

crecimiento institucional de los ganaderos.

7

En este contexto, es necesario recalcar que los procesos automatizados son factores de

vital importancia en toda institución y pueden hacer la diferencia entre el éxito o el fracaso

de la misma.

1.4 Objetivos.

1.4.1 Objetivo general.

Desarrollar un sistema que permita automatizar los procesos de control veterinario de

registro de bovinos enfocados en la diferencia esperada entre progenies para la Fundación

a Favor de la Vida, utilizando herramientas de código abierto, y una metodología de

desarrollo de software, que de los lineamientos a seguir para la culminación exitosa del

mismo.

1.4.2 Objetivos específicos.

Establecer los requerimientos técnicos, tecnológicos y de funcionamiento necesarios

para el desarrollo del sistema.

Determinar la metodología a implementar en el proceso de desarrollo del sistema,

cumpliendo con las respectivas fases que esta demande.

Mejorar los tiempos de respuesta en peticiones de información por parte de los

usuarios de la fundación.

Incrementar la satisfacción del cliente en un alto porcentaje de confiabilidad.

1.5 Alcance y Limitaciones.

El desarrollo del proyecto contempla:

Registro y gestión de la ficha de datos de los bovinos.

Registro de datos enfocado en la elaboración de las tablas DEPS (DIFERENCIA

ESPERADA ENTRE PROGENIES).

Administración de roles y usuarios en el sistema.

8

Administración de variables de sistema que permita gestionar de mejor manera el

funcionamiento de la aplicación.

Administración de catálogos necesarios para el correcto funcionamiento del sistema.

Generación de reporte consolidado de planillas de bovino, con opción de impresión,

exportable a PDF, XLSX.

Consulta de bovinos, empleando diferentes filtros. Los reportes se muestran directo a

la pantalla, con la opción de exportar a un archivo PDF, XLSX.

Reportes de la ficha de los bovinos en los cuales se presentarán todos los datos de

cada uno de ellos de forma general e individual, con la opción de exportar a un archivo

PDF, XLSX.

1.6 Justificación.

La Fundación a Favor de la Vida obtendrá información centralizada y en tiempo real sobre

la genética de los bovinos, fichas de nacimiento, fichas de destetes, fichas de post destetes,

fichas carniceras; lo cual beneficiará de manera oportuna en la toma de decisiones. Al

contar con información actualizada, la Fundación a Favor de la Vida podrá optimizar sus

procesos de registro y medición de pesos y alturas de los bovinos, permitiendo así

dinamizar su trabajo y controlar validaciones en los datos que son de suma importancia

para el registro de información.

Proveer a los ganaderos un aplicativo mediante el cual puedan realizar un requerimiento

de información sobre los bovinos desde el lugar en el que se encuentre.

Conservar la información necesaria de los bovinos para el estudio de la progenie que

realiza la fundación; el sistema permitirá visualizar reportes de acuerdo a la etapa de vida

en el que se encuentre el bovino.

Es ineludible que las instituciones usen aplicaciones que le ayuden a la automatización

de los procesos, consiguiendo así optimizar el tiempo de servicio a los usuarios de la

institución.

9

2 MARCO TEÓRICO.

2.1 Aspectos de la Fundación a Favor de la Vida (ITAP RURAL).

2.1.1 Fundación a Favor de la Vida (ITAP RURAL).

Desde hace 14 años la FUNDACIÓN A FAVOR DE LA VIDA, viene trabajando a favor

de los sectores más necesitados de nuestro país. Una de estas áreas es el sector rural,

donde generalmente los pequeños productores carecen de la aplicación de nuevas

tecnologías para mejorar y obtener réditos económicos favorables, que justifiquen el

trabajo y la inversión realizada en la producción agropecuaria, evitando de esta manera

que el pequeño productor abandone sus tierras y emigre a las ciudades o al exterior

ocasionando un problema de carácter social.

ITAP RURAL, es investigación, capacitación y difusión de los adelantos tecnológicos,

con el propósito de fortalecer el trabajo realizado de forma tradicional por el pequeño

productor reduciendo los márgenes de pobreza a nivel de zonas rurales.

Investigación que nos permita innovar, adaptar y aplicar a nuestro medio ambiente de

forma sectorizada y económica nuevas tecnologías. (Balladares, 2015).

Misión.

Nuestra Misión es investigar, informar, difundir y capacitar sobre la ciencia y la

tecnología en el sector agropecuario a nivel nacional, así como su aplicación e

implementación dentro de un margen seguro de tolerancia para el medio ambiente.

(Balladares, 2015).

Visión.

Innovar en ciencia y tecnología en el área agropecuaria y aplicar dichas investigaciones

según las necesidades sectorizadas del país. (Balladares, 2015).

Valores.

Respeto, flexibilidad, solidaridad humana, responsabilidad ambiental, profesionalismo.

10

Lealtad, responsabilidad, honestidad, puntualidad.

Sinergia, proactividad, eficiencia, compromiso y flexibilidad.

Creemos en Dios. (Balladares, 2015).

2.1.2 DEPS.

Un DEPS (Diferencia Esperada entre Progenies) Nos indica cómo será el comportamiento

general de las crías del toro elegido en comparación con las de los otros toros listados en

la misma Evaluación Genética a Nivel Nacional para cada una de las características de

producción analizadas ( facilidad al parto, peso al nacer, al destete, área de ojo de bife,

etc.) (Bavera G. , 2011).

2.1.3 Bovinos.

El ganado bovino es aquel tipo de ganado que está representado por un conjunto de vacas,

bueyes y toros que son domesticados por el ser humano para su aprovechamiento y

producción; es decir sirven para satisfacer ciertas necesidades del hombre bien sea

alimenticias o económicas. (FORO ARGENTINO DE GENETICA BOVINA, 2010).

2.1.4 Destete.

El destete (o desmamante) es una operación a la que no se da la importancia que tiene. El

hecho de separar los terneros de sus madres es considerada una práctica más de manejo

rutinario, que se cumple en cada campo todos los años más o menos para la misma fecha,

haciéndose en función del ternero solamente y no de la vaca. (Bavera G. A., 2008).

2.1.5 Peso al Nacer.

En general, los pesos al nacer y los porcentajes de asistencia se incrementan con el

potencial de crecimiento y con el tamaño adulto de la raza paterna. Los efectos maternos

no manifiestan un comportamiento definido, a excepción de los vientres con sangre

cebuina, ya que a medida que aumenta el porcentaje de sangre índica de las hembras, el

peso al nacer y los problemas de parto disminuyen. (Bavera G. , 2011).

11

2.1.6 Pedigrí.

Es la genealogía de un animal y también el documento en que consta dicha genealogía,

pudiéndose deducir de ella él comporta-miento productivo de sus antepasados. Concentra

la genealogía completa de un animal debidamente registrado en los HB. (Bavera G. ,

2011).

2.1.7 Progenie.

Es el resultado de la reproducción, es decir, el individuo o individuos producidos

mediante la intervención de uno o más parentales. Por ejemplo, la progenie de los

humanos, obtenida mediante reproducción sexual, son los niños; en cambio, para una

bacteria que sufra fisión binaria, la progenie son las dos células hijas resultantes.

2.1.8 Circunferencia Escrotal (CE).

El tamaño testicular o la cantidad de tejido que produce esperma se estima a través del

uso de la medición de la CE. (Bavera G. , 2011).

2.1.9 Registro Propio (RP).

El RP es el código de identificación de cada animal, es único para cada uno en el

establecimiento.

2.2 Aspectos Informáticos.

2.2.1 Sistema Informático.

Es un conjunto de partes relacionadas, hardware, software y de recurso humano mediante

el cual permite almacenar y procesar información. El hardware contiene dispositivos

electrónicos inteligentes. El software contiene al sistema operativo, firmware y

aplicaciones, siendo significativo los sistemas de gestión de bases de datos. El soporte

humano contiene al personal técnico que crean y mantienen el sistema. (Calvopiña,

2012).

12

2.2.2 Entorno de Desarrollo Integrado “IDE”.

Un IDE es una aplicación informática que facilita servicios integrales para facilitarle al

desarrollador o programador el desarrollo de software; consiste en un editor de código,

un compilador, un depurador y un constructor de interfaz gráfica (GUI).

Los IDE suministran un ambiente de trabajo amigable y emprendedor para la mayoría de

los lenguajes de programación. (BELL & PARR, 2003).

Benchmarking, Entornos de Desarrollo Integrado (Netbeans 8.0.2 vs Eclipse Helios

vs Jdeveloper 11).

La calificación se valora como “”, “”, y “” a cada una de las características de los

medios de desarrollo integrado, siendo = Cumplimiento satisfactorio, =

Cumplimiento no satisfactorio y = Cumplimiento parcial.

Tabla 2-1. Benchmarking, Entornos de Desarrollo Integrado (Netbeans 8.0.2 vs

Eclipse Helios vs Jdeveloper 11).

Fuente: Lascano N. año 2016.

Por las prestaciones ofrecidas, Netbeans 8.0.2 será el IDE usado para elaborar el proyecto

integrador.

2.2.3 Framework.

En el desarrollo de software, un framework, es una organización conceptual y tecnológica

CARACTERÍSTICAS ENTORNO DE DESARROLLO INTEGRADO

Netbeans 8.0.2 Eclipse Helios Jdeveloper 11

Estabilidad

Soporte multiplataforma

Soporte de servidores de aplicaciones

Compatibilidad con servidores

Plugins disponibles

Soporte de frameworks

Soporte de SGBD

Consumo de Recursos

Generación de código

13

de soporte definido, regularmente con módulos de software precisos, que puede servir de

plataforma para la organización y desarrollo de software. Puede contener soporte de

programas, entre otras herramientas, para así ayudar a desarrollar y acoplar los diferentes

componentes de un proyecto. (Struts 2, 2010).

2.2.4 Java Server Faces – JSF.

Es un framework, consignado a facilitar la construcción y desarrollo de interfaces para

aplicaciones basadas en entornos web, que facilita el desarrollo de interfaces de usuario

en aplicaciones Java EE. JSF usa Java Server Pages (JSP) como la tecnología que admite

hacer el despliegue de las páginas, también se puede adecuar a otras tecnologías como

XUL (acrónimo de XML-based User-interface Language, lenguaje basado en XML para

la interfaz de usuario). (Java Server Faces, 2009).

2.2.5 Patrón MVC.

Figura 2-1. Patrón MVC.

Fuente: http://www.monografias.com/trabajos89/poo-y-mvc-php/poo-y-mvc-php2.shtml.

El Modelo Vista Controlador es un patrón de arquitectura de software encargado de

apartar la lógica de negocios de la interfaz usuario y es el más utilizando de las

aplicaciones Web, ya que facilita la funcionalidad, mantenibilidad y escalabilidad del

14

sistema. Las aplicaciones Web están organizadas por una arquitectura de tres capas, las

cuales son: Modelo, Vista, Controlador. Uno de los esquemas y, con toda seguridad, el

más manipulado por los desarrolladores que utilizan JEE7, es la arquitectura Modelo

Vista Controlador (MVC), la cual facilita una clara separación entre las diferentes

responsabilidades de la aplicación. (BAHIT, s.f.)

Descripción de Capas.

Controlador.

Reacciona a la petición del Cliente, ejecutando la acción y creando el modelo oportuno,

se consigue mostrar que el controlador es el que rige la aplicación. Las peticiones a la

capa intermedia que se realicen desde el cliente son dirigidas al controlador, cuya misión

es fijar las tareas a ejecutar para cada una de estas peticiones e invocar al resto de los

componentes de la aplicación. (BAHIT, s.f.)

Vista.

Es la presentación del modelo, mediante la cual se puede acceder a los datos; así también

la vista puede notificar cuando hay un cambio de estado en el modelo. Es la encargada de

crear las respuestas (XHTML) que corresponden ser enviadas al cliente. Cuando esta

respuesta tiene que incluir datos proporcionados por el Controlador, el código XHTML

no será fijo, es decir que deberá ser creado de forma dinámica, la implementación correrá

a cargo de una página JSP. (BAHIT, s.f.)

Modelo.

Contiene el núcleo de la funcionalidad de la aplicación, encapsula la fase de la aplicación,

es independiente del Vista y el Controlador. En la arquitectura MVC la lógica de negocio

de la aplicación, conteniendo el acceso a los datos y su manipulación, está encapsulada

dentro del modelo.

En una aplicación JEE7 el modelo puede ser implementado mediante clases estándar Java

o través de Enterprise JavaBeans. (BAHIT, s.f.)

15

2.2.6 Sistema de Gestor de Base de Datos.

Un Sistema de Gestión de Bases de Datos (SGBD Data Base Management System) es un

conjunto de programas que admiten el almacenamiento, modificación y extracción de la

información en una base de datos, también de facilitar herramientas para añadir, borrar,

modificar y analizar los datos. Los usuarios pueden acceder a la información utilizando

herramientas específicas de interrogación y de generación de informes. El SGBD

relacional es un modelo de datos que proporciona a los usuarios los datos que serán

almacenados en la base de datos juntos con un grupo de operaciones para manejar los

datos. Los SGBD también proporcionan métodos para mantener la integridad de los datos,

para administrar el acceso de usuarios a los datos y recuperar la información si el sistema

se corrompe.

Benchmarking, Sistemas Gestores de Base de Datos (MySQL 5.1 vs PostgreSQL

9.3.2.1).

La calificación se valora como “”, “”, y “” a cada una de las características de los

motores de base de datos, siendo = Cumplimiento satisfactorio, = Cumplimiento no

satisfactorio y = Cumplimiento parcial.

Tabla 2-2. Cuadro Comparativo – Motor de Base de Datos.

CARACTERÍSTICAS BASE DE DATOS

MySQL 5.1 PostgreSQL 9.3.2.1

Soporte multiplataforma

Open Source

Soporte para procedimientos y funciones

Varios tipos de datos

Interface de administración

Soporte técnico

Soporta transacciones

Comprobaciones de integridad referencial

Fuente: Lascano N. año 2016.

Una vez analizadas las características técnicas entre los motores de base de datos, se

puede decir que PostgreSQL 9.3.2.1 será el Motor de base de datos que será usada para

16

el proyecto integrador.

2.2.7 Servidor de Aplicaciones.

Figura 2-2. Servidor de Aplicaciones.

Fuente: http://es.slideshare.net/difagram/desarrollo-de-aplicaciones-web-ii-sesin-08-sesiones-y-

cookies

Un Servidor de aplicaciones proporciona la lógica de negocio sobre la que se puede

construir aplicaciones es un intermediario entre las peticiones/respuestas web desde y

hacia un cliente y las prestaciones a las que el usuario quiere acceder como son:

Procesamiento, memoria temporal, storage, conexiones, log de transacciones, etc.

Las principales ventajas de la tecnología de los servidores de aplicación son la

centralización y la disminución de la complejidad del desarrollo de aplicaciones, dado

que las aplicaciones no necesitan ser programadas en su lugar, estas son ensambladas

desde bloques suministrados por el servidor de aplicación. (GRANADOS, 2009) .

Benchamarking, servidores de aplicación (Jboss 6.0 vs Glassfish 4.1 WebSphere

8.0).

El Benchmarking es efectuado sobre los tres servidores de aplicaciones que se manejan

para desarrollar aplicaciones empresariales.

La calificación se valora como “”, “”, y “” a cada una de las características de los

servidores de aplicaciones, siendo = Cumplimiento satisfactorio, = Cumplimiento no

satisfactorio y = Cumplimiento parcial.

17

Tabla 2-3. Cuadro Comparativo – Servidor de Aplicaciones.

CARACTERÍSTICAS SERVIDORES DE APLICACIONES

Glassfish

4.1

JBoss EAP

6.0

WebSphere

8.0

Dirección remota

Soparte multiplataforma

Open source - Licenciamiento/Suscripción

Capacidad EJB 3.0

Soporta JEE7

Soporta JSF 2.0

Compatible a Netbeans 8.0.2

Facilidad para la administración del servidor

Fácil instalación

Soporte para múltiples motores de base de

datos

Fuente: Lascano N. año 2016.

Una vez estudiadas las características técnicas entre los tres servidores, observamos que

Glassfish 4.1 posee una ligera ventaja sobre JBoss 6.0 en cuestiones relacionadas con la

instalación y la administración, que al momento de un fallo en el servidor terminan

definiendo los tiempos de recuperación de la plataforma; así también los tres servidores

poseen características similares, tanto por sus capacidades de trabajar con JEE7, EJB 3.0

y JSF 2.0, pero por lo expuesto anteriormente se ha escogido a Glassfish como el servidor

de aplicaciones que será utilizado en el presente proyecto integrador.

2.2.8 Plataforma de desarrollo.

Se describe la plataforma que se ha utilizado en el desarrollo del presente trabajo, además

los patrones de diseño utilizados para llegar al objetivo mencionado anteriormente.

Arquitectura JEE7.

El objetivo principal de la plataforma Java EE 7 es facilitar el desarrollo proporcionando

una base en común para los varios tipos de componentes de la plataforma Java EE, los

18

beneficiados serán los desarrolladores de progresos en su productividad con más

ampliaciones y menos configuración XML, más Plain Old Java Objects (POJOs) y

empaquetado simplificado. (CABALLEROS, 2014)

La plataforma Java EE 7 tiene las siguientes características:

Perfiles: La configuración de la plataforma Java EE se adapta a distintos tipos de

aplicación.

Tecnologías nuevas:

API Java para servicios web RESTful (JAX-RS)

Gestión de Beans.

Contextos e inyección de dependencias para la plataforma Java EE (JSR 299),

conocida informalmente como CDI

Inyección de dependencias para Java (JSR 330)

Validación de Beans (JSR 303)

Interfaz de servicio proveedor de autenticación Java para contenedores (JASPIC)

Funcionalidad para servlets

Funcionalidades para componentes JavaServer Faces

Funcionalidades para componentes Enterprise JavaBeans (EJB)

Figura 2-3. Arquitectura JEE 7.

Fuente: http://www.slideshare.net/shekhargulati/modern-web-application-development-

with-java-ee-7.

19

2.2.9 Consideraciones Arquitecturales Etapas de la instalación.

Cabe recalcar que desde la capa de vista no debe haber la más mínima posibilidad de

acceder directamente a la lógica de negocio de las aplicaciones, por tal motivo la

arquitectura recomendada para separación de capas debería ser:

Figura 2-4. Separación de Capas en la Arquitectura JEE7.

Fuente: Fuente: Lascano N. año 2016.

Las páginas JSF se relacionan con el Controlador, el cual mediante inyección de

dependencia tiene un informe a la portada EJB, con el objetivo de que dicha portada

reserve la lógica de negocio formalizada con la tecnología EJB.

2.2.10 Herramientas certificadas.

Para el desarrollo del SISTEMA DE CONTROL VETERINARIO DE REGISTROS DE

BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA ENTRE PROGENIES

(DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA estará encaminado en

herramientas de código abierto, según el decreto 1014 de abril del 2008, con lo que el

software libre pasa a ser una política de Estado para ser adoptado por todas las entidades

públicas de la República del Ecuador, para el despliegue de la aplicación se hará uso del

sistema operativo Windows Server 2008 R2, esto debido a requerimientos de la

Fundación a Favor de la Vida, que es el auspiciante del presente proyecto.

PÁGINAS JSF

CONTROLADOREJB FACADE

EJB

20

Windows Server 2008 R2.

Figura 2-5. Logotipo Windows Server 2008 R2.

Fuente: http://www.descargarz.com/windows-server-2008-r2-todo-en-uno-64-bits-espanol-

booteable/

Es un sistema operativo de Microsoft diseñados para servidores. Server 2008 se basa en

núcleos Windows NT 6.0 Server Park 1.

Hay algunas discrepancias (útiles y otras no tanto) con respecto a la arquitectura del

Windows Server 2008, que pueden cambiar drásticamente la manera en que se usa este

sistema operativo, le ayuda a alcanzar nuevos niveles de confiabilidad y rendimiento con:

Herramientas de virtualización.

Recursos Web

Mejoras de administración.

Integración con Windows 7 (FUENTES, 2014)

El Sistema Operativo Windows Server 2008 R2 está disponible para la descarga en:

http://www.descargarz.com/windows-server-2008-r2-todo-en-uno-64-bits-espanol-

booteable/#sthash.ANImiavu.dpuf

JAVA EE.

Figura 2-6. Logotipo Java.

Fuente: http://www.descargarz.com/windows-server-2008-r2-todo-en-uno-64-bits-espanol-

booteable/

Es un lenguaje de programación orientada a objetos, es muy amplia. El lenguaje Java fue

creado con cinco objetivos principales los cuales se describe a continuación:

Debería usar el paradigma de la programación orientada a objetos.

21

Debería permitir la ejecución de un mismo programa en múltiples sistemas

operativos.

Debería incluir por defecto soporte para trabajo en red.

Debería diseñarse para ejecutar código en sistemas remotos de forma segura.

Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como

C++. (Oracle Corporation, 2015).

El jdk 1.8.0_51 está disponible para la descarga en:

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-

2177648.html#jdk-8u51-oth-JPR

Servidor de aplicaciones Glassfish 4.1

Figura 2-7. Logotipo Glassfish 4.1.

Fuente: http://www.payara.fish/glassfish-411-is-here

Es un servidor de aplicaciones de software libre. La ejecución estándar de todo el stack

(conjunto) de descripciones concretos por la organización JCP (Java Comunity Process),

la cual concreta cada uno de los aspectos que darán forma a cada especificación parte de

la plataforma Empresarial Java como: JMS, JTA, JAX-WS, etc. (EcuRed, 2016).

Figura 2-8. Servidor de aplicaciones Glassfish.

Fuente: http://stackoverflow.com/questions/9954576/services-provided-by-the-different-java-

ee-containers

Las características de Glassfish en su versión 4.1 hacen excelente para la publicación de

la aplicación que se está desarrollando en el presente proyecto integrador.

El servidor de aplicaciones Glassfish 4.1 está disponible para la descarga en:

https://glassfish.java.net/download.html

22

Netbeans 8.0.2.

Figura 2-9. Logotipo NetBeans.

Fuente: http://www.fileayan.com/wp-content/uploads/2015/06/netbeans.png

Es un entorno de desarrollo integrado libre creado concretamente para el lenguaje Java,

es una herramienta para que los programadores puedan escribir, compilar, depurar y

ejecutar programas.

La plataforma Netbeans permite que las aplicaciones puedan ser desarrolladas en

módulos, es decir los módulos son archivo Java que oprime clases java escritas para

interactuar con las APIs de Netbeans y un archivo especial (manifest file) que lo identifica

como módulo. (Calendamaia, 2014).

El soporte para trabajar con Frameworks de desarrollo hace que Netbeans 8.0.2 sea el

IDE de desarrollo seleccionado para el desarrollo del presente proyecto integrador.

Está disponible para la descarga en:

https://netbeans.org/downloads/

Sistema Gestor de Base de Datos PostgreSQL 9.3.2.1

Figura 2-10. Logotipo PostgreSQL.

Fuente: http://logonoid.com/postgresql-logo/

PosgreSQL es un Sistema de Gestión d Base de Datos relacional orientado a objetos y

libre, el desarrollo de PostgreSQL no es manipulado por una empresa, cabe recalcar que

es dirigido por una comunidad de desarrolladores que trabajan de forma liberal.

(kinfantas, 2016).

A continuación listamos las características de PostgreSQL.

Estabilidad

Robustez

Facilidad de administración e

implementación de estándares

23

Acceso encriptado vía SSL Multiplataforma

El Sistema Gestor de Base de Datos que se utilizara en el Proyecto integrador es

PostgreSql 9.3.2.1 está disponible para la descarga en:

http://get.enterprisedb.com/postgresql/postgresql-9.3.2-1-linux.run

iReport 5.1.

Figura 2-11. Logotipo iReport.

Fuente: https://nedemi.wordpress.com/arquitectura/

La herramienta iReport es un constructor, diseñador, poderoso, gratuito y fácil de usar,

es de código abierto para Jasper Reports. Los datos para fijar pueden ser recobrados a

través de JDBC, Table Models, JavaBeans, XML, Hibernate, CSV, etc.

A continuación presenta algunas características de iReport:

100% escrito en JAVA y además OPENSOURCE y gratuito.

Maneja el 98% de las etiquetas de Jasper Reports

Admite diseñar con sus propias herramientas.

Browser de la estructura del documento.

Soporta JDBC.

Soporta JavaBeans como orígenes de datos.

Tiene asistentes para generar los subreportes

Facilidad de instalación.

Entorno de diseño visual

Soporte de fuentes de datos relacionales, no relacionales y personalizados. Los

subinformes permiten desglosar los datos y reutilizar los informes.

Una vez estudiado el iReport 5.1 se determina que será el diseñador de informes escogida

para el desarrollo del presente proyecto integrador.

A continuación el link de descarga del diseñador de reportaría Ireport 5.1:

http://hivelocity.dl.sourceforge.net/project/ireport/iReport/iReport-5.1.0/iReport-

5.1.0.tar.gz

24

3 METODOLOGÍA.

La metodología de desarrollo es una recopilación de documentación formal pertinente a

los procesos, las políticas y los procedimientos que intervienen en el desarrollo del

software es un cuadro de trabajo usada para estructurar, planificar y controlar el proceso

de desarrollo.

3.1 Metodología Ágiles.

En el "Manifiesto ágil" se definen los cuatro valores por las que se deberían guiar las

metodologías ágiles.

En esta metodología se valora.

• Al individuo y sus interacciones más que al proceso y las herramientas.

• Desarrollar software que funciona, más que obtener una buena documentación.

• La colaboración con el cliente más que la negociación de un contrato.

• Responder a los cambios más que seguir una planificación. (Fernández)

3.2 Comparación de Metodologías Ágiles vs Metodologías Tradicionales.

Para que el desarrollo de software sea exitoso, se requiere de diversos elementos

agrupados que ayuden a obtener este objetivo que no solo afectan el proceso en sí, sino

también el contexto del equipo de trabajo y su organización.

Por ello existen varias consideraciones que debe analizar antes de seleccionar una

metodología con la finalidad de obtener mayor beneficio de su aplicación y no convertirlo

en un riesgo o impedimento para el avance en el desarrollo del proyecto.

25

Tabla 3-1. Cuadro Comparativo de Metodología Ágil Vs Metodología Tradicional.

Metodologías Ágiles Metodologías Tradicionales

El Cliente forma parte del equipo de

desarrollo.

El Cliente interactúa con el equipo desarrollo

mediante reuniones. Contrato sumamente flexible. Contrato precisado.

Los grupos de trabajo son menor a 10

personas y en el mismo sitio.

Los Grupos son mayores a 10 personas y

trabajan en varios sitios. La arquitectura tiene menos énfasis. La arquitectura es fundamental.

Roles específicos. Roles diversos.

Los Módulos son Funcionales. Las Soluciones son Completas.

Experimentación, mejora y reprioriza Planificación cerrada

Usan Artefactos mínimos. Usan Diversidad de artefactos.

Cortas iteraciones Desarrollo lineal

Interacción continua Especificaciones iniciales

No se opone a cambios. Se resistirse al cambio.

Fuente: Lascano N. año 2016.

3.2.1 Benchmarking, Metodologías de Desarrollo (XP vs SCRUM vs ADAPTIVE

SOFTWARE DEVELOMENT).

La calificación se valora como “”, “”, y “” a cada una de las características de los

medios de desarrollo integrado, siendo = Cumplimiento satisfactorio, =

Cumplimiento no satisfactorio y = Cumplimiento parcial.

Tabla 3-2. Benchmarking, Metodología de Desarrollo (XP vs SCRUM vs ADAPTIVE

SOFTWARE DEVELOMENT).

CARACTERÍSTICAS METODOLOGIAS DE DESAROLLO

XP SCRUM

ADAPTIVE SOFTWARE

DEVELOMENT

Aplicable a entornos de desarrollo agiles.

Entregables del proyecto al cliente en poco

tiempo.

Realización de reuniones periódicas mientras

dure el proyecto.

Se pueden realizar cambios en los entregables

hechos a los clientes.

Basado en iteraciones.

Se basa en la creación de producto.

Fuente: Lascano N. año 2016.

26

Una vez analizadas las características entre las metodologías de desarrollo, se puede decir

que XP será la Metodología de Desarrollo que será usada para el proyecto integrador.

3.3 Programación Extrema (XP)

Extreme Programming (XP) – Programación extrema.

XP es una metodología de desarrollo de la ingeniería de software es el más definido de

los procesos ágiles de desarrollo de software, la programación externa se diferencia de

las metodologías tradicionales especialmente en poner más énfasis en la adaptabilidad

que en la previsibilidad. La infraestructura flexible de desarrollo de software que facilita

prácticas recomendadas y probadas con una arquitectura configurable, definiendo

claramente:

Quién debe hacer, Qué hacer, Cuándo hacer y Cómo se lo debe hacer.

No existe un proceso de desarrollo de software universal, las características de este

proyecto integrador requieren que todo proceso sea parametrizable, por tanto, la

metodología a seguir en el actual proyecto integrador será la que propone XP.

XP se puede considerar la programación extrema como la admisión de las mejores

metodologías de desarrollo de acuerdo a lo que se intenta llevar a cabo con el proyecto, y

emplearlo de modo dinámico durante el ciclo de vida del software. Las herramientas

manipuladas en la elaboración de los diagramas UML que se muestra en el actual

proyecto integrador son: Sybase Power Designer 15 y Microsoft Visio 2010.

3.4 Objetivos de XP.

Satisfacción del Cliente.

Potenciar el trabajo en grupo.

Minimizar el riesgo actuando sobre

las variables del proyecto:

Costo

Tiempo

Calidad

Alcance

27

Figura 3-1. Ciclo de Vida XP.

Fuente: http://fi.ort.edu.uy/innovaportal/file/2021/1/metodologia_xp.pdf

El Ciclo de Vida de XP consiste en seis fases:

Exploración: Los clientes ejecutan las story cards que desean que estén para la

primera entrega.

Planificación: El objetivo de esta fase es fijar la prioridad de cada una de las

stories y se establece cual va a ser el contenido de la primer entrega.

Iteraciones por entregas: Contiene varias iteraciones del sistema antes de la

entrega del primer reléase. El calendario es dividido en un número iteraciones de

tal manera de que cada iteración tome de una a cuatro semanas de

implementación.

Producción: Requiere realizar mucho más chequeos y testing antes que el sistema

sea entregado al cliente.

Mantenimiento: Por lo general se necesita un esfuerzo extra de los

programadores para satisfacer los requerimientos del cliente.

Muerte: Se acerca una vez que el cliente no tiene ninguna story a ser

implementada.

28

3.5 Fases de XP.

El Proceso de desarrollo de software se divide en cuatro fases secuenciales, en cada

extremo de una fase se ejecuta una evaluación para determinar si se cumplió con los

objetivos e hitos de dicha fase, es por esto que en XP, cada fase produce una nueva

versión del producto.

A continuación las fases de la Metodología XP.

Fase de Planificación de Proyecto

Fase de Diseño

Fase de Codificación

Fase de Pruebas.

3.6 Fase de Planificación de Proyecto.

En esta fase lo primero que se debe hacer es una recopilación de todos los requerimientos

del proyecto, todo el detalle de esta etapa se encuentra en el ANEXO B, al igual que se

debe hacer una interacción con el usuario, y se debe planificar bien entre los

desarrolladores del proyecto que es lo que se espera para el proyecto para sí lograr los

objetivos finales, en el ANEXO C se encuentra el acta de constitución de proyecto con

lo cual se da inicio al mismo.

3.6.1 Recopilación de información.

La información ha sido recopilada en la Fundación a Favor de la Vida. Los sujetos

investigados fueron los funcionarios encargados de llevar a cabo el proceso de control de

registro de bovinos enfocados en la diferencia esperada entre progenies, tales como la

Directora, en cargada de llevar el proceso de mejoramiento de la genética de los bovinos.

El proceso mediante el cual se realizó el levantamiento de la información fue el de

observación de campo, simultáneamente con entrevistas continuas aplicadas al director

de la mencionada dirección encargado de llevar a cabo el proceso de control del

mejoramiento de la progenie de la Fundación a Favor de la Vida.

29

La información que se consiguió fue expresada en términos empresariales, ya que no

todos los empleados son especializados en sistemas de información y por ende se les

confunde el dialogar en términos técnicos sobre temas relacionados al desarrollo de

sistemas, es aquí donde se emplea UML para llegar a una visión y entendimiento del

problema a solucionarse por parte de los actores implicados en el proceso que será

implementado.

3.6.2 Actores o Roles que Intervienen en el Sistema.

Se identificó cuatro actores que intervendrán en el proceso de control de registros de

bovinos, cada uno de ellos participara en los diferentes casos de uso que el sistema

requiere, y esperando como salida de un resultado distinto, dichos actores son:

Súper Administrador.

Administrador.

Capataz.

Secretaria.

Actor Súper Administrador: Representa al delegado del mantenimiento de la

base de datos del sistema de Control de Registros. El trabajo del súper

administrador radica en crear, modificar, activar y desactivar de ser el caso,

usuarios, registros de variables del sistema y catálogos generales.

Actor Administrador: El trabajo del administrador radica en crear, modificar,

registros de los bovinos, algunas variables del sistema, catálogos generales.

Actor Capataz: Representa al encargado de crear, modificar registros de los

bovinos; así como también visualizar determinados reportes, mismos que debe

presentar a los empleados y ganaderos que pertenezcan a la institución si ellos lo

solicitan.

Actor Secretaria: Representa al encargado de visualizar reportes específicos;

esto con la finalidad de que vea cómo evoluciona la progenie de los bovinos.

3.6.3 Historia de los Usuarios.

Es una manera simple de describir una tarea concisa que aporta valor al usuario o al

negocio.

30

Tabla 3-3. Lista de Historia de Usuarios de la Aplicación.

Nª Nombre (Historia de Usuario)

1 Autenticar Usuario

2 Administrar Usuario

3 Administrar Sistema

4 Administrar Bovinos

5 Administrar Reportes

Fuente: Lascano N. año 2016.

3.6.4 Historia de Usuario 1. Autenticar Usuario.

Tabla 3-4. Autentificar Usuario.

Historia de Usuario

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Número de Historia :1 Título: Autenticar Usuario.

Usuario: Súper Administrador, Administrador, Capataz, Secretaria.

Fecha Inicio: 05/04/2016

Fecha Fin: 10/04/2016

Prioridad en Negocio: Alta

Riesgo en Desarrollo: Alta

Descripción de la Historia:

Anotaciones:

Fuente: Lascano N. año 2016.

Permite el acceso a la aplicación de un usuario registrado y con los permisos de

acuerdo a su Rol (Súper Administrador, Administrador, Capataz, Secretaria).

Mensaje de error si se ingresa un usuario o clave incorrecta.

31

3.6.5 Historia de Usuario 2. Administrar Usuario.

Tabla 3-5. Administrar Usuario.

Historia de Usuario

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Número de Historia :2 Título: Administrar Usuario.

Usuario: Súper Administrador, Administrador.

Modificación de Historia: 05/04/2016

Prioridad en Negocio: Alta

Riesgo en Desarrollo: Alta

Descripción de la historia:

Anotaciones:

Fuente: Lascano N. año 2016.

3.6.6 Historia de Usuario 3. Administrar Sistema.

Tabla 3-6. Administrar Sistema.

Historia de Usuario

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Número de Historia :3 Título: Administrar Sistema.

Usuario: Súper Administrador, Administrador.

Modificación de Historia: 05/04/2016

Prioridad en Negocio: Alta

Riesgo en Desarrollo: Alta

Permite la creación, modificación, activación y desactivación de cuentas de usuario

en el sistema. (Súper Administrador, Administrador, Capataz y Secretaria).

La información que se requiere para ingresar un nuevo usuario son:

Nombre, Apellido, cédula, Correo electrónico.

32

Descripción de la Historia:

Anotaciones:

Fuente: Lascano N. año 2016.

3.6.7 Historia de Usuario 4. Administrar Bovinos.

Tabla 3-7. Administrar Bovinos.

Historia de Usuario

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Número de historia :4 Título: Administrar Bovinos.

Usuario: Capataz.

Modificación de historia: 05/04/2016

Prioridad en Negocio: Alta

Riesgo en Desarrollo: Alta

Descripción de la historia:

Anotaciones:

Fuente: Lascano N. año 2016.

Permite registrar y modificar empresa, roles, catálogos generales del sistema;

adicionalmente permite modificar variables del sistema.

Los datos que se ingresen deben ser reales.

Permite registrar y modificar los datos relacionados a los movimientos que un bovino

puede tener durante su etapa de vida. Este va directamente ligado con la

Administración del sistema ya que en sus procesos ocupan los distintos catálogos

generales que están registrados en el sistema.

Hay que tener en cuenta que en los registros de los bovinos depende de la edad.

33

3.6.8 Historia de Usuario 5. Administrar Reportes.

Tabla 3-8. Administrar Reportes.

Historia de Usuario

DESARROLLO DE UN SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA.

Número de Historia :5 Título: Administrar Reportes.

Usuario: Súper Administrador, Administrador, Capataz y Secretaria.

Modificación de Historia: 05/04/2016

Prioridad en Negocio: Alta

Riesgo en Desarrollo: Alta

Descripción de la Historia:

Anotaciones:

Fuente: Lascano N. año 2016.

3.7 Fase de Diseño.

Diseños simples: La metodología X.P sugiere que hay que conseguir diseños simples y

sencillos, modelación del negocio de la Fundación a Favor de la Vida se obtiene los

casos de uso del negocio, diagramas de secuencia. Hay que procurar hacerlo todo lo

menos complicado posible para conseguir un diseño fácil, entendible e implementable

que a la larga costará menos tiempo y esfuerzo desarrollar. Se obtiene el Modelo de

Análisis/Diseño: Diagrama de Clases, Modelo de Datos: Modelo Relacional, Diccionario

de Datos en el ANEXO D.

Permite mostrar los datos, luego de que estos estén sometidos a procesos de cálculos,

al usuario final, esto con el objetivo de que el usuario pueda, en base a los datos

mostrados, tomar una decisión respecto algún tipo de proceso.

Hay que tener en cuenta que debe existir datos.

34

3.7.1 Funciones.

El SISTEMA DE CONTROL DE REGISTROS DE BOVINOS ENFOCADOS EN LA

DIFERENCIA ESPERADA ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A

FAVOR DE LA VIDA posee las siguientes funciones:

Administración.

Seguridades.

Control de bovinos.

Reportes.

3.7.2 Diagrama de Casos de Uso.

A continuación se detallan los casos de uso del sistema de control de registros de bovinos

enfocados en la diferencia esperada entre progenies (DEPS) para la Fundación a Favor de

la Vida, los cuales permitirán describir las funcionalidades del sistema.

a) Casos de Uso General.

Figura 3-2. Diagrama de Casos de Uso General.

Fuente: Lascano N. año 2016.

35

b) Casos de Uso para Súper Administrador.

Figura 3-3. Diagrama de Casos de Uso para Súper Administrador.

Fuente: Lascano N. año 2016.

c) Casos de Uso para Administrador.

Figura 3-4. Diagrama de Casos de Uso para Administrador.

Fuente: Lascano N. año 2016.

36

d) Casos de Uso para Capataz.

Figura 3-5. Diagrama de Casos de Uso para Capataz.

Fuente: Lascano N. año 2016.

e) Casos de Uso para Secretaria.

Figura 3-6. Diagrama de Casos de Uso para Secretaria.

Fuente: Lascano N. año 2016.

3.7.3 Descripción de Casos de Uso.

Ingresar al Sistema.

Tabla 3-9. Descripción de Caso de Uso Ingresar al Sistema.

Caso de uso: Ingresar al sistema,

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador, Secretaria, Capataz.

Descripción:

Admite ingresar al sistema, con la respectiva autentificación de nombre de usuario y

contraseña.

Precondiciones:

Ingresar correctamente a la dirección del sistema (URL).

Tiene que estar registrado el usuario en el sistema.

Tiene que autentificarse correctamente.

37

Flujo Normal:

El usuario ingresa a la dirección (URL) de la página web.

El usuario debe ingresar el username y el password que le corresponde.

El sistema adquiere la información del rol y muestra solo las opciones que

puede realizar el usuario en el sistema.

Pos condiciones:

Si el username y password introducidos son correctos y únicos, el usuario

ingresa a la página de index del sistema.

Si el username o el password son incorrectos, el sistema muestra un mensaje

en el que afirma que el usuario no existe.

Fuente: Lascano N. año 2016.

Cambiar de Contraseña.

Tabla 3-10. Descripción de Caso de Uso Cambiar de Contraseña.

Caso de uso: Cambiar de contraseña.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador, Secretaria, Capataz.

Descripción:

Consiente en realizar el cambio de contraseña para el usuario en el sistema.

Precondiciones:

Tiene que estar registrado el usuario en el sistema.

Tiene que estar legitimado el usuario en el sistema.

Flujo Normal:

1. El usuario debe ingresar a la dirección URL de cambio de contraseña del

sistema.

2. El usuario ingresa su contraseña antigua, así como también su nueva

contraseña con su respectiva confirmación.

3. El sistema comprueba si coincide la antigua contraseña ingresada con la que

se encuentra recopilada en la base de datos, y de la misma manera comprueba

si coinciden la nueva contraseña con su confirmación.

4. El sistema efectúa el cambio de contraseña.

Pos condiciones:

En seguida del cambio de contraseña el sistema debe reanudar al index del

sistema.

Si la antigua contraseña no coincide con la ingresada, el sistema envía un

mensaje de error.

Si la nueva contraseña no concuerda con su confirmación, el sistema envía un

mensaje de error.

Fuente: Lascano N. año 2016.

38

Generar Reportes.

Tabla 3-11. Descripción de Caso de Uso Generar Reportes.

Caso de uso: Generar de reportes

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador, Secretaria, Capataz.

Descripción:

Consiente en generar reportes al usuario bajo medidas de consulta, dependen del rol

que goce el usuario.

Precondiciones:

Tiene que estar registrado el usuario en el sistema.

El usuario debe estar autorizado en el sistema.

El rol que posee el usuario debe ser apropiado dentro del sistema.

Flujo Normal:

1. El usuario ingresa a la dirección URL que necesite generar el reporte.

2. El usuario debe ingresar las medidas obligatorias para la generación del

reporte, y si desea ingresa medidas no obligatorias.

3. El sistema genera el reporte requerido por el usuario.

Pos condiciones:

El sistema permanecerá en la misma página en la que se generó el reporte.

Si el usuario no integra los parámetros obligatorios, mostrara un mensaje de

error por cada parámetro no integrado.

Fuente: Lascano N. año 2016.

Visualizar Reportes.

Tabla 3-12. Descripción de Caso de Uso Visualizar Reportes.

Caso de uso: Visualizar reportes.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador, Secretaria, Capataz.

Descripción:

Permite visualizar los reportes en formato PDF y XLSX.

Precondiciones:

El usuario debe haber generado anticipadamente el reporte.

Flujo Normal:

1. El usuario escoge el formato en el que visualizara el reporte.

2. El usuario ejecuta la descarga del reporte.

3. El usuario visualiza la información del reporte.

39

Pos condiciones:

El sistema permanece en la misma página con los que generó el reporte.

Si el usuario genero el reporte con errores, el sistema envía un mensaje de

error.

Fuente: Lascano N. año 2016.

Visualizar de Registros de Bovinos.

Tabla 3-13. Descripción de Caso de Uso Visualizar de Registro de Bovinos.

Caso de uso: Visualizar de registros de bovinos

Fecha: 05-04-2016

Autores: Administrador, Secretaria, Capataz.

Descripción:

Consiente en visualizar los registros de los bovinos de la hacienda, se los realiza

atreves de parámetros de búsqueda.

Precondiciones:

El usuario tiene que estar autorizado el usuario en el sistema.

El usuario debe ostentar un rol conveniente en el sistema.

Flujo Normal:

1. El usuario ingresa a la dirección URL del sistema, el cual accede a realizar la

búsqueda de registros de los bovinos.

2. El usuario integra los parámetros obligatorios que son solicitados por el

sistema para ejecutar la búsqueda de registros de bovinos.

3. El usuario ingresa los parámetros no necesarios que pide el sistema si desea

afinar la búsqueda de registros.

4. El usuario da clic en el botón buscar para visualizar en pantalla los registros

de bovinos obtenidos de la búsqueda bajo los parámetros establecidos.

Pos condiciones:

El sistema permanecerá en la misma página que género la búsqueda para la

visualización del reporte de los bovinos y con los mismos parámetros que

ingreso.

Si el usuario realiza la búsqueda de registros de bovinos con errores, muestra

un mensaje de error del proceso realizado.

Fuente: Lascano N. año 2016.

40

Administrar de Variables del Sistema.

Tabla 3-14. Descripción de Caso de Uso Administrar de variables del Sistema.

Caso de uso: Administrar de variables del sistema

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador.

Descripción:

Admite modificar variables de configuración del sistema con el objetivo de

parametrizar el sistema.

Precondiciones:

Tiene que estar legitimado el usuario en el sistema.

Debe poseer un rol apropiado dentro del sistema.

Flujo Normal:

1. El usuario ingresa a la dirección URL de administración de las variables del

sistema, la misma que muestra una lista las variables del sistema que se

crearon, al final de cada registro tiene las operaciones de editar y ver.

2. Para editar, se debe seleccionar del listado de variables del sistema lo que desee

modificar, presiona clic en “editar” el cual enviará un mensaje de validación

para que se efectué la edición de registro, si acepta, muestra la pantalla en

donde puede ingresar los nuevos valores de la variable del sistema, luego de

esto debe presionar el botón modificar.

3. Para que el usuario visualice los valores de la variable del sistema, debe

presionar clic en “ver” se le presenta una pantalla en la cual se consigue

visualizar los valores de la variable.

4. El sistema verifica la información, modifica, y actualiza la lista de las variables

del sistema.

Pos condiciones:

Una vez finalizado el proceso de modificación del registro, se debe visualizar

los cambios que se efectuó re direccionándose a la página donde pueda

comprobar.

Una vez modificado los registros se tiene que actualizar la lista de registros de

variables del sistema.

Si el usuario modifica con errores los registros, envía mensajes de error del

proceso realizado.

Fuente: Lascano N. año 2016.

41

Administrar Haciendas.

Tabla 3-15. Descripción de Caso de Uso Administrar Haciendas.

Caso de uso: Administrar Haciendas.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador.

Descripción:

Admite crear, modificar, activar y desactivar haciendas que registra el sistema.

Precondiciones:

Tiene que estar legitimado el usuario en el sistema.

Debe poseer un rol apropiado dentro del sistema.

Flujo Normal:

1. El usuario ingresa a la dirección URL de administración de haciendas, en el

cual muestra la lista de todas las haciendas creadas en el final de cada registro

las operaciones de editar y ver, en la parte superior de la tabla se muestra un

enlace directo a la creación de un nuevo registro.

2. Para crear, presiona clic en “Crear” que se encuentra en la parte superior de la

pantalla de administración de haciendas, ingresa los datos de la hacienda.

3. Para editar, seleccione la hacienda el registro que desea modificar, presione

“editar” en el que muestra un mensaje de ratificación para la edición de

registro, si acepta muestra la pantalla en la que debe ingresar los nuevos

valores de la hacienda, a continuación presionar el botón modificar.

4. Para la activación, buscar la hacienda que desee, presione “activar” en la cual

enviara un mensaje si desea activar el registro, presione el botón aceptar con

lo que la hacienda se activa.

5. Para desactivar, buscar la hacienda deseada, presiona desactivar y envía un

mensaje si desea desactivar el registro, presione el botón aceptar con lo que la

hacienda se desactiva.

Flujo Alternativo:

1. Para la creación de una hacienda, cabe recalcar que se lo puede realizar

directamente desde el menú del sistema.

Pos condiciones:

Una vez finiquitado el proceso de creación de un nuevo registro, se debe

persistir en la misma página de creación de hacienda.

Una vez finiquitado el proceso de modificación de un registro, se debe re

direccionar a la página donde pueda verificar los cambios del registro.

Una vez finiquitado el proceso de la activación y desactivación de una

hacienda se debe persistir en la página en la que se realizó los procesos.

Si el usuario realiza ingresos, modificaciones y búsquedas de registros con

errores, envía un mensaje de error referente al proceso que haya realizado.

Fuente: Lascano N. año 2016.

42

Administrar Catálogos.

Tabla 3-16. Descripción de Caso de Uso Administrar Catálogos.

Caso de uso: Administrar catálogos.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador.

Descripción:

Accede modificar catálogos dentro del sistema.

Precondiciones:

Tiene que estar legitimado el usuario en el sistema.

Debe poseer un rol apropiado dentro del sistema.

Flujo Normal:

1. El usuario ingresa a la dirección de administración de catálogos, el cual

muestra una el lista de los catálogos creados, al final de cada registro las

opciones editar y ver, en la parte superior se muestra un enlace directo a la

creación de un nuevo registro.

2. Para crear, presiona clic en el enlace Crear que se encuentra en la parte superior

de la pantalla de administración de haciendas, ingresa los datos del catálogo.

3. Para modificar, seleccionar de la lista de catálogos el registro que desea

modificar, presione “editar” en el caso de aceptar envía un mensaje de

validación, muestra la pantalla en la cual debe ingresar los nuevos valores del

catálogo.

Flujo Alternativo:

1. La creación del catálogo se lo puede realizar directamente desde el menú del

sistema.

Pos condiciones:

Una vez finiquitado la creación de un registro, permanecerá en la misma

página de creación del catálogo.

Una vez finiquitado la modificación de un registro, acceder a la página donde

pueda apreciar los cambios realizados sobre el registro.

Si el usuario ingresa, modificaciones de registros con errores, envía un

mensaje de error referente al proceso realizado.

Fuente: Lascano N. año 2016.

43

Administrar Usuarios.

Tabla 3-17. Descripción de Caso de Uso Administrar Usuarios.

Caso de uso: Administrar usuarios.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador.

Descripción:

Admite crear, modificar, activar, desactivar y cambiar de contraseña a los usuarios del

sistema.

Precondiciones:

Tiene que estar legitimado el usuario en el sistema.

Debe poseer un rol apropiado dentro del sistema.

Flujo Normal:

1. El usuario ingresa a la dirección URL de administración de usuarios, el cual

presenta una lista de todos los usuarios existentes, cada registro tiene al final

las opciones editar y ver, en la parte superior muestra un enlace directo a la

creación de un nuevo registro.

2. Para crear, presione clic en el enlace Crear localizado en la parte superior,

ingrese los datos que desea ingresar y presiona el botón crear.

3. Para modificar, seleccione el listado de usuarios el registro que desea

modificar, presiona “editar” el cual envía un mensaje de confirmación, en el

caso de aceptar, muestra la pantalla en la que debe ingresar los nuevos valores

del usuario.

4. Para activar, buscar el usuario requerido, presione “activar” enviara un sistema

un mensaje si desea activar el registro, aceptar de esta manera el usuario es

activado.

5. Para desactivar, buscar el usuario requerido, presione “desactivar” enviara un

mensaje si desea desactivar el registro, presiona aceptar de esta manera se

desactiva el usuario.

6. Para el cambio de contraseña, elegir la opción Avanzadas-cambiar

contraseña, enviara un mensaje en la cual debe ingresar su contraseña actual

así como también la nueva contraseña con su confirmación, presione guardar.

7. El sistema verifica la información, agrega o modifica el registro deseado.

Flujo Alternativo:

1. Para crear un usuario se puede ejecutar directamente desde el menú del sistema

con el siguiente con el siguiente detalle:

SeguridadesUsuarios Crear.

Pos condiciones:

Al finiquitar la creación de un registro nuevo, se permanecerá en la misma

página que se creó al usuario.

Al finiquitar la modificación del registro, se debe re direccionar a una nueva

página en la cual se pueda visualizar los cambios realizados sobre el registro.

44

Al finalizar la activación y desactivación de una dependencia se debe

permanecer en la misma página en la que se realiza los mencionados procesos.

Tanto en la creación, modificación, activación y desactivación de registros se

debe actualizar la lista de registro de dependencias.

Si al realizar el cambio de contraseña, el usuario ingresa de manera incorrecta

la contraseña que posee actualmente, el sistema presenta un mensaje de error.

Si al realizar el cambio de contraseña, el usuario ingresa de manera incorrecta

la confirmación de la nueva contraseña, el sistema presenta un mensaje de

error.

Si el usuario realiza ingresos, modificaciones y búsquedas de registros con

errores, el sistema muestra mensajes de error alusivos al proceso realizado.

Fuente: Lascano N. año 2016.

3.7.4 Diagramas de Secuencia.

A continuación se detallan los diagramas de secuencia para los casos de uso descritos

anteriormente.

Módulo de Seguridad del Sistema.

a) Login.

Figura 3-7. Diagrama de Secuencia Login de Usuario.

Fuente: Lascano N. año 2016.

45

b) Olvido de Contraseña.

Figura 3-8. Diagrama de Secuencia Olvido la Contraseña.

Fuente: Lascano N. año 2016.

c) Crear Usuario.

Figura 3-9. Diagrama de Secuencia Crear Usuario.

Fuente: Lascano N. año 2016.

46

d) Modificar Usuario.

Figura 3-10. Diagrama de Secuencia Modificar Usuario.

Fuente: Lascano N. año 2016.

e) Activar Usuario.

Figura 3-11. Diagrama de Secuencia Activar Usuario.

Fuente: Lascano N. año 2016.

47

f) Desactivar Usuario.

Figura 3-12. Diagrama de Secuencia Desactivar Usuario.

Fuente: Lascano N. año 2016.

Módulo de Administración del Sistema.

a) Crear Hacienda.

Figura 3-13. Diagrama de Secuencia Crear Hacienda.

Fuente: Lascano N. año 2016.

48

b) Modificar Hacienda.

Figura 3-14. Diagrama de Secuencia Modificar Hacienda.

Fuente: Lascano N. año 2016.

c) Activar Hacienda.

Figura 3-15. Diagrama de Secuencia Activar Hacienda.

Fuente: Lascano N. año 2016.

49

d) Desactivar Hacienda.

Figura 3-16. Diagrama de Secuencia Desactivar Hacienda.

Fuente: Lascano N. año 2016.

e) Modificar Variable de Sistema.

Figura 3-17. Diagrama de Secuencia Modificar Variable de Sistema.

Fuente: Lascano N. año 2016.

50

f) Crear Catálogo General.

Figura 3-18. Diagrama de Secuencia Crear Catálogo.

Fuente: Lascano N. año 2016.

g) Modificar Catálogo General.

Figura 3-19. Diagrama de Secuencia Modificar Catálogo General.

Fuente: Lascano N. año 2016.

51

Módulo de Reportes.

a) Generación de Reporte.

Figura 3-20. Diagrama de Secuencia Generación de Reporte.

Fuente: Lascano N. año 2016.

52

3.7.5 Diagrama de Clases.

En esta etapa se detallan los diagramas de clases para el sistema. Los siguientes gráficos

muestran las clases principales del sistema y como estas interactúan entre sí.

Figura 3-21. Diagrama de Clases, AbstracFacade.

Fuente: Lascano N. año 2016.

ParametroConsulta

-

-

nombreParametro

valorParametro

: String

: Object

+

+

+

+

getNombreParametro ()

setNombreParametro (String nombreParamet

ro)

getValorParametro ()

setValorParametro (Object valorParametro

)

: String

: void

: Object

: void

AbstractFacade

-

-

em

entityClass

: EntityManager

: Class<T>

+

+

+

+

+

+

+

+

+

+

+

+

create (entity T)

edit (entity T)

remove (entity T)

find (Object id)

findAll ()

generarConsultaDinamica (String query,

List<ParametroConsulta> parametros)

findByNamedQuerySingleResult (String que

ry)

consultarTablaSingleResult (String query

, List<ParametroConsulta> parametros)

findByNamedQueryResultList (String query

)

executeQueryIntResult (String query)

executeNativeQueryBoleanResult (String q

uery)

executeQueryListResult (String query,

List<ParametroConsulta> parametros)

: void

: void

: void

: T

: List<T>

: Query

: Object

: Object

: List<T>

: int

: boolean

: List<T>

AbstractFacadeLocal

+

+

+

+

+

create (entity T)

edit (entity T)

remove (entity T)

find (Object id)

findAll ()

: void

: void

: void

: Object

: List<T>

53

Figura 3-22. Diagrama de Clases, Principales del Sistema.

Fuente: Lascano N. año 2016.

0..1

0..*

0..10..*

0..10..* 0..1

0..*

0..1

0..*

0..1

0..*

0..1

0..*

0..1

0..*

0..1

0..*

Empresa

-

-

-

-

-

empNombreLargo

empNombreCorto

empDireccion

empRuc

empRepresentanteLegal

: String

: String

: String

: String

: String

+

+

+

+

crear (Empresa t)

actualizar (Empresa t)

enable (Empresa t)

disable (Empresa t)

: void

: void

: void

: void

Hacienda

-

-

-

-

-

hacNombre

hacDireccion

hacTelefono

hacCelular

hacGerente

: String

: String

: String

: String

: String

+

+

+

+

crear (Hacienda t)

actualizar (Hacienda t)

enable (Hacienda t)

disable (Hacienda t)

: void

: void

: void

: void

GrupoTipoMedicion

-

-

gruTipMedNombre

gruTipMedDescripcion

: String

: String

+

+

Crear (GrupoTipoMedicion t)

Actualizar (GrupoTipoMedicion t)

: void

: void

Establo

-

-

-

etbNombre

etbEncargado

etbCapacidad

: String

: String

: String

+

+

+

+

crear (Establo t)

actualizar (Establo t)

enable (Establo t)

disable (Establo t)

: void

: void

: void

: void

Bonino

-

-

-

-

bovRp

bovHbe

bovFechaNacimiento

bovNombre

: int

: int

: Date

: String

+

+

+

+

+

+

+

+

+

crear (Bonino t)

actualizar (Bonino t)

ingresarPadre ()

ingresarMadre ()

ingresarCria (Bonino t)

buscarPorHacienda ()

buscarPorHaciendaGenero (int idHacienda,

String estadoBovino, int idGenero)

cambiarEtapaVida ()

darDeBaja (Bonino t)

: void

: void

: void

: void

: void

: List<Bovino>

: List<Bovino>

: void

: void

Prepucio

-

-

prpFechaRegistro

prpDescripcion

: Date

: String

+

+

+

crear (Prepucio t)

actualizar (Prepucio t)

buscarPorBovino ()

: void

: void

: Prepucio

Escrotal

-

-

-

escValor

escFechaRegistro

escDescripcion

: int

: Date

: String

+

+

+

crear (Escrotal t)

actualizar (Escrotal t)

buscarPorBovino (int idBovino)

: void

: void

: Escrotal

Altura

-

-

-

altValor

altFechaRegistro

altDescripcion

: double

: Date

: String

+

+

+

crear (Altura t)

actualizar (Altura t)

buscarPorBovino (int idBovino)

: void

: void

: Altura

Categoria

-

-

cat_nombre

cat_descripcion

: String

: String

+

+

Crear (Categoria t)

Actualizar (Categoria t)

: void

: void

Peso

-

-

-

pesValor

pesoFechaRegistro

pesoDescripcion

: double

: Date

: String

+

+

+

crear (Peso t)

actualizar (Peso t)

buscarPorBovino (int idBovino)

: void

: void

: Peso

Usuario

-

-

-

-

-

-

usu_cedula

usu_password

usu_apellido

usu_nombre

usu_mail

usu_estado

: String

: String

: String

: String

: String

: String

+

+

+

+

+

+

+

crear (Usuario t)

actualizar (Usuario t)

login (String cedula, String password)

enable (Usuario t)

disable (Usuario t)

cambiarContrasenia (Usuario t)

buscarPorId (String cedula)

: void

: void

: Usuario

: void

: void

: void

: Usuario

TipoMedicion

-

-

tipMedNombre

tipMedDescripcion

: String

: String

+

+

Crear (TipoMedicion t)

Actualizar (TipoMedicion t)

: void

: void

Rol

-

-

rolNombre

rolDescripcion

: String

: String

+

+

crear (Rol t)

actualizar (Rol t)

: void

: void

Raza

-

-

raz_nombre

raz_descripcion

: String

: String

+

+

+

crear (Raza t)

actualizar (Raza t)

buscarPorCategoria (int idCategoria)

: void

: void

: List<Raza>

Configuracion

-

-

-

-

conNombre

conDescripcion

conValorTexto

conValorNumero

: String

: String

: String

: int

+

+

crear (Configuracion t)

actualizar (Configuracion t)

: int

: int

54

3.7.6 Base de Datos.

a) Diagrama entidad-relación de base de datos.

A continuación se presenta el diagrama entidad – relación para el sistema, en el cual se

muestra las entidades (tablas) con sus atributos (campos) existentes en el sistema, así

como también las relaciones y restricciones que existen entre ellas.

55

Figura 3-23. Diagrama Modelo de Datos: Modelo Relacional.

Fuente: Lascano N. año 2016.

ROL

rol_id

rol_nombre

rol_descripcion

rol_estado

rol_fecha_crea

rol_usuario_crea

INT2

VARCHAR(50)

VARCHAR(100)

VARCHAR(1)

DATE

VARCHAR(10)

<pk>

ROL_MENU

pk_rol_menu_id

pk_men_id

INT2

INT4

<pk,fk1>

<pk,fk2>

MENU

men_id

fk_id_men_padre

men_nombre

men_url

men_nivel

men_orden

men_class

men_descripcion

men_estado

INT4

INT4

VARCHAR(50)

VARCHAR(100)

CHAR(1)

INT2

VARCHAR(50)

VARCHAR(150)

VARCHAR(1)

<pk>

<fk>

ROL_USUARIO

pk_usu_cedula

pk_rol_id

VARCHAR(10)

INT2

<pk,fk1>

<pk,fk2>

USUARIO

usu_id

usu_cedula

usu_password

fk_hac_id

usu_fotografia

usu_apellido

usu_nombre

usu_mail

usu_telefono

usu_celular

usu_estado

usu_fecha_creacion

usu_usuario_creacion

INT2

VARCHAR(10)

VARCHAR(250)

INT2

bytea

VARCHAR(50)

VARCHAR(50)

VARCHAR(50)

VARCHAR(9)

VARCHAR(10)

VARCHAR(1)

TIMESTAMP

VARCHAR(10)

<pk>

<fk>

EMPRESA

emp_id

emp_nombre_largo

emp_nombre_corto

emp_direccion

emp_ruc

emp_representante_legal

emp_fecha_registro

emp_fecha_retiro

INT2

VARCHAR(100)

VARCHAR(50)

VARCHAR(100)

VARCHAR(13)

VARCHAR(100)

DATE

DATE

<pk>

HACIENDA

hac_id

fk_emp_id

hac_nombre

hac_direccion

hac_telefono

hac_celular

hac_gerente

hac_fecha_registro

hac_fecha_retiro

INT2

INT2

VARCHAR(100)

VARCHAR(100)

VARCHAR(9)

VARCHAR(10)

<Undefined>

DATE

DATE

<pk>

<fk>

ESTABLO

etb_id

fk_hac_id

etb_nombre

etb_encargado

etb_capacidad

INT2

INT2

VARCHAR(100)

VARCHAR(100)

INT2

<pk>

<fk>

BOVINO

bov_id

fk_col_id

fk_tip_nac_id

fk_est_id

fk_raz_id

fk_gen_id

fk_eta_vid_id

fk_tip_par_id

fk_etb_id

fk_tip_man_id

fk_padre_bov_id

fk_madre_bov_id

bov_rp

hbe

bov_fecha_nacimiento

INT8

INT2

INT2

INT2

INT2

INT2

INT2

INT2

INT2

INT2

INT8

INT8

INT8

NUMERIC(7)

DATE

<pk>

<fk1>

<fk2>

<fk3>

<fk4>

<fk5>

<fk6>

<fk7>

<fk8>

<fk9>

<fk10>

<fk11>

RAZA

raz_id

fk_cat_id

raz_nombre

raz_descripcion

INT2

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

<fk>

COLOR

col_id

col_nombre

col_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

TIPO_NACIMIENTO

tip_nac_id

tip_nac_nombre

tip_nac_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

ETAPA_VIDA

eta_vid_id

eta_vid_nombre

eta_vid_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

ESTADO

est_id

est_nombre

est_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>TIPO_MEDICION

tip_med_id

fk_gru_tip_med_id

tip_med_nombre

tip_med_descripcion

INT2

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

<fk>

GENERO

gen_id

gen_codigo

gen_nombre

gen_descripcion

INT2

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

CATEGORIA

cat_id

cat_nombre

cat_descripcion

INT2

VARCHAR(100)

VARCHAR(100)

<pk>

MOVIMIENTO_BOVINO

mov_bov_id

fk_bov_id

mov_bov_fecha

mov_bov_descripcion

mov_bov_fecha_trasferencia

mov_bov_hacienda_destino

mov_bov_responsable

mov_bov_establo_origen

mov_bov_establo_destino

NUMERIC

INT8

DATE

VARCHAR(200)

DATE

VARCHAR(200)

VARCHAR(200)

VARCHAR(200)

VARCHAR(200)

<pk>

<fk>

TIPO_PARENTESCO

tip_par_id

tip_par_nombre

tip_par_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

PARIENTE

par_id

fk_col_id

fk_raz_id

fk_tip_prt_id

bov_id

par_rp

par_hbe

par_fecha_nacimiento

NUMERIC

INT2

INT2

INT2

INT8

INT8

NUMERIC(7)

DATE

<pk>

<fk1>

<fk2>

<fk3>

<fk4>

TIPO_PARIENTE

tip_prt_id

tip_prt_nombre

tip_prt_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

PESO

pes_id

fk_tip_med_id

fk_bov_id

pes_valor

peso_fecha_registro

peso_descripcion

NUMERIC

INT2

INT8

NUMERIC(7,2)

DATE

VARCHAR(200)

<pk>

<fk1>

<fk2>

ALTURA

alt_id

fk_tip_med_id

fk_bov_id

alt_valor

alt_fecha_registro

alt_descripcion

NUMERIC

INT2

INT8

NUMERIC(7,2)

DATE

VARCHAR(200)

<pk>

<fk1>

<fk2>

TIPO_PREPUCIO

tip_pre_id

tip_pre_nombre

tip_pre_descripcion

INT2

VARCHAR(100)

VARCHAR(100)

<pk>

ESCROTAL

esc_id

fk_tip_med_id

fk_bov_id

esc_valor

esc_fecha_registro

esc_descripcion

NUMERIC

INT2

INT8

NUMERIC(7,2)

DATE

VARCHAR(200)

<pk>

<fk1>

<fk2>

GRUPO_TIPO_MEDICION

gru_tip_med_id

gru_tip_med_nombre

gru_tip_med_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

PREPUCIO

prp_id

fk_tip_med_id

fk_tip_pre_id

fk_bov_id

prp_fecha_registro

NUMERIC

INT2

INT2

INT8

DATE

<pk>

<fk1>

<fk2>

<fk3>

TIPO_MANEJO

tip_man_id

tip_man_codigo

tip_man_nombre

tip_man_descripcion

INT2

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

ECOGRAFIA

eco_id

fk_pel_id

fk_bov_id

eco_fecha

eco_imagenes_aob

eco_imagenes_egc

eco_imagenes_gi

INT2

INT2

INT8

DATE

INT2

INT2

INT2

<pk>

<fk1>

<fk2>

PELADO

pel_id

pel_nombre

pel_descripcion

INT2

VARCHAR(100)

VARCHAR(200)

<pk>

CONFIGURACION

con_id

con_nombre

con_descripcion

con_valor_texto

con_valor_numero

con_valor_decimal

con_valor_fecha

con_valor_hora

con_valor_margen_error

INT2

VARCHAR(100)

VARCHAR(100)

VARCHAR(100)

INT2

NUMERIC(7,2)

DATE

TIME

NUMERIC(7,2)

<pk>

56

3.8 Fase de Codificación.

A la hora de codificar una historia de usuario su aspecto es aún más necesaria, el cliente

es una parte más del equipo de desarrollo. Hay que tomar en cuenta que los clientes son

los que crean las historias de usuario y negocian los tiempos en los que serán

implementadas. Antes del desarrollo de cada historia de usuario el cliente debe detallar

lo que éste hará y también tendrá que estar presente cuando se realicen los test que

ratifiquen que la historia realizada cumple la funcionalidad especificada. En esta fase de

la codificación los clientes y los desarrolladores del proyecto deben estar en

comunicación para que los desarrolladores puedan codificar todo los necesario para el

proyecto que se requiere, en esta fase está incluido todo lo de codificación o programación

por parte de los desarrolladores del proyecto.

En esta etapa se detalla el desarrollo del sistema después de la fase de diseño.

3.8.1 Estructura del Diseño Gráfico del Sistema.

Para el diseño de la estructura del proyecto, se hace uso de una plantilla web que permite

desarrollar el sitio web de una forma mucho más fácil y rápida que los diseños a medida.

Facelets es un sistema de código abierto de plantillas web bajo licencia Apache que es

compatible con todos los componentes de JSF.

Tabla 3-18. Estructura General del Sistema.

Cabecera

Menú

Contenido

Pie de Página

Fuente: Lascano N. año 2016.

Cabecera: contiene información relacionada al nombre de institución, nombre del

sistema, y el usuario que se encuentra logueado.

Menú: contiene el menú con todas las opciones a las que tiene acceso el usuario.

57

Contenido: es la parte más importante de la página, en donde mostraremos el contenido

del sitio, registros de información, imágenes, etc.

Pie de Página: contiene información del contacto del autor.

A continuación se muestra el código y la plantilla web utilizada en todos los módulos del

sistema.

Figura 3-24. Código Plantilla Estructura General del Sistema.

Fuente: Lascano N. año 2016.

58

Figura 3-25. Plantilla Web del Sistema.

Fuente: Lascano N. año 2016.

3.8.2 Separación de Componentes del patrón MVC.

Como se ha mencionado anteriormente el presente trabajo se desarrollara bajo la

arquitectura JEE 7, utilizando patrones de diseño como el MVC, FACADE; así como

también algunas Frameworks de desarrollo que facilitan la tarea del programador,

permitiéndole únicamente que se centre en la lógica del negocio, dejando de una lado

temas como el diseño de páginas, gestión de transacciones con la base de datos,

concurrencia de usuarios a la aplicación entre otras cosas.

Base de Datos.

Para el desarrollo de ejemplo partiremos de una tabla creada en el motor de base de

datos, el nombre de la tabla es: CONFIGURACION, en la cual se almacenara datos

relevantes de las configuraciones del sistema que servirán para la configuración del

sistema, como por ejemplo el tiempo de destetar a la cría.

Figura 3-26. Diseño de Entidad CONFIGURACIÓN.

Fuente: Lascano N. año 2016.

CONFIGURACION

con_id

con_nombre

con_descripcion

con_valor_texto

con_valor_numero

con_valor_decimal

con_valor_fecha

con_valor_hora

con_valor_margen_error

INT2

VARCHAR(100)

VARCHAR(100)

VARCHAR(100)

INT2

NUMERIC(7,2)

DATE

TIME

NUMERIC(7,2)

<pk>

59

Plain Old Java Object.

Tras la creación de la tabla en el motor de base de datos, generamos la clase java que

representará a dicha tabla en nuestro proyecto, esta clase también es cocida como POJO;

todo esto con la utilización de un ORM (Object relational mapping), el cual permite

generar un clase java a partir de una tabla en el motor de la base de datos. Un punto a

tomar en cuenta es el nombre de la clase y sus propiedades, ya que el ORM que se está

utilizando en el presente trabajo lo hace bajo la notación camel mayúscula, sustituyendo

el carácter “_” por un carácter vacío cuando sea necesario.

A continuación se presenta la clase generada con EclipseLink.

package ec.edu.uce.sicogan.core.modelo;

@Entity

@Table(name = "configuracion")

@XmlRootElement

@NamedQueries({

@NamedQuery(name = "Configuracion.findAll", query = "SELECT c FROM Configuracion

c"),

@NamedQuery(name = "Configuracion.findByConId", query = "SELECT c FROM

Configuracion c WHERE c.conId = :conId"),

@NamedQuery(name = "Configuracion.findByConNombre", query = "SELECT c FROM

Configuracion c WHERE c.conNombre = :conNombre"),

@NamedQuery(name = "Configuracion.findByConDescripcion", query = "SELECT c FROM

Configuracion c WHERE c.conDescripcion = :conDescripcion"),

@NamedQuery(name = "Configuracion.findByConValorTexto", query = "SELECT c FROM

Configuracion c WHERE c.conValorTexto = :conValorTexto"),

@NamedQuery(name = "Configuracion.findByConValorNumero", query = "SELECT c

FROM Configuracion c WHERE c.conValorNumero = :conValorNumero"),

@NamedQuery(name = "Configuracion.findByConValorDecimal", query = "SELECT c

FROM Configuracion c WHERE c.conValorDecimal = :conValorDecimal"),

@NamedQuery(name = "Configuracion.findByConValorFecha", query = "SELECT c FROM

Configuracion c WHERE c.conValorFecha = :conValorFecha"),

@NamedQuery(name = "Configuracion.findByConValorHora", query = "SELECT c FROM

Configuracion c WHERE c.conValorHora = :conValorHora"),

@NamedQuery(name = "Configuracion.findByConValorMargenError", query = "SELECT c

FROM Configuracion c WHERE c.conValorMargenError = :conValorMargenError")})

public class Configuracion implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@SequenceGenerator(name = "seq_con_id", sequenceName = "seq_con_id",

allocationSize = 1, initialValue = 1)

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_con_id")

@Basic(optional = false)

@NotNull

@Column(name = "con_id")

private Integer conId;

@Basic(optional = false)

60

@NotNull

@Size(min = 1, max = 100)

@Column(name = "con_nombre")

private String conNombre;

@Size(max = 100)

@Column(name = "con_descripcion")

private String conDescripcion;

@Size(max = 100)

@Column(name = "con_valor_texto")

private String conValorTexto;

@Column(name = "con_valor_numero")

private Short conValorNumero;

// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using

these annotations to enforce field validation

@Column(name = "con_valor_decimal")

private BigDecimal conValorDecimal;

@Column(name = "con_valor_fecha")

@Temporal(TemporalType.DATE)

private Date conValorFecha;

@Column(name = "con_valor_hora")

@Temporal(TemporalType.TIME)

private Date conValorHora;

@Column(name = "con_valor_margen_error")

private BigDecimal conValorMargenError;

public Configuracion() {

}

public Configuracion(Integer conId) {

this.conId = conId;

}

public Configuracion(Integer conId, String conNombre) {

this.conId = conId;

this.conNombre = conNombre;

}

public Integer getConId() {

return conId;

}

public void setConId(Integer conId) {

this.conId = conId;

}

public String getConNombre() {

return conNombre;

}

public void setConNombre(String conNombre) {

this.conNombre = conNombre;

}

61

public String getConDescripcion() {

return conDescripcion;

}

public void setConDescripcion(String conDescripcion) {

this.conDescripcion = conDescripcion;

}

public String getConValorTexto() {

return conValorTexto;

}

public void setConValorTexto(String conValorTexto) {

this.conValorTexto = conValorTexto;

}

public Short getConValorNumero() {

return conValorNumero;

}

public void setConValorNumero(Short conValorNumero) {

this.conValorNumero = conValorNumero;

}

public BigDecimal getConValorDecimal() {

return conValorDecimal;

}

public void setConValorDecimal(BigDecimal conValorDecimal) {

this.conValorDecimal = conValorDecimal;

}

public Date getConValorFecha() {

return conValorFecha;

}

public void setConValorFecha(Date conValorFecha) {

this.conValorFecha = conValorFecha;

}

public Date getConValorHora() {

return conValorHora;

}

public void setConValorHora(Date conValorHora) {

this.conValorHora = conValorHora;

}

public BigDecimal getConValorMargenError() {

return conValorMargenError;

}

public void setConValorMargenError(BigDecimal conValorMargenError) {

62

this.conValorMargenError = conValorMargenError;

}

@Override

public int hashCode() {

int hash = 0;

hash += (conId != null ? conId.hashCode() : 0);

return hash;

}

@Override

public boolean equals(Object object) {

// TODO: Warning - this method won't work in the case the id fields are not set

if (!(object instanceof Configuracion)) {

return false;

}

Configuracion other = (Configuracion) object;

if ((this.conId == null && other.conId != null) || (this.conId != null &&

!this.conId.equals(other.conId))) {

return false;

}

return true;

}

@Override

public String toString() {

return "ec.edu.uce.sicogan.core.modelo.Configuracion[ conId=" + conId + " ]";

}

}

Interfaz – FACADE.

Una vez obtenida la representación de la tabla en clase java, se procede a la creación de

la interfaz para el EJB, esto bajo la utilización del patrón Facade, permitiendo así que el

cliente únicamente pueda observar la firma del método al cual se invocara en la página

jsf y mas no a como esta implementado el método en el EJB.

A continuación se presenta la interfaz creada para la administración de la clase java.

package ec.edu.uce.sicogan.core.ejb;

@Local

public interface ConfiguracionFacadeLocal extends AbstractFacadeLocal<Configuracion> {

List<Configuracion> findAll() throws EntidadException;

}

63

EJB.

Una vez definida la interfaz, se procede a su implementación dentro del EJB, el cual

tendrá la característica de ser de ser un EJB de sesión que no conserva el estado

“stateless”. Es necesario aclarar que las consultas a la base de datos se las realiza

utilizando JPA invocando a la NamedQueries definidos en POJO.

package ec.edu.uce.sicogan.core.ejb.impl;

import ec.edu.uce.sicogan.core.ejb.ConfiguracionFacadeLocal;

import ec.edu.uce.sicogan.core.modelo.Configuracion;

import ec.edu.uce.sicogan.core.utilitario.generico.impl.AbstractFacade;

import javax.ejb.Stateless;

@Stateless

public class ConfiguracionFacade extends AbstractFacade<Configuracion> implements

ConfiguracionFacadeLocal {

@Override

public List<Configuracion> findAll() throws EntidadException{

return this.findByNamedQueryResultList("Configuracion.findAll");

}

}

Backin Bean.

Cuando se haya realizado la creación del EJB, se procede a la creación de los Backin

Beans, los cuales controlaran la lógica de la interfaz gráfica, es decir validaciones en los

controles como calendarios, cajas de texto, listas desplegables, entre otros.

package ec.edu.uce.sicogan.vista;

import ec.edu.uce.sicogan.core.modelo.Configuracion;

import ec.edu.uce.sicogan.vista.util.JsfUtil;

import ec.edu.uce.sicogan.vista.util.JsfUtil.PersistAction;

import ec.edu.uce.sicogan.core.ejb.ConfiguracionFacadeLocal;

import ec.edu.uce.sicogan.excepciones.EntidadException;

64

import java.io.Serializable;

import java.util.List;

import java.util.ResourceBundle;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.ejb.EJB;

import javax.ejb.EJBException;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

import javax.faces.component.UIComponent;

import javax.faces.context.FacesContext;

import javax.faces.convert.Converter;

import javax.faces.convert.FacesConverter;

import javax.faces.model.SelectItem;

import org.primefaces.context.RequestContext;

@ManagedBean(name = "configuracionController")

@ViewScoped

public class ConfiguracionController implements Serializable {

@EJB

private ec.edu.uce.sicogan.core.ejb.ConfiguracionFacadeLocal ejbFacade;

private List<Configuracion> items = null;

private Configuracion selected;

public ConfiguracionController() {

}

public Configuracion getSelected() {

return selected;

}

public void setSelected(Configuracion selected) {

this.selected = selected;

}

65

protected void setEmbeddableKeys() {

}

protected void initializeEmbeddableKey() {

}

private ConfiguracionFacadeLocal getFacade() {

return ejbFacade;

}

public Configuracion prepareCreate() {

selected = new Configuracion();

initializeEmbeddableKey();

return selected;

}

public void create() {

persist(PersistAction.CREATE,

ResourceBundle.getBundle("/Bundle").getString("ConfiguracionCreated"));

RequestContext.getCurrentInstance().execute("PF('ConfiguracionCreateDialog').hide()");

if (!JsfUtil.isValidationFailed()) {

items = null; // Invalidate list of items to trigger re-query.

}

}

public void update() {

persist(PersistAction.UPDATE,

ResourceBundle.getBundle("/Bundle").getString("ConfiguracionUpdated"));

RequestContext.getCurrentInstance().execute("PF('ConfiguracionEditDialog').hide()");

}

public void destroy() {

persist(PersistAction.DELETE,

ResourceBundle.getBundle("/Bundle").getString("ConfiguracionDeleted"));

if (!JsfUtil.isValidationFailed()) {

selected = null; // Remove selection

66

items = null; // Invalidate list of items to trigger re-query.

}

}

public List<Configuracion> getItems() {

try {

if (items == null) {

items = getFacade().findAll();

}

return items;

} catch (EntidadException ee) {

return null;

}

}

private void persist(PersistAction persistAction, String successMessage) {

if (selected != null) {

setEmbeddableKeys();

try {

if (persistAction != PersistAction.DELETE) {

getFacade().edit(selected);

} else {

getFacade().remove(selected);

}

JsfUtil.addSuccessMessage(successMessage);

} catch (EJBException ex) {

String msg = "";

Throwable cause = ex.getCause();

if (cause != null) {

msg = cause.getLocalizedMessage();

}

if (msg.length() > 0) {

JsfUtil.addErrorMessage(msg);

} else {

JsfUtil.addErrorMessage(ex,

67

ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));

}

} catch (Exception ex) {

Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);

JsfUtil.addErrorMessage(ex,

ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));

}

}

}

public SelectItem[] getItemsAvailableSelectMany() {

try {

return JsfUtil.getSelectItems(ejbFacade.findAll(), false);

} catch (EntidadException ee) {

return null;

}

}

public SelectItem[] getItemsAvailableSelectOne() {

try {

return JsfUtil.getSelectItems(ejbFacade.findAll(), true);

} catch (EntidadException ee) {

return null;

}

}

@FacesConverter(forClass = Configuracion.class)

public static class ConfiguracionControllerConverter implements Converter {

@Override

public Object getAsObject(FacesContext facesContext, UIComponent component, String

value) {

try {

if (value == null || value.length() == 0) {

return null;

}

68

ConfiguracionController controller = (ConfiguracionController)

facesContext.getApplication().getELResolver().

getValue(facesContext.getELContext(), null, "configuracionController");

return controller.getFacade().find(getKey(value));

} catch (EntidadException ee) {

return null;

}

}

java.lang.Integer getKey(String value) {

java.lang.Integer key;

key = Integer.valueOf(value);

return key;

}

String getStringKey(java.lang.Integer value) {

StringBuilder sb = new StringBuilder();

sb.append(value);

return sb.toString();

}

@Override

public String getAsString(FacesContext facesContext, UIComponent component, Object

object) {

if (object == null) {

return null;

}

if (object instanceof Configuracion) {

Configuracion o = (Configuracion) object;

return getStringKey(o.getConId());

} else {

Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "object {0} is of

type {1}; expected type: {2}", new Object[]{object, object.getClass().getName(),

Configuracion.class.getName()});

return null;

69

}

}

}

}

Interfaz de usuario.

A continuación se presenta las interfaces de usuario que gestionaran la lógica la parte de

listado, creación y edición de las variables del sistema que se está desarrollando en el

presenten trabajo.

Figura 3-27.Interfaz de Usuario para el Listado de variables del Sistema SICOGAN.

Fuente: Lascano N. año 2016.

Figura 3-28.Interfaz de Usuario para la Creación de una Nueva Variable del

Sistema.

Fuente: Lascano N. año 2016.

70

3.9 Fase de Pruebas.

Se refiere a las pruebas y a la aceptación de las mismas para proceder a la implementación

del sistema. El ANEXO E contiene la certificación de las pruebas efectuadas.

Es uno de los apoyos de la metodología XP es el uso de test para evidenciar el

funcionamiento de los códigos que se estén implementando.

El uso de los test en X.P es el siguiente:

Se deben establecer las aplicaciones que realizarán los test con un ambiente

de desarrollo específico para test.

Hay que someter a test las distintas clases del sistema excluyendo los métodos

más triviales.

Se deben implementar los test que pasarán los códigos antes de

implementación.

Para esto se implementó las pruebas.

Caja blanca.

Caja negra.

3.9.1 Ejemplo de un Caso de Prueba.

Se realizó, previo a obtener el certificado de conformidad de las pruebas efectuadas en la

Fundación a Favor de la Vida.

Caso de Prueba Gestionar Seguridad.

Caso de Prueba Ingreso al Sistema. P1-1.

Tabla 3-19. Prueba 1. Ingreso al Sistema.

Caso de uso: Ingreso al sistema P1-1.

Fecha: 05-04-2016

Autores: Súper Administrador, Administrador, Secretaria, Capataz.

Descripción:

Admite ingresar al sistema, con la respectiva autentificación de nombre de usuario y

contraseña.

71

Precondiciones:

Ingresar correctamente a la dirección del sistema (URL).

Tiene que estar registrado el usuario en el sistema.

Tiene que autentificarse correctamente.

Flujo Normal:

El usuario ingresa a la dirección (URL) de la página web.

El usuario debe ingresar el username y el password que le corresponde.

El sistema adquiere la información del rol y muestra solo las opciones que

puede realizar el usuario en el sistema.

Pos condiciones:

Si el username y password introducidos son correctos y únicos, el usuario

ingresa a la página de index del sistema.

Si el username o el password son incorrectos, el sistema muestra un mensaje

en el que afirma que el usuario no existe.

Escenarios de prueba

Respuesta esperada de la aplicación Coincide

(Si/No) Campo/

Opción Valor

Tipo

escenario

Usuario

Clave

1803904539

1803904531

Correcto

Correcto

El sistema debe dar la bienvenida al

sistema Informático SICOGAN, la

pantalla de administración cargado el menú

según el rol registrado en el perfil del

sistema.

SI

Usuario

Clave

1803904539

1803904531

Correcto

Incorrecto

En este caso el sistema de validación de

usuario y clave mostrara un mensaje

indicando que el usuario y la clave son

incorrectas, que tiene que volver a ingresar

las credenciales

SI

Fuente: Lascano N. año 2016.

Figura 3-29. Login de Usuario Correcto.

Fuente: Lascano N. año 2016.

72

Figura 3-30. Login de Usuario Incorrecto.

Fuente: Lascano N. año 2016.

Figura 3-31. Ingreso al Sistema.

Fuente: Lascano N. año 2016.

73

4 IMPLEMENTACIÓN DEL SISTEMA

4.1 Matriz certificada de herramientas.

EL SISTEMA DE CONTROL VETERINARIO DE REGISTROS DE BOVINOS

ENFOCADOS EN LA DIFERENCIA ESPERADA ENTRE PROGENIES (DEPS)

PARA LA FUNDACIÓN A FAVOR DE LA VIDA “SICOGAN” está probado y

soportado bajo herramientas de sistema operativo, máquina virtual java, base de datos y

sus driver´s de conexión, servidor de aplicaciones y su compatibilidad con el sistema

operativo, base de datos y compatibilidad con la máquina virtual java. ANEXO F

Certificado de la Implementación del Sistema.

Configuraciones permitidas

Tiene como objetivo estar en ejecución en una configuración compatible, SICOGAN

debe ser ejecutado en las implementaciones certificadas de Kit`s de Tecnología

Compatible y en uno de los sistemas operativos compatibles que tengan con la aplicación.

Tabla 4-1.Versiones permitidas de JDK para el Sistema SICOGAN.

Máquina Virtual Java Versión

Oracle JDK 1.7

1.8

Fuente: Lascano N. año 2016.

A continuación se puede presentar la lista de pruebas de plataforma de sistema operativo

bajo estas configuraciones:

74

Tabla 4-2.Versiones permitidas de Sistema Operativo para el sistema SICOGAN.

Sistema Operativo Chipset

Architecture

Máquina Virtual

Java

Linux CentOS 6.5 x86 Oracle JDK 1.7.x

x86_64 Oracle JDK 1.8.x

Linux CentOS 5 x86 Oracle JDK 1.7.x

x86_64 Oracle JDK 1.8.x

Microsoft Windows 2008 Server x86 Oracle JDK 1.7.x

x86_64 Oracle JDK 1.8.x

Microsoft Windows 2008 Server R2 x86_64 Oracle JDK 1.7.x

Oracle JDK 1.8.x

Fuente: Lascano N. año 2016.

Unificaciones Probadas.

Son un conjunto definido de unificaciones de tecnologías probadas concretamente, las

cuales representan las combinaciones más frecuentes que los usuarios del sistema

manipulan. Para lo cual se ofrece una lista completa de pruebas de plataforma para el

lanzamiento del producto.

A continuación se lista la siguiente base de datos y sus drivers de conexión que se

pusieron a prueba en el ambiente de la última versión de SICOGAN.

Tabla 4-3.Versiones probadas, Motor de Base de Datos, sistema SICOGAN.

Base de Datos Versión JDBC Driver

PostgreSQL 9.2 JDBC4 Postgresql Driver, Versión 9.0-801

9.3 JDBC41 Postgresql Driver, Versión 9.3-1101

Fuente: Lascano N. año 2016.

Se puede exponer que el servidor de aplicaciones y conectores se pusieron a prueba en

el ambiente de la última versión de SICOGAN.

75

Tabla 4-4.Versiones probadas, Servidor de Aplicaciones, sistema SICOGAN.

Servidor de

Aplicaciones Versión Item

Versión Item

Glassfish 4.1

Sistema Operativo

Linux CentOS 6.5

Linux CentOS 5

Microsoft Windows 2008 Server

Microsoft Windows 2008 Server

R2

Java SE Oracle JDK 1.7.x

Oracle JDK 1.8.x

Java Persistence

Implementation Eclipselink 2.0

Base de Datos y Driver

PostgreSQL

9.2 (JDBC4 Postgresql Driver,

Versión 9.0-801)

9.3 (JDBC41 Postgresql Driver,

Versión 9.3-1101)

Fuente: Lascano N. año 2016.

4.2 Requerimientos Hardware y Software.

A continuación se presentan los requerimientos recomendados de hardware para un

funcionamiento estable del SISTEMA DE CONTROL VETERINARIO DE

REGISTROS DE BOVINOS ENFOCADOS EN LA DIFERENCIA ESPERADA

ENTRE PROGENIES (DEPS) PARA LA FUNDACIÓN A FAVOR DE LA VIDA

“SICOGAN”.

76

Tabla 4-5. Requerimientos de hardware y software recomendados.

HARDWARE CARACTERÍSTICA

Procesador 2 GHz

Memoria RAM 4 GB

Disco Duro 40 GB

Unidad de DVD-ROM 1

Pantalla y periféricos •SuperVGA

•Teclado

• Mouse

Fuente: Lascano N. año 2016.

4.3 Requerimientos funcionales para ambiente de trabajo.

Figura 4-1. Requerimientos Funcionales para el Ambiente de Trabajo.

Fuente: Lascano N. año 2016.

4.4 Etapas de la instalación.

El proceso de instalación se realizó en dos etapas.

La primera etapa se considera a la implementación y configuración de herramientas de

software necesarias para la puesta en producción del sistema de Control Veterinario de

Registros de Bovinos enfocados en la diferencia esperada entre progenies (DEPS) para la

Fundación a Favor de la Vida.

Lista de herramientas:

Windows Server 2008 R2.

IDE Netbeans 8.0.2

Versiones Inferiores

• Genera Conflictos

• Genera Conflictos

• Genera Conflictos

• Genera Conflictos

• Genera Conflictos

Versión Estable

• Netbeans 8.0.2

• PostgreSQL 9.3.2.1

• Ireport 5.2

• JDK 1.8.0_51

• Glassfish 4.1

Versiones Superiores

• Satisfactorio

• Satisfactorio

• Satisfactorio

• Genera Conflictos

• Genera Conflictos

77

PosgreSQL 9.3.2.1

Glasfish 4.1

iReport 5.1

JDK 1.8.0_51

En la segunda etapa se realizó el despliegue de las aplicaciones y pruebas de

funcionalidad las cuales se realizaron en base un cronograma de pruebas, durante esta

etapa fue importante la participación del usuario funcional.

78

5 CONCLUSIONES Y RECOMENDACIONES

5.1 Conclusiones.

Una vez finalizado el desarrollo de un sistema de control veterinario de registros de

bovinos enfocados en la diferencia esperada entre progenies (DEPS) para la fundación a

favor de la vida se han derivado las siguientes conclusiones.

Se desarrolló un sistema informático bajo los estándares de aplicaciones

empresariales JEE, el cual brinda información, concisa, concreta, adecuada y en

tiempo real del registro de bovinos enfocados en la diferencia esperada entre

progenies; todo esto cumpliendo con los requerimientos tecnológicos y

organizacionales para el desarrollo de los procesos que automatiza el sistema.

El uso de la metodología XP facilitó el desarrollo del sistema, puesto que indica

las reglas necesarias para el cumplimiento del proyecto; así como también

implantó los lineamientos y definiciones de un perfil UML que en definitiva

suministra elementos necesarios para el modelado de los diferentes aspectos de

una aplicación.

Se utilizó herramientas de desarrollo con tecnologías de vanguardia, para mayor

eficiencia y eficacia al momento del desarrollo del sistema.

Los usuarios de aplicaciones basadas en la Web, requieren obtener respuestas

rápidas y precisas a sus requerimientos; por lo que se desarrolló el sistema con

herramientas que faciliten y mejoren el rendimiento de la aplicación para

respuesta de peticiones simultaneas. Se ratificó los conocimientos sobre el uso y

manejo de herramientas para el desarrollo de aplicaciones con arquitectura

empresarial.

Con el desarrollo del sistema se mejoró los procesos de control veterinario de

registros de bovinos enfocados en la diferencia esperada entre progenie (DEPS),

para la Fundación a Favor de la Vida.

Tras la utilización del sistema implementado, los usuarios lograron incrementar

su confianza en la Fundación en lo que respecta a la gestión de los procesos de

control veterinario.

79

5.2 Recomendaciones

Tras el desarrollo del proyecto, existen varias recomendaciones a seguir a cerca de la

experiencia adquirida en el miso.

Hacer uso de los procedimientos de Ingeniería de desarrollo, metodologías y

buenas prácticas, con la finalidad de mantener la organización y seguimiento del

proyecto al momento de incrementar funcionalidades o módulos del mismo,

realizar toda la documentación pertinente que conlleva la metodología de

desarrollo de Ingeniería de Software.

Realizar los procesos de testing y control de calidad del software, ya que esto

ayuda a la corrección oportuna de posibles errores que posee el sistema antes de

ponerlo en producción.

Continuar con el desarrollo de los módulos del sistema que mejoraran los procesos

de control veterinario, puesto algunas funcionalidades que intervienen en los

procesos de obtención de la diferencia esperada entre progenies no se

implementaron en el desarrollo del mismo. Este módulo debería ser el primero en

desarrollarse ya que va de la mano con la gestión de control veterinario.

La información es lo más importante, proteger los datos contra la pérdida, el

deterioro, las catástrofes (naturales u obras) y demás problemas es una de las

máximas prioridades de las empresas, para evitar este tipo de inconvenientes es

necesario que tracen un plan de respaldo de información de forma periódica, será

una de las tareas más importantes que deberán tomar en cuenta como usuario

responsable.

80

6. Bibliografía

1. BAHIT, E. (s.f.). El paradigma de la Programación Orientada a Objetos en PHP

y el patrón de arquitectura de Software MVC. Obtenido de

MONOGRAFIAS.COM: http://www.monografias.com/trabajos89/poo-y-mvc-

php/poo-y-mvc-php2.shtml

2. Balladares, S. (2015). ITAP RURAL. Obtenido de Conócenos:

http://www.itaprural.com

3. Bavera, G. (2011). Definiciones de vocablos usuales en ganadería en Argentina.

Obtenido de Diccionario de término laneros: http://www.produccion-

animal.com.ar/informacion_tecnica/a_curso_produccion_bovina_de_carne/07A-

02-Capitulo-II-Vocablos.pdf

4. Bavera, G. A. (2008). DESTETE DEFINITIVO; EFECTOS. Obtenido de Sitio

Argentino de Producción Animal:

http://www.produccionbovina.com/informacion_tecnica/destete/37-

destete_definitivo_efectos.pdf

5. BELL, D., & PARR, M. (2003). JAVA PARA ESTUDIANTES. MEXICO:

PEARSON EDUCATION.

6. CABALLEROS, S. (22 de 02 de 2014). MAKE THE FUTURE JAVA. Obtenido

de INTRODUCCION JAVA EE7: http://es.slideshare.net/vacax/introduccin-a-

java-ee-7-31747180

7. Calendamaia. (01 de 09 de 2014). NetBeans. Obtenido de Genbeta Dev:

http://www.genbetadev.com/herramientas/netbeans-1

8. Calvopiña, P. J. (03 de 04 de 2012). Lcdo. Johnn Calvopiña Ponce . Obtenido de

Programmer, Docente del Colegio Fiscal Técnico "Primero de Junio" Tenguel -

Guayas - Ecuador: http://johnnjc.blogspot.com/2012/04/sistema-informatico-

81

material-para-1ro.html

9. EcuRed. (04 de 05 de 2016). GlassFish. Obtenido de EcuRed:

http://www.ecured.cu/GlassFish

10. Fernández, G. J. (s.f.). Introducción a las metodologías ágiles. Obtenido de

Universitat Oberta de Catalunya :

https://www.exabyteinformatica.com/uoc/Informatica/Tecnicas_avanzadas_de_i

ngenieria_de_software/Tecnicas_avanzadas_de_ingenieria_de_software_%28M

odulo_3%29.pdf

11. FORO ARGENTINO DE GENETICA BOVINA. (2010). GPS Guía de

Procedimientos sugeridos. Obtenido de

http://www.forodegeneticabovina.com/read-article.php?articleId=32

12. FUENTES, G. (24 de 05 de 2014). WINDOWS SERVER 2008. Obtenido de

Transcripción de WINDOWS SERVER 2008.:

https://prezi.com/gzcch8k8_ek5/windows-server-2008/

13. GRANADOS, D. (21 de 10 de 2009). MANEJO DE SESIONES Y COOKIES.

Obtenido de Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies

: http://es.slideshare.net/difagram/desarrollo-de-aplicaciones-web-ii-sesin-08-

sesiones-y-cookies

14. JaspertSoft Community. (01 de 01 de 2016). JasperReports® Library. Obtenido

de JaspertSoft Community:

http://community.jaspersoft.com/project/jasperreports-library

15. Java Server Faces. (2009). En B. HARWANI, Java Server Faces (pág. 212). PHI

Learning Private Limited.

16. kinfantas. (25 de 02 de 2016). PostgreSQL. Obtenido de DBbyexample:

82

https://dbbyexample.wikispaces.com/Postgress

17. Oracle Corporation. (01 de 01 de 2015). ¿Qué es la tecnología Java y para qué la

necesito? . Obtenido de Oracle:

https://www.java.com/es/download/faq/whatis_java.xml

18. Struts 2. (2010). En J. LAFOSSE, Struts 2 (pág. 463). Barcelona: Ediciones ENI.

Obtenido de El Framework de desarrollo de aplicaciones JAVA EE.

19. Washinton, S. G. (01 de 01 de 2013). Desarrollo e implementación de un sistema

de información para el programa Bolsa de Empleos para Estudiantes, Egresados

y Graduados de la Universidad Central del Ecuador. Obtenido de Repositorio

Digital: http://www.dspace.uce.edu.ec/handle/25000/1936

83

ANEXOS

84

ANEXO A

Oficio de solicitud de proyecto Fundación a Favor de la Vida.

85

ANEXO B

Información de planillas de distintas razas de bovinos

Establecim

iento.................................................................N

º criador..........................

Propietario.........................................................................

0011

02/01/2016Rz

N1

30054

RzC

08/05/2013SN

1043

RzC

2004065

AA

[1] SEX

O[2] R

z / Va RAZA o VAR

IED

AD

SeleccionarSeleccionar

1. Macho.

Rz. Raza Pura

2. Hem

bra.1/2. C

ruza 1/2

3. Mellizos m

achos.1/4. C

ruza 1/4

4. Mellizo con hem

bra.3/4. C

ruza 3/4

5. Mellizas hem

bras.3/8. C

ruza 3/8

6. Melliza con m

acho.5/8. C

ruza 5/8

[3] C (color)

[4] CM

(Código de m

uerto)

Seleccionar

1. Nacido m

uerto.

2. Dentro de las 36 horas de nacido.

[5] PN:

[6] Fecha Nac. de la M

adre:

Peso al nacer.A. C

onsignar la fecha de nacimiento de la m

adre

o el mes y el año de nacim

iento, o al menos

el año de nacimiento de la m

isma.

[7] TS (Tipo de servicio)[8] TP (Tipo de parto)

3. Entre 36 horas y 30 días.

SeleccionarSeleccionar

4. Entre 30 días y destete.

SN. Servicio natural.

1. Norm

al.

IA. Inseminación artificial.

2. Ayuda manual.

TE. Transferencia embrionaria.

3. Ayuda mecánica.

4. Cesárea.

B. En caso de desconocer la informacion requerida en (A),

5. Aborto. declarar si es: vaquillona (vq)

vaca madura (vm

)

[9] Rz / Va R

aza o Variedad[10] M

1 (Manejo)

vaca vieja (vv)

SeleccionarSeleccionar

AA. Aberdeen Angus.Asignar el m

ismo núm

ero a los animales que recibieron igual m

anejo nutricional hasta el destete.

BH. Brahm

an.

BG. Brangus.

CB. C

ruza Británica.

CI. C

ruza Indica.

RAZAS IN

DIC

AS Y DER

IVADO

S

Color

C [3]

Codigo de M

uerto M

[4]

Peso al Nacer

PN [5]

RE

CE

PTOR

A

HBE

Color

C [3]

Firma

FECH

A NAC

.

DE LA

MAD

RE [6]

Tipo de Servicio TS [7] Tipo de Parto TP

[8]O

BSERV

ACIO

NES

M1 [10]

Raza o

Variedad

Rz / Va [2]

Color

C [3]

FECH

A

DE N

AC.

Raza o

Variedad

Rz / Va [9]

RP

PESOFEC

HA D

E

DEST.

AÑO

NAC

.

DE

STETE

S

El éxito del Program

a depende de que los datos sean correctos. Por favor, sea cuidadoso al anotarlos

RE

GISTR

O D

E N

ACIM

IEN

TOS Y D

ESTE

TES

CO

DIG

OS

PADR

E

RE

GISTR

O D

E N

AC

IMIE

NTO

S Y DE

STETE

S

NAC

IMIE

NTO

S

RP

CR

IA(#

Animal)

SEXO

[1]

FECH

A DE N

ACIM

IENTO

.

Raza o Variedad

Rz / Va [2]

Raza o Variedad

Rz / Va [2]

MAD

RE

RP (#

Animal)

HBE

RP (#

Anim

al)

86

Esta

ble

cim

ien

to.................................................................

Nº c

riador..........................

Pro

pie

tario

.........................................................................

001

102/01/2016

Rz

N1

30

054

Rz

C08/05/2013

SN

1043

Rz

C2

00

4065

AA

[1] S

EX

O[2

] Rz /

Va R

AZA

o V

AR

IED

AD

Sele

ccio

nar

Sele

ccio

nar

1. M

ach

o.

Rz. R

aza

Pu

ra

2. H

em

bra

.1/2. C

ruza

1/2

3. M

ellizo

s m

ach

os.

1/4. C

ruza

1/4

4. M

ellizo

con

hem

bra

.3/4. C

ruza

3/4

5. M

elliza

s h

em

bra

s.

3/8. C

ruza

3/8

6. M

elliza

con

mach

o.

5/8. C

ruza

5/8

[3] C

(colo

r)[4

] CM

(Códig

o d

e m

uerto

)

Sele

ccio

nar

1. N

acid

o m

uerto

.

2. D

en

tro d

e la

s 3

6 h

ora

s d

e n

acid

o.

[5] P

N:

[6] F

ech

a N

ac. d

e la

Madre

:

Peso a

l nacer.

A. C

on

sig

nar la

fech

a d

e n

acim

ien

to d

e la

madre

o e

l mes y

el a

ño d

e n

acim

ien

to, o

al m

en

os

el a

ño d

e n

acim

ien

to d

e la

mis

ma.

[7] T

S (T

ipo d

e s

erv

icio

)[8

] TP

(Tip

o d

e p

arto

)3. E

ntre

36 h

ora

s y

30 d

ías.

Sele

ccio

nar

Sele

ccio

nar

4. E

ntre

30 d

ías y

deste

te.

SN

. Serv

icio

natu

ral.

1. N

orm

al.

IA. In

sem

inació

n a

rtificia

l.2. A

yu

da m

an

ual.

TE. T

ran

sfe

ren

cia

em

brio

naria

.3. A

yu

da m

ecán

ica.

4. C

esáre

a.

B. E

n c

aso d

e d

escon

ocer la

info

rmacio

n re

qu

erid

a e

n (A

),

5. A

borto

. d

ecla

rar s

i es: v

aqu

illon

a (v

q)

vaca m

adu

ra (v

m)

[9] R

z /

Va R

aza o

Varie

dad

[10

] M1

(Man

ejo

) v

aca v

ieja

(vv)

Sele

ccio

nar

Sele

ccio

nar

AA

. Aberd

een

An

gu

s.

Asig

nar e

l mis

mo n

úm

ero

a lo

s a

nim

ale

s q

ue re

cib

iero

n ig

ual m

an

ejo

nu

tricio

nal h

asta

el d

este

te.

BH

. Bra

hm

an

.

BG

. Bra

ngu

s.

CB

. Cru

za B

ritán

ica.

CI. C

ruza

Indic

a.

RA

ZA

S IN

DIC

AS Y

DE

RIV

AD

OS

Colo

r

C [3

]

Codig

o d

e M

uerto

M

[4]

Peso a

l Nacer

PN

[5]

RE

CE

PT

OR

A

HB

E

Colo

r

C [3

]

Firm

a

FE

CH

A N

AC

.

DE

LA

MA

DR

E [6

]

Tip

o d

e S

ervicio

TS [7

] Tip

o d

e P

arto

TP

[8]

OB

SERV

AC

ION

ES

M1 [1

0]

Raza o

Varie

dad

Rz /

Va [2

]

Colo

r

C [3

]FE

CH

A

DE

NA

C.

Raza o

Varie

dad

Rz /

Va [9

]

RP

PE

SO

FE

CH

A D

E

DE

ST.

O

NA

C.

DE

ST

ET

ES

El é

xito

del P

rogra

ma d

epen

de d

e q

ue lo

s d

ato

s s

ean

corre

cto

s. P

or fa

vor, s

ea c

uid

adoso a

l an

ota

rlos

RE

GIS

TR

O D

E N

AC

IMIE

NT

OS

Y D

ES

TE

TE

S

CO

DIG

OS

PA

DR

E

RE

GIS

TR

O D

E N

AC

IMIE

NT

OS

Y D

ES

TE

TE

S

NA

CIM

IEN

TO

S

RP

CR

IA(#

An

imal)

SE

XO

[1]

FE

CH

A D

E N

AC

IMIE

NTO

.

Raza o

Varie

dad

Rz /

Va [2

]

Raza o

Varie

dad

Rz /

Va [2

]

MA

DR

E

RP

(#

An

imal)

HB

E

RP

(#

An

im

al)

87

ANEXO C

Acta de Constitución de Proyecto.

88

89

90

91

92

93

94

95

96

97

ANEXO D

Diccionario de Datos.

SECUENCIAS

Tabla D1.Tabla de Secuencia.

NOMBRE DESCRIPCIÓN

SEQ_ALT_ID Secuencia para la tabla altura. Incrementa de uno en uno.

SEQ_BOV_ID Secuencia para la tabla bovino. Incrementa de uno en uno.

SEQ_CAT_ID Secuencia para la tabla categoría. Incrementa de uno en uno.

SEQ_COL_ID Secuencia para la tabla color. Incrementa de uno en uno.

SEQ_CON_ID Secuencia para la tabla configuración. Incrementa de uno en

uno.

SEQ_ECO_ID Secuencia para la tabla ecografía. Incrementa de uno en uno.

SEQ_EMP_ID Secuencia para la tabla empresa. Incrementa de uno en uno.

SEQ_ESC_ID Secuencia para la tabla escrotal. Incrementa de uno en uno.

SEQ_EST_ID Secuencia para la tabla estado. Incrementa de uno en uno.

SEQ_ETA_VID_ID Secuencia para la tabla etapa_vida. Incrementa de uno en uno.

SEQ_ETB_ID Secuencia para la tabla establo. Incrementa de uno en uno.

SEQ_GEN_ID Secuencia para la tabla género. Incrementa de uno en uno.

SEQ_GRU_TIP_MED_ID Secuencia para la tabla grupo_tipo_medicion. Incrementa de

uno en uno.

SEQ_HAC_ID Secuencia para la tabla hacienda. Incrementa de uno en uno.

SEQ_PES_ID Secuencia para la tabla peso. Incrementa de uno en uno.

SEQ_PRP_ID Secuencia para la tabla prepucio. Incrementa de uno en uno.

SEQ_RAZ_ID Secuencia para la tabla raza. Incrementa de uno en uno.

SEQ_ROL_ID Secuencia para la tabla rol. Incrementa de uno en uno.

SEQ_TIP_MAN_ID Secuencia para la tabla tipo_manejo. Incrementa de uno en

uno.

SEQ_TIP_MED_ID Secuencia para la tabla tipo_medicion. Incrementa de uno en

uno.

SEQ_TIP_NAC_ID Secuencia para la tabla tipo_nacimiento. Incrementa de uno

en uno.

SEQ_TIP_PAR_ID Secuencia para la tabla tipo_parto. Incrementa de uno en uno.

SEQ_TIP_PRE_ID Secuencia para la tabla tipo_prepucio. Incrementa de uno en

uno.

Fuente: Lascano N. año 2016.

98

ALTURA

Tabla D2.Tabla de Altura.

ALTURACAMPO COMENTARIO

alt_id Identificador único de registro.

fk_tip_med_id Llave foránea que indica el tipo de medición.

fk_bov_id Llave foránea que indica el bovino al que se le realiza la

medición.

alt_valor Valor del peso.

alt_fecha_registro Fecha de registro de la medición.

alt_descripcion Descripción de la medición.

Fuente: Lascano N. año 2016.

BOVINO.

Tabla D3.Tabla de Bovino.

CAMPO COMENTARIO

bov_id Identificador único de registro.

fk_col_id Llave foránea que indica el color del bovino.

fk_tip_nac_id Llave foránea que indica el tipo de nacimiento del bovino.

fk_est_id Llave foránea que indica el estado del bovino.

fk_raz_id Llave foránea que indica la raza del bovino.

fk_gen_id Llave foránea que indica el género del bovino.

fk_eta_vid_id Llave foránea que indica la etapa de vía del bovino.

fk_tip_par_id Llave foránea que indica el tipo de parto del bovino.

fk_etb_id Llave foránea que indica el establo donde está el bovino.

fk_tip_man_id Llave foránea que indica el tipo manejo del bovino.

fk_padre_bov_id Llave foránea que indica el padre del bovino.

fk_madre_bov_id Llave foránea que indica la madre del bovino.

bov_nombre Nombre del bovino.

bov_rp Código RP del bovino.

bov_hbe Código HBE del bovino.

bov_fecha_nacimiento Fecha de nacimiento del bovino.

Fuente: Lascano N. año 2016.

CATEGORÍA

Tabla D4.Tabla de Categoría.

CAMPO COMENTARIO

cat_id Identificador único de registro.

cat_nombre Categoría nombre.

cat_descripcion Descripción de la categoría.

Fuente: Lascano N. año 2016.

99

COLOR

Tabla D5.Tabla de Color.

CAMPO COMENTARIO

col_id Identificador único de registro.

col_nombre Color nombre.

col_descripcion Descripción del color.

Fuente: Lascano N. año 2016.

CONFIGURACIÓN

Tabla D6.Tabla de Configuración.

CAMPO COMENTARIO

con_id Identificador único de registro.

con_nombre Nombre de la variable.

con_descripcion Descripción de la variable.

con_valor_texto Valor texto de la variable.

con_valor_numero Valor número de la variable.

con_valor_decimal Valor decimal de la variable.

con_valor_fecha Valor fecha de la variable.

con_valor_hora Valor hora de la variable.

con_valor_margen_error Margen de error de la variable.

Fuente: Lascano N. año 2016.

ECOGRAFÍA

Tabla D7.Tabla de Ecografía.

CAMPO COMENTARIO

eco_id Identificador único de registro.

fk_pel_id Llave foránea que indica si en la medición se pelo la piel del

bovino.

fk_bov_id Llave foránea que indica el bovino del cual se toma la

medición.

eco_fecha Fecha de registro de la medición.

eco_imagenes_aob Número de imágenes AOB.

eco_imagenes_egc Número de imágenes EGC.

eco_imagenes_gi Número de imágenes GI.

Fuente: Lascano N. año 2016.

100

EMPRESA

Tabla D8.Tabla de Empresa.

CAMPO COMENTARIO

emp_id Identificador único de registro.

emp_nombre_largo Nombre largo de la empresa.

emp_nombre_corto Nombre corto de la empresa.

emp_direccion Dirección de la empresa.

emp_ruc Ruc de la empresa.

emp_representante_legal Representante legal de la empresa.

emp_fecha_registro Fecha de alta del registro.

emp_fecha_retiro Fecha de baja del registro.

Fuente: Lascano N. año 2016.

ESCROTAL

Tabla D9.Tabla de Escrotal.

CAMPO COMENTARIO

esc_id Identificador único de registro.

fk_tip_med_id Llave foránea que indica el tipo de medición.

fk_bov_id Llave foránea que indica el bovino del cual se toma la

medición.

esc_valor Valor de la medición.

esc_fecha_registro Fecha de registro de la medición.

esc_descripcion Descripción de la medición.

Fuente: Lascano N. año 2016.

ESTABLO

Tabla D10.Tabla de Establo.

CAMPO COMENTARIO

etb_id Identificador único de registro.

fk_hac_id Llave foránea que indica la hacienda en la que está registrado

el establo.

etb_nombre Nombre del establo.

etb_encargado Encargado del establo.

etb_capacidad El número de bovinos que se pueden registrar en el establo.

Fuente: Lascano N. año 2016.

101

ESTADO

Tabla D11.Tabla de Estado.

CAMPO COMENTARIO

est_id Identificador único de registro.

est_nombre Nombre del registro.

est_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

ETAPA_VIDA

Tabla D12.Tabla de Etapa Vida.

CAMPO COMENTARIO

eta_vid_id Identificador único de registro.

eta_vid_nombre Nombre del registro.

eta_vid_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

GENERO

Tabla D13.Tabla de Genero.

CAMPO COMENTARIO

gen_id Identificador único de registro.

gen_codigo Código del género.

gen_nombre Nombre del registro.

gen_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

GRUPO_TIPO_MEDICION

Tabla D14.Tabla de Tipo Medición.

CAMPO COMENTARIO

gru_tip_med_id Identificador único de registro.

gru_tip_med_nombre Nombre del registro.

gru_tip_med_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

102

HACIENDA

Tabla D15.Tabla de Hacienda.

CAMPO COMENTARIO

hac_id Identificador único de registro.

fk_emp_id Llave foránea que indica la empresa a la cual pertenece

la hacienda.

hac_nombre Nombre de la hacienda.

hac_direccion Dirección de la hacienda.

hac_telefono Teléfono de la hacienda.

hac_celular Celular de la hacienda.

hac_gerente Gerente de la hacienda.

hac_fecha_registro Fecha de dada de alta de la hacienda.

hac_fecha_retiro Fecha de dada de baja la hacienda.

Fuente: Lascano N. año 2016.

PESO

Tabla D16.Tabla de Peso.

CAMPO COMENTARIO

pes_id Identificador único de registro.

fk_tip_med_id Llave foránea que indica el tipo de medición.

fk_bov_id Llave foránea que indica el bovino del cual se toma la

medición.

pes_valor Valor de la medición.

peso_fecha_registro Fecha de registro de la medición.

peso_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

PREPUCIO

Tabla D17.Tabla de Prepucio.

CAMPO COMENTARIO

prp_id Identificador único de registro.

fk_tip_med_id Llave foránea que indica el tipo de medición.

fk_tip_pre_id Llave foránea que indica el tipo de prepucio para la

medición.

fk_bov_id Llave foránea que indica el bovino del cual se toma la

medición.

prp_fecha_registro Fecha de registro de la medición.

Fuente: Lascano N. año 2016.

103

RAZA

Tabla D18.Tabla de Raza.

CAMPO COMENTARIO

raz_id Identificador único de registro.

fk_cat_id Llave foránea que indica la categoría de la raza.

raz_nombre Nombre del registro.

raz_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

ROL

Tabla D19.Tabla de Rol.

CAMPO COMENTARIO

rol_id Identificador único de registro.

rol_nombre Rol nombre.

rol_descripcion Descripción del rol.

rol_estado Estado del rol.

Fuente: Lascano N. año 2016.

TIPO_MANEJO

Tabla D20.Tabla de Tipo Manejo.

CAMPO COMENTARIO

tip_man_id Identificador único de registro.

tip_man_codigo Código del registro.

tip_man_nombre Nombre del registro.

tip_man_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

TIPO_MEDICION

Tabla D21.Tabla de Tipo Medición.

CAMPO COMENTARIO

tip_med_id Identificador único de registro.

fk_gru_tip_med_id Llave foránea que indica grupo de tipo medición.

tip_med_nombre Nombre del registro.

tip_med_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

104

TIPO_NACIMIENTO

Tabla D22.Tabla de Tipo Nacimiento.

CAMPO COMENTARIO

tip_nac_id Identificador único de registro.

tip_nac_nombre Nombre del registro.

tip_nac_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

TIPO_PARTO

Tabla D23.Tabla de Tipo Parto.

CAMPO COMENTARIO

tip_par_id Identificador único de registro.

tip_par_nombre Nombre del registro.

tip_par_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

TIPO_PREPUCIO

Tabla D24.Tabla de Tipo Prepucio.

CAMPO COMENTARIO

tip_pre_id Identificador único de registro.

tip_pre_nombre Nombre del registro.

tip_pre_descripcion Descripción del registro.

Fuente: Lascano N. año 2016.

USUARIO

Tabla D25.Tabla de Usuario.

CAMPO COMENTARIO

usu_cedula Identificador único de registro (nombre de usuario).

usu_password Clave del usuario.

fk_hac_id Llave foránea que indica la hacienda en la que está

registrado el usuario.

usu_apellido Apellido del usuario.

usu_nombre Nombre del usuario.

usu_mail Mail del usuario.

usu_telefono Teléfono del usuario.

usu_celular Celular del usuario.

usu_estado Estado del usuario (Activo - Inactivo).

Fuente: Lascano N. año 2016.

105

ANEXO E

Certificación de que se Efectuaron las Pruebas pertinentes.

106

ANEXO F

Certificación de Implementación del Sistema.

107

ANEXO G

Certificado de la capacitación del Sistema.

108

ANEXO H

Lista de Capacitación del Sistema.

109

ANEXO I

PUESTA EN PRODUCCIÓN DEL SISTEMA.

1. Restauración de la Base de Datos.

En seguida de la instalación del motor de base de datos PostgreSQL 9.3.2.1, iniciar

PgAdmin III, para lo cual se debe dirigir al menú principal del sistema operativo y en

“Inicio” buscar la opción “PostgreSQL 9.3” y elegir la opción “PgAdmin III”; una vez

que se abra el administrador del motor de la base de datos, debemos autenticarnos como

usuario administrador, en este caso usuario “postgres”, e ingresamos la contraseña que se

otorgó en la instalación del motor de base de datos.

Figura I0-1. Login de Usuario, Postgresql 9.3.2.1

Fuente: Lascano N. año 2016.

Crear la base de datos que contendrá la estructura y definición de tablas, funciones,

secuencias, entre otras, para el sistema de control de asistencia, para esto, en el apartado

“Databases” clic derecho y seleccionar la opción “New Database”.

Figura I0-2. Crear Nueva Base de Datos.

Fuente: Lascano N. año 2016.

Se mostrara un cuadro de dialogo en el cual se debe definir las propiedades de la base de

110

datos, ingresar las propiedades en las pestañas de “Properties”, “Definition” tal como se

muestra en las siguientes figuras. Para la creación de la base de datos hacemos clic en el

botón “Aceptar”.

Figura I0-3. Base de Datos, Propiedades Generales.

Fuente: Lascano N. año 2016.

Figura I0-4. Base de Datos, Propiedades Específicas.

Fuente: Lascano N. año 2016.

Cuando esté creada la Base de datos “sicogan”, hay que restaurarla, para esto clic derecho

sobre esta y seleccionar la opción “Restore”.

111

Figura I0-5. Restaurar Base de Datos.

Fuente: Lascano N. año 2016.

Se mostrara una pantalla en la cual hay que seleccionar el backup de la base que se desea

restaurar, para esto Ingresamos al CD “HERRAMIENTAS DE DESARROLLO -

SICOGAN”, ubicar el directorio “INSTALADORES/PostgreSQL/Archivos” y

seleccionamos el archivo “sicogan_custom.backup”, luego de esto hacer clic en el botón

“Restore”.

Figura I0-6. Restaurar Base de Datos.

Fuente: Lascano N. año 2016.

Restaurada la base de datos, la misma debe contener la siguiente estructura, en la cual se

evidencia, sus tablas, secuencias y funciones.

112

Figura I0-7. Estructura de la Base de Datos.

Fuente: Lascano N. año 2016.

2. Desplegar el Sistema en el Servidor de Aplicaciones.

Una vez instalado el servidor de aplicaciones Glassfish 4.1.1, debemos proporcionarle a

este los archivos necesarios para que se pueda conectar al motor de base de datos; para lo

cual debemos copiar el archivo llamado “postgresql-9.2-1003.jdbc4”, ubicado en el CD

“HERRAMIENTAS DE DESARROLLO - SICOGAN” en el directorio

“INSTALADORES/PostgreSQL/Archivos”, y pegarlo en los siguientes directorios del

servidor de aplicaciones:

ruta_de_instalción\glassfish\lib

ruta_de_instalción \glassfish\domains\domain1\lib

ruta_de_instalción \glassfish\domains\domain1\lib\databases

Nota: “ruta_de_instalación” puede ser por ejemplo: C:\glassfish4.1.1\glassfish

Luego de haber copiado el archivo jdbc, necesario para la conexión del servidor con la

base de datos, iniciar el servicio del servidor de aplicaciones, para esto, clic sobre el botón

“Inicio” del sistema operativo, en el apartado de búsqueda, ingresar “cmd”, con lo cual

se mostrará la consola de Windows, hacer clic sobre esta. En la consola ingresar

comandos que inicia el servicio del servidor.

113

cd /

cd “ruta_de_instalción”\bin

Nota: “ruta_de_instalación” puede ser por ejemplo: C:\glassfish4.1.1\glassfish

asadmin start-domain domain1

Figura I0-8. Glassfish, Iniciar Servicio.

Fuente: Lascano N. año 2016.

Cuando el servicio haya subido, Ingresar a su panel de administración, para lo cual,

mediante un browser ingresamos a la dirección http://localhost:4848, en la cual nos

solicitará ingresar un usuario y su contraseña de no ser así se mostrará directamente la

consola de administración, esto como lo muestra la siguiente figura.

Figura I0-9. Glassfish, Inicio de Sesión.

Fuente: Lascano N. año 2016.

114

Para la conexión del sistema con la base de datos es necesario crear el pool de conexiones,

para esto dirigirse al apartado “Resources JDBC Connection Pools” ubicado en la

parte izquierda de la consola de administración del servidor; seguidamente hacer clic en

el botón “New” para crear un nuevo pool de conexión.

Figura I0-10. Creación de Pool de Conexión.

Fuente: Lascano N. año 2016.

El nombre del pool que se va a crear debe llamarse “__SicoganPool”, en “Resource

Type” elegir “javax.sql.DataSource” y en “Database Driver Vendor” elegir “Postgresql”.

Para continuar con el proceso hacer clic sobre el botón “Next”.

Figura I0-11. Propiedades de Pool de Conexión.

Fuente: Lascano N. año 2016.

Las propiedades de “User”, “Password” y “DatabaseName” deben coincidir con las que

se instalaron en el servidor de Base de datos PosgreSQL 9.3.2.1, además de esto

configurar también el, “ServerName” en “localhost” y las demás propiedades dejarlas

por default, para continuar hacer clic sobre el botón “Finalizar”.

115

Figura I0-12. Propiedades de Pool de Conexión con la Base de Datos.

Fuente: Lascano N. año 2016.

Finalizado la configuración del pool de conexión, se debe testear si hay conexión con la

base de datos, para esto, en la opción “Resources JDBC Connection Pools” hacer

clic sobre el pool que se ha creado anteriormente.

Figura I0-13. Verificar la Conexión con la Base de Datos.

Fuente: Lascano N. año 2016.

Para testear la conexión del servidor con la base de datos, hacer clic en el botón “Ping”, si

la conexión esta correcta se mostrara el mensaje “Ping Succeeded”.

116

Figura I0-14. Comprobación de Conexión con la Base de Datos.

Fuente: Lascano N. año 2016.

Cuando haya sido creado el pool de conexión, tenemos que crear el JDBC Resources,

para esto ubicarnos en el apartado “Resources JDBC JDBC Resources” y hacer

clic en el botón “New”.

Figura I0-15. Creación de JDBC Resources.

Fuente: Lascano N. año 2016.

Definimos el nombre del JDBC Resources en “jdbc/__SicoganPool” y en el apartado

“Pool Name” seleccionar “__SicoganPool”, adicional a esto debe estar marcada la opción

de “Enabled”, para continuar hacer clic en el botón “OK”.

Figura I0-16. Propiedades de JDBC Resources.

Fuente: Lascano N. año 2016.

Realizada la configuración del servidor de aplicaciones Glassfish4.1, se debe desplegar

117

el aplicativo de registro de Bovinos, para esto en la consola de administración de Glassfish

ingresar al apartado “Applications” y hacer clic en el botón “Deploy”.

Figura I0-17. Deploy, aplicativo SICOGAN, primera parte.

Fuente: Lascano N. año 2016.

Cuando se haya presionado clic en el boton “Deploy”, se presenta la pantalla en la cual

se debe indicar el archivo a ser deployado en el servidor, para esto hacer clic en el botón

“Examinar” y en el CD “HERRAMIENTAS DE DESARROLLO - SICOGAN”, ubicar

el archivo “sicogan.ear” y seleccionarlo, una vez realizado esto, hacer clic sobre el botón

“Ok”.

Figura I0-18. Deploy, aplicativo SICOGAN, segunda parte.

Fuente: Lascano N. año 2016.

118

3. Acceso al Sistema.

Para acceder al sistema debemos ingresar a la dirección “http://localhost:8080/sicogan-

war/”, esto lo hacemos a través de un browser (de preferencia Mozilla Firefox versión 15

o posterior) como muestra la siguiente imagen.

Figura I0-19. Url de Acceso al Sistema.

Fuente: Lascano N. año 2016.

Al acceder a esta dirección se desplegará la página de inicio del Sistema Veterinario de

control de Bovinos, en la cual se solicita las credenciales de usuario, las mismas que bien

pre configuradas en la base de datos.

Figura I0-20. Login de Usuario.

Fuente: Lascano N. año 2016.

Las Credenciales del usuario súper administrador son:

Usuario: 1804489530

Contraseña: 1804489530