universidad central del ecuador facultad de … · 2015-06-29 · trabajo de graduaciÓn previo la...

185
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA SISTEMA DE SEGUIMIENTO DE PROYECTOS, BASADO EN ACTIVIDADES TIPO ILALO V. 1 TRABAJO DE GRADUACIÓN PREVIO LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO AUTOR: Vizuete Oñate Fausto Paúl TUTOR : Ing. Morales Mejía César Augusto QUITO-ECUADOR 2015

Upload: ngothuan

Post on 02-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS

Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

SISTEMA DE SEGUIMIENTO DE PROYECTOS, BASADO EN

ACTIVIDADES TIPO ILALO V. 1

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

INGENIERO INFORMÁTICO

AUTOR: Vizuete Oñate Fausto Paúl

TUTOR : Ing. Morales Mejía César Augusto

QUITO-ECUADOR

2015

DEDICATORIA

A Carla Gabriela, que él espíritu inocente de tú madre permanezca siempre vivo en

ti.

ii

AGRADECIMIENTO

A mis padres y familiares por el apoyo durante toda mi vida.

A mi tutor Ing. César Morales, por guiarme en el desarrollo de mi tesis.

A mis revisores los ingenieros: Mauro Rosas y René Carrillo por sus aportes y

observaciones finales en el desarrollo de este trabajo. Así como el resto de docentes

que fueron mis profesores, por las enseñanzas brindadas en mi formación superior.

iii

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, Vizuete Oñate Fausto Paúl en calidad de autor del trabajo de investigación o tesis

realizada sobre “SISTEMA DE SEGUIMIENTO DE PROYECTOS, BASADO EN

ACTIVIDADES TIPO ILALO V. 1”, por la presente autorizo a la UNIVERSIDAD

CENTRAL DEL ECUADOR, hacer uso de todos los contenidos que me pertenecen o

de parte de los que contiene esta obra, con fines estrictamente académicos o de

investigación.

Los derechos que como autor me corresponden, con la 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 pertenecientes de la Ley de Propiedad Intelectual y su

Reglamento.

Quito, 4 de abril del 2015

iv

CERTIFICICACION DEL TUTOR

v

INFORME SOBRE LA CONCLUSIÓN DEL TRABAJO DE GRADUACIÓN

“SISTEMA DE SEGUIMIENTO DE PROYECTOS, BASADO EN

ACTIVIDADES TIPO ILALO V. 1”

1.- Antecedentes

Con oficio 355-2013 DC. IF del 29 de agosto del 2013, el Director de la Carrera de

Ingeniería Informática designa al Ing. Morales Mejía César Augusto, que en calidad

de TUTOR analice, dirija y oriente el trabajo de graduación titulado: “SISTEMA DE

SEGUIMIENTO DE PROYECTOS, BASADO EN ACTIVIDADES TIPO ILALO

V. 1”, presentado por él Señor Vizuete Oñate Fausto Paúl con el objetivo de obtener

él título de Ingeniero Informático, y que emita un informe sobre la ejecución del

mismo a su finalización:

2.- Desarrollo del Trabajo de Graduación

Para dar cumplimiento al anterior oficio mencionado se procedió a revisar él avance

de la ejecución del trabajo, posteriormente él graduado realizo bajo mi supervisión

las siguientes actividades:

• Se cumplió con las horas de tutoría planificadas, divididas en reuniones con

el mencionado alumno y participación en el aula virtual.

• Revisión de los distintos capítulos que conforman esta tesis.

• Seguimiento de la metodología de desarrollo empleada en la tesis.

• Revisión del sistema y posteriores pruebas con datos reales, para poder

probar las distintas funcionalidades del mismo.

vi

3.- Conclusión

Por lo anteriormente señalado el trabajo presentado por él Señor VIZUETE OÑATE

FAUSTO PAÚL, considero que cumple con los requisitos de un trabajo de

graduación previo a la obtención del titulo de Ingeniero Informático.

En la ciudad de Quito a los 31 días del mes de marzo del 2015.

vii

NOTAS REVISORES

viii

ix

CONTENIDO

DEDICATORIA...........................................................................................................ii

AGRADECIMIENTO.................................................................................................iii

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL............................................iv

CERTIFICICACION DEL TUTOR..............................................................................v

INFORME SOBRE LA CONCLUSIÓN DEL TRABAJO DE GRADUACIÓN.......vi1.- Antecedentes...........................................................................................................vi

2.- Desarrollo del Trabajo de Graduación....................................................................vi

3.- Conclusión.............................................................................................................vii

NOTAS REVISORES...............................................................................................viii

LISTA DE CUADROS..............................................................................................xvi

LISTA DE GRÁFICOS............................................................................................xvii

LISTA DE FIGURAS...............................................................................................xvii

RESUMEN................................................................................................................xxi

ABSTRACT.............................................................................................................xxii

CAPÍTULO 1...............................................................................................................1

1. PRESENTACIÓN DEL PROBLEMA.....................................................................1

1.1 Planteamiento del Problema...................................................................................11.2 Formulación del Problema......................................................................................21.3 Interrogantes de la Investigación............................................................................21.4 Objetivos de la Investigación..................................................................................21.4.1 Objetivo General..................................................................................................21.4.2 Objetivos Específicos...........................................................................................21.5 Alcance....................................................................................................................31.5.1 Arquitectura de Desarrollo...................................................................................3Comparación entre Lenguajes de Programación..........................................................3Comparación entre Motores de Bases de Datos...........................................................5Comparación entre Frameworks PHP...........................................................................6Sistema Multiplataforma...............................................................................................7Sistema Gestor de Base de Datos MySQL...................................................................7Lenguaje de Programación PHP...................................................................................8Arquitectura de software: Modelo Vista Controlador (MVC), implementados a travésdel framework LARAVEL............................................................................................9Servidor Web Apache....................................................................................................91.6 Limitaciones..........................................................................................................121.7 Justificación e Importancia...................................................................................12

CAPÍTULO 2..............................................................................................................132. Metodología de Proyectos.......................................................................................13

2.1 Antecedentes.........................................................................................................132.2 Metodología de Investigación...............................................................................13

x

2.2.1 Proyectos............................................................................................................13¿Qué es un proyecto?..................................................................................................13Tipos de Proyectos......................................................................................................14Proyectos Agropecuarios............................................................................................14Proyectos Industriales.................................................................................................14Proyecto de Infraestructura Económica......................................................................14Proyectos de Infraestructura Social............................................................................14Proyectos de Servicio..................................................................................................142.2.2 Ciclo de un proyecto..........................................................................................152.2.2.1 Identificación..................................................................................................152.2.2.2 Formulación....................................................................................................15El nombre o título del proyecto..................................................................................16La definición de objetivos...........................................................................................16Fundamentación o justificación..................................................................................17Descripción del proyecto............................................................................................17La matriz de actividades o diagrama Gantt.................................................................19El presupuesto.............................................................................................................20Los aportes propios.....................................................................................................212.2.2.3 Implementación...............................................................................................21Funciones en la Administración de Proyectos............................................................212.2.2.4 Evaluación.......................................................................................................22De procesos.................................................................................................................23De resultados o Evaluación Final...............................................................................23Naturaleza de la evaluación........................................................................................23Criterios en la evaluación............................................................................................24Población o beneficiarios............................................................................................25Sustentabilidad............................................................................................................25Eficacia.......................................................................................................................25Eficiencia o análisis costo-beneficio...........................................................................25Calidad........................................................................................................................25¿Qué es un sistema de seguimiento de proyectos?.....................................................26Beneficios del sistema de seguimiento de proyectos..................................................262.3 Sistemas Web........................................................................................................27Arquitectura Cliente Servidor.....................................................................................27Arquitectura de Tres Capas.........................................................................................27Capa de presentación..................................................................................................27Capa de negocio..........................................................................................................27Capa de datos..............................................................................................................27Modelo-Vista-Controlador (MVC).............................................................................28Ventajas de las aplicaciones web................................................................................30Desventajas de las aplicaciones Web..........................................................................30Navegadores Web.......................................................................................................31CAPÍTULO 3..............................................................................................................32

3. METODOLOGÍA...................................................................................................32

Metodología de Desarrollo de Software en Cascada..................................................323.1 Análisis de Requerimientos...................................................................................333.1.1 Definiciones, Acrónimos y Abreviaturas...........................................................33

xi

3.1.2 Visión General....................................................................................................343.1.3 Descripción General...........................................................................................35Perspectiva del Producto.............................................................................................35Funcionalidades del Sistema.......................................................................................35Módulo Perfil de Usuario............................................................................................35Módulo Perfil de Gestor de Proyecto..........................................................................35Módulo Perfil de Administración................................................................................353.1.4 Requerimientos Generales.................................................................................363.1.5 Requerimientos Específicos...............................................................................37Requerimientos Funcionales.......................................................................................373.1.6 Requerimientos de Prestaciones........................................................................393.1.7 Requerimientos de Interfaz................................................................................40Requerimientos de la interfaz software.......................................................................403.1.8 Requerimientos Operacionales..........................................................................413.1.9 Requerimientos de Verificación.........................................................................413.1.10 Requerimientos de Pruebas de Aceptación......................................................423.1.11 Requerimientos de Documentación.................................................................433.1.12 Requerimientos de Calidad..............................................................................433.2 Diseño...................................................................................................................443.2.1 Diagramas UML de Casos de uso......................................................................44Diagrama General de ILALO V. 1.0...........................................................................44Gestión de Usuarios....................................................................................................44Gestión de Organizaciones..........................................................................................45Gestión de Proyectos...................................................................................................45Gestión de Actividades...............................................................................................46Gestión de Etapas........................................................................................................46Gestión de Tareas........................................................................................................47Gestión de Recursos....................................................................................................473.2.2 Maquetación Web del Sistema...........................................................................48Index...........................................................................................................................48Login...........................................................................................................................49Sesión Administrador..................................................................................................50Sesión Administrador-Proyectos-Nuevo.....................................................................50Sesión Administrador-Proyectos-Listado...................................................................51Sesión Administrador-Usuarios-Nuevo......................................................................51Sesión Administrador-Usuarios-Listado.....................................................................52Sesión Administrador-Reportes..................................................................................53Sesión Usuario............................................................................................................54Sesión Usuario-Proyectos-Listado..............................................................................54Sesión Usuario-Reportes.............................................................................................553.2.3 Diagramas de Robustez......................................................................................55Gestión de Usuarios....................................................................................................55Gestión de Organizaciones..........................................................................................56Gestión de Proyectos...................................................................................................58Gestión de Actividades...............................................................................................59Gestión de Etapas........................................................................................................61Gestión de Tareas........................................................................................................62Gestión de Recursos....................................................................................................64

xii

3.2.4 Modelo de Datos................................................................................................663.3 Codificación..........................................................................................................683.3.1 Arquitectura de Software...................................................................................68Estructura del Proyecto...............................................................................................68Directorio Raíz............................................................................................................68app /.............................................................................................................................69commands...................................................................................................................69config..........................................................................................................................69controllers...................................................................................................................70database.......................................................................................................................70lang..............................................................................................................................70models.........................................................................................................................70start..............................................................................................................................70storage.........................................................................................................................70tests.............................................................................................................................70views...........................................................................................................................70filters.php....................................................................................................................71routes.php....................................................................................................................71bootstrap /....................................................................................................................71autoload.php................................................................................................................71paths.php.....................................................................................................................71start.php.......................................................................................................................71vendor.........................................................................................................................72public...........................................................................................................................72packages......................................................................................................................72.htaccess......................................................................................................................72favicon.ico...................................................................................................................73index.php.....................................................................................................................73robots.txt.....................................................................................................................73.gitattributes................................................................................................................73.gitignore.....................................................................................................................73artisan..........................................................................................................................73composer.json y composer.lock..................................................................................73phpunit.xml.................................................................................................................74Plantillas Blade...........................................................................................................74Introducción................................................................................................................74Componentes Externos...............................................................................................74Zizaco/Confide............................................................................................................75Zizaco/Entrust.............................................................................................................75JpGraph.......................................................................................................................75Dompdf.......................................................................................................................75Diseño Web.................................................................................................................75Twitter Bootstrap 3.....................................................................................................76Desarrollo del Sistema en LARAVEL........................................................................77Modelo........................................................................................................................77Vista............................................................................................................................78Controlador.................................................................................................................80Ruta.............................................................................................................................80

xiii

3.4 Pruebas..................................................................................................................823.4.1 Pruebas Unitarias...............................................................................................82Caso de prueba Crear Usuario....................................................................................83Caso de prueba Confirmar Usuario.............................................................................83Caso de prueba Crear Organización............................................................................84Caso de prueba Editar Organización...........................................................................85Caso de prueba Eliminar Organización......................................................................85Caso de prueba Crear Proyecto...................................................................................86Caso de prueba Editar Proyecto..................................................................................86Caso de prueba Eliminar Proyecto..............................................................................87Caso de prueba Crear Nivel........................................................................................87Caso de prueba Editar Nivel.......................................................................................87Caso de prueba Eliminar Nivel...................................................................................88Caso de prueba Crear Actividad.................................................................................88Caso de prueba Editar Actividad.................................................................................88Caso de prueba Eliminar Actividad............................................................................89Caso de prueba Crear Tarea........................................................................................89Caso de prueba Editar Tarea.......................................................................................90Caso de prueba Eliminar Tarea...................................................................................90Caso de prueba Crear Recurso....................................................................................91Caso de prueba Editar Recurso...................................................................................91Caso de prueba Eliminar Recurso...............................................................................913.4.2 Pruebas de Integración.......................................................................................923.4.3 Pruebas de Estrés...............................................................................................94Pruebas de Estrés con Apache Bench.........................................................................94Procedimiento de la Prueba de Estrés.........................................................................943.5 Mantenimiento......................................................................................................99 CAPÍTULO 4...........................................................................................................100

CONCLUSIONES Y RECOMENDACIONES........................................................100

4.1 Conclusiones.......................................................................................................1004.2 Recomendaciones...............................................................................................100GLOSARIO DE TERMINOS...................................................................................101

BIBLIOGRÁFIA......................................................................................................104

Referencias Bibliográficas........................................................................................104

Referencias Web.......................................................................................................104

ANEXOS..................................................................................................................105

ANEXO A – MANUAL DE USUARIO...................................................................106

Objetivo.....................................................................................................................106Requerimientos.........................................................................................................106Ingreso al sistema......................................................................................................106Opciones generales para todos los Perfiles...............................................................108Opción Nuevo...........................................................................................................109Opción Eliminar........................................................................................................110Opción Editar............................................................................................................110Módulo de Reportes..................................................................................................111

xiv

Reportes en Pdf.........................................................................................................112Reportes en Word......................................................................................................112Reportes en formato Excel........................................................................................113Opciones Perfil Administrador..................................................................................114Usuarios....................................................................................................................114Organización.............................................................................................................115Proyectos...................................................................................................................116Estados......................................................................................................................116Etapas........................................................................................................................117Actividades................................................................................................................117Tareas........................................................................................................................118Recursos....................................................................................................................119ANEXO B – MANUAL DE TÉCNICO...................................................................120

Objetivo.....................................................................................................................120Herramientas Empleadas..........................................................................................120Instalación del Ambiente de Software......................................................................120Instalación de PHP, Apache y MySQL en GNU/Linux............................................120Instalación de PHP....................................................................................................120Instalación de Apache...............................................................................................121Instalación de MySQL..............................................................................................121Instalación de phpMyAdmin.....................................................................................121Instalación de PHP, Apache y MySQL en Windows................................................122Acceder al panel de Control de XAMPP..................................................................129El panel de control de XAMPP y el cortafuegos de Windows.................................131Instalación de Composer...........................................................................................138Instalación de Composer en GNU/Linux..................................................................138Instalar Composer globalmente................................................................................138Instalar Composer en Windows................................................................................138Instalación de LARAVEL.........................................................................................140Restauración de ILALO V. 1.....................................................................................143Levantamiento de la base de datos............................................................................143Instalación de Componentes Externos......................................................................145Configuración de Zizaco/Confide.............................................................................145Creación del Modelo User........................................................................................146Configuración de Zizaco/Entrust..............................................................................147Creación del Modelo Roles.......................................................................................148Configuración de Dompdf........................................................................................148Configuraciones Varias.............................................................................................149Restauración de los archivos del proyecto................................................................150ANEXO C – DICCIONARIO DE DATOS..............................................................152

Objetivo.....................................................................................................................152Tablas del Sistemas...................................................................................................152activities....................................................................................................................152Índices.......................................................................................................................153assigned_roles...........................................................................................................153Índices.......................................................................................................................153categories..................................................................................................................154

xv

Índices.......................................................................................................................154levels.........................................................................................................................154Índices.......................................................................................................................154organizations.............................................................................................................155Índices.......................................................................................................................155password_reminders.................................................................................................155permission_role.........................................................................................................156Índices.......................................................................................................................156permissions...............................................................................................................156Índices.......................................................................................................................157projects......................................................................................................................157Índices.......................................................................................................................158resources...................................................................................................................158Índices.......................................................................................................................158roles...........................................................................................................................159Índices.......................................................................................................................159tasks...........................................................................................................................160Índices.......................................................................................................................160users..........................................................................................................................161Índices.......................................................................................................................161

LISTA DE CUADROS

Tabla1-1:Características Lenguajes de Programación Web..........................................4Tabla1-2:Motores de Bases de Datos............................................................................5Tabla1-3:Frameworks para PHP...................................................................................6Tabla1-4:Servidores web............................................................................................10Tabla2-1:Navegadores-web-enero-julio-2014............................................................31Tabla3-1:Sistemas Operativos y Navegadores Soportados Oficialmente por Bootstrap3...................................................................................................................77Tabla3-2:Prueba unitaria crear usuario.......................................................................83Tabla3-3:Prueba unitaria confirmación de usuario.....................................................83Tabla3-4:Prueba unitaria creación de organización....................................................84Tabla3-5:Prueba unitaria edición de la organización..................................................85Tabla3-6:Prueba unitaria eliminación de la organización...........................................85Tabla3-7:Prueba unitaria creación del proyecto..........................................................86Tabla3-8:Prueba unitaria edición del proyecto...........................................................86Tabla3-9:Prueba unitaria eliminación del proyecto....................................................87Tabla3-10:Prueba unitaria creación del nivel..............................................................87Tabla3-11:Prueba unitaria edición del nivel...............................................................87Tabla3-12:Prueba unitaria eliminación del nivel........................................................88Tabla3-13:Prueba unitaria creación de la actividad....................................................88Tabla3-14:Prueba unitaria edición de la actividad......................................................88Tabla3-15:Prueba unitaria eliminación de la actividad...............................................89Tabla3-16:Prueba unitaria creación de la tarea...........................................................89Tabla3-17:Prueba unitaria edición de la tarea.............................................................90Tabla3-18:Prueba unitaria eliminación de la tarea......................................................90

xvi

Tabla3-19:Prueba unitaria creación del recurso..........................................................91Tabla3-20:Prueba unitaria edición del recurso............................................................91Tabla3-21:Prueba unitaria eliminación del recurso....................................................91Tabla3-22:Pruebas de Integración...............................................................................93TablaC-1:Tabla activities..........................................................................................152TablaC-2:Índices de la tabla activities......................................................................153TablaC-3:Tabla assigned_roles.................................................................................153TablaC-4:Índices d e la tabla aassigned_roles..........................................................153TablaC-5:Tabla categories.........................................................................................154TablaC-6:Índices d ella tabla categories...................................................................154TablaC-7:Tabla levels...............................................................................................154TablaC-8:Índices de la tabla levels...........................................................................154TablaC-9:Tabla organizations...................................................................................155TablaC-10:Índices de la tabla organizations.............................................................155TablaC-11:Tabla password_reminders......................................................................155TablaC-12:Tabla permission_role.............................................................................156TablaC-13:Índices de la tabla permission_role.........................................................156TablaC-14:Tabla permissions....................................................................................156TablaC-15:Índices de latabla permissions.................................................................157TablaC-16:Tabla projects..........................................................................................157TablaC-17:Índices de la tabla projects......................................................................158TablaC-18:Tabla resources........................................................................................158TablaC-19:Índices de la tabla resources....................................................................158TablaC-20:Tabla roles...............................................................................................159TablaC-21:Índices de la tabla roles...........................................................................159TablaC-22:Tabla tasks...............................................................................................160TablaC-23:Índices de la tabla tasks...........................................................................160TablaC-24:Tabla users...............................................................................................161TablaC-25:Índices de la tabla users..........................................................................161

LISTA DE GRÁFICOS

Gráfico 1-1: Diagrama de lineal de la Tabla 1-1.........................................................11Gráfico 2-1: Diagrama de barras de la Tabla 2-1........................................................31

LISTA DE FIGURAS

