universidad central del ecuador facultad de … · 2015-06-29 · trabajo de graduaciÓn previo la...
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
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
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
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.
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
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.
• 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