Sistema automatizado para la gestión de proyectos y Premios CITMA
Texto completo
(2) DICTAMEN. El que suscribe, Rinaldy Hernández Cruz, hago constar que el trabajo titulado Sistema Automatizado para el Control y Gestión de los Proyectos y Premios CITMA en la Provincia de Villa Clara fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de los estudios de la especialidad de Licenciatura en Ciencia de la Computación , autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. ______________________ Firma del Autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. ________________________________ Firma del Tutor. ______________________________ Firma del Jefe del Laboratorio.
(3) “Aprende como si fueras a vivir para siempre”. “Vive como si fueras a morir mañana.” Mahatma Gandhi.
(4) DEDICATORIA. A mi mamá por ayudarme siempre en todo, sin ella esto no hubiera sido posible. A mi papá por su incondicional apoyo y por su constante preocupación por mí. A toda mi familia por su apoyo y en especial a mis abuelos y mis tíos de crianza que siempre confiaron en mí y me lo dieron todo a cambio de nada. A las personas que ya no están físicamente y que no pudieron ver este día pero lo presagiaron siempre....
(5) AGRADECIMIENTOS A todos los amigos que empezamos en el 2006 y veíamos esto como un sueño; sin importar si terminamos juntos o no: José E., Pablo, Frank, Yoandy, Ernesto,José ,Yoan, Chau. A todas aquellas personas que se han preocupado por mí ,sacrificando muchas cosas durante estos seis años que parecieron días a su lado. Al equipo Symfony que hicimos software más rápido de lo imaginado. A Joan e Isel por guiarme en tan poco tiempo. A Ernesto por llegar en último minuto; en el que más cosas hicimos. A la gente del vicio del chat y de las redes que estuvieron ahí virtual y físicamente cuando hacía falta. Lo mejor de la universidad: Si quieres saber quiénes son tus amigos de verdad: equivócate en algo…. Y…a mí mismo por ser como soy y porque quiero y me lo merezco..
(6) RESUMEN. En el presente trabajo se realizó el diseño e implementación de un sistema informatizado que permite llevar a cabo la gestión de los proyectos CITMA y Premios de la Academia de Ciencias e Innovación Tecnológica en Villa Clara, creando una herramienta que facilita el control y gestión de todos los datos referentes a cada uno de estos componentes,. así como el acceso a todos los reportes emitidos. La. aplicación resultante brindará mayor efectividad al proceso de gestión de la información, de una forma más ágil y confiable, poniendo a disposición del cliente facilidades para acceder y satisfacer sus necesidades. Para implementar la aplicación se utilizó el framework Symfony, con un Gestor de bases de Datos MySQL. Para documentar y modelar toda la aplicación se utilizó lenguaje unificado de modelado..
(7) ABSTRACT. This work was carried out the design and implementation of a computerized system that allows to carry out the project management and CITMA Academy Awards of Science and Technological Innovation in Villa Clara, creating a tool that facilitates the control and management of all data on each of these components, as well as access to all reports issued. The resulting application will bring greater effectiveness to the process of information management, in a more agile and reliable customer by providing access and facilities to meet their needs.. To deploy the application we used the Symfony framework, with a Data Manager MySQL database. To document and model the entire application was used Unified Modeling Language..
(8) Tabla de Contenido INTRODUCCIÓN CAPÍTULO 1 FUNDAMENTACIÓN TEÓRICA…………………………………………..........1 1.1 Uso de las Tecnologías de la Información y las Comunicaciones……………………………..1 1.2 Uso de Sistemas Informáticos para el Control de los Datos de un Proceso en el Mundo……1 1.3La web en el entorno Empresarial ………………………………………………………………3 1.4 ¿Por qué utilizar Software Libre?..............................................................................................4 1.5 Metodologías de desarrollo de software…………………………………………………………4 1.5.1 Proceso Unificado de Desarrollo de Software (RUP)…………………………………………4 1.6 Lenguaje de Modelado …………………………………………………………………………..5 1.6.1 Lenguaje Unificado de Modelado (UML)……………………………………………………..5 1.7 Plataforma de desarrollo ………………………………………………………………………..5 1.7.1 Herramientas CASE …………………………………………………………………………..5 1.7.1.1 Visual Paradigm……………………………………………………………………………...6 1.7.1.2 Erecase………………………………………………………………………………………...7 1.8 Lenguaje de Programación……………………………………………………………………....7 1.8.1 PHP………………………………………………………………………………………………8 1.9 Herramientas de Desarrollo………………………………………………………………………8 1.9.1 Apache……………………………………………………………………………………………8 1.9.2 Entorno de desarrollo Integrado……………………………………………………………….9 1.9.2.1 NetBeans……………………………………………………………………………………….9.
(9) 1.10 Gestores de Base de Datos……………………………………………………………………….9 1.10.1 MySQL………………………………………………………………………………………..10 1.10.2 ORM…………………………………………………………………………………………..10 1.10.2.1 Doctrine……………………………………………………………………………………..11 1.11 FrameWork……………………………………………………………………………………..11 1.11.1¿Qué es un FrameWork?……………………………………………………………………..11 1.11.2 Symfony……………………………………………………………………………………….11 1.12 Conclusiones Parciales…………………………………………………………………………12 CAPITULO 2 ANÁLISIS Y DISEÑO DE LA APLICACIÓN……………………………………13 2.1 Antecedentes……………………………………………………………………………………..13 2.2 Modelo del sistema……………………………………………………………………………....14 2.2.1 Modelo (Lógica del Negocio) ………………………………………………………………....14 2.2.2 Posibilidades del nuevo Sistema………………………………………………………………15 2.2.3 Esquema de descripción de datos …………………………………………………………….15 2.2.4 Cambios en los esquemas iniciales…………………………………………………………....15 2.3 Requisitos del Software………………………………………………………………………….17 2.3.1 Requisitos Funcionales………………………………………………………………………...17 2.3.2 Requisitos no Funcionales……………………………………………………………………..18 2.4 Definición de los casos de uso……………………………………………………………………19 2.4.1 Actores del Sistema……………………………………………………………………………19 2.4.2 Diagrama de Casos de Uso del Sistema………………………………………………………20.
(10) 2.4.3 Casos de uso del Sistema. Descripción………………………………………………………..21 2.4.3.1 Caso de Uso Expandido……………………………………………………………………...23 2.5 Modelo de datos conceptual……………………………………………………………………..24 2.6 Conclusiones Parciales…………………………………………………………………………...24 CAPÍTULO 3 IMPLEMENTACIÓN DEL SISTEMA Y SU USO……………………………...25 3.1 Pre-requisitos operativos………………………………………………………………………...25 3.1.2 Instalación de Symfony………………………………………………………………………...25 3.1.3 La configuración del Servidor Web…………………………………………………………..25 3.1.4 Configuración de las Bases De Datos………………………………………………………….26 3.1.5 El ORM………………………………………………………………………………………….27 3.1.6 Estructura del Modelo (Clase Representativa del Sistema de Gestión de Proyectos)……..27 3.1.7 Datos Iniciales…………………………………………………………………………………..27 3.2 Características del Sistema……………………………………………………………………….28 3.2.1 Ambiente para el usuario Administrador General del Sistema……………………………...28 3.2.2 Ambiente para el usuario Gestor……………………………………………………………….31 3.2.3 Uso de plugins……………………………………………………………………………………31 3.2.4 Ambiente para el usuario Consultante…………………………………………………………32 3.3 Diagrama de Componentes………………………………………………………………………..32 3.4 Diagrama de Despliegue…………………………………………………………………………...35 3.5Conclusiones parciales……………………………………………………………………………...35 Conclusiones……………………………………………………………………………………………36.
(11) Recomendaciones……………………………………………………………………………………….37 Bibliografía……………………………………………………………………………………………...38 Anexos…………………………………………………………………………………………………...40.
(12) INTRODUCCIÓN Planteamiento del Problema Es necesario el desarrollo de un Sistema Automatizado que permita gestionar de una manera más eficiente las tareas de Control y Gestión de Proyectos, Premios y Resultados Científicos en el grupo de la Ciencia de la Delegación del CITMA en Villa Clara. Objetivo General Desarrollar un Sistema de Información que integre la gestión de convocatorias, programas, proyectos, Resultados y Premios de la Academia de Ciencias e Innovación Tecnológica en la Delegación del CITMA en Villa Clara. Objetivos Específicos Revisar y actualizar el diseño de la Base de Datos para la gestión de los Premios de la Academia de Ciencias e Innovación Tecnológica en Villa Clara. Revisar y actualizar el diseño de la Base de Datos para el Control y Gestión de los Proyectos CITMA en la Provincia de Villa Clara. Diseñar una base de datos única a partir de las mencionadas anteriormente. Desarrollar el sistema de información mediante el uso del Framework Symfony y MySQL. Confeccionar el manual de usuario de la aplicación final..
(13) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Desde la llegada de la primera computadora a Cuba, los especialistas en sistemas y en programación han buscado mejores formas productivas, de elaborar sistemas de información más adecuados y que respondan a las verdaderas necesidades de los usuarios finales de estos sistemas. Teniendo en cuenta lo antes planteado, el presente capítulo está destinado a brindar una breve descripción de lo relacionado con los Sistemas de Gestión de Información(SGI) y su desarrollo a nivel mundial . Se analizan las posibles herramientas y metodologías de desarrollo de software a utilizar en el sistema, especificándose sus principales características y las ventajas de su utilización. Asimismo se tienen en cuenta los diferentes lenguajes. 1.1 El uso de las Tecnologías de la Información y las Comunicaciones Las Tecnologías de la Información y las Comunicaciones (TIC), como factor decisivo en el desarrollo de la organización, constituyen en la actualidad un elemento de interacción social que influye positivamente en las instituciones u organizaciones. Actualmente las tecnologías de información y comunicación tienen una visión integral y general, pues deben estar presentes en todas las actividades y procesos que se realicen en las organizaciones, como herramienta necesaria en el proceso de gestión de la información y como garantía para alcanzar la eficiencia, eficacia y efectividad; logrando así aumentar su productividad y satisfacción. Las empresas que manejan diariamente grandes volúmenes de información y conocimiento, están llamadas a lograr su mayor eficiencia, a través del uso adecuado de las TIC que faciliten el proceso de toma de decisiones y de esta forma puedan contribuir con el desarrollo científico, económico y social de las comunidades en general. 1.2 Uso de Sistemas Informáticos para el Control de los Datos de un Proceso en el Mundo En la década de 1980 del siglo pasado, aparece un nuevo paradigma organizacional que ha devenido una de las manifestaciones más evidentes del poder de transformación de las innovaciones en el campo de las ciencias de la información: el surgimiento de la Gestión de la Información orientada a la administración de la inteligencia colectiva de las empresas. 1.
(14) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Apoyándose en el uso de la información y de los recursos informativos disponibles, este paradigma pretende dar estructuración interna a las organizaciones y posibilitarles el enfrentamiento eficiente a los cambios en su entorno (Salas, 2005). Un Sistema de Gestión de Información (SGI) es un conjunto organizado de elementos que interactúan entre sí para procesar los datos y la información (incluyendo procesos manuales y automáticos), y distribuirlos de la manera más adecuada posible en una determinada organización en función del cumplimiento de sus objetivos. Los principales elementos que lo componen son: Personas. Datos. Actividades o técnicas de trabajo. Recursos Materiales en General (redes internas, bases de datos). Estos elementos están relacionados entre sí de forma tal que posibilitan el proceso de la toma de decisiones ante una determinada situación y la modelación y automatización de los procesos de la entidad. KMKey es un producto de Earcon, S.L. especialmente indicado para llevar el control de proyectos de cualquier tipo: desarrollo de proyectos de ingeniería, gestión de despachos de arquitectura, planificación, seguimiento y control de obras, proyectos en tecnologías de la información, gestión de consultorías, ingeniería medioambiental, etc. (Turriza and Luis) (Turriza and Luis) (Turriza and Luis) (Turriza and Luis) (Turriza and Luis) (Turriza and Luis) (Turriza and Luis). GC-Comedor, lleva de manera fácil, todo el trabajo que supone gestionar el control de entradas al comedor, registrando todas las incidencias y procesando la información, para escribir el informe mensual de cada usuario en cada uno de los institutos o colegios de España. AM/Hotel un programa informático dirigido a la completa gestión administrativa de cualquier instalación hotelera e implementado por la empresa AM SYSTEM. Basada en su planning de reservas gráfico e interactivo permite una rápida asignación de habitaciones al futuro cliente. El programa ha sido desarrollado manteniendo un interfaz de usuario bastante sencillo e intuitivo para su manejo. Permite dividir la actividad hotelera por años y hoteles. 2.
(15) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. El Programa sobre el Control Escolarmi-escuela.com, Es un Sistema de Administración y Control Escolar integral y flexible ideal para todo tipo de planteles educativos ( escuelas primarias, secundarias, bachilleratos, universidades, escuelas de inglés, etc.) que facilita a los usuarios el control escolar, académico y administrativo de Alumnos, Cuentas por Cobrar, Maestros, Aulas, Grupos, Calificaciones, Materias, etc. Debido a su diseño internet/intranet, nuestro software puede ser ejecutado desde cualquier computadora que cuente con un Browser o Navegador conectado a un Servidor WEB ya sea local o remoto, de forma que personal administrativo, académico, alumnos y padres de familia puedan tener acceso al sistema desde cualquier lugar en el momento que lo deseen. 1.3 La web en el entorno Empresarial Desde hace años, las empresas comprendieron que la información es el bien intangible más útil con el que puede contar la organización. El adecuado manejo de la información permite reducir la incertidumbre de los negocios: disminuye los riesgos, ayuda a tomar mejores decisiones y facilita la generación de valor. A medida que la cantidad de datos e información dentro de las empresas fue creciendo, en esa misma medida se requirió desarrollar herramientas que hicieran viable su manejo. La computación en general y la arquitectura cliente-servidor significaron un gran avance en este sentido porque permitieron el surgimiento de la informática, o sea la automatización de los procesos de generación, almacenamiento, procesamiento y distribución de información de una organización. También es de mucha importancia que la empresa ofrezca servicio en línea mediante página Web, ya que esto es un mecanismo para obtener nuevos clientes si se utilizan estrategias adecuadas de marketing. La página Web en las empresas es una manera muy común de compartir información, y que permite a cualquier usuario obtener información en el momento que se requiera. El uso de la tecnología en las empresas hoy en día es fundamental para lograr tener una estabilidad en el mercado y ser rentables además de que prácticamente sin el uso de estas herramientas Web los procesos de las organizaciones serían más complejos además de que el control de la información no sería la adecuada lo que sería un grave problema para el desarrollo mismo de las empresas.. 3.
(16) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. 1.4 ¿Por qué utilizar Software Libre? Desde hace varias décadas los países poderosos han tratado de monopolizar y privatizar las tecnologías de punta restringiéndoles a los pobres el acceso y el beneficio que representa su uso. Como consecuencia, el desarrollo tecnológico de los de abajo, ya de por sí disminuido, encuentra una nueva traba poco menos que insalvable en el pago de costosísimas licencias. El software libre presenta numerosas características ventajosas que son, en gran medida, consecuencia de las libertades que ofrece y esquivan, entre otras, esa cota injusta. El software libre es una alternativa para la excesiva globalización corporativa que tiene la potencialidad de acabar con la monopolización de la tecnología para siempre y puede llevar a un nuevo modelo de economía en este sentido. Nuestro país desde hace tiempo comparte esta visión.(Stallman, 2004). 1.5 Metodologías de desarrollo de software Las metodologías de desarrollo del software son un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información. Su principal objetivo es aumentar la calidad del software que se produce, en todas y cada una de sus fases de desarrollo. Hoy en día existe una gran variedad de metodologías para desarrollo de software, entre ellas se encuentran, Scrum, XP, ASD, RUP. Por ejemplo los tres primeros ejemplos son pertenecientes al grupo de las metodologías ágiles, las cuales generan mucho menos artefactos que las pesadas, por lo que se ha decidido la utilización de RUP en este trabajo, por generar una mayor cantidad de artefactos, y siendo más robusta, y funcionar. a. petición del cliente. 1.5.1 Proceso Unificado de Desarrollo de Software (RUP) La metodología a utilizar para el análisis y modelado de los procesos de desarrollo del software es RUP, ya que se caracteriza por ser iterativo e incremental, de esta forma, en cada iteración se puede llevar al cliente una versión del producto, con el fin de obtener mejoras para el software, alcanzando así la mejor calidad durante el ciclo de vida del proyecto; está centrado en la arquitectura, permitiendo tener una visión completa del mismo y guiado por casos de usos, lo cual constituye el hilo conductor de todo proceso. Incluye artefactos y roles que son diseñados durante las diferentes fases.. 4.
(17) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Otra de las facilidades por lo cual se decide utilizar RUP es porque constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientado a objetos, permitiendo adaptarse a las necesidades de cualquier proyecto. Dicha metodología cuenta con una amplia documentación,. lo. que. facilita. que. el. producto. contenga. manuales. para. su. correcto. funcionamiento.(JACOBSON et al., 2000). 1.6 Lenguaje de Modelado En todas las disciplinas de la Ingeniería se hace evidente la importancia del modelado, no solamente sirve para los grandes sistemas, aún en aplicaciones de pequeño tamaño se obtienen beneficios de modelado. Sin embargo es un hecho que entre más grande y complejo es el sistema, más importante es el papel que juega. 1.6.1 Lenguaje unificado de modelado (UML) UML es un lenguaje gráfico que permite visualizar, especificar, construir y documentar un sistema. Está consolidado como el lenguaje estándar en el análisis y diseño de sistemas de cómputo. El proceso unificado RUP utiliza UML como lenguaje de modelado, para preparar todos los esquemas de un sistema de software. A través de UML es posible establecer los requerimientos y estructuras necesarias para un sistema de software, antes del código.. En la presente investigación se decidió utilizar UML como lenguaje de modelado ya que es la clave para generar todo la documentación necesaria, ayudando así a crear con facilidad los manuales de usuario. Además, permite que en futuras versiones del desarrollo de la aplicación los desarrolladores comprendan mejor todo el proceso.(BOOCH, 2000). 1.7 Plataforma de desarrollo 1.7.1 Herramientas CASE Las herramientas CASE son diversas aplicaciones destinadas a aumentar la productividad en el desarrollo del software, reduciendo el coste de las mismas en términos de tiempo y dinero. Evitan la aparición de errores permitiendo obtener una idea clara de que es lo que se va a hacer antes de comenzar a programar.. 5.
(18) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Estas herramientas tienen vital importancia en múltiples aspectos del ciclo de vida del desarrollo del software, como son: Mejorar la productividad en el mantenimiento y desarrollo del software. Mejorar el tiempo, costo de desarrollo y mantenimiento de los sistemas informáticos. Implementación de parte del código con el diseño dado. Aumentar la calidad del software. Documentación o detección de errores.. En el proceso de desarrollo de software cumplir con la planificación y ofrecer un producto de calidad, son dos retos para el equipo de desarrollo. La realización de un nuevo software requiere que las tareas sean organizadas y completadas en forma correcta y eficiente. Con el objetivo de apoyar el trabajo de los desarrolladores durante el ciclo de vida y desarrollo del proyecto se hace necesario seleccionar una herramienta CASE que brinde soluciones para resolver los problemas relacionados con el software. Estas herramientas fueron desarrolladas para automatizar los procesos y facilitar las tareas de coordinación de los eventos que necesitan ser mejorados. 1.7.1.1 Visual Paradigm Visual Paradigm es una herramienta CASE que facilita el modelado de artefactos en el proceso de desarrollo de software mediante el lenguaje de modelado UML, soportando el ciclo de vida completo del desarrollo del software. Ofrece la posibilidad de documentar todo el trabajo sin necesidad de emplear otras herramientas en varios formatos, como PDF u otras. Ayuda a la construcción de aplicaciones de calidad y a un excelente costo. Permite además diseñar los diferentes tipos de diagramas de clases y generar códigos a partir de dichos diagramas. Soporta ingeniería inversa, importa proyectos de Rational Rose, genera informes, edita detalles de casos de uso y genera bases de datos, permitiendo la transformación de diagramas de entidad-relación. (Paradigm, 2010) Dicha herramienta soporta varios usuarios trabajando sobre el mismo proyecto y permite control de versiones, por estas razones se considera colaborativa. Es además, una herramienta multiplataforma. Teniendo en cuenta las múltiples características antes mencionadas, esta herramienta es seleccionada para el modelado de la aplicación.. 6.
(19) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. 1.7.1.2 Erecase Es una herramienta para el diseño de bases de datos que utiliza como modelo conceptual el modelo Entidad Relación (E/R). Como característica novedosa permite la validación estructural del diagrama ER basándose en las cardinalidades máximas y mínimas de las relaciones. Esta nueva herramienta CASE se crea para el diseño de bases de datos con el objetivo que permita la validación estructural de los diagramas Entidad Relación Extendido (ERE). La herramienta se va a caracterizar por: La inclusión de. un conjunto de construcciones de este modelo para lograr una mejor. expresividad en el diagrama. La realización de validaciones estructurales en un esquema en la etapa de diseño para evitar inconsistencias. La transformación de un esquema al modelo relacional. La generación de código SQL para la creación de la Base de Datos física en un Sistema Gestor de Bases de Datos (SGBD) determinado.(CEI, 2005). 1.8 Lenguajes de programación. Un lenguaje de programación es un conjunto de símbolos, reglas sintácticas y semánticas que definen su estructura, así como el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina. Actualmente existen lenguajes de programación de bajo, mediano y alto nivel. En el caso de los lenguajes de bajo nivel, las instrucciones son muy simples y cercanas al funcionamiento de la máquina, como lo son el código máquina y el ensamblador. Los de alto nivel están caracterizados por un alto nivel de abstracción y utilizan un lenguaje más cercano al natural, ejemplo de ellos son: C++, C#, java, Python, entre otros. Los lenguajes de programación de nivel medio, como su nombre lo dice, se localizan en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría estar C. (Turriza and Luis).. 7.
(20) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. 1.8.1 PHP Es un lenguaje de programación completo capaz de manejar entornos que integran grandes bases de datos, así como que permite la conexión a diferentes tipos de servidores de bases de datos como por ejemplo Microsoft SQL Server, Firebird, SQLite, MySQL, PostgreSQL, Oracle, ODBC y DB2. Uno de los objetivos de su creación fue incrementar el dinamismo de las páginas Web. Puede ser ejecutado en la mayoría de los sistemas operativos, se usa para la programación de páginas web dinámicas y en la creación de aplicaciones gráficas independientes del navegador. Es un lenguaje de script (o de guiones), diseñado para, entre otras cosas, incrementar el dinamismo de las páginas Web. Originalmente se trataba de un conjunto de macros concebidas para ayudar en el mantenimiento de páginas Web.(Hinostroza, 2005). Desde entonces, sus características han ido creciendo hasta convertirse en un lenguaje de programación completo, capaz de manejar entornos que integran grandes bases de datos. Tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como UNIX, Linux, Windows y Mac OS X, y puede interactuar con los servidores web más populares. Incluye algunos usos importantes de los cuales se hace referencia a continuación: Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL. Creación de aplicaciones gráficas independientes del navegador. Se pueden hacer grandes cosas con pocas líneas de código. Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad. 1.9 Herramientas de Desarrollo Las herramientas de desarrollo son aquellos programas o aplicaciones que tengan cierta importancia en el desarrollo de un programa, luego de un estudio se decidió la utilización de las herramientas que a continuación se describen para dar solución al sistema. 1.9.1 Apache El proyecto del servidor del HTTP de Apache es un esfuerzo de desarrollar y de mantener un servidor del HTTP de código abierto para los sistemas operativos modernos incluyendo UNIX y Windows NT. La meta de este proyecto es proporcionar un servidor seguro, eficiente y extensible que provea de servicios del HTTP en los estándares actuales del HTTP. 8.
(21) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. La encuesta sobre el servidor Web de noviembre de 2005 netcraft arrojó que más del 70% de los sitios Web en Internet están utilizando Apache. Apache presenta algunas características basadas en su alta capacidad de configuración y en la presencia de bases de datos de autenticación. Posee además, negociado de contenido y tiene amplia aceptación en la red. Trabaja con gran cantidad de Perl, PHP y otros lenguajes de script, Java y páginas JSP, teniendo todo el soporte que se necesita para tener páginas dinámicas.(Felix, 2000). 1.9.2 Entorno de desarrollo Integrado Un IDE es un entorno de programación creado con un conjunto de herramientas para el programador: editor de código, compilador, depurador y constructor de interfaz gráfica. Estos pueden ser aplicaciones independientes o pueden formar parte de aplicaciones existentes, para un lenguaje de programación específico o multilenguaje. Proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación.(Douglas and Mike). 1.9.2.1 NetBeans Netbeanses un proyecto exitoso de código abierto con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. SunMicroSystems fundó el proyecto de código abierto NetBeans en junio 2000 y continúa siendo el patrocinador principal de los proyectos. NetBeans IDE es un entorno de desarrollo – una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Está escrito en Java – pero puede servir par a cualquier otro lenguaje de programación. Existe además un número importante de módulos para extender el NetBeans IDE.(Penarrieta, 2010). 1.10 Gestores de Base de Datos Un sistema gestor de bases de datos (SGBD) es un sistema computarizado que permite almacenar información y ofrece la posibilidad a los usuarios de recuperar y actualizar los datos. Su objetivo es servir de interfaz entre la base de datos, el usuario y las aplicaciones. Permite definir los datos a distintos niveles de abstracción y manipularlos, garantizando la seguridad e integridad de los mismos. (Date).. 9.
(22) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Un SGBD debe permitir: Definir una base de datos: especificar tipos, estructuras y restricciones de datos. Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD. Manipular la base de datos: realizar consultas, actualizarla y generar informes.. Algunos ejemplos de SGBD son Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc. 1.10.1 MySQL Es un sistema de gestión de bases de datos relacional multiplataforma bajo licencia GPL (General PublicLicense) de la GNU, creado por la empresa sueca MySQL AB, que mantiene el copyright del código fuente del servidor SQL y de la marca. Este gestor presenta un diseño multihilo que le permite soportar una gran carga de forma muy eficiente. Este gestor de bases de datos es, probablemente, el más utilizado en el mundo del software libre debido a su gran rapidez y facilidad de uso. Esta gran aceptación está respaldada en parte, por la infinidad de librerías y otras herramientas existentes que permiten su empleo a través de gran cantidad de lenguajes de programación, además de su fácil instalación y configuración. En las aplicaciones web hay baja concurrencia en la modificación de datos y el entorno es intensivo en cuanto a la lectura de datos, lo que hace a MySQL ideal para las aplicaciones web. MySQL es software de código abierto. (VÁZQUEZ, 2003). 1.10.2 ORM Un ORM es un componente de software que permite trabajar con los datos persistidos como si fueran parte de una base de datos orientada a objetos. Es una técnica de programación que permite convertir datos entre el lenguaje de programación orientado a objetos utilizado y el sistema de base de datos relacional. (Ercoli).. Utilizar un ORM tiene una serie de ventajas, a continuación se citan algunas que se exponen en(Pérez Mata, Julio 2009): Reutilización: es la principal ventaja que aporta un ORM ya que permite llamar a los métodos de un objeto de datos desde distintas partes de la aplicación e incluso desde diferentes aplicaciones. 10.
(23) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Encapsulación: la capa ORM encapsula la lógica de los datos pudiendo hacer cambios que afectan a toda la aplicación únicamente modificando una función. Portabilidad: utiliza una sintaxis propia del ORM siendo capaz de traducir a diferentes tipos de bases de datos. Seguridad: los ORM suelen implementar mecanismos de seguridad que protegen la aplicación de los ataques más comunes como SQL Injections. Mantenimiento del código: gracias a la correcta ordenación de la capa de datos, modificar y mantener el código es una tarea sencilla. 1.10.2.1 Doctrine Doctrine es una librería para PHP que nos permite trabajar con un esquema de base de datos como si fuese un conjunto de objetos, y no de tablas y registros.(Doctrine, 2012) Doctrine está inspirado en Hibernate, que es uno de los ORM más populares y grandes que existen y nos brinda una capa de abstracción de la base de datos muy completa. La característica más importante es que te da la posibilidad de escribir consultas de base de datos en un lenguaje propio llamado Doctrine QueryLanguage (DQL). 1.11 FrameWork Hoy en día, con la aparición de nuevas metodologías en el ámbito de la Ingeniería de Software y con la ayuda de nuevas herramientas como son los frameworks, podemos crear prototipos de aplicaciones en minutos u horas, y terminar su desarrollo en unas pocas semanas. 1.11.1 ¿Qué es un FrameWork? Un framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. Es una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.(POTENCIER, 2008) 1.11.2 Symfony En el año 2003 Fabien Potencier presidente de Sensio (http://www.sensio.com/), una empresa francesa de desarrollo de aplicaciones Web conocida por sus innovaciones en este campo realizó una investigación sobre las herramientas de software libre disponibles para el desarrollo de aplicaciones Web con PHP. 11.
(24) Capítulo 1. “ FUNDAMENTACIÓN TEÓRICA”. Llegó a la conclusión de que no existía ninguna herramienta con esas características. Después del lanzamiento de la versión 5 de PHP, decidió que las herramientas disponibles habían alcanzado un grado de madurez suficiente como para integrarlas en un framework completo. Basando su trabajo en el framework Mojavi que también era un framework que seguía el funcionamiento MVC (Modelo Vista Controlador), en la herramienta Propel para el mapeo de objetos a bases de datos (conocido como ORM, de "object-relational mapping") y en los helpers empleados por Ruby onRails en sus plantillas, publica la primera versión de Symfony en Octubre de 2005. Symfony es un completo framework diseñado para optimizar, gracias a sus características, el desarrollo de las aplicaciones Web. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación Web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación Web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas Unix (Unix, Linux, etc.) como en plataformas Windows.(POTENCIER, 2008) . 1.12 Conclusiones Parciales. En este capítulo se exponen las condiciones y problemas que rodean el objeto de estudio a través de los conceptos y definiciones planteadas. Se realiza un estudio sobre distintos sistemas automatizados para la gestión y el control de datos en el mundo, además se exponen los conceptos fundamentales relacionados con el tema de investigación y se describen los lenguajes, las herramientas y metodologías a utilizar para el desarrollo de la aplicación final.. 12.
(25) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA 2.1 Antecedentes En el presente capítulo se describe la propuesta de solución, partiendo principalmente de un análisis crítico de los sistemas anteriores y que son el punto de partida para el desarrollo de nuestra aplicación. Se centrará en el modelo de dominio, capturando los tipos más importantes de objetos que existen o los eventos que suceden en el entorno que permitirán mostrar al usuario los principales conceptos que se manejan en sistema en desarrollo, para que se entiendan los objetivos de la investigación y se familiaricen con su vocabulario, así como los procesos del negocio propuesto. Se plantean los requisitos funcionales y no funcionales de la aplicación a desarrollar, se modela la misma en términos de casos de uso del sistema y se proponen mejoras con el objetivo de dar solución a la problemática existente.. Figura 1 Modelo del Dominio. 13.
(26) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. 2.2 Modelo del sistema Basándonos en el patrón de diseño MVC utilizado por Symfony se enumeran los cambios más importantes que se realizaron a dichos sistemas y que lo convierten en el modelo final. Se identifican sus requisitos, tanto funcionales como no funcionales, y se modelan los funcionales en términos de casos de uso del sistema. 2.2.1 Modelo (Lógica del Negocio) La capa del modelo es la más compleja del framework Symfony. Una de las razones de esta complejidad es que la manipulación de datos es una tarea bastante complicada. Las consideraciones de seguridad relacionadas con el modelo son cruciales para un sitio web y no deben ignorarse. Otra de las razones es que Symfony se ajusta mejor a las aplicaciones medianas y grandes en un entorno empresarial. En ese tipo de aplicaciones, las tareas automáticas proporcionadas por el modelo de Symfony suponen un gran ahorro de tiempo, por lo que merece la pena el tiempo dedicado a aprender su funcionamiento interno. La recompensa es la gran solidez y escalabilidad de las aplicaciones desarrolladas.(POTENCIER, 2008). Los sistemas anteriores y que son base para el desarrollo del presente trabajo tienen la composición. (Ver Anexo 1). Actualmente la empresa cuenta con estos 2 nuevos sistemas independientes por completo entre sí. Para lograr el objetivo general de este trabajo es factible que puedan llegar a compartir la misma base de datos, o en este caso tener una base de datos donde se unifique cierta información compartida y que sea común a los sistemas, sin la necesidad de duplicar una interfaz para administrar esa información o peor aún, duplicarla corriendo el riesgo de generar una inconsistencia de datos. El nuevo sistema propuesto puede relacionarse de manera muy fácil, y requirió menos horas de desarrollo que aplicaciones totalmente independientes como las originales, teniendo en cuenta que siempre habrá que administrar módulos de forma independiente. La propuesta de solución está conformada por los siguientes elementos; una conexión para la base de datos con las tablas comunes y otra para las tablas del nuevo sistema que estaría conformado por la unión de los sistemas antecedentes con los nuevos cambios que se incorporaron. (Ver Anexo 2). 14.
(27) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. 2.2.2 Posibilidades del nuevo Sistema Creación de un sistema de usuarios integrados; aunque cada subsistema siempre va a tener independencia a través de su dominio nos va a evitar el reingreso de creación de usuarios, permisos, y logueos, para un usuario con acceso a varios de los subsistemas. Reducir el número de esquemas a uno solo y que cumpla con los objetivos del modelo de negocio y que de esta forma nos permita aumentar su usabilidad. 2.2.3 Esquema de descripción de datos Para crear el modelo de objetos de datos que utiliza Symfony, se debe traducir el modelo relacional de la base de datos a un modelo de objetos de datos. Para realizar ese mapeo o traducción, el ORM necesita una descripción del modelo relacional, que se llama “esquema” (schema). En el esquema se definen las tablas, sus relaciones y las características de sus columnas y luego el ORM crea las clases PHP necesarias para trabajar con objetos. La sintaxis que utiliza Symfony para definir los esquemas hace uso del formato YAML(POTENCIER, 2008). 2.2.4 Cambios en los esquemas iniciales Los cambios que se hicieron a los modelos iniciales luego de un análisis crítico y exhaustivo de estos fueron incorporados a nuestro modelo en la descripción de las tablas y sus columnas y proporcionan una mayor solidez y escalabilidad a la aplicación. Comportamiento Timestampable actAs: Timestampable: El. comportamientoTimestampable. en. la. tabla. añadirá. automáticamente. campos. created_at. yupdated_atyajustará automáticamentelos valores cuandose inserta un registroy actualización. Comportamiento SoftDelete Agrega una columna llamada “deleted_at”, es ideal para cuando se desarrollan sistemas grandes como el nuestro donde la consistencia de los datos es importante, según el paradigma de bases de datos, nunca se 15.
(28) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. debería borrar un dato, cuando se elimina el objeto, permanecerá invisible en la parte de administración pero sigue quedando en la base de datos. actAs: SoftDelete: Se agregaron chequeos a los datos de los campos de las tablas a nivel de esquema lo cual permite que el mismo sistema por defecto realice estos chequeos sin necesidad de intervenir en este proceso. Ejemplo: // campo de tipo fecha con chequeo de que el dato //que se introduce sea una fecha verdadera fecha_inicio: type: date date: true // campo de tipo string con chequeo de que el dato que se introduce sea un email verdadero email_oace: type: string length: 100 email: true Se reajustó el esquema para permitir relaciones entre tablas que se encuentran en base de datos distintas. attributes: export: tables Se realizaron cambios en las declaraciones de las clases permitiendo más eficiencia en el sistema y una mejor comprensión del modelo.. 16.
(29) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. Se realizaron cambios en las relaciones entre las tablas para corregir errores que existían y que se detectaron durante las pruebas realizadas. Se agregaron tablas nuevas, lo cual permite tener en cuenta una mayor cantidad de datos que intervienen en el modelo del negocio y que se incorporaron por necesidades propias de los usuarios finales. Se agregaron a las relaciones los Alias y los foreignAlias que no existían para ser utilizados en la. programación de los módulos. TbDatoMunicipio:. foreign: id_provincia. id_provincia_municipio:. alias: Provincia. relations:. foreignAlias: Municipios. TbDatoProvincia:. type: one. local: id_provincia_municipio. foreignType: many. Permite desde el objeto municipio tener acceso a todos los atributos y métodos del objeto provincia (Provincia) directamente, eliminando así consultas que estaban hechas y en su lugar utilizar los alias; en el ejemplo vemos la declaración de una relación 1 a mucho entre las entidades Municipio y Provincia. Esto permite una programación mucha más limpia y detallada. 2.3 Requisitos del Software El proceso de captura de requisitos tiene gran importancia en el proceso de desarrollo del software, ya que a través de estos se identifica lo que el usuario desea y de esta forma se obtiene un producto de calidad. Los requisitos se pueden clasificar en: Funcionales. No Funcionales.. 2.3.1 Requisitos funcionales Son los requisitos que especifican una acción que debe ser capaz de realizar el sistema, sin considerar restricciones físicas; requisito que. específica. comportamiento de entrada/salida de un sistema 17.
(30) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. dado(JACOBSON et al., 2000). Por esto luego de conocer los conceptos que encierran al objeto de estudio, se puede empezar a considerar los elementos con los que debe contar el sistema para que los objetivos planteados al inicio de este trabajo queden bien definidos en términos de la funcionalidad del sistema. Para ello se enumerarán las funciones que el sistema deberá ser capaz de llevar a cabo incluyendo las acciones que podrán ser ejecutadas por el usuario. Autenticarse: el usuario puede autenticarse para acceder a los permisos determinados. Administrar Usuarios: el administrador del sistema puede adicionar, modificar o eliminar usuarios y sus permisos dentro de este. Ver Información: de acuerdo a los privilegios de usuario, el sistema permite visualizar los datos almacenados en la aplicación. Generar Reportes: permite generar los reportes necesarios. Gestionar información de Proyectos: permite gestionar la información de los Proyectos. Gestionar información de Premios: permite gestionar la información de los Premios. 2.3.2 Requisitos no Funcionales Los requerimientos no funcionales son propiedades o cualidades que el producto debe tener. Debe pensarse en estas propiedades como las características que hacen al producto atractivo, usable, rápido o confiable. (LARMAN, 1999). Requisitos de software Interfaz: sencilla, que permita el uso del producto si mucho adiestramiento por parte de los usuarios. Rendimiento: el sistema debe garantizar la gestión de toda la información que se cargue en el sitio por los usuarios. Soporte: fácil mantenimiento, de configuración sencilla para los clientes. Portabilidad: está implementado en PHP y es un sistema multiplataforma. 18.
(31) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. Seguridad: La seguridad del sitio se garantiza a través de la implementación de un sistema de permisos de usuario. Requisitos de hardware Se necesita que los servidores PHP y base de datos se encuentren en máquinas de 1GB o más de memoria RAM, con 10 GB de espacio libre en disco duro como mínimo y procesador Intel P4 o superior. Requisitos en el diseño y en la implementación El lenguaje de programación a utilizar es PHP 5.0 La herramienta de desarrollo a utilizar es NetBeans 7.0 Requisitos de seguridad Los servidores con los que cuenta el sistema para su correcta ejecución deben estar en una red interna, en la cual el único que tendrá salida al exterior será el frontend. La información que viaja por la red para el acceso a datos es protegida por el ORM. 2.4 Definición de los casos de uso 2.4.1 Actores del Sistema Los actores de un sistema son un conjunto coherente de roles que los usuarios de casos de uso desempeñan cuando interaccionan con estos casos de uso.(JACOBSON et al., 2000). Representan a un agente que interactúa con el sistema. No son parte del sistema que se desarrolla. Entran información al sistema. Reciben información del sistema. Entran y reciben información. 19.
(32) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. A continuación se describen los diferentes actores que intervienen en el funcionamiento del Sistema.. Actores. Descripción Persona que interactúa directamente con la aplicación. Administrador General del Sistema. para asignar los permisos y alcance que tendrán los usuarios. También puede gestionar diferentes datos en el sistema. Persona que interactúa con la aplicación para nutrirse. Consultante. de ella. Solamente puede consultar la información y generar reportes. Personas que pueden gestionar diferentes datos en el. Gestor del Sistema. sistema. Tabla 1. Actores del Negocio. 2.4.2 Diagrama de Casos de Uso del Sistema Los diagramas de casos de uso se emplean para visualizar el comportamiento de un sistema, un subsistema o una clase, de forma que los usuarios puedan comprender cómo utilizar ese elemento y de forma que los desarrolladores puedan implementarlo. Los diagramas de casos de uso muestran un conjunto de casos de uso, actores y sus relaciones, estas pueden ser relaciones de dependencia, generalización y asociación. También pueden contener paquetes, que se emplean para agrupar elementos del modelo en partes mayores.(JACOBSON et al., 2000). El diagrama donde se representa la relación existente entre el actor y los casos de uso del sistema propuesto se representa a continuación:. 20.
(33) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. Figura 4 Diagrama de Caso de Uso del Sistema. Los casos de uso Gestionar Información Proyectos y Gestionar Información Premios se hicieron lo más general posible ya que cada uno está integrado por cada uno de los elementos propios a los subsistemas y sería muy engorroso ponerlos específicamente cada uno. 2.4.3 Casos de uso del Sistema. Descripción Los Casos de Uso son requerimientos funcionales que describen de una manera detallada el comportamiento del sistema con los distintos actores que interactúan con él. Representan el hilo conductor que vincula a todos los requerimientos posibles (actuales y futuros) de una aplicación. (JACOBSON et al., 2000).. 21.
(34) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. A continuación se presentan los casos de uso determinados para satisfacer los requisitos funcionales del sistema: CU-1. Autenticarse. Actor. Administrador General del Sistema, consultante, gestor. Descripción. El usuario envía al sistema sus datos (nombre de usuario y contraseña). Se le informa si los datos fueron correctos o no. Tabla 2. Autenticarse. CU-2. Administrar Usuarios. Actor. Administrador General del Sistema. Descripción. Tiene que ver con los diferentes usuarios que pueden ver o gestionar informaciones y reportes. Tabla 3. Administrar Usuarios. CU-4. Generar Reporte. Actor. Consultante, Gestor , Administrador General del Sistema. Descripción. Permitir generar reportes por proyectos y resultados y nos permite acceder a estos en un PDF. Tabla 4. Generar Reporte. CU-3. Ver Información. Actor. Administrador General del Sistema, consultante , gestor. Descripción. Nos permite acceder a toda la información del Sistema (tanto del Sistema de Proyectos como al de Premios), restringido siempre a los. 22.
(35) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. permisos de cada usuario. Tabla 5. Ver Información CU-5. Gestionar Información Proyectos. Actor. Gestor. Descripción. Nos permite, adicionar, modificar, eliminar información entre otros. Tabla 6. Gestionar Información Proyectos. CU-6. Gestionar Información Premios. Actor. Gestor. Descripción. Nos permite, adicionar, modificar, eliminar información entre otros. Tabla 7. Gestionar Información Premios. 2.4.3.1 Caso de uso expandido Descripción del caso de uso “Gestionar Base ACC” que forma parte del de CU “Gestionar Información de Premios”. Actor. Gestor El sistema se encuentra disponible y el. Precondiciones. gestor se encuentra autenticado El caso de uso se inicia cuando el actor se. Resumen. encuentra ya autenticado, selecciona el menú “Premios/ Trabajos ACC/ Bases ACC ” donde se mostrará un listado paginado con las “Bases ACC” que actualmente están disponibles; donde se podrá editar, mostrar y eliminar las actuales así como Agregar una nueva base y hacer todas 23.
(36) C A P Í T U L O 2. ANÁLISIS Y DISEÑO DEL SISTEMA. las operaciones anteriores. El actor selecciona la opción “Eliminar una Base El sistema pregunta al actor si está seguro de ACC”. eliminar. Se muestra un mensaje de confirmación para eliminar la base. El actor pulsa aceptar si está seguro y elimina la base dada. Cursos Alternos de Ejecución Si durante la comprobación de los datos el sistema detecta que existen campos obligatorios sin datos, se muestra un mensaje de error Tabla 8. Descripción detallada del CU “Gestionar Base ACC” 2.5 Modelo de datos conceptual Por la complejidad del modelo de datos decidimos dividirlo en 2 imágenes para una mejor comprensión del dominio de nuestro sistema.(Ver Anexo 4). 2.6 Conclusiones Parciales Con la culminación de este capítulo se han definido los diagramas que dieron lugar a la obtención del modelo de implementación final basado en los nuevos requerimientos y cambios realizados luego del análisis crítico de los sistemas precedentes de los cuales partió esta propuesta.. 24.
(37) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO En este capítulo se abordan las principales facilidades que se bridan en el sistema y la manera de hacer un uso correcto de estas facilidades; así como los prerrequisitos y pasos para la instalación y administración del sistema. 3.1 Pre-requisitos operativos Servidor web Apache Gestor de bases de datos (MySQL) PHP 5.2.4 o superior Editor de PHP (preferentemente Notepad ++) 3.1.2 Instalación de Symfony Descargar Symfony versión 1.4.8 Disponible en http://www.symfony-project.org/installation/1_4_8 Crear un directorio donde albergar los archivos relacionados al proyecto C:\xampp\htdocs\gestproy C:\xampp\htdocs\gestproy\lib\vendor Extraer en c:\xampp\htdocs\empleos\lib\vendor 3.1.3 La configuración del Servidor Web (c: :\xampp\apache\conf archivo htpd.conf) Listen 127.0.0.1:8080 <Virtual Host 127.0.0.1:8080> Document Root "C:\xampp\htdocs\gestproy\web" Directory Index index.php 25.
(38) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. <Directory "C:\xampp\htdocs\gestproy\web"> Allow Override All Allow from All </Directory> Alias /sf "C:/xampp/htdocs/gestproy/lib/vendor/symfony/data/web/sf" <Directory "C:/xampp/htdocs/gestproy/lib/vendor/symfony/data/web/sf"> Allow Override All Allow from All </Directory> </Virtual Host> 3.1.4 Configuración de las Bases De Datos. Figura 1. Configuración de la Base de Datos. 26.
(39) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. 3.1.5 El ORM Gracias a la descripción de las tablas y columnas de la base de datos en el archivo schema.yml podemos hacer uso del comando: $ phpsymfonydoctrine:build-all --no-confirmation para que genere de forma consecutiva las sentencias SQL necesarias para crear todas las tablas de la base de datos, la base de datos en sí, las clases PHP que relacionan las tablas de la base de datos con los objetos de la aplicación y por último los formularios y los validadores.(POTENCIER, 2008). 3.1.6 Estructura del Modelo (Clase Representativa del Sistema de Gestión de Proyectos) TbGestproyProyecto: Un objeto de esta clase. representa un único registro. de la tabla. TbGestproy_Proyecto. La clase está vacía por defecto. Base TbGestproyProyecto: La clase padre de TbGestproyProyecto. Cada vez que ejecutas doctrine: build --model, esta clase es sobreescrita, por lo que todas las personalizaciones s e deben hacer en la clase TbGestproyProyecto. Table: La clase define los métodos que mayormente. devuelve colecciones. de objetos. TbGestproyProyecto. La clase está vacía por defecto. 3.1.7 Datos Iniciales Datos Iniciales: Los datos iniciales son necesarios para que la aplicación funcione. Datos de Prueba: Los datos de prueba son necesarios para que la aplicación sea probada Los Datos del Usuario: Los datos del usuario son creados por los usuarios durante la vida normal de la aplicación.. Figura 2. Datos Iniciales. 27.
(40) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. 3.2 Características del Sistema. Figura 3. Imagen inicial del sitio, se debe introducir el usuario y contraseña para poder tener acceso al sitio El sistema posee un formulario donde el usuario debe autenticarse. Existen tres tipos de usuarios que pueden navegar por el sistema. Estos son: 3.2.1 Ambiente para el usuario Administrador General del Sistema Tiene un control absoluto de la aplicación; aunque su labor se ve orientada fundamentalmente a la gestión de los usuarios, tanto a crearlos, como a modificar los existentes, proporcionándoles los privilegios correspondientes a cada uno, según la función que deban desarrollar en el trabajo con la aplicación. 28.
(41) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. Figura 4. Lista de usuarios Podemos crear un nuevo usuario con la opción (+Nuevo) que podemos apreciar en la imagen o podemos eliminar un usuario ya existente seleccionando la opción (Borrar), como podemos apreciar en la figura también, se pueden editar los datos de un usuario con la opción (Editar). Para poder llenar el formulario de creación de un usuario es preciso asignarle antes uno de los grupos y permisos que están definidos o de ser necesario, podemos crear dichos grupos y permisos mediante las demás opciones del menú. (Figura 5). 29.
(42) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. Figura 5. Lista de Grupos. Figura 6. Lista de Permisos 30.
(43) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. 3.2.2 Ambiente para el usuario Gestor Es el encargado de gestionar toda la información del Sistema referente a los Datos Comunes, Proyectos y Programas, así como los Premios. También puede generar reportes sobre una información determinada en el momento que lo desee para el posterior análisis de estos datos por las personas o departamentos competentes. Figura 7. Pulsando el botón Obtener PDF el gestor y los consultantes tienen la posibilidad de crear un PDF que almacene el resultado de la consulta realizada al obtener un determinado reporte Figura 8. 3.2.3 Uso de plugins Los plugins permiten agrupar todo el código diseminado por diferentes archivos y reutilizar este código en otros proyectos. Los plugins permiten encapsular clases, filtros, mixins, helpers, archivos de configuración, tareas, módulos, esquemas y extensiones para el modelo, fixtures, archivos estáticos, etc.(POTENCIER, 2008). El plugin: sfDoctrineSuperPagerPlugin nos permite cambiar la forma de paginar los resultados, lo cual permite una mayor eficiencia y comodidad al usuario permitiéndonos ordenar registros por campos determinados y definir número máximo de registros por página.. 31.
(44) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. Figura 7. Vista de Reportes (Filtrado por un campo determinado). Figura 8. Reporte en formato PDF 3.2.4 Ambiente para el Usuario Consultante Solamente puede acceder a la información existente sin hacer ninguna modificación en ella y además generar reportes, ya que es el usuario con menor cantidad de privilegios. 3.3 Diagrama de componentes Los diagramas de componentes representan todos los tipos de elementos software que entran en la confección de aplicaciones y las dependencias entre ello. El diagrama de componente forma parte de la vista física de un sistema, la cual modela la estructura de implementación de la aplicación por sí misma, proporcionando la oportunidad de establecer correspondencias entre las clases y los componentes de la implementación.(SCHMULLER, 2000) .. 32.
(45) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. Figura 9. Diagrama de Componentes Subsistema Templates. Contenido. Descripción. Layout.php. Se utiliza en Symfony como una plantilla global para mostrar el contenido de las páginas.. View.yml. Permite configurar las opciones por defecto de todas las plantillas de la aplicación.. Setting.yml. Contiene la configuración principal de Symfony para la aplicación.. Filters.yml. Configura la cadena de filtros de seguridad de la aplicación.. Cache.yml. Se encarga de configurar la caché de las plantillas Symfony.. Security.yml. Controla la seguridad de la aplicación.. Factories.yml. Guarda las definiciones de las clases que realizan determinadas tareas relacionadas con los controladores y las sesiones.. App.yml. Permite centralizar las opciones de configuración de la aplicación.. Routing.yml. Describe las rutas de la aplicación.. Config. 33.
(46) C A P Í T U L O 3. IMPLEMENTACIÓN DEL SISTEMA Y SU USO. Provincia MunicipioLocalidad EntidadPersonaCategoría Científica Proyecto Módulos representativos de cada subsistema. Programa. Clasificación Proyecto Destino Proyecto. Los distintos módulos que actúan como interfaz entre la base de datos y el usuario.. Presupuesto Asignado Presupuesto Ejecución Trabajo ITTrabajo ACC Bases ACCBases IT Actions.class.php Templates _form.php editSuccess.php. Clases plantillas de lasacciones. indexSuccess.php. Todos estos subsistemas contienen dentro de cada Module la plantillas que representan como se mostrará la ejecución de las acciones en el navegador. newSuccess.php pagerSuccess.php autocompleteSuccess.php. Tabla 9. Descripción de los componentes. 34.
Figure
Outline
Documento similar
Los siguientes diagramas de casos de uso detallan las funcionalidades de la aplicación: • Diagrama de casos de uso de la segmentación del caso clínico Figura 7.1, visualiza
Se utilizó modelado UML (Unified Markup Language) para esquematizar las diferentes fun- ciones que debía brindar el sistema en cuestión. Se aplicaron: i) Casos de usos para
UML es un estándar para describir un modelo, incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones
El desarrollo e implementación de este proyecto se realizó a través de RUP (Proceso Unificado de Rational) y UML (lenguaje de Modelado Unificado), obteniendo
Diagrama Nº 12: Modelo de Casos de Uso Simplificado ( Modelo de Casos de Uso Simplificado ( Diagrama de Paquetes: Diagrama de Paquetes: subsistemas subsistemas )) Control de
Es necesario indicar que si bien Diagramas de Casos de Uso UML permiten una Modelación Orientada a Aspectos sin mayores cambios al forma tradicional de aplicación y uso de este
Conocer los principales diagramas UML: casos de uso, clases, paquetes, objetos, interacción (secuencia y comunicación), estados y actividades, y ser capaz de aplicarlos al modelado
En él se presentan las diferentes vistas del Lenguaje Unificado de Modelado UML: Vista estática, Vista de gestión del modelo, Vista de casos de uso, Vista de interacción, Vista