Figura 1-1: Logotipos de proyectos de código abierto desarrollados en PHP y MySQL.........................................................................................................................8Figura 1-2: Indicadores de hostnames y sitios activos................................................10Figura 2-1: Ciclo de vida de un proyecto....................................................................15Figura 2-2: Objetivos de un Proyecto.........................................................................16Figura 2-3: Etapas de la Descripción de un Proyecto.................................................18Figura 2-4: Esquema de los objetivos y etapas de un Proyecto..................................18Figura 2-5: Diagrama de Gantt de un Proyecto..........................................................20Figura 2-6: Funciones en la Administración de Proyectos.........................................22

xvii

Figura 2-7: Arquitectura tres capas.............................................................................28Figura 2-8: Modelo-Vista-Controlador (MVC)..........................................................29Figura 3-1: Modelo en Cascada..................................................................................32Figura 3-2: Caso de uso del Sistema...........................................................................44Figura 3-3: Caso de uso Gestión de Usuarios.............................................................45Figura 3-4: Caso de uso Gestión de Organizaciones..................................................45Figura 3-5: Caso de uso Gestión de Proyectos...........................................................46Figura 3-6: Caso de uso Gestión de Actividades........................................................46Figura 3-7: Caso de uso Gestión de Etapas................................................................47Figura 3-8: Caso de uso Gestión de Tareas.................................................................47Figura 3-9: Caso de uso Gestión de Tareas.................................................................48Figura 3-10: Maquetación del Index...........................................................................49Figura 3-11: Maquetación del Login..........................................................................49Figura 3-12: Maquetación del Sesión Administrador.................................................50Figura 3-13: Maquetación del Sesión Administrador-Proyectos-Nuevo....................50Figura 3-14: Maquetación del Sesión Administrador-Proyectos-Listado...................51Figura 3-15: Maquetación del Sesión Administrador-Usuarios-Nuevo......................52Figura 3-16: Maquetación del Sesión Administrador-Usuarios-Listado....................53Figura 3-17: Maquetación del Sesión Administrador-Reportes..................................53Figura 3-18: Maquetación del Sesión Usuario............................................................54Figura 3-19: Maquetación del Sesión Usuario-Proyectos-Listado.............................54Figura 3-20: Maquetación del Sesión Usuario-Proyectos-Reportes...........................55Figura 3-21: Diagrama de robustez crear usuario.......................................................56Figura 3-22: Diagrama de robustez activar usuario....................................................56Figura 3-23: Diagrama de robustez crear organización..............................................57Figura 3-24: Diagrama de robustez editar organización.............................................57Figura 3-25: Diagrama de robustez eliminar organización.........................................58Figura 3-26: Diagrama de robustez crear proyecto.....................................................58Figura 3-27: Diagrama de robustez editar proyecto...................................................59Figura 3-28: Diagrama de robustez eliminar proyecto...............................................59Figura 3-29: Diagrama de robustez crear actividad....................................................60Figura 3-30: Diagrama de robustez editar actividad...................................................60Figura 3-31: Diagrama de robustez eliminar actividad...............................................61Figura 3-32: Diagrama de robustez crear etapa..........................................................61Figura 3-33: Diagrama de robustez editar etapa.........................................................62Figura 3-34: Diagrama de robustez eliminar etapa.....................................................62Figura 3-35: Diagrama de robustez crear tarea...........................................................63Figura 3-36: Diagrama de robustez editar tarea..........................................................63Figura 3-37: Diagrama de robustez eliminar tarea.....................................................64Figura 3-38: Diagrama de robustez crear recurso.......................................................64Figura 3-39: Diagrama de robustez editar recurso......................................................65Figura 3-40: Diagrama de robustez eliminar recurso.................................................66Figura 3-41: Modelo entidad-relación........................................................................67Figura 3-42: Estructura de twitter bootstrap...............................................................76Figura 3-43: Estructura de una clase en el modelo.....................................................78Figura 3-44: Estructura de una clase en la vista.........................................................79Figura 3-45: Estructura de la plantilla master.blade.php............................................79Figura 3-46: Estructura de una clase en el controlador...............................................80

xviii

Figura 3-47: Ejemplos de rutas en Laravel.................................................................81Figura 3-48: Arquitectura de funcionamiento en Laravel...........................................81Figura 3-49: Cookie inicio de Sesión..........................................................................95Figura 3-50: Número máximo de peticiones al Servidor............................................96Figura 3-51: Gráfico Peticiones y Conexiones vs Tiempos de Respuesta..................98Figura A-1: Dirección de página de Inicio de la aplicación......................................106Figura A-2: Página de Inicio de la aplicación...........................................................106Figura A-3: Inicio sesión de la aplicación.................................................................107Figura A-4: Error Inicio sesión de la aplicación.......................................................107Figura A-5: Correo electrónico para recuperación de contraseña.............................108Figura A-6: Botón nuevo registro.............................................................................108Figura A-7: Botones editar y eliminar registro.........................................................108Figura A-8: Botones guardar y cancelar edición del registro...................................109Figura A-9: Ejemplo de un formulario para un nuevo registro.................................109Figura A-10: Ejemplo de la ventana de confirmación para eliminar un registro......110Figura A-11: Ejemplo de un formulario para editar un registro................................111Figura A-12: Panel común para el acceso a los reportes...........................................111Figura A-13: Panel para la generación de reportes en formato pdf..........................112Figura A-14: Panel para la generación de reportes en formato de documento de word....................................................................................................................................113Figura A-15: Panel para la generación de reportes en formato de documento de excel....................................................................................................................................113Figura A-16: Panel de sesión del perfil de administrador.........................................114Figura A-17: Listado de los usuarios del sistema con las opciones de CRUD.........114Figura A-18: Lista de la organización del sistema....................................................115Figura A-19: Panel para la edición de la organización del sistema...........................115Figura A-20: Listado de los proyectos del sistema con las opciones de CRUD.......116Figura A-21: Listado de los estados del proyecto con las opciones de CRUD.........117Figura A-22: Listado de las etapas del proyecto con las opciones de CRUD...........117Figura A-23: Listado de las actividades del proyecto con las opciones de CRUD...118Figura A-24: Listado de las tareas del proyecto con las opciones de CRUD...........118Figura A-25: Listado de los recursos del proyecto con las opciones de CRUD.......119Figura B-1: Página de configuración de PHP...........................................................122Figura B-2: Alerta de antivirus instalado..................................................................123Figura B-3: Alerta de cuentas de usuario y permisos de instalación........................123Figura B-4: Inicio de asistente de instalación de XAMPP........................................124Figura B-5: Selección de componentes de XAMPP a ser instalados........................125Figura B-6: Selección del directorio de instalación de XAMPP...............................126Figura B-7: Inicio de instalación de XAMPP...........................................................127Figura B-8: Copia de los archivos de XAMPP al directorio de instalación.............128Figura B-9: Finalización de la instalación de XAMPP.............................................129Figura B-10: Panel de Control de XAMPP...............................................................130Figura B-11: Cierre del Panel de Control de XAMPP..............................................130Figura B-12: Minimización del Panel de Control de XAMPP..................................131Figura B-13: Área de notificaciones de los servicios de XAMPP............................131Figura B-14: Inicio de los servicios de XAMPP.......................................................132Figura B-15: Desbloqueo del servicio web de Apache en el cortafuegos.................133Figura B-16: Detención de servicios en XAMPP.....................................................134

xix

Figura B-17: Reglas añadidas en el cortafuegos.......................................................134Figura B-18: Página de inicio de XAMPP................................................................135Figura B-19: Panel de control web de XAMPP........................................................136Figura B-20: Chequeo de seguridad web de XAMPP...............................................136Figura B-21: Servicios inseguros de XAMPP...........................................................137Figura B-22: Enlace para corrección de vulnerabilidades de XAMPP.....................137Figura B-23: Establecimiento de contraseña del usuario root de Mysql..................137Figura B-24: Inicio de instalador de composer para windows.................................139Figura B-25: Inicio de instalador de consola git para windows................................140Figura B-26: Instalación de un nuevo proyecto Laravel vía Composer....................141Figura B-27: Estructura de carpetas y archivos de un nuevo proyecto con Laravel.142Figura B-28: Página de inicio de Laravel.................................................................142Figura B-29: Creación de una nueva base de datos con PhpMyAdmin...................143Figura B-30: Restauración de la base de datos ILALO............................................144Figura B-31: Estructura de la base de datos ILALO.................................................144Figura B-32: Carpetas y archivos del sistema ILALO V1........................................150Figura B-33: Archivos js, estilos e imágenes del sistema ILALO V1......................151Figura C-1: Tablas del sistema ILALO V1...............................................................152

xx

RESUMEN

SISTEMA DE SEGUIMIENTO DE PROYECTOS, BASADO EN

ACTIVIDADES TIPO ILALO V. 1

El presente proyecto de titulación trata sobre el desarrollo de un sistema web para la

Junta General de usuarios del sistema de riego "EL PISQUE", JGUSRP. En el

desarrollo de este sistema se emplea la metodología de desarrollo en Cascada,

utilizando en patrón Modelo-Vista-Controlador (MVC).

Este sistema permite automatizar la monitorización de los proyectos que posee la

junta, generando los diagramas de gantt de los proyectos ingresados en él mismo así

como poder visualizar los distintos recursos, etapas, tareas entre otros

DESCRIPTORES:

METODOLOGÍA CASCADA/ PROYECTOS/ SISTEMA WEB/ SISTEMA DE

RIEGO "EL PISQUE"/ JGUSRP/ GANTT

xxi

ABSTRACT

SYSTEM OF PROJECT FOLLOW-UP, BASED ON ACTIVITIES TYPE

ILALO V. 1

The present project of titulation treats on the development of a web system for the

users' General Meeting of the system of irrigation "EL PISQUE ", JGUSRP. In the

development of this system the methodology of development is used in Waterfall,

used in Model-View -Controller ( MVC ).

This system allows to automate the monitoring of the projects that possesses the

meeting, generating the graphs of gantt of the projects joined him(it) itself as well as

to be able to visualize the different resources, stages, tasks between(among) others

DESCRIPTORS :

METHODOLOGY WATERFALL / PROJECTS / WEB SYSTEM/ SISTEMA DE

RIEGO "EL PISQUE"/ JGUSRP/ GANTT

xxii

xxiii

xxiv

CAPÍTULO 1

1. PRESENTACIÓN DEL PROBLEMA

1.1 Planteamiento del Problema

En los tiempos actuales donde la tecnología se ha convertido en parte de nuestras

vidas, siendo cada vez más cambiante, moderna y novedosa. El poder manejar de una

manera correcta la información, en constante crecimiento, dentro de cualquier tipo de

organización, empresa, entidad pública o privada, entre otras. Es vital ya que al no

poseer un sistema que controle todo este flujo hace que se pierda tiempo y dinero.

La Junta General de usuarios del sistema de riego "EL PISQUE", no posee ningún

tipo de sistema informático que controle los proyectos administrativos que tienen en

ejecución, ya que siendo un organismo que busca el bienestar social de su

comunidad, va a manejar una gran cantidad de estos.

Todos estos proyectos pueden ser públicos o privados tales como:

• Adjudicaciones.

• Programas comunitarios.

• Talleres.

• Entre otros proyectos comunitarios.

Actualmente todas estas actividades se controlan a mano, haciendo muy difícil poder

monitorizar el estado en el que se encuentran, el no poseer un sistema de seguimiento

de proyectos dentro de La Junta General de usuarios del sistema de riego "EL

PISQUE", ha tenido grandes inconvenientes como:

• Falta de un sistema informático.

• No llevar un control sobre los proyectos.

• No poder dar a conocer el estado del proyecto a la comunidad.

Todos estos problemas que posee la junta, serán solucionados con el desarrollo de

ILALO V. 1. El sistema poseerá las siguientes funcionalidades:

1

• Dispondrá de un diagrama de Gantt del proyecto en tiempo real.

• Administración de los ítemes del proyecto.

• Reportes de las distintas etapas del proyecto.

1.2 Formulación del Problema

Todos los proyectos en la forma actual en la que se manejan en La Junta General de

usuarios del sistema de riego "EL PISQUE", hace muy difícil el poder controlar todo

este flujo de datos. Por todo lo anteriormente mencionado al implementar un sistema

de seguimiento de proyectos basado en actividades tipo ILALO V. 1, podrá optimizar

los recursos que posee, controlando de mejor manera el flujo de sus proyectos,

beneficiando a toda la comunidad a la que pertenecen.

1.3 Interrogantes de la Investigación

El desarrollo de esta tesis nace de solventar las necesidades de La Junta General de

usuarios del sistema de riego "EL PISQUE", mediante una observación directa de sus

problemas que se formula a través de las siguientes interrogantes.

• ¿Por qué implementar un sistema de seguimiento de proyectos en el La Junta

General de usuarios del sistema de riego "EL PISQUE"?

• ¿Quién o quiénes se beneficiaran con la implantación del sistema de

seguimiento de proyectos ILALO V. 1?

1.4 Objetivos de la Investigación

1.4.1 Objetivo General

Desarrollar un sistema informático centralizado que ayude a la monitorización de los

distintos proyectos de la JGUSRP

1.4.2 Objetivos Específicos

• Mejorar el seguimiento, desarrollo y ejecución de los proyectos seleccionados

por la JGUSRP.

• Apoyar a la coordinación de las distintas estructuras de la junta, encargadas

de los proyectos, mediante reportes de los proyectos y diagramas de Gantt.

2

• Dar seguimiento a las tareas y evaluar su cumplimiento en los plazos fijados,

para su ejecución.

1.5 Alcance

Los alcances del proyecto están planteados según los objetivos que se cumplirán

dentro de la investigación, los podemos clasificar en:

• Arquitectura de Desarrollo.

1.5.1 Arquitectura de Desarrollo

Como él sistema será un sistema que se ejecutara en una ambiente web, vamos a

realizar un estudio comparativo de los distintos elementos de la arquitectura del

sistema que podríamos usar, con las reglas del negocio y experiencia propia tomar la

mejor opción.

Comparación entre Lenguajes de Programación

En la Tabla 1-1 se muestra los resultados de un estudio comparativo de los

principales lenguajes de programación para del desarrollo de aplicaciones web.

3

Característica

ASP .NET PHP Java Python Ruby

Sintaxis de lenguaje base

VB y C# C / C++ C/ C++ C/ C++ Perl, Smalltalk, Eiffel, Ada, y Lisp

Orientado a objetos

Si Si Si Si Si

Sistemas operativos

