Sistema automatizado para la gestión y control de Licencias ambientales
75
0
0
Texto completo
(2) Hago constar que el presente trabajo fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencias 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 UCLV.. 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 Seminario.
(3) “La felicidad no consiste en alcanzar las cosas que nos gusten, sino en que nos gusten las cosas que hemos alcanzado”. Yo. “Siempre que seamos capaces de perseverar y sacrificarnos en la vida; esta nos recompensará con el triunfo…”. Yo también..
(4) DEDICATORIA. A mi madre; por ser la persona que siempre me ha apoyado en la vida, sin ella no estaría en estos momentos, en este lugar, ni ser quien soy… gracias le doy todos los días a Dios por tener una madre como ella.. A mi novia Yaiselyn por estar siempre a mi lado dándome ánimo cuando he estado en dificultades, por soportar todas mis malacrianzas y por ser la mujer más maravillosa del mundo… un beso para ti..
(5) AGRADECIMIENTOS. Agradecer a mi cutu como cariñosamente le digo a mi mamá…sin ella esto no seria posible porque siempre confió en mi, a mi novia Yaise por alarme las orejas cuando estaba perdiendo el tiempo sin trabajar en mi tesis (como me peleaba!!!), por apoyarme siempre y darme ese aliento cuando lo necesitaba, un beso bien grande para ella… a mi tía Guino que siempre estuvo ahí cuando mi mamá me peleaba, gracias a ella que me daba siempre ánimo para que terminara mi carrera, a mi primo Alqui que siempre me jodia y me decía que yo no iba a terminar o cuando iba a salir de mundiales??…ya salí primo!!!, a mi amigo Yosvany que aunque no esté presente en estos momentos siempre será mi amigo, a Danay mi hermana y a su mamá Coralia por su apoyo incondicional, a la negra Aldana, a todos los que estudiaron conmigo que no se me quede ninguno, a mis tutores Joan García y Beatriz López que me apoyó mucho en mi trabajo , al negro Yoan que siempre estuvo ahí cuando lo iba a molestar, a mis profesores que fueron muy buenos conmigo, en especial Zenaida, Juan Carlos, Pife, Perfetti, Damni, Morell, Mateo, Grau, Martica, Palencia, Ramiro y muy especialmente a Miriam Nicado. A todos mis agradecimientos….
(6) RESUMEN. RESUMEN El siguiente trabajo consiste en el análisis, diseño e implementación de un sistema automatizado para la gestión de Licencias Ambientales en la Delegación Provincial del CITMA en la provincia Villa Clara, utilizando la tecnología Open Source. Con el desarrollo de este sistema se logra informatizar el proceso de gestión de Licencias Ambientales, insertándolo como una herramienta de trabajo. Los propósitos básicos que se persiguen con la creación del sistema están estrechamente vinculados al cumplimiento de los estándares Web actuales y los requerimientos de sus potenciales usuarios. Posee varias funcionalidades; por ejemplo: su interfaz es amistosa y poco compleja, permite realizar reportes de licencias por municipios, años, organismos, así como ver el estado en que se encuentra una licencia, además de ingresar datos de entidades solicitantes y de las propias licencias. Cuenta con un sistema de roles bien delimitados y permite una fácil administración de los usuarios. Este sistema se construyó con el marco de trabajo o framework Symfony..
(7) ABSTRACT The following work is the analysis, design and implementation of an automated system for managing environmental licenses in the Provincial Delegation of CITMA in Villa Clara province, using Open Source technology. With the development of this system is able to computerize the process of managing environmental licenses, inserting it as a tool. The basic purposes to be achieved through the creation of the system are closely linked to compliance with existing Web standards and requirements of potential users. It has several functions: for example, its interface is friendly and not very complex, allows municipalities licenses reports, years, agencies, and view the status of a license is in addition to data entry applicants and entities own licenses. It has a well defined system of roles and allows easy user administration. This system was built with the Symfony framework..
(8) ÍNDICE INTRODUCCIÓN ............................................................................................................................................ 1 CAPÍTULO 1 : LAS TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES EN LA GESTIÓN DE LICENCIAS AMBIENTALES .............................................................................................. 6 1.1 LICENCIA AMBIENTAL....................................................................................................................... 6 1.2 EL USO DE LAS TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES .................................. 7 1.3 SISTEMAS DE GESTIÓN DE LA INFORMACIÓN ..................................................................................... 8 1.4 CARACTERÍSTICAS ............................................................................................................................ 9 1.5 METODOLOGÍA ................................................................................................................................ 10 1.6 IMPORTANCIA Y BENEFICIOS ........................................................................................................... 12 1.7 ENTORNOS WEB .............................................................................................................................. 12 1.8 CARACTERÍSTICAS .......................................................................................................................... 14 1.9 SELECCIÓN DE LA TECNOLOGÍA ADECUADA .................................................................................... 15 1.10 SOFTWARE LIBRE ............................................................................................................................ 15 1.11 ¿POR QUÉ UTILIZAR SOFTWARE LIBRE? .......................................................................................... 16 1.11.1 Sistemas de Gestión de Contenidos............................................................................................. 18 1.12 MARCO DE TRABAJO O FRAMEWORK .............................................................................................. 19 1.12.1 ¿Por qué utilizar Marcos de Trabajo o Framework? .......................................................... 19 1.12.2 Criterios de selección .......................................................................................................... 22 1.12.3 Symfony ................................................................................................................................ 23 1.12.4 ¿Por qué utilizar Symfony? .................................................................................................. 23 1.13 CONCLUSIONES PARCIALES ............................................................................................................. 26 CAPÍTULO 2 : ANÁLISIS Y DISEÑO DEL SISTEMA ............................................................................ 27 2.1 REQUISITOS DEL SISTEMA................................................................................................................ 27 2.2 DESCRIPCIÓN DE LOS REQUISITOS DEL SISTEMA .............................................................................. 28 2.3 ALGUNOS ELEMENTOS DE LA INFRAESTRUCTURA DE SYMFONY...................................................... 29 2.3.1 La Base de Datos del sistema ................................................................................................... 33 2.4 ACTORES Y CASOS DE USO DEL SISTEMA ......................................................................................... 35 2.5 USUARIOS Y PRIVILEGIOS ................................................................................................................ 37 2.6 DIAGRAMAS DE NAVEGACIÓN ......................................................................................................... 37 2.7 DIAGRAMA DEL MODELO RELACIONAL .......................................................................................... 40 2.8 DIAGRAMAS DE TRANSICIÓN DE ESTADOS ....................................................................................... 42 2.9 TABLAS DE EVENTOS ....................................................................................................................... 44 2.10 CONCLUSIONES PARCIALES ............................................................................................................. 47 CAPÍTULO 3 : DESCRIPCIÓN DE LA HERRAMIENTA ...................................................................... 48 3.1 3.2 3.3 3.4 3.5. PRERREQUISITOS E INSTALACIÓN DEL SISTEMA ............................................................................... 48 INTERFAZ DEL USUARIO VISITANTE ................................................................................................. 50 INTERFAZ DEL USUARIO ESPECIALISTA ............................................................................................ 53 INTERFAZ DEL USUARIO ADMINISTRADOR ....................................................................................... 58 CONCLUSIONES PARCIALES ............................................................................................................. 62. CONCLUSIONES .......................................................................................................................................... 63 RECOMENDACIONES ................................................................................................................................ 64 REFERENCIAS BIBLIOGRÁFICAS.......................................................................................................... 65.
(9) INTRODUCCIÓN. INTRODUCCIÓN Muchas son las ventajas que la red mundial brinda para elaborar y difundir información. En varios países de los cinco continentes la información se visualiza mediante portales interactivos. Para la utilización rápida de la información, esta se ubica en varios formatos y tipos, como es el caso del texto, gráfico, mapa, imágenes, audio y video, lo que convierte al espacio virtual en un instrumento rápido y dinámico para la divulgación y consulta. Nuestro país no está exento de los adelantos mundiales, esto hace que se encamine hacia la digitalización del territorio nacional y la intensificación del uso de las Tecnologías de la Informática y las Comunicaciones1. En la Delegación Provincial del CITMA de la provincia Villa Clara, la explotación de la web en función de la automatización del control y gestión de Licencias Ambientales se ha convertido en una necesidad, que se incrementa cada vez más, en la búsqueda de una mayor eficiencia.. Aunque se ha avanzado en esta dirección ¿Cuál es la mejor opción para automatizar el proceso de control y gestión de las Licencias Ambientales? En nuestra provincia hasta el momento no se ha podido realizar esta tarea, por ello el problema científico que sustenta el presente trabajo gira en torno a cómo automatizar el proceso de control y gestión de dichas licencias en la Delegación del CITMA en la provincia Villa Clara.. La creación de un sistema automatizado (web) totalmente independiente, dedicado a la informatización del proceso de control y gestión permitirá una mejor localización de la información, podrá tener aspectos más atractivos para los especialistas y además incrementará la rapidez y eficiencia en el proceso, guardándose los datos tanto de forma digital como en copia dura.. 1. 1. En lo adelante TiCs.
(10) INTRODUCCIÓN El sistema será un referente en la Delegación Provincial del CITMA en Villa Clara. El mismo mostrará las empresas, organismos y municipios a los cuales se les ha otorgado licencias así como el control de las mismas. La aplicación tendrá la posibilidad de tener enlaces a otros sistemas de la entidad. También se podrá considerar la existencia de una biblioteca para asegurar la colocación y acceso a licencias como las mencionadas previamente. Como aporte práctico fundamental se tiene la conformación del sistema con su propuesta metodológica. Como novedad científica se reconoce, primeramente, la sistematización de conocimientos que sobre el tema se disponen y en segundo lugar, la confección y puesta en práctica de un sitio dedicado al control y gestión de Licencias Ambientales. De ahí se deriva que el objeto de estudio del presente trabajo se vincule directamente al desarrollo de aplicaciones web, en este caso, en función de la automatización de procesos.. Tomando como referencia lo expuesto se considera oportuno emprender dicha tarea teniendo presente los siguientes objetivos:. Objetivo general:. Desarrollar un sistema automatizado para el control y gestión de Licencias Ambientales en la Delegación Provincial del CITMA de Villa Clara.. Objetivos específicos:. Analizar y diseñar el sistema de Gestión automatizado de Licencias Ambientales. Implementar el sistema automatizado de forma tal que responda a las necesidades de la entidad. Diseñar la base de datos del sistema en cuestión.. 2.
(11) INTRODUCCIÓN. Hipótesis:. El correcto análisis, diseño e implementación del Sistema de Gestión de las licencias ambientales permitirá mejorar la eficiencia del uso de esta información especializada sobre las licencias otorgadas a empresas, organismos y municipios.. Para llevar a cabo los objetivos específicos, se han definido un grupo de tareas: a. Las entrevistas a directivos y especialistas del centro, para conocer la organización e identificar los principales procesos que se desarrollan para dar solución al trabajo. b. La selección adecuada de las herramientas de programación. c. La elección de las metodologías a seguir y por tanto, la utilización de los lenguajes de programación más efectivos que cumplan con las exigencias planteadas. d. El análisis, diseño y creación de una base de datos que soporte las funcionalidades del sistema, lo que constituye un punto necesario, ya que en la misma se almacenará toda la información a utilizar en la aplicación. e. El análisis, diseño y creación de la interfaz gráfica de la aplicación, la cual debe ser lo más amigable posible al usuario y siempre pensando en el cliente final, para facilitar su desempeño con la misma.. Dentro de los métodos utilizados se destacan, entre los fundamentales, el analítico – sintético y el deductivo. Además se utilizarán las metodologías tradicionales de ingeniería de software. La tesis está estructurada en tres capítulos. El capítulo uno aborda los aspectos generales del problema de las Licencias Ambientales, la inserción de un análisis detallado de los portales ó sistemas Web y las Tecnologías de la Información y las Comunicaciones, con. 3.
(12) INTRODUCCIÓN información acerca de las licencias ambientales en nuestra provincia. El capítulo dos se dedica al análisis y diseño de los materiales y métodos usados, donde se describen los procesos del negocio. Aquí se manejan una serie de documentos específicos a procesar, al igual que los detalles de la información que se manipula. El capítulo tres ofrece una descripción de las características de implementación del sistema donde se describen los pasos a seguir por cada tipo de usuario para la utilización del mismo, en aras de lograr una mayor facilidad en el trabajo.. 4.
(13) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES. CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES EN LA GESTIÓN DE L I CE N C I AS AM B I E NTAL E S Las TiCs son incuestionables y forman parte de la cultura tecnológica del mundo de hoy y con las que debemos convivir. Estas amplían nuestras capacidades físicas y mentales, así como las posibilidades de desarrollo social. Sus principales aportes a las actividades humanas se concretan en una serie de funciones que nos facilitan la realización de nuestros trabajos, ya que estos siempre requieren de una cierta información para realizarlos, un procesamiento determinado de los datos y de forma frecuente la comunicación con otras personas. En este capítulo se exponen las características, ventajas e importancia de los Sistemas de Gestión de Información. Además se da un bosquejo en el tema de los entornos Web y su papel en la divulgación de la información y se describe el proceso de selección de la tecnología adecuada para emprender el trabajo.. 1.1. Licencia Ambiental. La Licencia Ambiental es un documento que otorgan las autoridades ambientales competentes al representante legal de una empresa para la ejecución de un proyecto, obra o actividad, sujeta al cumplimiento por el beneficiario de la licencia de los requisitos, obligaciones y condiciones que la misma establezca en relación con la prevención, mitigación, corrección, compensación y manejo de los efectos ambientales del proyecto, obra o actividad autorizada.. 6.
(14) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES La Delegación Provincial del CITMA de la provincia Villa Clara, al no contar con un Sitio Web para gestionar las Licencias Ambientales decidió hacer un estudio del proceso que se lleva a cabo en dicha delegación,. para así automatizarlo mediante un sistema de. información, y que se brinde mayor facilidad de acceso a la información y se tengan en cuenta una serie de requisitos para los usuarios, especialistas y administradores del CITMA Provincial, relacionados con el proceso de otorgamiento de las Licencias Ambientales.. 1.2. El uso de las Tecnologías de la Información y las Comunicaciones. Las TiCs son muy utilizadas en la gestión y transformación de la información y muy en particular, en ordenadores y programas que permiten crear, modificar, almacenar, proteger y recuperar esa información [1], o sea, son el conjunto de herramientas (hardware y software) relacionadas con la transmisión, procesamiento y almacenamiento digitalizado de información más el conjunto de procesos y productos derivados de ellas.. Las TiCs no dependen de los recursos naturales, ni de la mano de obra, ni del capital; dependen de un nuevo factor de producción: el conocimiento (Flores, 2003). Ellas han jugado un papel fundamental en el almacenamiento y distribución de la información, aún más con el surgimiento de las Nuevas Tecnologías de la Información y las Comunicaciones (NTIC) de la mano de Internet y la digitalización.. Hoy la información se almacena de forma rápida, segura y compacta y es accesible en instantes, para casi todas las personas del planeta y, las TiCs, como elemento esencial de la sociedad de la información, han sido la piedra de toque. Ellas habilitan la capacidad universal de acceder y contribuir a la información, las ideas y el conocimiento y posibilitan. 7.
(15) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES la promoción, el intercambio y el fortalecimiento de los conocimientos mundiales en favor del desarrollo al permitir un acceso equitativo a la información; constituyen por tanto un complemento cultural del hombre.. 1.3. Sistemas de Gestión de la Información. 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. 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).. 8.
(16) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES 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.. 1.4. Características. Los SGI tienen una serie de características que logran un buen desempeño y eficiente gestión:. Integralidad: El SGI debe aplicarse a la mayoría de la organización como una red global de información interconectada. Complejidad/Utilidad: La información tiende a ser infinita por lo que la selección de la relevante es una premisa indispensable para la supervivencia de cualquier institución; además es importante el manejo de datos cada vez más profusos y complejos manteniendo la necesaria simplicidad del sistema. Selección: El sistema debe ser capaz de diferenciar entre la información que puede ayudar a tomar decisiones a medio y largo plazo (información estructural) y aquella información de tipo coyuntural que ha de permitir el enfoque de las perspectivas a corto plazo. Análisis: El análisis de datos es la clave de un buen proceso de gestión de la información. El sistema debe de ser capaz de tratar y procesar de forma rápida la información almacenada. Utilidad: Los sistemas y procesos de gestión de la información no sólo han de ser útiles a las unidades coordinadoras sino también a las unidades gestoras. Modularidad: El sistema tiene que estar formado por módulos conectados entre sí pero que permitan un uso independiente. Esto facilita la ampliación de acuerdo a las. 9.
(17) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES necesidades y recursos del momento, mientras que por otra parte, admite que usuarios con requerimientos distintos accedan a diferentes niveles de información. Comunicación: La información debe tratarse de manera fácil para hacerla llegar a los usuarios (Quiroga, 2007).. Metodología. 1.5. Para desarrollar eficazmente el sistema y evitar deficiencias a la hora del proceso de gestión de las Licencias Ambientales, deben seguirse ciertas pautas metodológicas. Las principales son:. Realizar un estudio de los objetivos estratégicos de la empresa y la información que se va a tratar para garantizar su relación directa. Analizar el sistema definiendo su alcance, sus objetivos y sus requisitos. Obtener el grupo de especificaciones físicas base para el diseño y la construcción del sistema. Hacer un diseño preliminar donde se realicen las pruebas necesarias para asegurar un funcionamiento eficiente y a partir de él, construir el sistema. Controlar y mantener el sistema garantizando retroalimentación para su continua mejora.. En el desarrollo de cualquier sistema de información, con independencia del marco donde se sitúe,. se debe, antes de concebir su estructura y funcionamiento, estudiar con. detenimiento las necesidades de sus usuarios potenciales, establecer sus peculiaridades y capacidades, nivel de conocimientos y cómo y cuándo desean obtener la información. Con ello, pueden entonces determinarse las prioridades, concebir la forma de organización y representación de la información y su finalidad, utilizar y distribuir mejor los recursos disponibles en beneficio de sus usuarios e incidir de manera más efectiva en el. 10.
(18) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES cumplimiento de las metas y objetivos de la empresa. La Delegación del CITMA provincial se dio la tarea de informatizar el proceso de gestión de Licencias Ambientales, con el objetivo de agilizar y digitalizar la información, ya que esto se hace manualmente por los especialistas del centro. Para tener una idea de cómo es el proceso se da la siguiente descripción:. Descripción del Proceso Para realizar una solicitud de Licencia Ambiental, la entidad solicitante presenta a la Delegación Provincial del CITMA un expediente para realizar un proyecto, en la solicitud la entidad describe el objetivo del proyecto y el lugar donde se va a realizar, además analiza y fundamenta las razones para su ejecución.. Una vez recibida la solicitud en el CITMA, esta es analizada por una comisión de expertos que valora, según sus criterios, la factibilidad de llevar a vías de hecho el proyecto en cuestión teniendo en cuenta los riesgos y daños que el mismo puede ocasionar al medio ambiente.. Luego de reunirse los miembros de la comisión y emitidos los criterios, deciden si la solicitud de Licencia Ambiental será otorgada o no, en caso afirmativo se establecen un conjunto de medidas que deben ser cumplidas en las diferentes etapas de ejecución del proyecto. Se elabora un documento donde se da a conocer al representante legal de la entidad solicitante la aprobación del otorgamiento de la licencia. Luego de otorgada se redacta la resolución que valida legalmente la Licencia Ambiental, donde se exponen las medidas que debe cumplir la entidad en la ejecución del proyecto así como el número de licencia, año, entidad a la que se le otorga y las resoluciones y artículos que validan legalmente la homónima; esta es firmada por la Delegada(o) del CITMA en la provincia. De ser denegada la solicitud se le comunica al solicitante dicha información.. 11.
(19) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES. 1.6. Importancia y beneficios. La gestión de las Licencias Ambientales es de vital importancia para la provincia como el país ya que, para llevar a cabo un proyecto, obra o actividad es necesario haber recibido por parte de las autoridades ambientales el documento. Cada proyecto, obra o actividad es supervisada por especialistas, evaluando el impacto que produce al medio ambiente la ejecución de los anteriormente mencionados. Contar con un sistema que automatice este proceso es una de las principales herramientas que debe poseer la entidad (CITMA) para su buen desempeño y alto rendimiento.. La construcción y desarrollo del sistema para dicha entidad tendrá asociada la utilización de las Nuevas Tecnologías de la Información y las Comunicaciones (NTIC), esencialmente tecnología Web. Con él se podrá informatizar todo el proceso de gestión y control de las licencias. Además, facilitará el manejo, mantenimiento, actualización, almacenamiento y recuperación de la información de los titulares (empresas), municipios, organismos, Licencias Ambientales y autoridades ambientales. Por último, se dispondrá de la información de manera organizada en cualquier momento así como se tendrán en cuenta los privilegios de cada usuario a la hora de acceder a la información 1.7. Entornos Web. Una página Web es un sistema de documentos enlazados y accesibles a través de Internet, que pueden contener texto, imágenes, vídeos, etc. Un sitio Web es un grupo de páginas Web, generalmente comunes a un dominio de Internet. Estas son accedidas desde una URL (del inglés Uniform Resource Locutor) raíz común llamada portada, que es una secuencia de caracteres, de acuerdo a un formato estándar, usada para nombrar recursos, como. 12.
(20) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES documentos e imágenes, por su localización. Esa dirección es única para cada uno de los recursos de información disponibles en Internet.. Los entornos Web ofrecen muchas facilidades para la implementación de un sistema (Keeker, 2005): Almacenamiento: Un entorno Web brinda posibilidades ilimitadas de almacenamiento y no depende de un lugar específico para guardar los datos y la información pues esta se almacena de forma electrónica. Accesibilidad: Al tener la posibilidad de estar conectado a Internet, puede accederse desde cualquier parte del mundo.. Seguridad: Las posibilidades de seguridad de un ambiente Web permiten establecer niveles de privilegio para acceder a la información. Transmisión de la información: La información codificada puede ser trasmitida de manera rápida y segura por la red. Análisis: Un entorno Web puede trabajar conjuntamente con sistemas de cómputo y análisis de datos y de información para mostrar los resultados de manera que se facilite su visualización e interpretación. Despliegue: La información se muestra en páginas Web, sin tener que disponer de nuevos medios para mostrarla. Una aplicación con una capa de presentación elaborada para ser visualizada desde un navegador Web, permite ser usada en cualquier sistema operativo, convirtiéndose en una aplicación multiplataforma que puede ser visualizada por cualquier número de computadoras a la vez y de forma independiente. Trae consigo además, facilidad de uso, versatilidad y velocidad de interfaz (Yuen and Lau, 2003).. 13.
(21) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES La capacidad para actualizar y mantener aplicaciones Web sin distribuir ni instalar software en las computadoras de los clientes es la razón clave de su popularidad que provoca a su vez, que la mayoría de los clientes no necesiten entrenamiento adicional para manipular la interfaz de la aplicación. Además, alojando la aplicación en un servidor Web, se logra una disponibilidad total del producto.. 1.8. Características. El éxito de un Sistema Web depende de varias características: Navegación: Es la facilidad con la que un visitante accede y encuentra el contenido que sea de su interés. Estética: Comprende los aspectos de apariencia y composición de las páginas Web. Búsqueda: Es la capacidad de localizar o ubicar el contenido de interés para los usuarios de acuerdo con sus propios criterios, tanto dentro como fuera del sitio. La búsqueda es de vital importancia. Facilidad de aprender: Sus contenidos deben tener una estructura sencilla que facilite a los usuarios la navegación por el sitio y el uso del sistema en general. No debe presentar íconos en exceso, gráficos etiquetados o metáforas pues tienden a generar confusión. Tanto la utilización de niveles de forma coherente y clara, como el etiquetado son primordiales. Fácil de recordar: Una vez que el usuario ha utilizado el sistema, ¿qué tanto recuerda del mismo? La facilidad de uso de un entorno Web está completamente relacionada con el diseño del mismo. El sistema debe estar construido de forma tal que los usuarios sepan qué hacer en cualquier momento y cómo hacerlo, facilitándoles el aprendizaje de sus características en el menor tiempo posible.. 14.
(22) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES Inmediatamente al acceder al sistema el usuario debe conocer los objetivos y alcance del mismo. Suelen ayudar una distribución y diseño gráfico adecuados así como un lenguaje claro y legible lo que influye en el usuario positivamente.. Teniendo en cuenta estos aspectos se puede lograr una Web balanceada y atractiva, que facilite a los usuarios la navegación y les conduzca a la satisfacción de alcanzar sus objetivos rápidamente, lo que se traduciría en el aumento de la eficiencia en la gestión y control de las licencias.. 1.9. Selección de la tecnología adecuada. Seleccionar la tecnología adecuada es determinante para lograr implementar y luego mantener un Sistema Web. En ese sentido nos orientamos por diversos factores, a las siguientes tecnologías que a continuación se relacionan. 1.10. Software Libre. Software libre es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El usuario tiene la libertad de usarlo para cualquier propósito, de estudiar su funcionamiento, distribuir copias; hacerle los cambios que estime necesarios ya sea para su beneficio propio o para una comunidad y hacer públicos esos cambios. El software libre suele estar disponible gratuitamente o a precio de costo de distribución, pero no hay que asociarlo necesariamente a software gratuito (en inglés freeware), pues puede ser vendido comercialmente y aún conservar su carácter de libre. Análogamente, el software gratuito incluye en algunas ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de las versiones modificadas del programa.. 15.
(23) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES. 1.11. ¿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. Algunas de ellas son:. Libre: Existe libertad para usar, modificar, regalar o vender los programas de software libre. La copia es legal: Es legal repartir software libre a otras personas lo que evita en gran medida los problemas de la piratería. Si lo natural es compartir los programas con otras personas, con software libre es además legal. Abierto: se puede usar el código de los programas y modificarlo. Colaborativo: el modelo de desarrollo de software libre es colaborativo y participativo. Todo se puede modificar o criticar. Ayuda: existen innumerables grupos de usuarios que se ayudan entre sí a través de Internet. Auditable: el software libre se puede inspeccionar al disponer de su código fuente. Corrección más rápida y eficiente de fallos: El funcionamiento e interés conjunto de la comunidad permite solucionar más rápidamente los fallos de seguridad en el software libre, algo que desgraciadamente en el software propietario es más difícil y costoso. Cuando se notifica a las empresas propietarias del software, éstas niegan. 16.
(24) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES inicialmente la existencia de dichos fallos por cuestiones de imagen, y cuando finalmente admiten la existencia de esos errores tardan meses hasta proporcionar los parches de seguridad. Economía: El bajo o nulo costo de los productos libres permite a las instituciones ampliar sus infraestructuras sin que se vean mermados sus intentos de crecimiento por no poder hacer frente al pago de las licencias. Libertad de uso y redistribución: Las licencias de software libre actuales permiten la instalación del software tantas veces y en tantas máquinas como el usuario desee.. Independencia tecnológica: El código fuente libre permite el desarrollo de nuevos productos sin la necesidad de desarrollar todo el proceso partiendo de cero. Fomento de la libre competencia al basarse en servicios y no licencias: Uno de los modelos de negocio que genera el software libre es la contratación de servicios de atención al cliente. Este sistema permite que las compañías que den el servicio compitan en igualdad de condiciones al no poseer la propiedad del producto del cual dan el servicio, lo que provoca un cambio vertical positivo en cuanto a atención al cliente y contratación de empleados, en contraposición a sistemas mayoritariamente sostenidos por la venta de licencias y desatención. Soporte y compatibilidad a largo plazo: Más que una ventaja del software libre es una desventaja del software propietario. Al vendedor, una vez que ha alcanzado el máximo de ventas que puede realizar de un producto, no le interesa que sus clientes continúen con él. La opción es sacar un nuevo producto, producir software que emplee nuevas tecnologías solo para éste y no dar soporte para la resolución de fallos al anterior tratando de hacerlo obsoleto por todos los medios, pese a que el primero pudiera cubrir perfectamente las necesidades de muchos de los usuarios. La elección del software libre evade el problema. Formatos estándar: los formatos estándar permiten una interoperabilidad más alta entre sistemas, evitando incompatibilidades.. 17.
(25) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES Sistemas sin puertas traseras y más seguros: El acceso al código fuente permite a las empresas de seguridad de todo el mundo puedan auditar los programas, por lo que la existencia de puertas traseras es ilógica ya que se pondría en evidencia y contraviene el interés de la comunidad que es la que lo genera. Sistema en expansión: Las ventajas especialmente económicas que aportan las soluciones libres a muchas empresas y las aportaciones de la comunidad, han permitido un constante crecimiento del software libre hasta superar, en ocasiones (por ejemplo servidores Web) al mercado propietario. El software libre ya no es una promesa, es una. realidad y se utiliza en sistemas de producción por algunas de las empresas tecnológicas más importantes como IBM, SUN Microsystems, Google y Hewlett-Packard [2].. La alternativa del software libre evita la dependencia tecnológica y ha venido a elevar los niveles de desarrollo de una comunidad ya grande que se reproduce en su seno. Cada día es usada con mayor frecuencia y amplía sus aristas sociales hacia ramas insospechadas. Sin la obligación de pagar las costosas licencias impuestas por los monopolios y trabajando por un interés común, la comunidad de quienes la asumen como paradigma consigue consolidarse y extender sus raíces. 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 (Saab, 2006). Nuestro país desde hace tiempo comparte esta visión.. 1.11.1 Sistemas de Gestión de Contenidos La creación, mantención, actualización y/o ampliación de un sitio Web puede convertirse en un trabajo muy complicado si no se dispone de las herramientas adecuadas. En la. 18.
(26) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES actualidad existen varias que ofrecen bondades en ese sentido y que se originan a partir del concepto de Sistemas de Gestión de Contenidos (del inglés Content Management Systems o CMS). Un CMS es un programa que permite crear una estructura de soporte (marco de trabajo, en ingles: framework) para la creación y administración de contenidos. Los CMS orientados a desarrollo Web consisten principalmente en una interfaz que controla las bases de datos donde se guarda el contenido del sitio y permiten independizar el diseño del contenido, de forma tal que se pueda cambiar el primero sin tener que modificar el segundo. Los CMS actuales facilitan además la generación de la parte administrativa del sitio (García, 2004).. 1.12. Marco de Trabajo o Framework. Un marco de trabajo o framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos de software concretos, mediante la cual otro proyecto de software puede ser organizado y desarrollado. En ocasiones, incluye soporte de programas, librerías y un lenguaje interpretado entre otros programas para facilitar el desarrollo de una aplicación y unir los diferentes componentes de un proyecto. Estos simplifican el desarrollo de las aplicaciones mediante la automatización de muchas de las tareas comunes. Además un marco de trabajo proporciona estructura al código fuente, forzando al programador a crear código más legible y más fácil de mantener (Fabien, 2008).. 1.12.1. ¿Por qué utilizar Marcos de Trabajo o Framework?. Un marco de trabajo simplifica el desarrollo de una aplicación mediante la automatización de algunos de los patrones utilizados para resolver las tareas comunes. Además, un marco de trabajo (framework) proporciona estructura al código fuente, forzando al desarrollador a. 19.
(27) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES crear código más legible y más fácil de mantener. Por último, facilita la programación de aplicaciones, ya que encapsula operaciones complejas en instrucciones sencillas (Fabien, 2008).. Este, 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. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web. También las aplicaciones que rodean los marcos de trabajos acostumbran a ser estándar, como los servidores Web Apache e ISS; los lenguajes PHP, Perl y Python; y las bases de datos MySQL y PostgreSQL. La disponibilidad para los principales sistemas operativos de estas aplicaciones y módulos, permite que los marcos de trabajos puedan funcionar en diversas plataformas sin muchas modificaciones. A continuación, algunos puntos de importancia de los marcos de trabajos que ilustran también la necesidad de su utilización (García, 2004):. Inclusión de nuevas funcionalidades. Esta operación puede implicar la revisión de multitud de páginas y del código que les aporta las funcionalidades. Con un framework eso puede ser tan simple como incluir un módulo realizado por terceros, sin que eso suponga muchos cambios en la Web. El sistema puede crecer y adaptarse a las necesidades futuras. Reutilización de objetos o componentes.. 20.
(28) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES Un marco de trabajo permite la recuperación y reutilización de páginas, documentos, y en general de cualquier objeto publicado o almacenado. Páginas interactivas. Las páginas estáticas llegan al usuario exactamente como están almacenadas en el servidor Web. En cambio, las páginas dinámicas no existen en el servidor tal como se. reciben en los navegadores, sino que se generan según las peticiones de los usuarios, por ejemplo, en un buscador, el sistema genera una página con los resultados que no existían antes de la petición. Para conseguir esta interacción, los marcos de trabajos conectan con bases de datos que hacen de repositorio central de todos los datos necesarios. Cambios del aspecto de la Web Si no hay una buena separación entre contenido y presentación, un cambio de diseño puede necesitar la revisión de muchas páginas. Los marcos de trabajos facilitan los cambios con la utilización, por ejemplo, del estándar CSS (del inglés Cascading Style Sheets (hojas de estilo en cascada)) con lo que se consigue la independencia de presentación y contenido. Consistencia de la Web La consistencia en un Web no quiere decir que todas las páginas sean iguales, sino que hay un orden (visual) en lugar de caos. Un usuario nota enseguida cuándo una página no es igual que el resto de las de la misma Web por su aspecto, la disposición de los objetos o por los cambios en la forma de navegación. Estas diferencias provocan sensación de desorden y dan a entender que el Web no lo han diseñado profesionales. Los marcos de trabajos pueden aplicar un mismo estilo en todas las páginas con el mencionado CSS, y aplicar una misma estructura mediante patrones de páginas. Control de acceso Controlar el acceso a un sitio Web no consiste simplemente en controlar los permisos de entrada al mismo, además incluye los diferentes permisos de acceso a cada área del entorno aplicados a grupos o individuos [3].. 21.
(29) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES. 1.12.2. Criterios de selección. Antes de comenzar el proceso de selección de un marco de trabajo concreto, hay que definir con claridad los objetivos que se persiguen con la Web teniendo en cuenta el uso del sistema y tipos de usuarios; solo entonces, debe establecerse la serie de requerimientos que debería poder satisfacer el framework.. La siguiente lista construida sobre la base de lo todo lo expuesto hasta aquí, muestra algunas de sus características deseables. Software libre. Arquitectura técnica. Tiene que ser fiable y permitir la escalabilidad del sistema para adecuarse a futuras necesidades con módulos. También tiene que haber una separación de los conceptos de contenido, presentación y estructura que permita la modificación de cada uno de ellos sin afectar a los otros. Grado de desarrollo. Madurez de la aplicación y disponibilidad de módulos que le añadan funcionalidades. Usabilidad. La herramienta tiene que ser fácil de utilizar y aprender. Los usuarios no siempre serán técnicos, por lo tanto hace falta asegurar que podrán utilizar la herramienta sin muchos esfuerzos y sacarle el máximo rendimiento. Soporte. La herramienta tiene que tener soporte tanto por parte de los creadores como por otros desarrolladores. De esta manera se puede asegurar de que en el futuro habrá mejoras de la herramienta y que se podrá encontrar respuesta a los posibles problemas.. 22.
(30) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES En la actualidad existen muchos marcos de trabajos o framework como:. ! Play, Zend, Rubi, Symfony, etc. Por necesidad de la entidad se escogió Symfony.. 1.12.3. Symfony. Symfony es un completo marco de trabajo 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. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web. Symfony está desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. 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 *nix (Unix, Linux, etc.) como en plataformas Windows. (Fabien, 2008). 1.12.4. ¿Por qué utilizar Symfony?. Symfony se diseñó para que se ajustara a los siguientes requisitos: ▪ Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares) ▪ Independiente del sistema gestor de bases de datos ▪ Sencillo de usar en la mayoría de casos, pero lo suficientemente flexible como para adaptarse a los casos más complejos ▪ Basado en la premisa de "convenir en vez de configurar", en la que el desarrollador solo. 23.
(31) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES debe configurar aquello que no es convencional. ▪ Sigue la mayoría de mejores prácticas y patrones de diseño para la web. ▪ Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo. ▪ Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo. ▪ Fácil de extender, lo que permite su integración con librerías desarrolladas por terceros. También automatiza la mayoría de elementos comunes de los proyectos web, como por ejemplo: ▪ La capa de internacionalización que incluye Symfony permite la traducción de los datos y de la interfaz, así como la adaptación local de los contenidos. ▪ La capa de presentación utiliza plantillas y diseños (layouts) que pueden ser creados por diseñadores HTML sin ningún tipo de conocimiento del marco de trabajo (framework). Los auxiliadores (helpers) incluidos permiten minimizar el código utilizado en la presentación, ya que encapsulan grandes bloques de código en llamadas simples a funciones. ▪ Los formularios incluyen validación automatizada y relleno automático de datos ("repopulation"), lo que asegura la obtención de datos correctos y mejora la experiencia de usuario. ▪ Los datos incluyen mecanismos de escape que permiten una mejor protección contra los ataques producidos por datos corruptos. ▪ La gestión de la caché reduce el ancho de banda utilizado y la carga del servidor. ▪ La autenticación y la gestión de credenciales simplifican la creación de sesiones restringidas y la gestión de la seguridad de usuario. ▪ El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las páginas como parte de la interfaz, además de estar optimizadas para los buscadores. ▪ El soporte de e-mail incluido y la gestión de APIs permiten a las aplicaciones web. 24.
(32) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES interactuar más allá de los navegadores.. ▪ Los listados son más fáciles de utilizar debido a la paginación automatizada, el filtrado y la ordenación de datos. ▪ Los plugins, las factorías (patrón de diseño "Factory") y los "mixin" permiten realizar extensiones a medida de Symfony. ▪ Las interacciones con Ajax son muy fáciles de implementar mediante los auxiliadores que permiten encapsular los efectos JavaScript compatibles con todos los navegadores en una única línea de código.. Symfony puede ser completamente personalizado para cumplir con los requisitos de las empresas que disponen de sus propias políticas y reglas para la gestión de proyectos y la programación de aplicaciones. Por defecto incorpora varios entornos de desarrollo diferentes e incluye varias herramientas que permiten automatizar las tareas más comunes de la ingeniería del software: ▪ Las herramientas que generan automáticamente código han sido diseñadas para hacer prototipos de aplicaciones y para crear fácilmente la parte de gestión de las aplicaciones. ▪ El marco de trabajo de desarrollo de pruebas unitarias y funcionales proporciona las herramientas ideales para el desarrollo basado en pruebas ("test-driven development"). ▪ La barra de depuración web simplifica la depuración de las aplicaciones, ya que muestra toda la información que los programadores necesitan sobre la página en la que están trabajando. ▪ La interfaz de línea de comandos automatiza la instalación de las aplicaciones entre servidores. ▪ Es posible realizar cambios "en caliente" de la configuración (sin necesidad de reiniciar el servidor).. 25.
(33) CAPÍTULO 1: LAS TECNOLOGÍAS DE LA INFORMACIÓN EN LA GESTIÓN DE LICENCIAS AMBIENTALES ▪ El completo sistema de log permite a los administradores acceder hasta el último detalle de las actividades que realiza la aplicación (Fabien,2008).. 1.13. Conclusiones parciales. Las Tecnologías de la Información y las Comunicaciones y, más puntualmente, los Sistemas de Gestión de Información, juegan un importante papel en la sociedad actual. Con la aparición de las primeras, la información adquirió el nuevo valor de recurso indispensable para cualquier entidad. Los segundos han elevado la competitividad de las instituciones a planos superiores. En nuestro país los Sistemas de Gestión de la Información se encuentran en fase de desarrollo y perfeccionamiento y para conseguirlo, es vital contar con la tecnología adecuada. La utilización de entornos Web construidos sobre plataformas libres de avanzada como Symfony, constituyen una arista de innegable validez en ese sentido.. 26.
(34) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA. CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA El desarrollo de sistemas es una actividad humana. Sin una herramienta de análisis y diseño con una notación fácil de comprender, el proceso de desarrollo estaría casi condenado a errar.. El UML (Lenguaje Unificado de Modelado), es un sistema de notación estándar en el mundo del desarrollo de sistemas. Este se compone por un conjunto de diagramas que permiten al analista de sistemas generar un anteproyecto de varias facetas, indicadoras de qué es lo que supuestamente hará el sistema, comprensibles para los clientes, desarrolladores y todos aquellos involucrados en el proceso de desarrollo (Schmuller, 2000).. En este capítulo se expone, mediante el uso de UML, el proceso de diseño de nuestro sistema, en especial de la Base de Datos. Se tocan además conceptos básicos relacionados con el tema. 2.1. Requisitos del sistema. Un requisito es una característica o necesidad que se debe tener sobre el contenido, forma o funcionalidad de un producto o servicio, en su conjunto, establecen qué debe hacer o qué cualidad debe poseer el sistema.. Estos deben satisfacer varias características: Necesidad: Deben ser algo necesario para el producto.. 27.
(35) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA. No ambigüedad: La descripción debe ser clara, precisa y tener solo una única interpretación posible. Concisión: Este debe redactarse en un lenguaje comprensible por los usuarios del sistema en lugar de uno de tipo técnico y especializado. Consistencia: Ningún requisito debe entrar en conflicto con otro diferente. Completitud: Deben contener en sí mismos toda la información necesaria, y no remitir a otras fuentes externas que los expliquen con más detalle. Alcanzabilidad: Deben ser objetivos realistas, posibles de ser alcanzados con el dinero, el tiempo y los recursos disponibles. Verificabilidad: Se debe poder verificar con absoluta certeza, si fueron satisfechos o no. 2.2. Descripción de los requisitos del sistema. Se necesita un entorno Web como soporte de un Sistema de Gestión de Licencias Ambientales para la Delegación Provincial del CITMA en la provincia Villa Clara, este debe permitir la inserción de datos de las entidades, guardar información de las licencias otorgadas por municipios, organismos y titulares y además sea capaz de realizar reportes.. Es necesario que el sitio cuente con una sección de accesos directos a otras páginas que inserten datos y generen reportes. También se requieren tres tipos de usuarios con permisos especiales: especialistas, administradores y visitantes.. 28.
(36) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA Por otra parte, el diseño visual debe ser sencillo y atractivo, con colores refrescantes en correspondencia directa con el objetivo esencial del sitio: mostrar informaciones que serán leídas por los especialistas.. De forma más específica, el sistema debe:. Gestionar el almacenamiento de la información referida a las licencias, trabajadores internos, entidades, municipios y organismos. Ser capaz de generar documentos automáticamente. Permitir realizar una búsqueda dentro de los datos almacenados en el sistema. Contar con una jerarquía de usuarios con diferentes niveles de acceso y privilegios. Poseer un diseño visual acorde con la función que desempeñará.. 2.3. Algunos elementos de la infraestructura de Symfony. La primera vez que se accede al código fuente de una aplicación realizada con Symfony, puede desanimar a los nuevos desarrolladores. El código está dividido en muchos directorios y scripts, los archivos son un conjunto de clases PHP, código HTML e incluso una mezcla de los dos. Además, existen referencias a clases que no se pueden encontrar dentro del directorio del proyecto y la anidación de directorios puede llegar hasta los seis niveles. Sin embargo, cuando se comprenda las razones que están detrás de esta aparente complejidad, se verá como algo completamente natural y no se querrá cambiar la estructura de una aplicación Symfony por ninguna otra. En este capítulo se explica con detalle toda esa estructura.. Symfony está basado en un patrón clásico del diseño Web conocido como arquitectura MVC (Modelo Vista Controlador), que está formado por tres niveles:. 29.
(37) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA ▪ El Modelo representa la información con la que trabaja la aplicación, es decir, su lógica de negocio. ▪ La Vista transforma el modelo en una página Web que permite al usuario interactuar con ella. ▪ El Controlador se encarga de procesar las interacciones del usuario y realiza los cambios apropiados en el modelo o en la vista.. La arquitectura MVC separa la lógica de negocio (el modelo) y la presentación (la vista) por lo que se consigue un mantenimiento más sencillo de las aplicaciones. Si por ejemplo una misma aplicación debe ejecutarse tanto en un navegador estándar como en un navegador de un dispositivo móvil, solamente es necesario crear una vista nueva para cada dispositivo; manteniendo el controlador y el modelo original. El controlador se encarga de aislar al modelo y a la vista de los detalles del protocolo utilizado para las peticiones (HTTP, consola de comandos, email, etc.). El modelo se encarga de la abstracción de la lógica relacionada con los datos, haciendo que la vista y las acciones sean independientes de, por ejemplo, el tipo de gestor de bases de datos utilizado por la aplicación.. En resumen, el funcionamiento del patrón MVC usado en Symfony se comporta de la siguiente manera (Fig. 2-1):. 1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace, etc.). 2. El controlador recibe (por parte de los objetos de la interfaz-Vista) la notificación de la acción solicitada por el usuario y gestiona el evento que llega a través de un gestor de eventos (handler) o callback. 3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario. Luego delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. Esta obtiene sus datos del modelo mediante el. 30.
(38) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA controlador para generar la interfaz apropiada para el usuario donde se reflejan los cambios en el modelo. 4. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.. Figura 2-1. El patrón MVC. El principio más importante de la arquitectura MVC es la separación del código del programa en tres capas, dependiendo de su naturaleza. La lógica relacionada con los datos se incluye en el modelo, el código de la presentación en la vista y la lógica de la aplicación en el controlador. La programación se puede simplificar si se utilizan otros patrones de diseño. De esta forma, las capas del modelo, la vista y el controlador se pueden subdividir en más capas.. 31.
(39) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA La capa del modelo se puede dividir en la capa de acceso a los datos y en la capa de abstracción de la base de datos. De esta forma, las funciones que acceden a los datos no utilizan sentencias ni consultas que dependen de una base de datos, sino que utilizan otras funciones para realizar las consultas. Así, si se cambia de sistema gestor de bases de datos, solamente es necesario actualizar la capa de abstracción de la base de datos.. La capa de la vista también puede aprovechar la separación de código. Las páginas Web suelen contener elementos que se muestran de forma idéntica a lo largo de toda la aplicación: cabeceras de la página, el layout genérico, el pie de página y la navegación global. Normalmente sólo cambia el interior de la página. Por este motivo, la vista se separa en un layout y en una plantilla. Normalmente, el layout es global en toda la aplicación o al menos en un grupo de páginas. La plantilla sólo se encarga de visualizar las variables definidas en el controlador. Para que estos componentes interaccionen entre sí correctamente, es necesario añadir cierto código.. En las aplicaciones Web reales el controlador suele tener mucho trabajo, una parte importante de su trabajo es común a todos los controladores de la aplicación. Entre las tareas se encuentran el manejo de las peticiones del usuario, el manejo de la seguridad, cargar la configuración de la aplicación y otras tareas similares. Por este motivo, el controlador normalmente se divide en uno frontal, que es único para cada aplicación, y las acciones, que incluyen el código específico del controlador de cada página. Una de las principales ventajas de utilizar un frontal es que ofrece un punto de entrada único para toda la aplicación. Así, en caso de que sea necesario impedir el acceso a la aplicación, solamente es necesario editar el script correspondiente al controlador frontal. Si la aplicación no dispone de este, se debería modificar cada uno de los controladores.. 32.
(40) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA La tabla 2.1 Muestra los directorios en la raíz de los proyectos Symfony. Directorio. Descripción. apps/. Contiene un directorio por cada aplicación del proyecto (normalmente, frontend y backend para la parte pública y la parte de gestión respectivamente). cache/. Contiene la versión registrada de la configuración y (si está activada) la versión registrada de las acciones y plantillas del proyecto. El mecanismo de cache (que se explica en el Capítulo 12) utiliza los archivos de este directorio para acelerar la respuesta a las peticiones web. Cada aplicación contiene un subdirectorio que guarda todos los archivos PHP y HTML preprocesados. config/. Almacena la configuración general del proyecto. data/. En este directorio se almacenan los archivos relacionados con los datos, como por ejemplo el esquema de una base de datos, el archivo que contiene las instrucciones SQL para crear las tablas e incluso un archivo de bases de datos de SQLite Contiene la documentación del proyecto, formada por tus propios documentos y por la documentación generada por PHPdoc. doc/. lib/. Almacena las clases y librerías externas. Se suele guardar todo el código común a todas las aplicaciones del proyecto. El subdirectorio model/ guarda el modelo de objetos del proyecto. log/ Guarda todos los archivos de log generados por Symfony. También se puede utilizar para guardar los logs del servidor web, de la base de datos o de cualquier otro componente del proyecto. Symfony crea un archivo de log por cada aplicación y por cada entorno plugins / test/. web/. Almacena los plugins instalados en la aplicación. Contiene las pruebas unitarias y funcionales escritas en PHP y compatibles con el framework de pruebas de Symfony. Cuando se crea un proyecto, Symfony crea algunos pruebas básicas La raíz del servidor web. Los únicos archivos accesibles desde Internet son los que se encuentran en este directorio. Tabla 2.1 Directorios de la raíz de los proyectos Symfony. 2.3.1. La Base de Datos del sistema. El componente que se encarga por defecto de gestionar el modelo en Symfony es una capa de tipo ORM (object/relational mapping) realizada mediante el proyecto Doctrine el cual es. 33.
(41) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA el ORM que se va a utilizar para el desarrollo del Sistema. En las aplicaciones Symfony, el acceso y la modificación de los datos almacenados en la base de datos se realiza mediante objetos; de esta forma nunca se accede de forma explícita a la base de datos. Este comportamiento permite un alto nivel de abstracción y permite una fácil portabilidad.. La principal ventaja que aporta el ORM es la reutilización, permitiendo llamar a los métodos de un objeto de datos desde varias partes de la aplicación e incluso desde diferentes aplicaciones.. 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 proceso o traducción, el mismo 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. La sintaxis que utiliza Symfony para definir los esquemas hace uso del formato YAML. Los archivos schema.yml deben guardarse en el directorio nombreProyecto/config/. Doctrine tiene la particularidad de que puede generar la base de datos a partir del esquema o viceversa.. En nuestro caso se creó el modelo utilizando la herramienta de diseño Visual Paradigm, la cual genera el script SQL de la Base de Datos y se utilizó una de las tareas de Doctrine para crear el esquema de la misma: $ symfony doctrine:build-schema. Symfony maneja automáticamente las sesiones del usuario y es capaz de almacenar datos de forma persistente entre peticiones. Utiliza el mecanismo de manejo de sesiones incluido en PHP y lo mejora para hacerlo más configurable y más fácil de usar. Gracias a uno de los. 34.
(42) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA plugins de Symfony, sfGuardPlugin se extiende la clase de sesión para facilitar el proceso de loguearse y desloguearse. (Fabien, 2008). 2.4. Actores y casos de uso del sistema. Un caso de uso es una técnica cuyo objetivo es obtener los requisitos potenciales de un sistema. Cada caso de uso proporciona uno o más escenarios que indican cómo debería interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo específico. En nuestro sitio, los casos de uso atienden a tres tipos de usuarios: visitante (Fig. 2.4-1), administrador (Fig. 2.4-2), y especialista (Fig. 2.4-3), estos se presentan a continuación:. Figura 2.4-1 Diagrama para el caso de uso del usuario visitante.. 35.
(43) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA. Figura 2.4-2 Diagrama para el caso de uso del usuario administrador.. Figura 2.4-3 Diagrama para el caso de uso del usuario especialista.. 36.
(44) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA. 2.5. Usuarios y privilegios. El entorno Web cuenta en su sistema jerárquico con usuarios visitantes (primer nivel), usuarios especialistas, para tratar la información del sistema y uno o más administradores (nivel superior). A continuación se muestran los privilegios de cada usuario (los usuarios de niveles superiores heredan los privilegios de los de niveles inferiores):. Usuario Administrador: este usuario tiene permisos para crear, editar y eliminar funcionalidades del sistema, usuarios y enlaces. Usuario Especialista: este usuario tiene permisos para crear, editar y eliminar licencias, entidades, organismos, municipios y trabajadores internos. Usuario Visitante: este usuario solo posee permisos para leer información del sistema y descargar archivos de este.. El sistema mostrará una visualización de su contenido acorde al usuario que esté autenticado en ese momento. 2.6. Diagramas de navegación. Los diagramas de navegación están formados por un grupo de estados y sus correspondientes enlaces mediante los cuales, los diferentes usuarios del sistema pueden transitar hacia otros estados. Cada estado representa una página del sistema que, por supuesto, se muestra en el navegador.. Los siguientes diagramas de navegación corresponden a los diferentes usuarios de nuestro sistema (visitante, especialista y administrador (incluye para cada caso al usuario registrado)).. 37.
(45) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA Diagrama de navegación del usuario visitante: Este usuario puede navegar a través del sistema por las diferentes opciones que ofrece (Fig. 2.6-1).. Fig. 2.6-1 Diagrama de navegación del usuario visitante.. Diagrama de navegación del usuario especialista: el usuario especialista, después de pasar por los estados de autentificación puede pasar a sus tareas principales: la creación, actualización, generación de documentos, eliminación e introducción de datos de licencias, entidades, organismos, trabajadores internos y actas (Fig. 2.6-2).. 38.
(46) CAPÍTULO 2: ANÁLISIS Y DISEÑO DEL SISTEMA. Fig. 2.6-2 Diagrama de navegación del usuario especialista. Diagrama de navegación del usuario administrador: luego de pasar la sección de autentificación, el usuario administrador posee todos los privilegios posibles en el entorno. Puede crear, editar y eliminar funcionalidades del sistema, usuarios y enlaces (Fig. 2.6-3).. 39.
Figure
+7
Documento similar