Windows y Linux pero usando el proyecto Mono [1] ( pero solo con C# )

Multiplataforma

Multiplataforma

Multiplataforma

Multiplataforma

Servidor IIS o Mono Apache, compilador propio

Apache, Tomcat y Glassfish

Apache, compilador propio

Apache, compilador propio

Empresa Microsoft y Xamarin ( para Mono)

The PHP Group ( open source)

Oracle (opensource)

Python software foundation (open source)

Grupo Ruby (open source)

Base de datos (principalmente)

MsSQLServer

Mysql Oracle, MySQL

MySQL y PostgreSQL

MySQL y PostgreSQL

Licencia Licencia PHP

GNU GPL / Java Community Process

BSD PSFL

Experiencia Personal conél Lenguaje

1 9 5 0 0

Tabla 1-1: Características Lenguajes de Programación WebFuente: Tesista. Autor: Tesista.

[1] Proyecto de Código abierto el cual permite ejecutar tecnología .Net en sistemas GNU/LINUXhttp://www.mono-project.com/

4

Después de analizar las distintas opciones y sus respectivas características, el

lenguaje a utilizarse para el desarrollo sera PHP.

Comparación entre Motores de Bases de Datos

En la Tabla 1-2 se muestra los resultados de un estudio comparativo de los

principales motores de bases de datos relacionales.

Características MySQL SQL-Server ORACLE

Fabricante Oracle (tras lacompra de SunMicroSystems) [2]

Microsoft Oracle Corporation

Numero de

registros

soportados

50 millones de

registros.

500 millones deregistros

450 mil millones de

registros

Sistemas operativos Multiplataforma Multiplataforma Windows

Conectividad conPHP

Sí Sí Sí

Ventajas de

seguridad

Usa cuentas de

usuario,contraseñas en dos

fases de lacomunicación,Cuenta usuario root

El DMF(DeclarativeManagementFramework)garantiza laaplicación

de políticas deseguridad en losservicios de datospara toda laorganización.

Usuarios tienenacceso a unesquema de objetosespecífico y quéacciones les estápermitidodesarrollar sobreesos objetos

Licencia GPL o UsoComercial

Privativa Privativa

Tabla 1-2: Motores de Bases de Datos.Fuente: Tesista. Autor: Tesista.

El motor de Base de Datos escogido es MySQL por la licencia GPL que posee y

ademas tiene un alto nivel de compatibilidad con PHP.

[2] Fue una empresa informática la cual creo el lenguaje de programación java fue comprada porOracle Corporation el 20 de abril de 2009

5

Comparación entre Frameworks PHP

En la Tabla 1-3 se muestra los resultados de un estudio comparativo de los

principales frameworks para PHP.

Características Cake PHP Laravel Zend FW

Incorporación del patrón Modelo Vista Controlador orientado a objetos.

X X X

Operaciones CRUD(Create, Retrieve, Update y Delete) asociadas a patrón Active Record.

X X

Mapeado de objetosa bases de datos relacionales (ORM).

X X

Independiente del manejador de base de datos.

X X X

Uso de plantillas enPHP.

X X X

Manejo propio de sesiones por usuarios.

X X X

Almacenamiento encaché de las vistas.

X X

Almacenamiento encaché de configuración de las aplicaciones.

X

Integración con otras herramientas através de plugins.

X X

Licencias libres. X11 X11 BSD

Tabla 1-3: Frameworks para PHP.Fuente: Tesista. Autor: Tesista.

6

De acuerdo con el análisis realizado en los puntos anteriores el ambiente de

desarrollo para la aplicación está constituido por:

• Sistema Multiplataforma.

• Sistema Gestor de Base de Datos MySQL.

• Lenguaje de Programación PHP.

• Arquitectura de software: Modelo Vista Controlador (MVC), implementados

a través del framework LARAVEL.

• Servidor Web Apache.

Sistema Multiplataforma

Sé eligió que la aplicación sea multiplataforma, de esta manera podrá ser instalado

bajo cualquiera de los principales sistemas operativos: GNU/Linux, Windows y Mac

OS X.

Ademas soporta las distintas arquitecturas que posen los sistemas operativos antes

mencionados tales como:

• Linux (x86, x86-64, PowerPC, y otras arquitecturas)

• Mac OS X (x86, x86-64)

• Microsoft Windows (x86, x86-64, ARM)

Vale mencionar que el sistema no tendrá problemas si se le instala en cualquier

versión de sistema operativo de los antes mencionados y de igual manera

cualesquiera sea la arquitectura que este tenga.

Sistema Gestor de Base de Datos MySQL

Sé optó como sistema gestor de base de datos a MySQL, puesto que desde hace

varios años el desarrollo de aplicaciones web han ido de la mano estas dos

herramientas PHP-MySQL, por el gran acoplamiento que tienen entre sí, prueba de

esto tenemos se han desarrollado grandes proyectos de código abierto como:

7

• Joomla

• Drupal

• WordPress

• Moodle, entre otros.

Esto se debe principalmente a que la conexión PHP-MySQL, tiene mejor soporte que

con el resto de motores de base de datos con una extensión completamente reescrita

por PHP esto implica una simplicidad en la generación de código, fácil instalación de

sus herramientas de desarrollo y documentación en todos los idiomas.

En la Figura 1-1 se observa los logotipos de los proyectos antes señalados.

Lenguaje de Programación PHP

El lenguaje de programación escogido fue PHP, a demás de ser un lenguaje de

programación de código abierto y uno de los más usados para el desarrollo de

aplicaciones web bajo la arquitectura cliente-servidor, otros motivos de peso para su

elección fueron:

8

Figura 1-1: Logotipos de proyectos de código abierto desarrollados en PHP y MySQL.Fuente: http://www.dharaminfosys.com/cms/ [Consultado el 01 de septiembre de 2013]Autor: Fuente.

• Es el lenguaje que utiliza el framework LARAVEL.

• Puede ser instalado y usado en la mayoría de los servidores web:

▪ Apache

▪ Nginx

▪ Internet Information Services (IIS)

▪ Cherokee

• Es un lenguaje multiplataforma y multiarquitectura

• Posee una gran cantidad de documentación y una gran comunidad de

desarrolladores a nivel mundial.

Arquitectura de software: Modelo Vista Controlador (MVC), implementados a

través del framework LARAVEL

Se eligió él MVC, ya que este patrón nos permite dividir la lógica de negocio del

diseño, los datos y la interfaz de usuario haciendo el desarrollo del proyecto más

escalable.

Puesto que LARAVEL es un framework escrito en PHP, por ende nos ayuda en el

desarrollo de aplicaciones en dicho lenguaje e implementa él MVC, fue el más

idóneo para este proyecto de tesis.

Servidor Web Apache

Apache es el servidor web más usado a nivel mundial con una cuota de mercado de

aproximadamente el 50% del total de los sitios activos alojados alrededor del mundo

(Estadísticas históricas y de uso diario proporcionadas por Nentre otrasraft[3]).

En el Figura 1-2 se puede ver el numero de sitos hostnames registrados y en el

mundo.

9

En la Tabla 1-4 se puede observar los datos de los servidores web en los meses de

julio y agosto del 2013.

Servidor julio 2013 Porcentaje(%)

agosto 2013 Porcentaje(%)

Cambio

Apache 364696792 52.19 336622050 46.96 -5.23

Microsoft 137351211 19.65 163098703 22.75 3.1

nginx 95017255 13.60 104311568 14.55 0.96

Google 27406059 3.92 30550914 4.26 0.34

Tabla 1-4: Servidores web julio-agosto 2013.Fuente: h ttp://news.nentre otrasraft.com/archives/2013/08/09/august-2013-web-server-survey.html [Consultado el 01 de septiembre de 2013]Autor: Fuente.

10

Figura 1-2: Indicadores de hostnames y sitios activos.Fuente: http://news.nentre otrasraft.com/archives/2013/08/09/august-2013-web-server-survey.html [Consultado el 01 de septiembre de 2013]Autor: Fuente.

Apache es un servidor robusto y documentado para el desarrollo de aplicaciones

web, ya que es un servidor multiplataforma y multiarquitectura, a demás es uno de

los requisitos que necesita LARAVEL para su instalación por ende uno de los que

mejor compatibilidad e integración tiene con PHP.

La interfaz del sistema ILALO V. 1 estará diseñada de acuerdo a los patrones de

programación usados por el framework LARAVEL. Y se usaran en el desarrollo los

estándares de programación web recomendados por la W3C[4].

[3] Analiza la cuota de mercado de servidores y alojamiento web http://www.nentre otrasraft.com/[Consultado el 06 de abril del 2013][4] World Wide Web Consortium, abreviado W3C, es una comunidad internacional que desarrollaestándares para la web. http://www.w3.org/ [Consultado el 06 de abril del 2013]

11

Gráfico 1-1: Diagrama de lineal de la Tabla 1-4.Fuente: Tabla 1-4. Autor: Tesista.

Apache Microsoft nginx Google-50000000

0

50000000

100000000

150000000

200000000

250000000

300000000

350000000

400000000

Servidores Web julio-agosto 2013

1.6 Limitaciones

La Junta General de usuarios del sistema de riego "EL PISQUE", es un organismo

elegido por medio de elecciones populares a través de un tribunal electoral. Así que

el desarrollo de la tesis debe realizarse en el tiempo de gestión de la actual

administración y con los requerimientos que se tomaron dentro de esta para el

desarrollo de ILALO V. 1.

En el Capítulo 2, se detalla la metodología general de un proyecto para el desarrollo

del mismo, pero el sistema sera desarrollado tal cual los requerimientos que la junta

lo solicite, y no se tomara en cuenta si los proyectos siguen una metodología o no.

1.7 Justificación e Importancia

Con todos los argumentos técnicos y organizacionales que señalamos anteriormente,

observamos que con la implementación de ILALO V. 1 se incluirán actividades, estas

a su vez involucraran al personal y diferentes departamentos del La Junta General de

usuarios del sistema de riego "EL PISQUE", que requieren de mucha coordinación

entre si.

Las ventajas son muchas al desarrollar dicho sistema, el directorio de la Junta, podrá

tener un sistema web que facilitara el control y seguimiento de los proyectos. ILALO

V. 1 se encargará de que el usuario vaya directamente al proyecto asignado, verifique

sus tareas de forma organizada, y de una manera intuitiva.

12

CAPÍTULO 2

2. Metodología de Proyectos

2.1 Antecedentes

Este capítulo se profundizaran los conceptos teóricos en cuanto a la parte

metodológica de los proyectos y de la arquitectura del sistema ILALO V. 1, a parte

de todo lo que ya se mencionó en el Capítulo 1.

Implementar un sistema web que nos ayude con el control de una organización no es

una tarea sencilla puesto que debemos tener mucho conocimiento de los requisitos

específicos, procesos, estructura, en otras palabras debemos conocer las reglas del

negocio.

2.2 Metodología de Investigación

El presente proyecto de titulación se realizó utilizando las siguientes modalidades en

la investigación:

Investigación Bibliográfica.- Es aquella, que se fundamenta en la recopilación de

información se realiza principalmente consultando fuentes como: libros, internet,

artículos de revistas, entre otros.

Investigación de Campo.- Es aquella en cual la investigación consiste en el

levantamiento de los datos en el lugar donde se detecta el problema, el análisis y

toma de requerimientos se lo realizó en la JGUSRP.

2.2.1 Proyectos

¿Qué es un proyecto?

Un proyecto es la planificación de un conjunto de actividades que están programadas

y que tienen como meta alcanzar a los objetivos específicos con un presupuesto y

tiempo previamente determinados. La gestión de proyectos es la aplicación de

conocimientos, habilidades, herramientas y técnicas a las actividades del mismo para

satisfacer los requisitos que este tiene.

13

Tipos de Proyectos

La Junta General de usuarios del sistema de riego "EL PISQUE", va a manejar un sin

fin número de proyectos y de distinta índole, ILALO V. 1, esta pensado para soportar

el seguimiento de estos a través de las actividades tipo, que son en si las actividades

que tienen en general todo tipo de proyectos.

Proyectos Agropecuarios

Son proyectos abarcan toda el área de la producción animal y vegetal, se tienen

proyectos agrícolas ya sea para cultivos de larga vida como el café, o de ciclo corto

como el algodón. Mientras que los proyectos de origen animal se refieren a la

producción de leche, huevos, carne, entre otras.

Proyectos Industriales

Estos proyectos están conformados por la manufactura, se caracterizan porque

adquieren la materia prima y haciendo uso de la maquinaria logran transformar esta

el producto para el consumo final.

Proyecto de Infraestructura Económica

Están conformados por aquellos recursos que son necesarios para que la actividad

económica aumente o se genere, estamos hablando principalmente de ciertos bienes

y servicios como: servicios básicos, transporte, construcción, entre otros.

Proyectos de Infraestructura Social

El objetivo principal de este tipo de proyectos es satisfacer las necesidades básicas de

las comunidades como: salud, educación, abastecimiento de agua, vivienda, entre

otras.

Proyectos de Servicio

Son aquellos proyectos que prestan servicios profesionales ya sean: consultorías,

investigaciones técnicas, auditorías, entre otras.

14

2.2.2 Ciclo de un proyecto

El ciclo de vida de un proyecto, va a depender del tipo de proyecto que este sea, pero

en general se lo puede considerar en cuatro fases como se ilustra en la Figura 2-1.

2.2.2.1 Identificación

Corresponde a la fase inicial de diagnóstico, esta debería hacerse tomando en cuenta

el máximo de variables que intervienen en función del contexto global.

El objetivo central es descubrir las características fundamentales del proyecto, no

debería ser una tarea extremadamente larga, minuciosa y menos teórica, hay que

hacer un diagnóstico operativo y práctico.

2.2.2.2 Formulación

El proyecto se definirá en función de los problemas, necesidades o demandas que

detectamos en nuestro diagnóstico.

15

Figura 2-1: Ciclo de vida de un proyecto.

Fuente: http://www.gestrategica.org/guias/cooperacion/anexo2.html [Consultado el 06 de septiembre de 2013]

Autor: Fuente.

Tomada la decisión respecto de la situación del proyecto, se inicia la fase de

formulación del proyecto.

En general, la estructura del proyecto obedece a la necesidad de organizar y orientar

lógicamente las acciones, permitiendo al evaluador contar con la información lo más

completa y precisa posible.

Existe una amplia gama de formatos que han sido desarrollados por diversas

instituciones para la presentación de proyectos. Utilizaremos un formato estándar que

recoge aspectos de unos u otros.

El nombre o título del proyecto

El nombre del proyecto debe reunir las siguientes características:

• Debe ser conciso y expresar de la manera más precisa posible qué es lo que

deseamos o es preciso hacer .

• Debe ser válido durante todo el ciclo de vida del proyecto.

La definición de objetivos

Por lo general, en las metodologías que más se utilizan en nuestro país se identifican

2 tipos de objetivos:

• El objetivo general

• Los objetivos específicos

16

Figura 2-2: Objetivos de un Proyecto.

Fuente: Tesista Autor: Tesista.

Se define solamente un objetivo general en relación directa con el nombre del

proyecto, se trata de un objetivo global, al cual tenemos que llegar con la ejecución

del proyecto.

Los objetivos específicos se refieren a acciones más concretas, necesarias de cumplir

para alcanzar el objetivo general.

Fundamentación o justificación

En esta sección se explica porque es necesario realizar precisamente ese proyecto y

no otro, porque tal alternativa según nuestra evaluación.

Para la redacción de la justificación del proyecto resultará de gran ayuda nuestro

diagnóstico inicial.

Elementos que concurren en la justificación:

• Datos estadísticos, diagnósticos históricos, documentos, entre otros.

• Resultados del diagnóstico realizado por nosotros

• Necesidades detectadas

• Fortalezas y oportunidades

Descripción del proyecto

La descripción del proyecto sigue el ordenamiento lógico que orientan los objetivos

específicos que se han definido.

Hay que hacer una descripción detallada es recomendable dividir el proyecto en

etapas de trabajo como se visualiza en la Figura 2-3.

17

El esquema del ordenamiento lógico de los objetivos y las acciones separadas en

etapas de trabajo se visualiza en la Figura 2-4.

18

Figura 2-3: Etapas de la Descripción de un Proyecto.

Fuente: Tesista Autor: Tesista.

Figura 2-4: Esquema de los objetivos y etapas de un Proyecto.

Fuente: Tesista Autor: Tesista.

Etapa I

Esta etapa puede ser presentada así:

• Se realizarán reuniones de coordinación por parte del equipo de proyecto

• Se acondicionará una sala de reuniones.

• Se tomaran las acciones iniciales de los proyectos.

Etapa II

Es el cuerpo central de actividades del proyecto se puede generalizar como:

• Convocatoria a los actores que participaran en él proyecto.

• Se definirán los responsables de las actividades y tareas.

• Se elaborara un informe de avance del proyecto.

Es conveniente incorporar actividades de evaluación, tales como la realización de

encuestas, informes de trabajo, entre otros; conforme se vayan cumpliendo los

objetivos específicos.

Etapa III

En esta etapa se realizan las actividades finales o de cierre del proyecto como:

• Realización de la muestra final .

• Realización de una encuesta de evaluación por parte de los implicados.

• Elaboración del Informe Final de proyecto.

• Entrega de resultados del proyecto.

La matriz de actividades o diagrama Gantt

Es uno de los recursos metodológicos gráficos más utilizados para la organización de

las actividades que tiene un proyecto. Es una matriz de doble entrada en donde se

identifican las actividades y su realización cronológica.

19

El presupuesto

El presupuesto es el recurso monetario de todos los gastos necesarios para la

ejecución del proyecto, por lo genera, se identifican 3 tipos de costos:

Inversión

Son los costos destinados a la compra de bienes que necesariamente se requieren

para ejecutar el proyecto tales como: equipamiento, infraestructura, entre otros. Se

realizan solamente una vez por cada ítem durante todo el ciclo de vida del proyecto.

Operación

En este ítem se incluyen insumos y gastos menores que sé deben realizar durante el

transcurso del proyecto: materiales de oficina, materiales de trabajo para los

20

Figura 2-5: Diagrama de Gantt de un Proyecto.

Fuente: Tesista Autor: Tesista.

involucrados, entre otros, en resumen todos aquellos gastos fungibles y que no son

perdurables en el tiempo.

Personal

Son los costos en las remuneraciones a las personas que dedicarán tiempo en la

ejecución del proyecto, podríamos hacer la siguiente distinción:

Los aportes propios

Los aportes propios o aportes de terceros, son todos aquellos recursos de tipo

económico, materiales o humanos que no están dentro del presupuesto del proyecto.

Cuando se trata de aportes que realizarán agentes externos se les puede entender

como auspicios o patrocinios, deberán ser debidamente respaldados con cartas de

compromiso u otros documentos que los certifiquen.

2.2.2.3 Implementación

La fase de implementación o ejecución del proyecto se refiere a la puesta en marcha

de las acciones estipuladas en la planificación. Supone que se han alcanzado los

recursos necesarios luego de que el proyecto ha tenido el visto bueno de una o varias

fuentes de financiamiento. Esta fase puede ser entendida también como de

administración de proyectos.

Funciones en la Administración de Proyectos

Distinguiremos 4 funciones específicas en la administración de proyectos:

21

Cada una de estas funciones se definirán según los objetivos, lineamientos y

actividades que supone la ejecución del proyecto y no necesariamente recaen sobre el

coordinador general, es una tarea de equipo.

El equipo de proyecto puede ser comprendido como una unidad especializada a cargo

de una actividad específica teniendo siempre el fin de cautelar la continuidad de los

procesos más allá del proyecto. El equipo de proyecto debe contar con una estructura

de roles y funciones clara y explícita. Para no caer en errores como: repetición de

funciones, los conflictos interpersonales, el desbalance en las cargas de trabajo, entre

otros.

La asignación de roles es una decisión en equipo, y si bien se trata de una estructura

organizacional, debe ser entendida como sujeta a cambios dependiendo de las

necesidades de la institución y la evolución de las actividades en marcha.

2.2.2.4 Evaluación

La evaluación consiste en hacer un control sobre el proyecto ya sea en el curso o en

la finalización del mismo. Se trata de determinar el cumplimiento de los objetivos, su

grado de realización, demostración de hipótesis si la hubiera, entre otras. Este

22

Figura 2-6: Funciones en la Administración de Proyectos.

Fuente: Tesista Autor: Tesista.

proceso debe ser continuo para poder mejorar de forma progresiva la gestión de los

proyectos.

Debemos distinguir 2 tipos de evaluación:

De procesos

También llamada seguimiento, es una evaluación que se hace durante el transcurso o

desarrollo del proyecto, su propósito es detectar problemas no detectados

originalmente, que inciden en el cumplimiento de las actividades, por ende en el

logro de objetivos, nos dan pautas para realizar cambios si fuera necesario.

De resultados o Evaluación Final

Es aquella que se realiza una vez finalizado el proyecto, determina el o los resultados

de las actividades desarrolladas en función de los objetivos propuestos originalmente.

Para el caso de una evaluación de procesos hablaremos de resultados intermedios o

parciales, y en la evaluación final, de resultados finales también conocidos como

"impacto del proyecto".

El "impacto" se refiere a cambios sustantivos, estables y permanentes que se dan con

la ejecución del proyecto.

La evaluación tanto de procesos como de resultados puede ser de orden cualitativo o

cuantitativo, lo que dependerá de la naturaleza del proyecto que se evalúa.

Por ende un aspecto inicial que es necesario establecer es:

• ¿Qué es preciso evaluar?

Naturaleza de la evaluación

La evaluación del proyecto nos permitirá conocer que tan certera o no fue la

estimación inicial respecto a las acciones que se plantearon como necesarias de

emprender.

La evaluación puede ser entendida como una medición, y como tal se debe plantear:

23

1. Lo que se va a medir

◦ Es decir procesos o resultados

2. Con qué se va a medir

◦ El instrumento que utilizaremos para llevar a cabo la medición puede ser:

encuestas, entrevistas, entre otras; dándonos el carácter cuantitativo o

cualitativo.

3. Cómo se va a medir

◦ La metodología a emplear en la evaluación, este aspecto se definirá en

función del tipo de instrumento a utilizar puede ser: paquetes estadísticos,

diagramas de caja, entre otros.

4. Los criterios y sus grados

◦ Los criterios y sus grados de obtención o no, determinarán en definitiva la

naturaleza de los indicadores.

Los criterios a considerar pueden ser definidos por:

a) Parámetros o exigencias externas

Este tipo de evaluación lo realiza según las normas y criterios definidos por

las instituciones que financian los proyectos, o bien por una organización de

rango superior que actúa en carácter de supervisión (Contraloría del Estado,

Municipio, entre otros)

b) Criterios propios

Es cuando el equipo de proyecto define que se va a evaluar, y en que grado se

considera la obtención o no de los objetivos propuestos.

c) Una combinación de ambos

Criterios en la evaluación

Los criterios en la evaluación del proyecto pueden ser múltiples y diversos y, pueden

ser determinados de manera externa, por lo general se definirán en función de la

naturaleza del proyecto, los objetivos y las acciones.

24

Algunos de los criterios más utilizados en la evaluación de proyectos son:

Población o beneficiarios

Es la cantidad de personas que se benefician directa o indirectamente con la

participación de estas en el proyecto, se la puede caracterizar en términos

demográficos, socio-económicos u otros señalando de que manera y en que grado el

proyecto significa un beneficio. Si se usa este criterio, se recomienda indicar el

número de personas u organizaciones que participaron o bien si estas se crearon con

el proyecto.

Sustentabilidad

Por lo general, se espera que el resultado del proyecto sea un mejoramiento

sustantivo y perdurable en las condiciones que le dieron origen, definieron los

objetivos y sus acciones.

El criterio de sustentabilidad dice relación que tiene la ejecución y finalización del

proyecto en términos de proyección de sus resultados.

Eficacia

Se refiere al grado de cumplimento de los objetivos planteados, determina si con la

ejecución del proyecto sé soluciono adecuadamente o no la situación original que

existía.

Eficiencia o análisis costo-beneficio

Este criterio relaciona los resultados con los recursos invertidos es decir evalúa

nuestra capacidad de acción.

En otras palabras, determinan nuestra eficiencia en el logro de los objetivos con los

recursos asignados.

Calidad

El criterio de calidad evalúa resultados intermedios o finales, se aplica a bienes y/o

servicios prestados, relaciona el grado en que estos bienes y/o servicios satisfacen o

no las necesidades que tenían

25

¿Qué es un sistema de seguimiento de proyectos?

Un sistema de seguimiento de proyectos es un flujo de trabajo a seguir para la

consecución de un objetivo predeterminado, a través de la secuencia de tareas según

las reglas del negocio de la organización donde se implementará.

Las nuevas tendencias, a la hora de gestionar una organización, hacen del sistema de

seguimiento de proyectos una herramienta clave para lograr mayor agilidad y

aumentar la productividad de las actividades administrativas que se ejecutan entre los

distintos actores del flujo de trabajo. Los módulos del sistema de seguimiento de

proyectos automatizaran la secuencia de acciones, actividades y tareas en la

ejecución del proyecto, permitirá realizar un seguimiento de cada etapa del mismo y

aportan las herramientas necesarias para su control.

El conjunto de mecanismos e instrumentos que utilizamos para obtener la

información adecuada sobre la situación del proyecto en cada momento, lo

llamaremos sistema de seguimiento.

Las interrogantes a responder cuando se quiere establecer un sistema de seguimiento

son:

• Qué? información es relevante (indicadores).

• Cómo? debería ser recolectada y analizada (métodos).

• Quién? se involucrará en cada fase (responsabilidades).

Beneficios del sistema de seguimiento de proyectos

Según los diferentes tipos de proyectos según la organización en la que lo

implantemos los beneficios de los flujos de trabajo serán:

• Mejorar la productividad y eficiencia de la organización

• Avance del control de proyectos a través de la normalización de los métodos

de trabajo.

• Generación de diagramas de Gantt de los Proyectos en un ambiente web.

26

2.3 Sistemas Web

Son sistemas que se encuentran alojados en un servidor web, y el usuario accede a

estos a través de una intranet o internet por medio de un navegador, por tal motivo el

usuario no necesita instalar software adicional para poder acceder a la aplicación

web.

Arquitectura Cliente Servidor

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las

tareas se reparten entre los servidores, y los clientes. Un cliente realiza peticiones a

otro programa, el servidor, que le da respuesta, los tipos específicos de servidores

incluyen los servidores web, archivo, correo, entre otras.

Arquitectura de Tres Capas

Las aplicaciones web tienen una arquitectura en tres capas, puesto que existe un nivel

intermedio, estructurándose de la siguiente manera:

Capa de presentación

Es el encargado de generar la interfaz de usuario (navegador web), en función de las

peticiones de estos.

Capa de negocio

Contiene la lógica del negocio y es donde se procesa las peticiones del usuario (nivel

intermedio: PHP, ASP, entre otras).

Capa de datos

Suministra y almacena información para la capa del negocio (base de datos).

27

Modelo-Vista-Controlador (MVC)

Es uno de los patrones fundamentales en el diseño de aplicaciones web es. Este

patrón propone la separación en tres capas:

• Vista: Es todo lo que se refiera a la visualización de la información: el

diseño, colores, estilos y la estructura visual en sí de nuestras páginas.

• Modelo: Es el responsable de la conexión a la base de datos y la

manipulación de los datos mismos.

• Controlador: Su responsabilidad es procesar y mostrar los datos obtenidos

por el Modelo. Es decir, trabaja de intermediario entre los otros dos,

encargándose también de la lógica de negocio.

28

Figura 2-7: Arquitectura tres capas.Fuente: http://arquitecturaencapas.blogspot.com/2011/08/arquitectura-3-capas-programacion-por.html[Consultado el 10 de septiembre de 2013]

Autor: Fuente.

El cliente envía una petición, ésta es receptada por el Controlador quien ejecuta las

validaciones necesarias, procesa los datos y lógica de negocio asociadas a esa

petición del cliente. Luego el Controlador envía datos al Modelo, para que interactue

con la base de datos, dependiendo de la solicitud del usuario, para finalmente

enviarlos a la Vista a fin de ser mostrados nuevamente al cliente a través de una

respuesta.

En una aplicación web, las vistas son las páginas que él usuario visualiza en el

navegador. A través de estas él interacciona con la aplicación, enviando eventos al

servidor.

En el servidor esta el código de control para el evento concreto actúa sobre el modelo

convenientemente. Los resultados de la acción se devuelven al usuario en la vista.

29

Figura 2-8: Modelo-Vista-Controlador (MVC)Fuente: http://www.tumaestroweb.com/wp-content/uploads/mvc.png [Consultado el 10 de septiembre de 2013]

Autor: Fuente.

Ventajas de las aplicaciones web

• Solo se necesita navegador web moderno como: Mozilla Firefox o Google

Chrome. Independencia de el sistema operativo que se ejecute.

• Compatibilidad que tienen para ser desarrollados en varios lenguajes de

programación web, tanto del lado del servidor como del lado del cliente

◦ En el servidor:

▪ PHP

▪ Java

▪ ASP

▪ Python

▪ Ruby

▪ Node.js

◦ En el lado del Cliente:

▪ JavaScript

Desventajas de las aplicaciones Web

• La seguridad depende como esta programada la aplicación web y de las

políticas del servidor donde sera alojada.

• La sobrecarga del servidor por ejemplo si muchos usuarios se conectan a la

vez al servidor, empiezan a usar la aplicación, y el servidor no esta bien

configurado para poder realizar un balanceo de carga este pude colapsar.

• Si el usuario utiliza navegadores que sean antiguos y/o navegadores que no

respeten los estándares web como: Internet Explorer, la aplicación puede que

no se visualice bien o no funcione.

• Si el usuario dentro de las características del navegador desactiva que se

ejecute JavaScript, puede traer un mal funcionamiento de la misma.

30

Navegadores Web

En la Tabla 2-1 se observa la cuota de mercado de los navegadores más utilizados a

nivel mundial

Mes Internet

Explorer

Chrome Firefox Safari Opera Otros

enero 58.21 16.35 18.02 5.78 1.28 0.36

febrero 58.19 16.84 17.68 5.67 1.23 0.40

marzo 57.96 17.52 17.26 5.68 1.20 0.39

abril 57.88 17.92 17.00 5.66 1.14 0.39

mayo 58.17 17.73 16.81 5.72 1.16 0.41

junio 58.38 19.34 15.54 5.28 1.05 0.41

julio 58.01 20.37 15.08 5.16 0.99 0.40

Tabla 2-1: Navegadores web enero-julio 2014. Fuente: http://www.netmarketshare.com/ [Consultado el 01 de agosto de 2014].

Autor: Fuente.

En el Gráfico 2-2 se puede observar el diagrama de barras de la Tabla 2-1.

31

Gráfico 2-2: Diagrama de barras de la Tabla 2-1.

Fuente: Tabla 2-1 Autor: Tesista.

enero febrero marzo abril mayo junio julio0

0.1

0.2

0.3

0.4

0.5

0.6

Uso de Navegadores enero-julio 2014

Internet Explorer

Chrome

Firefox

Safari

Opera

Otros

CAPÍTULO 3

3. METODOLOGÍA

Metodología de Desarrollo de Software en Cascada

El modelo de desarrollo utilizado sera el de tipo “Cascada”, en donde las etapas

deben seguir un enfoque secuencial de análisis, diseño, desarrollo y pruebas de

software, con la posibilidad de retroalimentación a una etapa anterior para realizar

los ajustes o correcciones necesarios.

En la Figura 3-1 se puede observar el esquema del modelo en cascada

• Análisis de Requisitos: Son todas las necesidades que el usuario desea que

se implementen en el sistema → especificaciones.

• Diseño: Es la descomposición en elementos que puedan desarrollarse por

separado → especificaciones de cada elemento.

32

Figura 3-1: Modelo en Cascada Fuente: http://ingmodcascada.blogspot.com/ [Consultado el 15 de enero del 2014]. Autor: Fuente.

• Codificación: Es la programación de cada módulo y sus respectivos

componentes del sistema.

• Pruebas: Se juntan todos los componentes y se prueba el sistema completo.

• Mantenimiento: Son los cambios ocasionales (errores o mejoras), que

tendera él sistema

3.1 Análisis de Requerimientos

La toma de los requerimientos se ha realizado siguiendo el estándar de la IEEE

(IEEE Std. 830-1998) [5].

3.1.1 Definiciones, Acrónimos y Abreviaturas

Definiciones:

• Usuario: Persona miembro de la organización que utilizará el sistema.

• Administrador: Persona que gestionara el sistema, asignado los proyectos a

los distintos usuarios.

Acrónimos:

• AD (Architectural Design): Diseño de la Arquitectura

• DB (Data Base): Base de Datos

• DCR (Document Change Record): Hoja de Registro de Cambios

• IEEE (Institute of Electrical and Electronics Engineers): es una asociación

mundial de técnicos e ingenieros dedicada a la estandarizan y el desarrollo en

áreas técnicas.

• SR (Software Requirement): Requerimientos Software.

• SRD (Software Requirements Document): Documento de Requerimientos de

Software

[5] IEEE Std. 830-1998: Documento para la toma de requerimientos bajo el estándar 830

33

• SUM (Software User Manual): Manual de Usuario

• UR (User Requirement):Requerimientos de Usuario

• URD (User Requirements Document):Documento de Requerimientos de

Usuario

• CRUD (Create, Read, Update and Delete) Crear, Obtener, Actualizar y

Borrar, usado para referirse a las funciones básicas en bases de datos o la capa

de persistencia en un software.

3.1.2 Visión General

El SRD es una salida producida en la fase SR, se cubrirá todos los requerimientos de

usuario especificados en el URD.

Se especifican los requerimientos funcionales, los de interfaz, los operacionales, los

de seguridad, entre otras. Lo que no debe incluir este documento son detalles de

implementación, ya que estos se definirán en fases posteriores. Con esto se quiere

decir, que en este documento se definirán todas las prestaciones, así como

restricciones que ofrecerá el producto a desarrollar desde el punto de vista software,

describiendo qué es lo que el software tiene que hacer y no cómo lo va a hacer.

El SRD se especificará en lenguaje natural. Esto tiene la ventaja, de no presentar

barreras adicionales para las personas, que aún perteneciendo a diferentes disciplinas,

se encuentran implicadas en esta fase.

El documento tiene tres partes bien diferenciadas:

• Una primera parte que consiste en una breve introducción, con información

relativa al propio documento (SRD).

• La segunda parte describe el producto a desarrollar, describiendo el entorno y

el alcance de la aplicación.

• Una tercera parte recoge los requerimientos software específicos.

34

3.1.3 Descripción General

Perspectiva del Producto

El sistema sera muy similar al de Ms-Project de Microsoft, implementadas en un

ambiente web con las ventajas como:

• Manejara indicadores de avance de los proyectos.

• Se implementaran alertas cuando un proyecto este retazado.

Funcionalidades del Sistema

El software que se va a desarrollar consta de varios módulos. Cada uno de estos

módulos tiene las funcionalidades específicas que se describen a continuación:

Módulo Perfil de Usuario

Este módulo permitirá dar información a los usuarios sobre en que etapa se encuentra

el proyecto, de qué recursos dispone, que personas están encargadas y otra

información de interés. Ademas el usuario podrá crear tareas y asignar recursos a los

mismo

Módulo Perfil de Gestor de Proyecto

Este módulo permitirá tendrá las mismas funcionalidades del perfil anterior, pero con

la capacidad de poder administrar los proyectos.

Módulo Perfil de Administración

A este módulo sólo podrán acceder personas autorizadas, ya que se encargará de

gestionar el funcionamiento del la aplicación.

Este módulo a su vez se subdivide en los siguientes:

• Módulo de Usuarios

En este módulo se gestiona toda la información referente al usuario del

sistema, es decir toda la parte del CRUD de usuario

35

• Módulo de Proyectos del Sistema

Este modulo gestionara toda la información de los proyectos, es decir la parte

del CRUD de los proyectos

• Módulo de Indicadores

Este módulo manejará las métricas en cuanto a los recursos del proyecto

viendo que los tiempos se cumplan.

3.1.4 Requerimientos Generales

Como restricciones generales destacan las siguientes:

• Las interfaces entre el usuario y el sistema tienen que ser claras, intuitivas y

fáciles de manejar.

• No se debe obligar a que el usuario del sistema introduzca información de

todos los campos, ya que algunos pueden no ser necesarios.

• El sistema debe estar protegido por un sistema de seguridad para que

personas ajenas no puedan utilizar la aplicación.

• Se tienen que poder realizar distintos tipos de consultas de los proyectos.

• Todos los módulos del sistema mantendrán la misma línea de diseño.

• Es imprescindible que el usuario tenga el mayor número de facilidades

posible a la hora de insertar datos, evitando siempre que sea posible la

introducción de datos manuales.

• Siempre que se pueda, hay que evitar que el usuario introduzca datos

erróneos, por ejemplo, fechas incorrectas. Si realiza alguna operación de este

estilo, se le avisará siempre con mensajes de error significativos.

• El sistema debe permitir el acceso simultáneo de varios usuarios.

• Esta aplicación debe funcionar bajo cualquier navegador web moderno y

sistema operativo.

36

3.1.5 Requerimientos Específicos

A continuación se describen con detalle los requerimientos software del sistema que

se va a desarrollar.

Requerimientos Funcionales

Los requerimientos funcionales especifican ‘Qué’ tiene que hacer el sistema. Definen

los propósitos del software en cuestión. Estos requerimientos se derivan de los

requerimientos de usuario especificados en el URD.

Los requerimientos funcionales en nuestro caso son los siguientes:

SR01 Deberá existir una página de presentación que permita al usuario acceder al

módulo de la aplicación que desee.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: Admite cambios por feedback de fases AD.

Claridad: Alta

Verificabilidad: Alta

SR02 Desde cualquier página de la aplicación la persona que esté utilizando el

sistema tendrá la posibilidad de navegar hacia delante y hacia atrás por las páginas de

la aplicación.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: Admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

SR03 Se debe realizar un control de los usuarios que pueden entrar al sistema. El

usuario antes de poder manejar el módulo en cuestión, se tiene que autentificar. La

página de autentifican deberá tener los siguientes campos: login, password y una

opción para poder recuperar la contraseña por medio del correo.

37

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad:Admite cambios por feedback de fases AD.

Claridad: Alta

Verificabilidad: Alta

SR04 Cuando un usuario se ha autentificado manejara las opciones que se han

asignado previamente para su perfil:

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD.

Claridad: Alta

Verificabilidad: Alta

SR05 Se debe gestionar la inserción, borrado y modificación de usuarios autorizados

de la organización.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

SR06 Se debe gestionar la inserción, borrado y modificación de proyectos

autorizados de la organización.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

38

SR07 El sistema tiene que manejar indicadores del avance de los proyectos.

Necesidad: Obligatoria

Prioridad: Baja

Estabilidad: No admite cambios por feedback de fases AD, DD.

Claridad: Alta

Verificabilidad: Alta

SR08 El sistema manejara alertas cuando haya desfase en los proyectos, en cuanto al

cumplimiento de los mismos.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

SR09 No se podrán introducir datos no válidos. El sistema tendrá que validar los

datos antes de realizar la inserción de los mismos en la BD. Si se intenta introducir

algún dato incorrecto, el sistema avisará al usuario con el correspondiente mensaje de

error.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

3.1.6 Requerimientos de Prestaciones

Estos requerimientos especifican valores numéricos para medir las variables del

sistema (por ejemplo, frecuencia, velocidad, entre otras.).

39

SR10 El tiempo aproximado que puede tardar el servidor en cargar una página será

de 1 minuto. Esto es bastante relativo, ya que debido al entorno en el que nos

encontramos, el sistema depende de muchos factores, por ejemplo: el número de

usuario que estén conectados, el ancho de banda, entre otras.

Necesidad: Opcional

Prioridad: Media

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

SR11 El tiempo de realización de las operaciones contra la BD requeridas por el

usuario debe ser el mínimo posible.

Necesidad: Opcional

Prioridad: Media

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

3.1.7 Requerimientos de Interfaz

Los requerimientos de usuario se componen de tres partes que se van a describir a

continuación:

Requerimientos de la interfaz software.

SR12 El sistema sera multiplataforma, solamente se necesita un navegador web

moderno, también se recomienda no usar Internet explorer en ninguna de sus

versiones ya que este navegador no cumple con los estándares web

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

40

Claridad: Alta

Verificabilidad: Alta

3.1.8 Requerimientos Operacionales

Estos requerimientos especifican cómo se ejecutará el sistema y cómo se comunicará

con los usuarios. Los requerimientos operacionales del sistema son los siguientes:

SR13 Las pantallas de la aplicación deben estar diseñadas de tal forma que le

resulten al usuario fácil de manejar. La interfaz de usuario debe ser amigable e

intuitiva.

Además se tendrá cuidado con la configuración de colores de las pantallas.

• No deberán contener colores muy vivos.

• No obstante, se permitirá la utilización de estos tonos en las pantallas de

presentación y de mensajes de error.

Necesidad: Opcional

Prioridad: Media

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Media

Verificabilidad: Alta

SR14 Los mensajes de error deben ser claros, concisos y específicos a cada error.

Necesidad: Obligatoria

Prioridad: Media

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

3.1.9 Requerimientos de Verificación

Estos requerimientos especifican las restricciones acerca de cómo tiene que

verificarse el software desarrollado. Los requerimientos de verificación del sistema

41

son los siguientes:

SR15 Para comprobar el correcto funcionamiento de la aplicación se deben insertar,

modificar y eliminar datos de prueba en cada uno de los módulos, con casos erróneos

para verificar que realmente se cumplen todas las funcionalidades especificadas por

el usuario y que además se ejecuten correctamente.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD, DD.

Claridad: Alta

Verificabilidad: Alta

3.1.10 Requerimientos de Pruebas de Aceptación

Aquí se especifican los requerimientos acerca de cómo se debe validar el software.

Los requerimientos de test de aceptación del sistema son los siguientes:

SR16 Se comprobará que las consultas devuelven una respuesta válida y adecuada.

Además se comprobará que las inserciones, modificaciones y eliminaciones se

gestionan de forma correcta.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Claridad: Alta

Verificabilidad: Alta

SR17 Se realizarán pruebas para todas y cada una de las operaciones que tiene que

realizar la aplicación de forma que mantenga la consistencia e integridad de la BD.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD,

42

Claridad: Alta

Verificabilidad: Alta

3.1.11 Requerimientos de Documentación

Se especifican en este apartado los requerimientos específicos para la documentación

del proyecto. Los requerimientos de documentación del sistema son los siguientes:

SR18 Toda la documentación desarrollada junto con el proyecto software la

Universidad Central del Ecuador es dueña de los derechos de autor de la misma.

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD

Fuente: Usuario

Claridad: Alta

Verificabilidad: Alta

3.1.12 Requerimientos de Calidad

Los requerimientos de calidad son los que hacen referencia a la calidad del software

desarrollado. Los requerimientos de calidad del sistema son los siguientes:

SR19 La calidad de la aplicación debe ser óptima de tal forma que no se pueden

producir fallos en la aplicación. El sistema debe funcionar correctamente en

cualquier momento, salvo por fallos del servicio de alojamiento donde se instale la

aplicación

Necesidad: Obligatoria

Prioridad: Alta

Estabilidad: No admite cambios por feedback de fases AD.

Claridad: Alta

Verificabilidad: Alta

43

3.2 Diseño

3.2.1 Diagramas UML de Casos de uso

Los diagramas de casos de uso describen las relaciones así como las dependencias

entre los actores participantes en el proceso.

Diagrama General de ILALO V. 1.0

En la Figura 3-2 se puede observar los casos de uso de los principales actores del

sistema con las acciones de los módulos correspondientes de una manera macro.

El sistema tendrá tres perfiles: el usuario, gestor y el administrador y sus respectivos

módulos, cada uno de estos interaccionara, entre si y entre los distintos actores del

sistema.

Gestión de Usuarios

En la Figura 3-3 se puede observar los casos de uso que forman parte del módulo de

gestión de usuarios.

44

Figura 3-2: Caso de uso del Sistema.Fuente: Tesista. Autor: Tesista.

Gestión de Organizaciones

En la Figura 3-4 se puede observar los casos de uso que forman parte del módulo de

gestión de organizaciones.

Gestión de Proyectos

En la Figura 3-5 se puede observar los casos de uso que forman parte del módulo de

gestión de proyectos.

45

Figura 3-3: Caso de uso Gestión de Usuarios.Fuente: Tesista. Autor: Tesista.

Figura 3-4: Caso de uso Gestión de Organizaciones.Fuente: Tesista. Autor: Tesista.

Gestión de Actividades

En la Figura 3-6 se puede observar los casos de uso que forman parte del módulo de

gestión de actividades.

Gestión de Etapas

En la Figura 3-7 se puede observar los casos de uso que forman parte del módulo de

gestión de Etapas.

46

Figura 3-5: Caso de uso Gestión de Proyectos.Fuente: Tesista. Autor: Tesista.

Figura 3-6: Caso de uso Gestión de Actividades.Fuente: Tesista. Autor: Tesista.

Gestión de Tareas

En la Figura 3-8 se puede observar los casos de uso que forman parte del módulo de

gestión de Tareas.

Gestión de Recursos

En la Figura 3-9 se puede observar los casos de uso que forman parte del módulo de

gestión de Recursos.

47

Figura 3-7: Caso de uso Gestión de Etapas.Fuente: Tesista. Autor: Tesista.

Figura 3-8: Caso de uso Gestión de Tareas.Fuente: Tesista. Autor: Tesista.

3.2.2 Maquetación Web del Sistema

ILALO V 1.0, estará alojado en un sitio web, esta es una maquetación de las

principales pantallas que manejara el sistema.

Index

En la Figura 3-10, se observa la página principal, contendrá un slider de imágenes, la

misión y visión de del JGUSRP, en la parte superior derecha estará el vinculo para

ingresar al sistema.

48

Figura 3-9: Caso de uso Gestión de Tareas.Fuente: Tesista. Autor: Tesista.

Login

En la Figura 3-11, se observa la ventana que validara los usuarios registrados en el

sistema, y los re-direccionará a su respectiva sesión.

49

Figura 3-10: Maquetación del Index.Fuente: Tesista. Autor: Tesista.

SLIDER DE IMÁGENES

Figura 3-11: Maquetación del Login.Fuente: Tesista. Autor: Tesista.

Sesión Administrador

En la Figura 3-12, se observa la sesión del administrador, manejara tanto los

proyecto, usuarios y reportes, los módulos de usuarios y proyectos tendrá las

opciones de CRUD (crear, leer, actualizar y borrar registros), para cada uno de estos.

Sesión Administrador-Proyectos-Nuevo

En la Figura 3-13, se observa la opción que nos permitirá crear un nuevo proyecto,

con las distintas etapas, actividades y tareas que tendrá este a demás asignará dicho

proyecto a cualquier usuario para su seguimiento.

50

Figura 3-12: Maquetación del Sesión Administrador.Fuente: Tesista. Autor: Tesista.

Figura 3-13: Maquetación del Sesión Administrador-Proyectos-Nuevo.Fuente: Tesista. Autor: Tesista.

Sesión Administrador-Proyectos-Listado

En la Figura 3-14, se observa la opción que nos permitirá listar todos los proyectos,

que el administrador ha creado, con la capacidad de editarlo y borrarlo.

Sesión Administrador-Usuarios-Nuevo

En la Figura 3-15, se observa la opción el administrador donde podrá crear un nuevo

usuario, para el sistema.

51

Figura 3-14: Maquetación del Sesión Administrador-Proyectos-Listado.Fuente: Tesista. Autor: Tesista.

Sesión Administrador-Usuarios-Listado

En la Figura 3-16, se observa la opción que nos permitirá listar todos los usuarios,

del sistema con la capacidad de editarlo y borrarlo.

52

Figura 3-15: Maquetación del Sesión Administrador-Usuarios-Nuevo.Fuente: Tesista. Autor: Tesista.

Sesión Administrador-Reportes

En la Figura 3-17, se observa la opción que tendrá la capacidad de generar reportes

de un proyecto especificando los parámetros los cuales deseemos sé generen.

53

Figura 3-16: Maquetación del Sesión Administrador-Usuarios-Listado.Fuente: Tesista. Autor: Tesista.

Figura 3-17: Maquetación del Sesión Administrador-Reportes.Fuente: Tesista. Autor: Tesista.

Sesión Usuario

En la Figura 3-18, se observa la sección el usuario tendrá las opciones de ver los

proyectos y reportes.

Sesión Usuario-Proyectos-Listado

En la Figura 3-19, se observa la opción donde el usuario podrá visualizar todos los

proyectos que se le han designado para su seguimiento, este podrá monitorizar el

estado del mismo, se manejaran las alertas cuando la actividad o subactividad este

desfasada con lo planificado por el administrador, así como asignara recursos a las

distintas actividades si fuera necesario.

54

Figura 3-18: Maquetación del Sesión Usuario.Fuente: Tesista.Autor: Tesista.

Figura 3-19: Maquetación del Sesión Usuario-Proyectos-Listado.Fuente: Tesista. Autor: Tesista.

Sesión Usuario-Reportes

En la Figura 3-20, se observa la opción donde el usuario tendrá la capacidad de

generar reportes de un proyecto especificando los parámetros los cuales deseemos sé

generen.

3.2.3 Diagramas de Robustez

Se realizan basándose en los diagramas de caso de uso, estos diagramas permiten

identificar a los objetos que participan en cada caso de uso, de esta manera realizar

un mejor diseño del sistema.

Gestión de Usuarios

A continuación se muestra los diagramas de robustez para los casos de uso del

módulo de gestión de los usuarios del sistema.

a) En la Figura 3-21 se muestra el diagrama de robustez para el caso de uso de

la creación de un usuario.

55

Figura 3-20: Maquetación del Sesión Usuario-Proyectos-Reportes.Fuente: Tesista. Autor: Tesista.

b) En la Figura 3-22 se muestra el diagrama de robustez para el caso de uso de

la activación de la cuenta por parte del usuario.

Gestión de Organizaciones

a) En la Figura 3-23 se muestra el diagrama de robustez para el caso de uso

crear de una organización.

56

Figura 3-21: Diagrama de robustez crear usuario.Fuente: Tesista. Autor: Tesista.

Figura 3-22: Diagrama de robustez activar usuario.Fuente: Tesista. Autor: Tesista.

b) En la Figura 3-24 se muestra el diagrama de robustez para el caso de uso

editar una organización.

c) En la Figura 3-25 se muestra el diagrama de robustez para el caso de uso

eliminar una organización.

57

Figura 3-23: Diagrama de robustez crear organización.Fuente: Tesista. Autor: Tesista.

Figura 3-24: Diagrama de robustez editar organización.Fuente: Tesista. Autor: Tesista.

Gestión de Proyectos

a) En la Figura 3-26 se muestra el diagrama de robustez para el caso de uso

crear un proyecto.

b) En la Figura 3-27 se muestra el diagrama de robustez para el caso de uso

editar un proyecto.

58

Figura 3-25: Diagrama de robustez eliminar organización.Fuente: Tesista. Autor: Tesista.

Figura 3-26: Diagrama de robustez crear proyecto.Fuente: Tesista. Autor: Tesista.

c) En la Figura 3-28 se muestra el diagrama de robustez para el caso de uso

eliminar un proyecto.

Gestión de Actividades

a) En la Figura 3-29 se muestra el diagrama de robustez para el caso de uso

crear una actividad.

59

Figura 3-27: Diagrama de robustez editar proyecto.Fuente: Tesista. Autor: Tesista.

Figura 3-28: Diagrama de robustez eliminar proyecto.Fuente: Tesista. Autor: Tesista.

b) En la Figura 3-30 se muestra el diagrama de robustez para el caso de uso

editar una actividad.

c) En la Figura 3-31 se muestra el diagrama de robustez para el caso de uso

eliminar una actividad.

60

Figura 3-29: Diagrama de robustez crear actividad.Fuente: Tesista. Autor: Tesista.

Figura 3-30: Diagrama de robustez editar actividad.Fuente: Tesista. Autor: Tesista.

Gestión de Etapas

a) En la Figura 3-32 se muestra el diagrama de robustez para el caso de uso

crear una etapa.

b) En la Figura 3-33 se muestra el diagrama de robustez para el caso de uso

editar una etapa.

61

Figura 3-31: Diagrama de robustez eliminar actividad.Fuente: Tesista. Autor: Tesista.

Figura 3-32: Diagrama de robustez crear etapa.Fuente: Tesista. Autor: Tesista.

c) En la Figura 3-34 se muestra el diagrama de robustez para el caso de uso

eliminar una etapa.

Gestión de Tareas

a) En la Figura 3-35 se muestra el diagrama de robustez para el caso de uso

crear una tarea.

62

Figura 3-33: Diagrama de robustez editar etapa.Fuente: Tesista. Autor: Tesista.

Figura 3-34: Diagrama de robustez eliminar etapa.Fuente: Tesista. Autor: Tesista.

b) En la Figura 3-36 se muestra el diagrama de robustez para el caso de uso

editar una tarea.

c) En la Figura 3-37 se muestra el diagrama de robustez para el caso de uso

eliminar una tarea.

63

Figura 3-35: Diagrama de robustez crear tarea.Fuente: Tesista. Autor: Tesista.

Figura 3-36: Diagrama de robustez editar tarea.Fuente: Tesista. Autor: Tesista.

Gestión de Recursos

a) En la Figura 3-38 se muestra el diagrama de robustez para el caso de uso

crear un recurso.

b) En la Figura 3-39 se muestra el diagrama de robustez para el caso de uso

editar un recurso.

64

Figura 3-37: Diagrama de robustez eliminar tarea.Fuente: Tesista. Autor: Tesista.

Figura 3-38: Diagrama de robustez crear recurso.Fuente: Tesista. Autor: Tesista.

c) En la Figura 3-40 se muestra el diagrama de robustez para el caso de uso

eliminar un recurso.

65

Figura 3-39: Diagrama de robustez editar recurso.Fuente: Tesista. Autor: Tesista.

3.2.4 Modelo de Datos

Después de haber realizado el diseño de los casos de uso de los distintos módulos del

sistema y haber identificado los distintos componentes y entidades del sistema, se

obtuvo el siguiente diagrama relacional, el cual se observa en la Figura 3-41.

La descripción de todos los campos se detalla en el ANEXO C.

66

Figura 3-40: Diagrama de robustez eliminar recurso.Fuente: Tesista. Autor: Tesista.

67

Figura 3-41: Modelo entidad-relación.Fuente: Tesista. Autor: Tesista.

3.3 Codificación

3.3.1 Arquitectura de Software

Como la sé mencionó en el anteriormente en el Capitulo 1, para el desarrollo del

sistema se utilizara en framework LARAVEL, en su versión 4.1, en esta sección

detallaremos la estructura que este posee.

Luego de instalado él framework, se detalla la instalación y configuración del mismo

en el ANEXO B.

Estructura del Proyecto

Luego de crear el proyecto a través de la linea de comandos del framework, nos

genera las siguiente carpetas y archivos:

Directorio Raíz

La estructura del directorio raíz es la siguiente:

• app/

• bootstrap/

• vendor/

• public/

• .gitattributes

• .gitignore

• artisan

• composer.json

• composer.lock

• phpunit.xml

68

app /

Es el directorio app, es la carpeta más importante y contendrá todo el código personal

del proyecto. Eso incluye clases que puedan ofrecer funcionalidad a la aplicación,

archivos de configuración y más. A continuación se detalla el contenido de la misma.

app/

commands/

config/

controllers/

database/

lang/

models/

start/

storage/

tests/

views/

filters.php

routes.php

commands

Este directorio contiene cualquier comando personalizado de Artisan que pueda

necesitar la aplicación.

config

En este directorio, se encuentra la configuración de LARAVEL y la aplicación, existe

como un conjunto de archivos PHP que contienen matrices clave-valor. Este

directorio también contiene sub-directorios que permiten distintas configuraciones

cargadas en diferentes entornos.

69

controllers

Este directorio contiene los controladores, son usados para facilitar lógica a la

aplicación, y hacer de intermediario entre las partes separadas de la aplicación.

database

Este directorio sera usado para contener los archivos que crearán el esquema de la

base de datos.

lang

El directorio contiene archivos PHP con matrices de cadenas que pueden ser usados

para dar soporte de traducción de la aplicación, si fuere el caso.

models

Este directorio contendrá los modelos, son usados para representar el modelo de

negocio o facilitar interacción con el almacenamiento, así como crear consultas SQL

encadenando métodos PHP, usar el ORM (mapeo de objetos relacional) Eloquent

para representar tus tablas como objetos PHP.

start

El directorio start contiene procedimientos de arranque que pertenecen a la

aplicación.

storage

Cuando LARAVEL necesita escribir algo en el disco, lo hace en el directorio storage.

Por este motivo tu servidor web debe poder escribir en esta ubicación.

tests

El directorio tests contiene todas las pruebas unitarias y de aceptación para la

aplicación. La configuración por defecto de PHPUnit que ha sido incluida por

LARAVEL buscará pruebas en este directorio por defecto.

views

El directorio views contiene las plantillas visuales de la aplicación o generalmente

70

conocidas como vistas.

filters.php

El archivo filters.php es usado para contener cualquier filtro de rutas de la aplicación.

routes.php

El archivo routes contiene los métodos que permiten que las rutas sean mapeadas a

sus respectivas acciones con LARAVEL. Este archivo también contiene

declaraciones de varios eventos incluyendo páginas de errores, y puede ser usado

para definir creadores de vistas o filtros de rutas.

bootstrap /

El directorio bootstrap contiene archivos que están relacionados con los

procedimientos de arranque del framework. No hay que confundir este directorio con

twitter bootstrap, el cual se utilizará para el diseño web de la aplicación.

bootstrap /

autoload.php

paths.php

start.php

autoload.php

Contiene la mayoría de esos procedimientos de arranque y solo debería ser editado

por usuarios experimentados.

paths.php

Contiene la matriz de las rutas comunes del sistema que son usadas por el

framework.

start.php

Contiene más procedimientos de inicialización para el framework, específicamente

relacionado con distintos entornos que se puede tener en el proceso de desarrollo.

71

vendor

El directorio vendor contiene todos los paquetes de Composer [6] que son utilizados

por la aplicación.

public

El directorio public es donde generalmente se encuentran los archivos: CSS,

JavaScript e imágenes.

public /

packages/

.htaccess

favicon.ico

index.php

robots.txt

packages

Será usado para contener ficheros que necesiten ser instalados por paquetes de

terceros.

.htaccess

Contiene algunas directivas de configuración estándar que tendrán sentido para la

mayoría de los usuarios del framework.

[6] Composer: Es un manejador de paquetes y dependencias entre paquetes para PHP.

72

favicon.ico

Este es el archivo que controla la pequeña imagen de 16 x 16px que se muestra en las

pestañas de tu navegador.

index.php

Es el primer archivo que el servidor web ejecuta cuando llega una petición del

navegador, es el archivo que lanzará la inicialización del framework.

robots.txt

Es el archivo que sirve para la indexación por parte de los buscadores web.

.gitattributes

Maneja el control de versiones con Git [7]. Si no se implementa en el proyecto, se

puede borrar este archivo.

.gitignore

El archivo .gitignore contiene algunos ajustes para informar a Git de qué carpetas no

debería controlar.

artisan

El archivo artisan es un ejecutable que es usado para interacturar con la terminal

contiene un buen número de comandos útiles

composer.json y composer.lock

Tanto composer.json como composer.lock , contienen información sobre los paquetes

de Composer usados por este proyecto.

[7] Git: Es un sistema de control de versiones.

73

phpunit.xml

El archivo phpunit.xml ofrece configuración por defecto para las pruebas unitarias de

PHPUnit y ejecutará cualquier prueba ubicada en la carpeta app/tests.

Plantillas Blade

Es el motor de plantillas de LARAVEL, permite usar una práctica sintaxis para

incluir código PHP en las vistas, incluye un número de atajos que permiten el uso de

funciones existentes de LARAVEL. Las plantillas Blade se guardan en memoria

cache por defecto, lo cual las hace muy rápidas

Introducción

Para activar las plantillas de Blade, se tiene que nombrar las vistas con la extensión

*.blade.php en vez de *.php .

Con este sistema de plantillas, por ejemplo la impresión de variables seria de esta

manera:

{{$val}} en vez de <?php echo $val; ?>

entre muchas otras funciones como estructuras de control, bluces, entre otras, toda

esta información la tenemos disponible en la documentación oficial de LARAVEL.

Componentes Externos

Una vez creado él proyecto y su respectiva estructura vamos a instalar los distintos

módulos externos que utilizaremos, la instalación se detalla en el ANEXO B. Los

paquetes externos utilizados son:

• Zizaco/Confide

• Zizaco/Entrust

• JpGraph

• Dompdf

74

Zizaco/Confide

Es un módulo el cual maneja la gestión de usuarios realizando operaciones como: la

creación de la cuenta, confirmación de la cuenta por correo y el reseteo de la

contraseña.

Zizaco/Entrust

Es un módulo el cual maneja las sesiones y permisos de los usuarios realizando

operaciones como: autentificación de usuarios, manejo de roles y permisos.

Nota: Estos dos módulos al momento de ser instalados generaran las siguientes

tablas en la base de datos:

• users

• roles

• assigned_roles

• permissions

• permissions_role

• password_reminders

JpGraph

Este módulo contiene las clases para la generación de gráficos estadísticos,

diagramas, códigos de barras, entre otras. En nuestro caso la utilizaremos para la

creación de los diagramas de gantt.

Dompdf

Este paquete nos facilitará la creación de los reportes en él sistema con un formato

pdf, es una librería que trasforma el html y css en dicho formato.

Diseño Web

Para el diseño del front-end del sistema se utilizara twitter bootstrap.

75

Twitter Bootstrap 3

Es un framework liberado por Twitter. Inc. para diseño de sitios y aplicaciones web,

posee un conjunto de plantillas de diseño con tipografía, formularios, botones, entre

otras. Estos elementos están basados en HTML5 y CSS3, nos genera un diseño web

adaptativo y compatible con todos los navegadores modernos. En la Figura 3-42 se

puede observar la estructura de directorio de bootstrap.

Según la documentación oficial, los sistemas operativos y navegadores soportados en

sus últimas versiones esta dada por la Tabla 3-1:

76

Figura 3-42: Estructura de twitter bootstrap.Fuente: Tesista. Autor: Tesista.

Chrome Firefox InternetExplorer

Opera Safari

Android Supported Supported

N/A

Not Supported

N/A

iOS Supported N/A Not Supported

Supported

Mac OS X Supported Supported Supported Supported

Windows Supported Supported Supported Supported Not Supported

Tabla 3-1: Sistemas Operativos y Navegadores Soportados Oficialmente por Bootstrap 3.Fuente: http://getbootstrap.com/getting-started/#support . [Consultado el 10 de julio de 2014]Autor: Fuente.

Ademas la documentación oficial cita : “ Bootstrap también debería funcionar bien

en Chromium, Chrome y Firefox en Linux y Internet Explorer 7 en Windows, aunque

no están soportados oficialmente.”

Desarrollo del Sistema en LARAVEL

Ahora que sabemos como esta estructurado el framework vamos a dar un ejemplo de

como se desarrolla y estructura el código de nuestro sistema de una manera general

con una tabla ficticia llamada DEMOS de una base de datos cualesquiera, se

detallara las tablas reales del sistema en el ANEXO B.

Modelo

Para crear él modelo de la tabla demos debemos crear un archivo llamado Demo.php

en la carpeta /app/models generalmente con el siguiente código de la Figura 3-43.

77

Esto así con todas las tablas de nuestro sistema es decir tendremos los modelos:

User.php, Organization.php, Project.php, entre otras. Respetando el standar de la

primera letra en mayúscula y en singular.

En LARAVEL los modelos utilizan el Eloquent ORM, este se encarga de convertir a

objetos cada uno de los atributos de la tabla, los modelos utilizan convenciones para

saber que modelo utiliza que tabla de la base datos, pero como esas convenciones

están hechas para el idioma ingles es mejor decirle directamente que tabla debe usar

en que modelo, esto lo hacemos con la variables $table.

Vista

La primera vista que vamos a crear será index.blade.php en /app/views/demo/. Para

esto primero vamos a crear la carpeta demo dentro de /app/views, luego dentro de

esta creamos el archivo index.blade.php siguiendo este enstandar para todos los

modelos. En la Figura 3-44 vemos como estará estructurada la vista.

78

Figura 3-43: Estructura de una clase en el modelo.Fuente: Tesista. Autor: Tesista.

Vemos que todas las vistas van a ser en el formato de plantillas blade, el cual ya

hablamos en la sección anterior, en la primera linea podemos ver que todas las vistas

estarán extendidas un una plantilla principal /app/views/layaouts/master.blade.php.

En la Figura 3-45 se puede ver la estructura de master.blade.php

79

Figura 3-44: Estructura de una clase en la vista.Fuente: Tesista. Autor: Tesista.

Figura 3-45: Estructura de la plantilla master.blade.phpFuente: Tesista. Autor: Tesista.

Esta plantilla cargara la estructura de html5, los estilos de twitter bootstrap y las

librerías de JavaScript.

Controlador

Para enlazar el modelo y la vista, el controlador, para esto en la carpeta de

/app/controllers creamos el archivo DemoController.php que generalmente tendrá él

código que se muestra en la Figura 3-46.

Todos los controladores deben extenderse de la clase BaseController, el nombre debe

terminar en Controller y debe ser igual al nombre del archivo. Comúnmente irán aquí

los métodos CRUD de las diferentes tablas, como vemos se crea un nuevo objeto del

modelo y este contiene las distintas funciones que realizan esas operaciones, por lo

cual no es necesario realizar las típicas consultas SQL.

Ruta

Por ultimo hay que crear una ruta, esta es la manera que el framework redirecciona

hasta la acción y el controlador que queramos, existen diferentes tipos de rutas que

80

Figura 3-46: Estructura de una clase en el controlador.Fuente: Tesista. Autor: Tesista.

implementa LARAVEL con la clase Route, se recomienda revisar la documentación

oficial. Para crearla abrimos el archivo /app/routes.php y el código dependerá de la

acción que deseemos, en la Figura 3-47 se visualiza un ejemplo de rutas.

Resumiendo la arquitectura de funcionamiento de LARAVEL se realiza de acuerdo

como se observa en la Figura 3-48.

81

Figura 3-47: Ejemplos de rutas en LARAVEL.Fuente: Tesista. Autor: Tesista.

Figura 3-48: Arquitectura de funcionamiento en LARAVEL.Fuente: http://laravelenespanol.files.wordpress.com/2013/06/diagrama_LARAVEL.png [Consultado el 10 de julio de 2014]Autor: Fuente.

3.4 Pruebas

Una vez finalizado el desarrollo del sistema, se procede a desarrollar las pruebas

unitarias y de integración con el fin de verificar que el sistema cumple con los

requerimientos funcionales.

3.4.1 Pruebas Unitarias

Las pruebas unitarias verifican el funcionamiento de los componentes individuales

del sistema, estas pruebas se realizan por parte del programador durante el desarrollo

del sistema.

Las pruebas unitarias se las realiza en referencia a los casos de usos, para lo cual se

realizará el siguiente procedimiento de pruebas:

a) Describir lo que se desea probar.

b) Enlazar los casos de prueba por cada caso de uso.

c) Se realizaran las pruebas con: datos de entrada, resultado esperado, resultado

obtenido, casos de excepción.

d) Si el resultado obtenido no es satisfactorio corregir el error.

En la siguiente sección se observa, las pruebas unitarias realizadas, en los distintos

módulos del sistema resumido en forma de tablas.

82

Caso de prueba Crear Usuario

Descripción: Prueba unitaria para el caso de uso crear usuario

Precondiciones:

1. Ingresar a la sesión de administrador.

2. Clic en la opción Usuarios.

3. Seleccionar la opción Nuevo.

Datos de entrada

Nombre: Paúl

Apellido: Vizuete

Correo: [email protected]

Usuario: pvizuete

Rol: Admin

Resultado esperado Los datos del usuario se almacenan correctamente

Resultado obtenido Satisfactorio

Casos de excepción Si el usuario y/o correo existen, se muestra el

mensaje de información indicando el error.

ObservaciónEl usuario se creara con la primera letra del nombre yel apellido.

Tabla 3-2: Prueba unitaria crear usuario.Fuente: Tesista. Autor: Tesista.

Caso de prueba Confirmar Usuario

Descripción: Prueba unitaria para el caso de uso confirmar un usuario

Precondiciones:1. Haber sido creado el usuario por parte del

administrador.

Datos de entrada Clic en el enlace enviado al correo del usuario.

Resultado esperado El enlace funciona y se confirma la cuenta del usuario.

Resultado obtenido Satisfactorio.

Casos de excepción En algunos casos el correo es marcado como deseado.

Observación Ninguna.Tabla 3-3: Prueba unitaria confirmación de usuario.Fuente: Tesista. Autor: Tesista.

83

Caso de prueba Crear Organización

Descripción: Prueba unitaria para el caso de uso crear una organización

Precondiciones: 1. Ingresar al módulo de organización.

Datos de entrada

Nombre: La junta general de usuarios del sistema deriego “EL PISQUE”.

Misión: Nuestra Misión es servir a los usuarios delSistema de Riego “El Pisque”, participando en losprocesos de operación, administración, mantenimiento ydesarrollo del mismo, utilizando eficientemente susrecursos; así como en los procesos organizativos de lacomunidad respetando la diversidad socio cultural, ycolaborando en la consecución de sus metas y objetivos.

Visión: La visión de la JGUSRP es la de garantizar elsuministro de agua necesaria para promover laproducción y, por ende, el desarrollo económico de lacomunidad, promoviendo la productividad agrícola,implementando tecnología, conservando el medioambiente, combatiendo la contaminación, reforestando ydesarrollando la cuenca hidrográfica de “El Pisque”,apoyándonos con instituciones estatales, nogubernamentales e internacionales, y ofreciendo a losusuarios capacitación, tecnología e insumos agrícolas.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Solamente se admite una sola organización.

Observación No se pueden crear organizacionesTabla 3-4: Prueba unitaria creación de organización.Fuente: Tesista. Autor: Tesista.

84

Caso de prueba Editar Organización

Descripción: Prueba unitaria para el caso de uso editar una organización

Precondiciones:

1. Ingresar al módulo de organización.

2. Realizar la búsqueda de la organización.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato de la organización.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-5: Prueba unitaria edición de la organización.Fuente: Tesista. Autor: Tesista.

Caso de prueba Eliminar Organización

Descripción: Prueba unitaria para el caso de uso eliminar una organización

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Ninguno.

Resultado esperado Ninguno.

Resultado obtenido Ninguno.

Casos de excepción Ninguno.

Observación No se puede eliminar la organización.Tabla 3-6: Prueba unitaria eliminación de la organización.Fuente: Tesista. Autor: Tesista.

85

Caso de prueba Crear Proyecto

Descripción: Prueba unitaria para el caso de uso crear un proyecto

Precondiciones: 1. Ingresar al módulo de proyecto.

Datos de entrada

Nombre: Invernadero metálico.

Descripción: Construcción de un invernadero metálicode tres naves para asegurar la ventilación.

Responsable: Consejo Provincial de Pichincha.

Encargado: Santiago Duque.

Fecha de inicio: 03-06-2015.

Fecha de fin: 03-10-2015.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-7: Prueba unitaria creación del proyecto.Fuente: Tesista. Autor: Tesista.

Caso de prueba Editar Proyecto

Descripción: Prueba unitaria para el caso de uso editar un proyecto

Precondiciones:

1. Ingresar al módulo de proyecto.

2. Realizar la búsqueda del proyecto.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato del proyecto.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-8: Prueba unitaria edición del proyecto.Fuente: Tesista. Autor: Tesista.

86

Caso de prueba Eliminar Proyecto

Descripción: Prueba unitaria para el caso de uso eliminar una proyecto

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Aceptar la opción eliminar proyecto.

Resultado esperado El proyecto se elimina correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

ObservaciónCuando se elimine un proyecto se realizara unaeliminación en cascada, es decir se eliminara todos losregistros relacionados con esta tabla.

Tabla 3-9: Prueba unitaria eliminación del proyecto.Fuente: Tesista. Autor: Tesista.

Caso de prueba Crear Nivel

Descripción: Prueba unitaria para el caso de uso crear un nivel

Precondiciones: 1. Ingresar al módulo de nivel.

Datos de entrada Nombre: Consideraciones técnicas del invernadero.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-10: Prueba unitaria creación del nivel.Fuente: Tesista. Autor: Tesista.

Caso de prueba Editar Nivel

Descripción: Prueba unitaria para el caso de uso editar un nivel

Precondiciones:

1. Ingresar al módulo de nivel.

2. Realizar la búsqueda del nivel.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato del nivel.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-11: Prueba unitaria edición del nivel.Fuente: Tesista. Autor: Tesista.

87

Caso de prueba Eliminar Nivel

Descripción: Prueba unitaria para el caso de uso eliminar un nivel

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Aceptar la opción eliminar nivel.

Resultado esperado El nivel se elimina correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

ObservaciónCuando se elimine un nivel se realizara una eliminaciónen cascada, es decir se eliminara todos los registrosrelacionados con esta tabla.

Tabla 3-12: Prueba unitaria eliminación del nivel.Fuente: Tesista. Autor: Tesista.

Caso de prueba Crear Actividad

Descripción: Prueba unitaria para el caso de uso crear una actividad

Precondiciones: 1. Ingresar al módulo de actividad.

Datos de entrada Nombre: Cotizaciones de materiales.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-13: Prueba unitaria creación de la actividad.Fuente: Tesista. Autor: Tesista.

Caso de prueba Editar Actividad

Descripción: Prueba unitaria para el caso de uso editar una actividad

Precondiciones:

1. Ingresar al módulo de actividad.

2. Realizar la búsqueda de la actividad.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato de la actividad.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-14: Prueba unitaria edición de la actividad.Fuente: Tesista. Autor: Tesista.

88

Caso de prueba Eliminar Actividad

Descripción: Prueba unitaria para el caso de uso eliminar una actividad

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Aceptar la opción eliminar actividad.

Resultado esperado La actividad se elimina correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

ObservaciónCuando se elimine una actividad se realizara una eliminación en cascada, es decir se eliminara todos los registros relacionados con esta tabla.

Tabla 3-15: Prueba unitaria eliminación de la actividad.Fuente: Tesista. Autor: Tesista.

Caso de prueba Crear Tarea

Descripción: Prueba unitaria para el caso de uso crear una tarea

Precondiciones: 1. Ingresar al módulo de tarea.

Datos de entrada

Nombre: Materiales y herramientas del invernadero, polisombra y barrera rompe vientos.

Encargado: Consejo Provincial de Pichincha

Responsable: Xavier Villareal.

Fecha de inicio: 03-07-2015.

Fecha de fin: 03-12-2015.

Porcentaje: 14%.

Descripción: Se realizara la cotización de los materiales antes señalados.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-16: Prueba unitaria creación de la tarea.Fuente: Tesista. Autor: Tesista.

89

Caso de prueba Editar Tarea

Descripción: Prueba unitaria para el caso de uso editar una tarea

Precondiciones:

1. Ingresar al módulo de tarea.

2. Realizar la búsqueda de la tarea.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato de la tarea.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-17: Prueba unitaria edición de la tarea.Fuente: Tesista. Autor: Tesista.

Caso de prueba Eliminar Tarea

Descripción: Prueba unitaria para el caso de uso eliminar una tarea

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Aceptar la opción eliminar tarea.

Resultado esperado La tarea se elimina correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

ObservaciónCuando se elimine una tarea se realizara una eliminación en cascada, es decir se eliminara todos los registros relacionados con esta tabla.

Tabla 3-18: Prueba unitaria eliminación de la tarea.Fuente: Tesista. Autor: Tesista.

90

Caso de prueba Crear Recurso

Descripción: Prueba unitaria para el caso de uso crear un recurso

Precondiciones: 1. Ingresar al módulo de recurso.

Datos de entrada

Nombre: Otros materiales para el vivero.

Descripción: Es un recurso que esta a cargo de la comunidad.

Costo: $1500.

Resultado esperado Los datos se graban correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-19: Prueba unitaria creación del recurso.Fuente: Tesista. Autor: Tesista.

Caso de prueba Editar Recurso

Descripción: Prueba unitaria para el caso de uso editar un recurso

Precondiciones:

1. Ingresar al módulo de recurso.

2. Realizar la búsqueda del recurso.

3. Clic en la opción editar.

Datos de entrada Se puede modificar cualquier dato del recurso.

Resultado esperado Los datos se actualizan correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-20: Prueba unitaria edición del recurso.Fuente: Tesista. Autor: Tesista.

Caso de prueba Eliminar Recurso

Descripción: Prueba unitaria para el caso de uso eliminar un recurso

Precondiciones: 1. Ingresar al módulo de administración.

Datos de entrada Aceptar la opción eliminar recurso.

Resultado esperado El recurso se elimina correctamente.

Resultado obtenido Satisfactorio.

Casos de excepción Ninguno.

Observación Ninguna.Tabla 3-21: Prueba unitaria eliminación del recurso.Fuente: Tesista. Autor: Tesista.

91

3.4.2 Pruebas de Integración

Las pruebas de integración son métodos que permiten determinar la estructura del

sistema. El objetivo de estas pruebas es tomar los componentes a los que se realizó

las pruebas unitarias para verificar que dichos componentes en conjunto funcionan

correctamente.

A continuación en la Tabla 3-22, se describen las pruebas de integración de los

módulos del sistema ILALO V. 1.

92

Caso de Prueba Prueba Unitaria Resultados Esperados

Gestión de Usuarios

Crear Usuario

Módulo Integrado correctamente.

Confirmar Usuario

Buscar Usuario

Visualizar Usuario

Editar Usuario

Eliminar Usuario

Gestión de Organizaciones

Buscar OrganizaciónMódulo Integrado correctamente.

Visualizar Organización

Editar Organización

Gestión de Proyectos

Crear Proyecto

Módulo Integrado correctamente.

Buscar Proyecto

Visualizar Proyecto

Editar Proyecto

Eliminar Proyecto

Gestión de Niveles

Crear Nivel

Módulo Integrado correctamente.

Buscar Nivel

Visualizar Nivel

Editar Nivel

Eliminar Nivel

Gestión de Actividades

Crear Actividad

Módulo Integrado correctamente.

Buscar Actividad

Visualizar Actividad

Editar Actividad

Eliminar Actividad

Gestión de Tareas

Crear tarea

Módulo Integrado correctamente.

Buscar tarea

Visualizar tarea

Editar tarea

Eliminar tarea

Gestión de Recursos

Crear recurso

Módulo Integrado correctamente.

Buscar recurso

Visualizar recurso

Editar recurso

Eliminar recursoTabla 3-21: Pruebas de Integración.Fuente: Tesista. Autor: Tesista.

93

3.4.3 Pruebas de Estrés

Conocidas como “stress testing”, el objetivo de estas pruebas es obtener datos, sobre

la carga del sistema, que ayuden a realizar el dimensionamiento del sistema. Esta

prueba genera carga en el sistema hasta hacerlo colapsar, de esta manera se prueba

los tiempos de respuesta ante un determinado número de conexiones y peticiones.

Pruebas de Estrés con Apache Bench

Apache Bench es una utilidad que posee él servidor web Apache, que nos permite

realizar pruebas de estrés simulando n número de conexiones y peticiones al sistema

permitiéndonos medir el rendimiento del servidor, así como tener los tiempos de

respuesta bajo los parámetros antes mencionados.

Procedimiento de la Prueba de Estrés

1. Ingresamos a la aplicación e iniciamos la sesión.

2. Necesitamos pasarle a Apache Bench la cookie con el identificador de sesión.

Para averiguar el identificador de sesión, en Firefox está en Preferencias →

Privacidad → eliminar cookies de forma individual; tal cual como se observa

en la Figura 3-49.

94

3. Copiamos el nombre de la cookie y su respectivo valor.

4. Abrimos la terminal y pasmos él comando

ab -g grafica.data -n 14 -c 10 -C laravel_session=eyJpdiI6InpkQk1NbWp6V0E2RWxIbVZFeVhIVWVwcExsZThRMjNrZjJOM1gwZFVubTg9IiwidmFsdWUiOiJXM3AzWTNMVWhjTFhnU3hKMGJyZ2VEaktlUnkxUEtvY2tVa05tXC9RaEFiMjg1YWpoRkl0Z2drZ0dFR1NIUFZYYnFaTHlDTGVXRFV5TzM2cmh2bURcL013PT0iLCJtYWMiOiJkODVjYThkMDhkZDBkNWFjNjJmZjllNGJkZTgyY2E1ODkyMDg0Y2M4M2M0M2NiM2QzZDg5YzNiNDE3M2IwNWNhIn0%3D http://192.168.0.11/ilalov1/public/

95

Figura 3-49: Cookie inicio de SesiónFuente: Tesista. Autor: Tesista.

Donde:

• ab es el comando para iniciar Apache Bench.

• -g guarda los resultados en el archivo grafica.data, para poder dibujarlos

luego.

• -n 14 indica que se harán de peticiones al servidor.

• -c 20 indica el número de conexiones.

• -C

laravel_session=eyJpdiI6InpkQk1NbWp6V0E2RWxIbVZFeVhIVWVwcExs

ZThRMjNrZjJOM1gwZFVubTg9IiwidmFsdWUiOiJXM3AzWTNMVWhjT

FhnU3hKMGJyZ2VEaktlUnkxUEtvY2tVa05tXC9RaEFiMjg1YWpoRkl0Z2

drZ0dFR1NIUFZYYnFaTHlDTGVXRFV5TzM2cmh2bURcL013PT0iLCJt

YWMiOiJkODVjYThkMDhkZDBkNWFjNjJmZjllNGJkZTgyY2E1ODkyM

Dg0Y2M4M2M0M2NiM2QzZDg5YzNiNDE3M2IwNWNhIn0%3D pasa el

identificador de sesión en forma de cookie

• http://192.168.0.11/ilalov1/public/ es la dirección de la aplicación

Se ingresaron estos parámetros puesto que el número de conexiones que actualmente

ocupa el sistema es de 10, y el número de peticiones al servidor es un valor variable

pero su tope máximo ha sido de 14 tal como se observa en la Figura 3-50.

96

Figura 3-50: Número máximo de peticiones al Servidor.Fuente: Tesista. Autor: Tesista.

Con la ejecución de la prueba se obtuvieron los siguientes resultados:

This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.11 (be patient).....done

Server Software: Apache/2.4.7 Server Hostname: 192.168.0.11 Server Port: 80

Document Path: /ilalov1/public/ Document Length: 5404 bytes

Concurrency Level: 10 Time taken for tests: 14.107 seconds Complete requests: 14 Failed requests: 0 Write errors: 0 Total transferred: 85316 bytes HTML transferred: 75656 bytes Requests per second: 0.99 [#/sec] (mean) Time per request: 10076.717 [ms] (mean) Time per request: 1007.672 [ms] (mean, across all concurrent requests) Transfer rate: 5.91 [Kbytes/sec] received

Connection Times (ms) min mean[+/-sd] median max Connect: 1 1932 1493.3 3004 3005 Processing: 887 4712 3428.1 4748 10237 Waiting: 862 4666 3422.4 4704 10209 Total: 889 6643 4284.0 7752 12229

Percentage of the requests served within a certain time (ms)

50% 7752 66% 9570 75% 10238 80% 10672 90% 12010 95% 12229 98% 12229 99% 12229 100% 12229 (longest request)

97

Lo más relevante de estos resultados es lo siguiente:

Requests per second: peticiones atendidas por segundo durante la prueba.

Time per request (mean): tiempo miedo que el servidor ha tardado en atender a un

grupo de peticiones.

Time per request (mean, across all concurrent requests): tiempo medio que el

servidor ha tardado en atender una petición individual.

Finalmente para crear una gráfica del test utilizamos los datos generados en él

archivo grafica.data.

98

Figura 3-51: Gráfico Peticiones y Conexiones vs Tiempos de Respuesta.Fuente: Tesista. Autor: Tesista.

3.5 Mantenimiento

El software sufrirá modificaciones después que se encuentre en producción, estos

ocurrirán debido a que hayan encontrado errores, a que el software deba adaptarse a

nuevas reaglas del negocio.

Estos tendran que darse bajo las normas y condiciones que la universidad y la

facultad tengan dentro de sus estatutos en cuanto a los derechos de propiedad

intelectual del software.

99

CAPÍTULO 4

CONCLUSIONES Y RECOMENDACIONES

4.1 Conclusiones

Se desarrollo él sistema informático ILALO V 1.0, acorde con los requerimientos

tomados por parte de la JGUSRP, logrando cumplir los objetivos planteados al inicio

del proyecto.

• Se logro mejorar el seguimiento, desarrollo y ejecución de los proyectos de la

junta.

• Con la generación de reportes y diagramas de Gantt se pudo tener un mejor

control de los proyectos que estos poseen .

• Se pudo dar al usuario una herramienta web la cual le dara facilidad para dar

seguimiento a los proyectos que el usuario necesite y pueda consultar .

• El sistema ILALO V 1.0 es un sistema para poder monitorizar a distintos

proyectos de diversa índole y fácil de usar con lo cual se ha facilitado el

seguimiento de proyectos.

4.2 Recomendaciones.

• El sistema está diseñado en un ambiente web, pero este estará ejecutado de

forma local, si en algun momento se desea migrarlo a la web se recomineta

ulitilzar un servicio de hosting que tenga la misma arquitectura ya antes

señalada.

• Se recomienda el uso de navegadores web modernos, que esten siempre

actualizados en sus últimas versiones estables, puesto que estos son más

compatibles con las plantillas de diseño del sistema, de esta manera

evitaremos errores en el funcionamiento.

• Como la tecnología es muy cambiante se recomineda no actualizar los

distintos componentes que conforman el sistema es decir: PHP, LARAVEL y

Twitter Bootstrap, puesto que podria haber incompatiblidades entre estos.

100

GLOSARIO DE TERMINOS

A

Algoritmo.- Método que describe cómo se resuelve un problema en término de las

acciones que se ejecutan y especifica el orden en que se ejecutan estas acciones. Los

algoritmos ayudan al programador a planificar un programa antes de su escritura en

un lenguaje de programación.

API.- Interfaz de programación de aplicaciones (Application Program Interface).

Conjunto de convenciones internacionales que definen las propiedades y cómo debe

invocarse una determinada función de un programa desde una aplicación.

Array (vector o arreglo).- Objeto que almacena una secuencia indexada de los

mismos tipos de datos, los elementos individuales se referencian por el valor de un

índice.

B

Base de datos.- En ocasiones abreviada con la sigla BD o DB, es un conjunto de

datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su

posterior uso.

Bolean (bolean, lógico) .- Tipo de datos que puede tomar sólo dos valores: true

(verdadero) y false (falso).

C

Clase.- Colección encapsulada de variables y funciones que representan la

abstracción de una entidad, los métodos de una clase definen el conjunto de

operaciones permitidas sobre los datos de una clase (sus atributos). Una clase puede

tener muchas instancias de la clase u objetos.

Cliente.- Aquella aplicación que trabaja en conjunto con un servidor, generalmente el

cliente reside en la computadora del usuario, este envía al servidor la petición de la

información que sea necesaria interpretar la respuesta para presentarla al usuario.

Comentario.- Párrafo de texto que tienen como objetivo documentar el programa y

mostrar como se ha codificado. Los comentarios no son sentencias de programación

y son ignorados por el compilador.

101

Composer.- Los proyectos PHP grandes, como por ejemplo las aplicaciones

desarrolladas con LARAVEL u otros frameworks como Symfony2, dependen a su

vez de muchos otros proyectos. Cuando se envía un email por ejemplo, LARAVEL

utiliza una librería externa llamada SwiftMailer. Así que para que la aplicación

funcione bien, composer instala todas esas librerías externas (llamadas

dependencias).

CSS.- Lenguaje de hojas de estilo utilizado para dar cierto formato, apariencia y

presentación a un archivo hecho mediante un lenguaje de marcado como HTML.

D

Default.- Ajustes por defecto. Lo que pasará si no se modifica nada.

Diagrama de flujo.- Representación gráfica de los tipos y secuencia de operaciones

de un programa o proceso.

DML.- Lenguaje de Manipulación de Datos. Es un lenguaje que permite el manejo y

procesamiento del contenido una base de datos.

DOM (Document Object Model).- Es una API que permite acceder y manipular las

páginas XHTML como si fueran documentos XML, pueden acceder y modificar el

contenido, estructura y estilo de los documentos HTML y XML.

F

Firefox.- Navegador de la web gratuito, moderno que cumple compatible con los

estándares web y nuevas funcionalidades html5.

Framework.- Es una estructura lógica con módulos de software, que sirven de base

para la organización y desarrollo de aplicaciones. Incluye soporte de programas,

bibliotecas, funciones, probadas por varias personas y disponible para la mayoría de

lenguajes de programación.

Función.- Estructura lógica que recibe o no parámetros, y generalmente devuelve un

resultado.

H

HTML.- Lenguaje de marcas de hipertexto, es el lenguaje en el que están escritas las

páginas web, se trata de un texto en el que hay insertadas etiquetas que comienzan

102

con el símbolo < y acaban con los símbolos /> el navegador interpreta el significado

de las etiquetas mostrándonos en pantallas las páginas tal y como lo vemos.

J

JavaScript (JS).- Un lenguaje de programación que interpretado que se ejecuta del

lado del cliente generalmente, permite añadir ciertas funciones a las páginas web, e

incluso alterar la manera en que se ven algunos elementos dadas ciertas condiciones.

Jquery.- Es un framework JavaScript, que nos permite escribir código JS, de una

manera mucho más fácil y rápido.

L

Lenguaje de marcado o lenguaje de marcas.- Es una forma de codificar un

documento junto con el texto, incorpora etiquetas o marcas estas estructuran el texto

o su presentación. Los lenguajes de marcado suelen confundirse con lenguajes de

programación. Sin embargo, no son lo mismo, ya que no tiene funciones aritméticas

o variables, como sí poseen los lenguajes de programación.

M

Maquetado.- Es el nombre que recibe la acción de distribuir los elementos en una

página web, es decir es un bosquejo de como estará estructurada.

S

Servidor.- Es el nodo parte de la arquitectura cliente-servidor que da respuesta a las

peticiones que realiza el cliente.

W

World Wide Web (WWW).- Más conocida como la web, es un sistema de

distribución de documentos de hipertexto, accesibles vía Internet a travez de un

navegador.

W3C (World Wide Web Consortium).- Organización que da recomendaciones y

stándares de programación para poder desarrollar aplicaciones web, compatibles con

la mayoría de los navegadores.

103

BIBLIOGRÁFIA

Referencias Bibliográficas

1. PRESSMAN R, (2005). Ingeniería de Software un Enfoque Práctico, España.

Sexta Edición.

2. SOMMERVILLE Ian, (2005). Ingeniería del Software. Séptima Edición.

3. GONZÁLEZ, Jesús. (2006) Sistemas sistema de seguimiento de proyectos:

Funcionamiento y metodología de implantación. Ediciones Trea.

Referencias Web

1. (“Documentation - LARAVEL PHP Framework,” n.d.) Center for History and

New Media. (n.d.). Guía rápida. obtenido Junio 10, 2013 de

http://LARAVEL.com/docs

2. (“Api - LARAVEL PHP Framework,” n.d.) Center for History and New

Media. (n.d.). Guía rápida. obtenido Junio 10, 2013 de

http://LARAVEL.com/api/4.1/

3. MySQL :: MySQL 5.0 Reference Manual :: 1 Información general. (n.d.).    

obtenido Junio 10, 2013, de

http://dev.MySQL.com/doc/refman/5.0/es/introduction.html

4. PHP: Un tutorial sencillo - Manual. (n.d.). obtenido Junio 10, 2013, de

http://php.net/tut.php

5. Proyectos de Negocio. (n.d.). obtenido Junio 10, 2013, de http://ateneo-

empresarial.com/servicios/proyectos-de-negocio/

6. Sistema de seguimiento de proyectos Management Coalition. (n.d.). obtenido

Junio 10, 2013, de http://www.wfmc.org/

7. (“Bootstrap makes front-end web development,” n.d.). obtenido Junio 10,

2013 de http://getbootstrap.com/

8. Material docente sobre gestión y control de proyectos : Programa de

Capacitación BID/ILPES http://biblioteca.cepal.org/record=b1076492~S0

104

ANEXOS

ANEXOS

105

ANEXO A – MANUAL DE USUARIO

Objetivo

El objetivo del presente manual es instruir al usuario final acerca del uso del sistema,

se recomienda el uso de navegadores modernos para evitar posibles errores en el

funcionamiento del sistema.

Requerimientos

• Tener un navegador web moderno, preferentemente: Firefox y/o Google

Chrome.

• Tener habilitado JavaScript en el navegador, por defecto viene habilitado en

la mayoría de los navegadores.

Ingreso al sistema.

Para ingresar al sistema se debe acceder a través de la siguiente dirección, en nuestro

navegador: http://X.X.X.X/ilalov1/public/ donde X.X.X.X sera la ip del servidor,

donde se encuentra la aplicación, como se ve en la Figura A-1

Una vez ingresado nos aparecerá la pantalla de inicio, en donde se cargan los datos

106

Figura A -1: Dirección de página de Inicio dela aplicación.Fuente: Tesista. Autor: Tesista.

Figura A-2: Página de Inicio de la aplicación.Fuente: Tesista. Autor: Tesista.

generales de la organización.

Nota: De acuerdo al perfil que posea el usuario tendrá acceso a las distintas sesiones

de las que está conformado el sistema:

• Administrador

• Gestor de Proyecto

• Usuario

Para acceder al sistema se usa el usuario y contraseña que fue otorgado al usuario por

el administrador del sistema, ingresamos dando clic en la esquina superior derecha.

Si el usuario, correo electrónico y/o contraseña fue mal ingresado se muestra él

siguiente mensaje de error.

Si no se recuerda el usuario o la contraseña se debe ingresar al enlace olvide

contraseña el cual nos lleva a la pantalla de que nos permitirá restablecer la

107

Figura A-3: Inicio sesión de la aplicación.Fuente: Tesista. Autor: Tesista.

Figura A-4: Error Inicio sesión de la aplicación.Fuente: Tesista. Autor: Tesista.

contraseña ingresado el nuestro correo electrónico.

Opciones generales para todos los Perfiles

Las opciones que se detallan en este segmento son comunes para todos los registros

del sistema.

Con esta opción él usuario podrá crear un nuevo registro en la base de datos

Con estas opciones el usuario podrá editar o eliminar él registro asociado, a la

correspondiente fila de la tabla.

108

Figura A-5: Correo electrónico para recuperación de contraseña.Fuente: Tesista. Autor: Tesista.

Figura A-6: Botón nuevo registro.Fuente: TesistaAutor: Tesista

Figura A-7: Botones editar y eliminar registro.Fuente: Tesista.Autor: Tesista.

Con estas opciones el usuario podrá guardar o rechazar los cambios de la edición de

un registro.

Opción Nuevo

Cuando demos clic en esta opción aparecerá un formulario con los distintos campos

que posea el registro que deseamos ingresar en él sistema.

109

Figura A-8: Botones guardary cancelar edición del registro.Fuente: Tesista.Autor: Tesista.

Figura A-9: Ejemplo de un formulario para un nuevo registro.Fuente: Tesista. Autor: Tesista.

Ingresamos los campos que nos pida él formulario para poder ser ingresados al

sistema, estos datos serán validados, antes de ser guardados en cada opción del menú

que posea nuestro perfil.

Opción Eliminar

Cuando demos clic en esta opción aparecerá una pantalla de confirmación para la

eliminación del registro.

Nota.- Cabe recalcar si se elimina un registro este lo hará en forma de cascada, es

decir sé eliminará todos los registros que dependen de este por ejemplo: si elimina un

proyecto se eliminara todas las dependencias asociadas a este proyecto, es decir sus

etapas, actividades, tareas y recursos.

Opción Editar

Cuando demos clic en esta opción aparecerá un formulario con los distintos campos

que posea el registro que deseamos editar en él sistema.

110

Figura A-10: Ejemplo de la ventana de confirmación para eliminar un registro.Fuente: Tesista. Autor: Tesista.

Modificamos los campos que deseemos actualizar en él formulario para poder ser

ingresados al sistema, estos datos serán validados, antes de ser guardados.

Si deseamos aplicar los cambios al registro lo damos clic en guardar tal cual sé

muestra en la Figura A-11.

Módulo de Reportes

El módulo de reportes es una opción en común que tienen todos los perfiles que

maneja él sistema, basta con dar clic en la imagen del tipo de documento en el que

deseamos que sé genere el reporte.

111

Figura A-11: Ejemplo de un formulario para editar un registro.Fuente: Tesista. Autor: Tesista.

Figura A-12: Panel común para el acceso a los reportes.Fuente: Tesista. Autor: Tesista.

El sistema maneja tres tipos de formatos de reportes:

• Documento pdf.

• Documento Word.

• Documento Excel.

Reportes en Pdf

Esta opción genera reportes, de los proyectos, las tareas y los recursos con distintos

criterios de selección y con el formato ya mencionado.

Reportes en Word

Esta opción genera reportes, de los proyectos, las tareas y los recursos con distintos

criterios de selección y con el formato ya mencionado.

112

Figura A-13: Panel para la generación de reportes en formato pdf.Fuente: Tesista. Autor: Tesista.

Reportes en formato Excel

Esta opción genera reportes, de los proyectos, las tareas y los recursos con distintos

criterios de selección y con el formato ya mencionado.

113

Figura A-14: Panel para la generación de reportes en formato de documento de word.Fuente: Tesista. Autor: Tesista.

Figura A-15: Panel para la generación de reportes en formato de documento de excel.Fuente: Tesista. Autor: Tesista.

Opciones Perfil Administrador

Este perfil es el encargado de las tareas de administración del sistema como crear

usuarios, editar la organización y demás opciones que se explican más adelante.

Este perfil tiene acceso a las opciones que se muestran en la Figura A-16.

Usuarios

Al dar clic nos aparecerá él listado con los usuarios de la organización, en forma de

tabla, como se puede observar en la Figura A-17.

En esta opción el administrador podrá crear usuarios, del sistema y asignara los

respectivos perfiles de los mismos, el cual enviara un correo electrónico a la cuenta

del usuario para que sea activado.

114

Figura A-16: Panel de sesión del perfil de administrador.Fuente: Tesista. Autor: Tesista.

Figura A-17: Listado de los usuarios del sistema con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

Organización

Al dar clic nos aparecerá él listado con los campos de la organización, en forma de

tabla, con el icono en forma de lápiz para poder editar la misma

En esta opción el administrador podrá editar, los campos de la organización, como la

misión, visión y el nombre de la organización

115

Figura A-18: Lista de la organización del sistema.Fuente: Tesista. Autor: Tesista.

Figura A-19: Panel para la edición de la organización del sistema.Fuente: Tesista. Autor: Tesista.

Nota: La Organización es única por tanto no se podrá crear mas organizaciones ni

tampoco eliminarla

Proyectos

Al dar clic nos aparecerá él listado con los proyectos de la organización, en forma de

tabla, como se puede observar en la Figura A-20, tenemos un campo adicional, a

parte de los botones de eliminar y editar, que él diagrama de gantt del proyecto.

En esta opción el administrador podrá crear, editar y eliminar los distintos proyectos

que la organización tiene en sus manos, cualquiera sea el estado en que este se

encuentre.

Estados

Al dar clic nos aparecerá él listado con los estados que puede tener los proyectos de

la organización, en forma de tabla, como se puede observar en la Figura A-21.

116

Figura A-20: Listado de los proyectos del sistema con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

En esta opción el administrador podrá crear editar y eliminar los distintos estados que

los proyectos pueden tener por ejemplo: Activo, finalizado, pendiente entre otros.

Etapas

Al dar clic nos aparecerá él listado con las etapas que puede tener los proyectos de la

organización, en forma de tabla, como se puede observar en la Figura A-22.

En esta opción el administrador podrá crear editar y eliminar las distintas etapas que

los proyectos pueden tener

Actividades

Al dar clic nos aparecerá él listado con las actividades que puede tener las etapas de

los distintos proyectos de la organización, en forma de tabla, como se puede observar

en la Figura A-23.

117

Figura A-21: Listado de los estados del proyecto con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

Figura A-22: Listado de las etapas del proyecto con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

En esta opción el administrador podrá crear editar y eliminar las distintas actividades,

que las etapas de los proyectos pueden tener

Tareas

Al dar clic nos aparecerá él listado con las tareas que puede tener las actividades de

las distintas etapas de los proyectos, en forma de tabla, como se puede observar en la

Figura A-24.

En esta opción el administrador podrá crear editar y eliminar las distintas tareas que

puede tener una actividad dentro de una etapa

118

Figura A-23: Listado de las actividades del proyecto con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

Figura A-24: Listado de las tareas del proyecto con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

Recursos

Al dar clic nos aparecerá él listado con los recursos asignados a las tareas que puede

tener las actividades de las distintas etapas de los proyectos, en forma de tabla, como

se puede observar en la Figura A-25.

En esta opción el administrador podrá crear editar y eliminar los distintos recursos

que puede tener una tarea

Nota.- Los otros perfiles de manager y user que maneja él sistema se manejaran de la

misma forma que el perfil de administrador solamente que con menos opciones de

las que tratamos antes.

119

Figura A-25: Listado de los recursos del proyecto con las opciones de CRUD.Fuente: Tesista. Autor: Tesista.

ANEXO B – MANUAL DE TÉCNICO

Objetivo

El objetivo de este manual es profundizar en la parte informática tanto de hardware

como software que necesitamos tener disponible, para poder levantar e implantar el

sistema en distintos ambientes, arquitecturas, sistemas operativos, entre otras. Así

como conocer los distintos módulos y componentes y estructura de la aplicación.

Herramientas Empleadas

• PHP >= 5.3.7.

• Extensión MCrypt PHP.

• Base de datos MySQL >=5.4

• Servidor web Apache >=2.2.29.

• Composer.

Instalación del Ambiente de Software

El ambiente puede ser instalado en cualquier sistema operativo, en este manual

especifica la instalación para sistemas GNU/Linux y Windows.

Instalación de PHP, Apache y MySQL en GNU/Linux

Existen varias formas de instalar PHP en GNU/Linux, va a depender de la

distribución y la versión pero veremos la instalación desde los repositorios,

utilizaremos para este manual Ubuntu 14.04.

Instalación de PHP

Ejecutamos en una terminal los siguientes comandos:

sudo apt-get install php5-curl

sudo apt-get install curl

sudo apt-get php5-mcrypt

120

Instalación de Apache

Ejecutamos en una terminal el siguiente comando:

sudo apt-get install apache2

Instalación de MySQL

Ejecutamos en una terminal los siguientes comandos:

sudo apt-get install MySQL-server

sudo apt-get install MySQL-client

sudo apt-get install libMySQLclient-dev

Durante el proceso de instalación pedirá que se asigne la contraseña al usuario root

de MySQL.

Instalación de phpMyAdmin

Ejecutamos en una terminal el siguiente comando:

sudo apt-get install phpmyadmin

Una vez instalado todos los componentes del servidor LAMP, procedemos a

comprobar que la instalación haya sido correcta y este funcional.

Toda la documentación root por defecto de apache se encuentra en el directorio

/var/www/html/ es decir en esta carpeta estaran todas las páginas web del sistema.

Creamos un nuevo archivo llamado info.php, dentro de la carpeta anterior con el

siguiente código.

<?php

phpinfo();

?>

Ingresamos al navegador del cliente y escribimos la dirección ip del servidor y el

archivo que acabamos de crear http://X.X.X.X/info.php

121

Instalación de PHP, Apache y MySQL en Windows

Lo más recomendable para la instalación de PHP en Windows es utilizar, uno de los

tantos paquetes de servidores independientes como: XAMPP, Appserver, EasyPHP,

entre otros, que manejan una colección de PHP, Apache y MySQL, para este manual

se utilizara XAMPP.

Este manual está desarrollado para la versión XAMPP 1.8.3.5 (del 21 de agosto de

2014), que incluye Apache 2.4.10, PHP 5.5.15, MySQL 5.6.20 y se puede descargar

con este enlace https://www.apachefriends.org/es/index.html. Las versiones

posteriores (1.8.X) necesitarán probablemente cambios en los archivos de

configuración, por lo que se recomienda utilizar XAMPP 1.8.3.X.

Una vez descargado el instalador de XAMPP, hay que hacer doble clic sobre él para

ponerlo en marcha. Las imágenes que se muestran a continuación corresponden a la

instalación de XAMPP 1.8.3.5 en Windows 7 (a partir de XAMPP 1.8.3, XAMPP no

se puede instalar en Windows XP ya que PHP 5.5 no se puede instalar en Windows

XP).

• Ejecutamos el instalador descargado y lo primero en apareces es si el servidor

posee un antivirus.

122

Figura B-1: Página de configuración de PHP.Fuente: Tesista. Autor: Tesista.

• Aparece si está activado el Control de Cuentas de Usuario y recuerda que

algunos directorios tienen permisos restringidos.

123

Figura B-2: Alerta de antivirus instalado.Fuente: Tesista. Autor: Tesista.

Figura B-3: Alerta de cuentas de usuario y permisos de instalación.Fuente: Tesista. Autor: Tesista.

• A continuación se inicia el asistente de instalación. Para continuar, hay que

hacer clic en el botón "Next".

• Los componentes mínimos que instala XAMPP son el servidor Apache y el

lenguaje PHP, pero XAMPP también instala otros elementos, como

necesitamos MySQL lo instalamos y phpMyAdmin para administrarlo.

124

Figura B-4: Inicio de asistente de instalación de XAMPP.Fuente: Tesista. Autor: Tesista.

125

Figura B-5: Selección de componentes de XAMPP a ser instalados.Fuente: Tesista. Autor: Tesista.

• En la siguiente pantalla se puede elegir la carpeta de instalación de XAMPP.

La carpeta de instalación predeterminada es C:\xampp se la puede cambiar

pero la dejaremos por defecto, damos clic en el botón "Next".

• Para empezar la instalación de XAMPP, hay que hacer clic en el botón "Next"

en la pantalla siguiente.

126

Figura B-6: Selección del directorio de instalación de XAMPP.Fuente: Tesista. Autor: Tesista.

• A continuación, se inicia el proceso de copia de archivos, que puede durar

unos minutos.

127

Figura B-7: Inicio de instalación de XAMPP.Fuente: Tesista. Autor: Tesista.

• Una vez terminada la copia de archivos, se muestra la pantalla que confirma

que XAMPP ha sido instalado. Hay que hacer clic en el botón "Finish". Para

no abrir a continuación el panel de control de XAMPP habría que desmarcar

la casilla correspondiente.

128

Figura B-8: Copia de los archivos de XAMPP al directorio de instalación.Fuente: Tesista. Autor: Tesista.

Acceder al panel de Control de XAMPP

Al panel de control de XAMPP se puede acceder mediante el menú de inicio "Todos

los programas > XAMPP > XAMPP Control Panel" o, si ya está iniciado, mediante

el icono del área de notificación.

El panel de control de XAMPP se divide en tres zonas:

• La zona de módulos, que indica para cada uno de los módulos de XAMPP: si

está instalado como servicio, su nombre, el identificador de proceso, el puerto

utilizado e incluye unos botones para iniciar y detener los procesos,

administrarlos, editar los archivos de configuración y abrir los archivos de

registro de actividad.

• La zona de notificación, en la que XAMPP informa del éxito o fracaso de las

acciones realizadas

129

Figura B-9: Finalización de la instalación de XAMPP.Fuente: Tesista. Autor: Tesista.

• La zona de utilidades, para acceder rápidamente

Para cerrar el panel de control de XAMPP hay que hacer clic en el botón Quit:

130

Figura B-10: Panel de Control de XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-11: Cierre del Panel de Control de XAMPP.Fuente: Tesista. Autor: Tesista.

El botón Cerrar en forma de aspa no cierra realmente el panel de control, sólo lo

minimiza:

Si se ha minimizado el panel de control de XAMPP, se puede volver a mostrar

haciendo doble clic en el icono de XAMPP del área de notificación.

El panel de control de XAMPP y el cortafuegos de Windows

Cuando se pone en marcha por primera vez cualquiera de los servicios que instala

XAMPP, el cortafuegos de Windows pide al usuario confirmación de la autorización.

131

Figura B-12: Minimización del Panel de Control de XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-13: Área de notificaciones de los servicios de XAMPP.Fuente: Tesista. Autor: Tesista.

Por ejemplo, la primera vez que se pone en marcha Apache mediante el botón Start.

Como Apache abre puertos en la computadora (por primera vez), el cortafuegos de

Windows pide al usuario confirmación. Para poder utilizarlo hace falta al menos

autorizar el acceso en redes privadas.

132

Figura B-14: Inicio de los servicios de XAMPP.Fuente: Tesista. Autor: Tesista.

Si el arranque de Apache tiene éxito, el panel de control mostrará el nombre del

módulo con fondo verde, su identificador de proceso, los puertos abiertos (http y

https), el botón "Start" se convertirá en el botón "Stop" y en la zona de notificación

se verá el resultado de las operaciones realizadas.

133

Figura B-15: Desbloqueo del servicio web de Apache en el cortafuegos.Fuente: Tesista. Autor: Tesista.

Si se abre el programa "Firewall de Windows con seguridad avanzada", en el

apartado de Reglas de entrada pueden verse las nuevas reglas añadidas.

Para comprobar que todo funciona correctamente, hay que escribir en el navegador la

dirección http://localhost. Al abrir la página por primera vez, XAMPP pedirá

seleccionar el idioma:

134

Figura B-16: Detención de servicios en XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-17: Reglas añadidas en el cortafuegos.Fuente: Tesista. Autor: Tesista.

Una vez elegido el idioma, se mostrará el panel de administración web de XAMPP

135

Figura B-18: Página de inicio de XAMPPFuente: Tesista. Autor: Tesista.

Por último hay que poner de seguridad al servidor recién instalado, para ello en el

menú de la izquierda hacemos clic en “chequeo de seguridad”.

Comprobaremos que algunos de los servicios aún no son seguros.

136

Figura B-19: Panel de control web de XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-20: Chequeo de seguridad web de XAMPP.Fuente: Tesista. Autor: Tesista.

Para arreglar estas vulnerabilidades hacemos clic sobre el enlace

http://localhost/security/xamppsecurity.php que se muestra en la Figura B-22.

Nos aparecerá una página donde establecemos una contraseña para el usuario root de

MySQL.

137

Figura B-21: Servicios inseguros de XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-22: Enlace para corrección de vulnerabilidades de XAMPP.Fuente: Tesista. Autor: Tesista.

Figura B-23: Establecimiento de contraseña del usuario root de MySQL.Fuente: Tesista. Autor: Tesista.

Instalación de Composer

Puede ser instalado en cualquier sistema operativo, en este manual especifica la

instalación para sistemas GNU/Linux y Windows.

Instalación de Composer en GNU/Linux

• Ejecutamos desde su consola el siguiente comando:

curl -sS https://gentre otrasomposer.org/installer | php

• O si no se tiene CURL instalado:

php -r "eval('?>'.file_get_contents('https://gentre

otrasomposer.org/installer'));"

• Si todo sale bien ya se podrán usar Composer con el siguiente comando:

php composer.phar

Instalar Composer globalmente

Es mejor instalar y tener disponible Composer en todo el sistema, para ello hay que

renombrar el archivo a “composer” (sin extensión) y moverlo a /usr/local/bin.

Instalar Composer en Windows

Descargamos él instalador de la página oficial https://gentre

otrasomposer.org/Composer-Setup.exe y lo ejecutamos dando clic en siguiente hasta

finalizar.

138

También se necesita instalar una consola git, la podemos instalar desde este enlace

http://git-scm.com/downloads, la ejecutamos y damos clic en siguiente hasta

finalizar. Si deseamos más información de composer la podemos encontrar en su

página oficial https://gentre otrasomposer.org/

139

Figura B-24: Inicio de instalador de composer para windows.Fuente: Tesista. Autor: Tesista.

Instalación de LARAVEL

Una vez instalado composer, usando la consola/terminal (si estamos en Windows

usaremos la consola de GIT que recién instalamos), ingresamos a la carpeta de la

documentacion de root del servidor web en este, por ejemplo: cd /var/www/html o

c:/xampp/httpdocs/ y escribir el siguiente código:

composer create-project laravel/laravel ilalov1 4.1.*

Explicación: ilalov1---------> Nombre del Sistema.

4.1.* -----------> Versión del Framework

Composer se encargará de descargar el núcleo base de LARAVEL y todas sus

dependencias.

140

Figura B-25: Inicio de instalador de consola git para windows.Fuente: Tesista. Autor: Tesista.

Una vez que haya terminado la instalación del nuevo proyecto, nos creara una

estructura de carpetas y archivos como se detalló en la sección 3.1.1 del tercer

capítulo.

141

Figura B-26: Instalación de un nuevo proyecto LARAVEL vía Composer.Fuente: Tesista. Autor: Tesista.

Comprobamos que se haya instalado correctamente nos dirigimos al navegador, y

digitados la dirección del servidor http://X.X.X.X/ilalo/public/ y nos aparecerá la

siguiente página.

142

Figura B-27: Estructura de carpetas y archivos de un nuevo proyecto con LARAVEL.Fuente: Tesista. Autor: Tesista.

Figura B-28: Página de inicio de LARAVEL.Fuente: Tesista. Autor: Tesista.

Restauración de ILALO V. 1

Una vez realizada la instalación de LARAVEL 4.1, tenemos que restaurar el

proyecto, empezaremos por levantar la base de datos, luego instalaremos los

componentes externos que ocupamos para el desarrollo del proyecto el cual los

mencionamos en la sección 3.3.1 Componentes Externos del tercer capítulo.

Levantamiento de la base de datos

Abrimos nuestro navegador y ejecutamos PhpMyAdmin, ingresamos a la misma con

el usuario root y la contraseña que establecimos en la instalación, una vez dentro nos

permitirá restaurar la base de datos con la información básica que necesita el sistema

ILALO para empezar con su funcionamiento.

Creamos una base de datos con el nombre ILALO y el cotejamiento utf8_unicode_ci,

tal como se muestra en la Figura B-29 es importante esta codificación puesto que es

con la trabaja LARAVEL, esta nos permitirá grabar datos con tildes, caracteres

especiales y la letra ñ.

143

Figura B-29: Creación de una nueva base de datos con PhpMyAdmin.Fuente: Tesista. Autor: Tesista.

Una vez creada la base ILALO, buscamos el archivo de restauración se encuentra en

el CD del proyecto, D:/sistema/db/ilalo.sql, cargamos dicho archivo y restauramos la

base, con la opción importar.

Una vez levantada la base de datos podemos ver la estructura de que se generó una

parte del modelo E-R, visto en la sección 3.2.4 Modelo de Datos, del tercer capítulo,

el resto de tablas la creara él componente de Zizaco/entrust y Zizaco/confide

Finalmente tenemos que configurar él archivo ilalo/app/config/database.php, este

archivo es un arreglo que contiene los parámetros para realizar la conexión con la

base MySQL creada, loas cambiamos según nuestra configuración.

'MySQL' => array( ….....................

'database' => 'ILALO',

'username' => 'root',

'password' => 'ilalo', ),

144

Figura B-30: Restauración de la base de datos ILALO.Fuente: Tesista. Autor: Tesista.

Figura B-31: Estructura de la base de datos ILALO.Fuente: Tesista. Autor: Tesista.

Instalación de Componentes Externos

• Zizaco/Confide

• Zizaco/Entrust

• JpGraph

• Dompdf

Para instalar estos componentes, tenemos que modificar él archivo composer.json,

que se encuentra el directorio raíz de nuestra aplicación. Como se ve es un arreglo js,

el cual lo modificamos añadiendo el siguiente código.

"require": {

"laravel/framework": "4.1.*",

"laravelbook/ardent": "2.4.0",

"zizaco/confide": "3.2.*@dev",

"zizaco/entrust": "1.3.0",

"jpgraph/jpgraph": "dev-master",

"thujohn/pdf": "dev-master"

},

Es muy importante realizar todos estos cambios ya que todos estos componentes

fueron probados con la versión 4.1 de LARAVEL. Una vez guardados los cambios en

el archivo ejecutamos el siguiente comando:

composer update

Con estas líneas composer instalará todos estos módulos y sus respectivas

dependencias

Configuración de Zizaco/Confide

Una vez instalado el componente hay que modificar el archivo

ilalo/app/config/app.php, añadimos el siguiente elemento

'Zizaco\Confide\ServiceProvider' al final de arreglo providers.

145

'providers' => array(

'Illuminate\Foundation\Providers\ArtisanServiceProvider',

'Illuminate\Auth\AuthServiceProvider',

…......................

'Zizaco\Confide\ServiceProvider',

),

Dentro del mismo archivo ilalo/app/config/app.php añadimos este elemento:

'Confide' => 'Zizaco\Confide\Facade' al arreglo aliases.

'aliases' => array(

'App' => 'Illuminate\Support\Facades\App',

'Artisan' => 'Illuminate\Support\Facades\Artisan',

…...............................

'Confide' => 'Zizaco\Confide\Facade',

),

Finalmente configuramos una dirección de correo valida la cual sera utilizada para

enviar los mails de confirmación al instante que se cree la cuenta de los usuarios,

editamos el archivo ilalo/app/config/mail.php. Esta configuración puede varia

dependiendo de la configuración del servidor de correo SMTP.

Creación del Modelo User

Nos dirigimos a la raíz de nuestro proyecto y en la terminal ejecutamos el comando.

php artisan confide:migration

Con este comando ejecutado LARAVEL nos creara una migración, que es una clase

que creara una tabla en la BD, este archivo se crea en el directorio

ilalo/app/database/migrations/2014_05_22_103301_confide_setup_users_table.php.

El nombre se crea con la fecha que se ejecutó la migración más la hora y su nombre

genérico, editamos este archivo y aumentamos estas lineas de código, que son el

nombre y el apellido del usuario.

146

Schema::create('users', function($table)

{ …..................

$table->string('nombre');

$table->string('apellido');

});

Con los parámetros definidos, luego ingresamos él comando

php artisan migrate

Con esta ejecución, realiza las consultas para la creación de la tabla users:

Creamos el controlador y la ruta, del modelo que creamos con los siguientes

comandos

php artisan confide:controller –restful

php artisan confide:routes –restful

composer dump-autoload

php artisan routes

Configuración de Zizaco/Entrust

Una vez configurado el componente anterior Zizaco/Confide hay que modificar el

archivo ilalo/app/config/app.php, añadimos el siguiente elemento

'Zizaco\Entrust\EntrustServiceProvider' al final de arreglo providers.

'providers' => array(

'Illuminate\Foundation\Providers\ArtisanServiceProvider',

'Illuminate\Auth\AuthServiceProvider',

…......................

''Zizaco\Entrust\EntrustServiceProvider'', ),

Dentro del mismo archivo ilalo/app/config/app.php añadimos este elemento: 'Entrust'

=> 'Zizaco\Entrust\EntrustFacade' al arreglo aliases.

147

'aliases' => array(

'App' => 'Illuminate\Support\Facades\App',

'Artisan' => 'Illuminate\Support\Facades\Artisan',

…...............................

'Entrust' => 'Zizaco\Entrust\EntrustFacade',

),

Creación del Modelo Roles

Nos dirigimos a la raíz de nuestro proyecto y en la terminal ejecutamos el comando.

php artisan entrust:migration

Con este comando ejecutado LARAVEL nos creara una migración, que es una clase

que creara una tabla en la BD, este archivo se crea en el directorio

ilalo/app/database/migrations/2014_05_22_103301_entrust_setup_tables.php,

ejecutamos él comando

php artisan migrate

Con esta ejecución, realiza las consultas para la creación de las tablas:

• roles

• assigned_roles

• permissions

• permissions_role

• password_reminders

Configuración de Dompdf

Una vez instalado el componente hay que modificar el archivo

ilalo/app/config/app.php, añadimos el siguiente elemento

'Thujohn\Pdf\PdfServiceProvider' al final de arreglo providers.

148

'providers' => array( 'Thujohn\Pdf\PdfServiceProvider',)

Dentro del mismo archivo ilalo/app/config/app.php añadimos este elemento: 'PDF'

=> 'Thujohn\Pdf\PdfFacade' al arreglo aliases.

'aliases' => array( 'PDF' => 'Thujohn\Pdf\PdfFacade',)

Nota: El componente JpGraph, no necesita configuraciones adicionales solamnete

con la instalación esta listo para usarse.

Configuraciones Varias

En le archivo ilalo/app/config/app.php, editamos las siguientes lineas de código, en

él arreglo

'debug' => false,

'timezone' => 'America/Guayaquil',

'locale' => 'es_ES',

En le archivo ilalo/app/start/global.php, aumentamos las siguientes lineas de código,

al final del archivo.

App::error(function($exception, $code)

{ switch ($code)

{ case 403:

return Response::view('errors.403', array(), 403);

case 404:

return Response::view('errors.404', array(), 404);

case 500:

return Response::view('errors.500', array(), 500);

default:

return Response::view('errors.default', array(), $code);

} });

Este código son mensajes de errores web personalizados.

149

También para tener una buena optima configuración de php es necesario que tenga

esta configuración, la cual la obtenemos editando el archivo php.ini

max_execution_time = 3600 ;

max_input_time = 1800 ;

memory_limit = 200M ;

post_max_size = 200M ;

Restauración de los archivos del proyecto

Realizado todo el procedimiento anteriormente señalado, debemos copiar y

reemplazar carpetas y archivos, que se encuentran en el CD del proyecto.

• Exploramos él CD, abrimos la carpeta ilalo/app, dentro de esta carpeta esta el

siguiente contenido, copiamos y reemplazos todas estas carpetas y archivos

que se muestran en la Figura B-32, por las carpetas y archivos originales que

nos generó LARAVEL.

• De la misma forma, abrimos la carpeta ilalo/public, dentro de esta carpeta

esta el siguiente contenido, copiamos todas estas carpetas e icono que se

muestran en la Figura B-33, en la carpeta public que nos generó LARAVEL.

150

Figura B-32: Carpetas y archivos del sistema ILALO V1.Fuente: Tesista. Autor: Tesista.

151

Figura B-33: Archivos js, estilos e imágenes del sistema ILALO V1.Fuente: Tesista. Autor: Tesista.

ANEXO C – DICCIONARIO DE DATOS

Objetivo

El objetivo del diccionario de datos es tener un detalle más profundo de las tablas,

donde se almacenan los datos del sistema incluyendo la descripción los atributos se

usaron en él desarrollo.

Tablas del Sistemas

En la Figura C-1, se muestran todas las tablas del sistema.

activities

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

level_id int(10) No Clave foránea de la tabla levels

nombre varchar(255) No Nombre del segundo nivel de jerarquía del proyecto

Tabla C-1: Tabla activities.Fuente: Tesista. Autor: Tesista.

152

Figura C-1: Tablas del sistema ILALO V1.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único Empaquetado

Columna Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 5 A No

activities_level_id_foreign

BTREE No No level_id 5 A No

Tabla C-2: Índices de la tabla activities.Fuente: Tesista. Autor: Tesista.

assigned_roles

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

user_id int(10) No Clave foránea de la tabla users

role_id int(10) No Clave foránea de la tabla roles

Tabla C-3: Tabla assigned_roles.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único

Empaquetado

Columna Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 4 A No

assigned_roles_user_id_foreign

BTREE No No user_id 4 A No

assigned_roles_role_id_foreign

BTREE No No role_id 4 A No

Tabla C-4: Índices de la tabla aassigned_roles.Fuente: Tesista. Autor: Tesista.

153

categories

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

nombre varchar(255) No Nombre de la Categoría

descripcion varchar(255) No Descripción de los distintos estados que tiene un proyecto

Tabla C-5: Tabla categories.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único Empaquetado

Columna Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 3 A No

Tabla C-6: Índices de la tabla categoriesFuente: Tesista. Autor: Tesista.

levels

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

project_id int(10) No Clave foránea de la tabla projects

nombre varchar(255) No Nombre del primer nivel de jerarquía del proyecto

Tabla C-7: Tabla levelsFuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único

Empaquetado

Columna Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 5 A No

levels_project_id_foreign

BTREE No No project_id 5 A No

Tabla C-8: Índices de la tabla levelsFuente: Tesista. Autor: Tesista.

154

organizations

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

nombre varchar(255) No Nombre de la Organización

mision text No Misión de la Organización

vision text No Visión de la Organización

Tabla C-9: Tabla organizationsFuente: Tesista. Autor: Tesista.

Índices

Nombre de la clave Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 3 A No

Tabla C-10: Índices de la tabla organizations.Fuente: Tesista. Autor: Tesista.

password_reminders

Columna Tipo Nulo Predeterminado Comentarios

email varchar(255) No Correo donde se enviará el enlace para el reseteo de la contraseña

token varchar(255) No Token generado para el reseteo de la contraseña

created_at timestamp No 0000-00-00 00:00:00 Fecha de la creación del token.

Tabla C-11: Tabla password_reminders.Fuente: Tesista. Autor: Tesista.

155

permission_role

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

permission_id int(10) No Clave foránea de la tabla permissions.

role_id int(10) No Clave foránea de la tabla roles.

Tabla C-12: Tabla permission_roleFuente: Tesista. Autor: Tesista.

Índices

Nombre de la clave Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 5 A No

permission_role_permission_id_foreign

BTREE No No permission_id

5 A No

permission_role_role_id_foreign

BTREE No No role_id 5 A No

Tabla C-13: Índices de la tabla permission_role.Fuente: Tesista. Autor: Tesista.

permissions

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

name varchar(255) No Nombre del permiso

display_name varchar(255) No Nombre que sé visualizará

created_at timestamp No 0000-00-00 00:00:00 Fecha de creación del permiso

updated_at timestamp No 0000-00-00 00:00:00 Fecha de edición del permiso

Tabla C-14: Tabla permissions.Fuente: Tesista. Autor: Tesista.

156

Índices

Nombre de la clave Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 2 A No

Tabla C-15: Índices de la tabla permissions.Fuente: Tesista. Autor: Tesista.

projects

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

categorie_id tinyint(4) No Clave foránea de la tabla categories

organization_id tinyint(4) No Clave foránea de la tabla organizations

nombre varchar(255) No Nombre del proyecto

descripcion text No Descripción detallada del proyecto

responsable varchar(255) No Entidad pública, entidad privada o persona responsable del proyecto

encargado varchar(100) No Persona de la organización encargada de monitorizar elproyecto

finicio date No Fecha de inicio del proyecto

ffin date No Fecha de finalización del proyecto

Tabla C-16: Tabla projects.Fuente: Tesista. Autor: Tesista.

157

Índices

Nombre de la clave

Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 5 A No

Tabla C-17: Índices de la tabla projects.Fuente: Tesista. Autor: Tesista.

resources

Columna Tipo Nulo Predeterminado

Comentarios

id int(10) No Clave primaria de la tabla

task_id int(10) No Clave foránea de la tabla tasks

nombre varchar(255) No Nombre del recurso asignado a esa tarea

descripcion text No Descripción detallada del recursoasignado a esa tarea

costo decimal(9,2) No Costo del recurso asignado a esa tarea

Tabla C-18: Tabla resources.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de la clave Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 11 A No

resources_task_id_foreign

BTREE No No task_id 11 A No

Tabla C-19: Índices de la tabla resources.Fuente: Tesista. Autor: Tesista.

158

roles

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

name varchar(255) No Nombre del Rol de usuario

created_at timestamp No 0000-00-00 00:00:00 Fecha de creación del rol

updated_at timestamp No 0000-00-00 00:00:00 Fecha de edición del rol

Tabla C-20: Tabla roles.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 3 A No

roles_name_unique BTREE Sí No name 3 A No

Tabla C-21: Índices de la tabla roles.Fuente: Tesista. Autor: Tesista.

159

tasks

Columna Tipo Nulo Predeterminado

Comentarios

id int(10) No Clave primaria de la tabla

activiti_id int(10) No Clave foránea de la tabla activities

nombre varchar(255) No Nombre de la tarea de la tarea

encargado varchar(255) No Persona de la organización encargada de monitorizar la tarea

responsable varchar(255) No Entidad pública, entidad privada o persona responsable de la tarea

finicio date No Fecha de inicio de la tarea

ffin date No Fecha de finalización de la tarea

porcentaje int(11) No Porcentaje de avance de la tarea

descripcion text No Descripción detallada de la tarea

Tabla C-22: Tabla tasks.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de la clave Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 9 A No

tasks_activiti_id_foreign

BTREE No No activiti_id

9 A No

Tabla C-23: Índices de la tabla tasks.Fuente: Tesista. Autor: Tesista.

160

users

Columna Tipo Nulo Predeterminado Comentarios

id int(10) No Clave primaria de la tabla

username varchar(255) No Usermane del usuario del sistema

nombre varchar(255) No Nombre del usuario

apellido varchar(255) No Apellido del usuario

email varchar(255) No Correo electrónico del usuario

password varchar(255) No Contraseña del usuario

confirmation_code

varchar(255) No Código de confirmación del usuario

confirmed tinyint(1) No 0 estado del usuario

created_at timestamp No 0000-00-00 00:00:00 Fecha de creación del usuario

updated_at timestamp No 0000-00-00 00:00:00 Fecha de modificación del usuario

Tabla C-24: Tabla users.Fuente: Tesista. Autor: Tesista.

Índices

Nombre de laclave

Tipo Único Empaquetado

Columna

Cardinalidad

Cotejamiento

Nulo

PRIMARY BTREE Sí No id 4 A No

Tabla C-25: Índices de la tabla users.Fuente: Tesista. Autor: Tesista.

161