• No se han encontrado resultados

Sistema de Gestión de Información para el Departamento de Metalurgia y Materiales

N/A
N/A
Protected

Academic year: 2020

Share "Sistema de Gestión de Información para el Departamento de Metalurgia y Materiales"

Copied!
104
0
0

Texto completo

(1)

I

INSTITUTO SUPERIOR MINERO METALURGICO

“Dr. Antonio Núñez Jiménez”.

Facultad de Geología - Minería e Informática Moa, Holguín

Trabajo de Diploma para optar por el Título de

Ingeniería en Informática

Título

Sistema de Gestión de Información para el Departamento de

Metalurgia y Materiales

Autora:

Sandra Matos Quintero

Tutores:

Ing. Eloy Rafael Jiménez

Ing. Miguel Angel Barrera Fernández

(2)

II

Declaración de autoría

Declaro que soy la única autora de este trabajo y autorizo al Instituto Superior Minero Metalúrgico de Moa “Dr. Antonio Núñez Jiménez” y al Departamento de Informática para que hagan el uso que estimen pertinente con el mismo.

Para que así conste firmamos la presente a los _____ días del mes de ________ del 2012.

_________________ Sandra Matos Quintero Firma autora

__________________ __________________ Ing. Eloy Rafael Jiménez Iglesias Ing. Miguel Angel Barrera Fernández

(3)

III

Pensamiento

"Todos y cada uno de nosotros paga puntualmente su

cuota de sacrificio consciente de recibir el premio en la

satisfacción del deber cumplido, conscientes de avanzar

con todos hacia el Hombre Nuevo que se vislumbra en el

horizonte."

(4)

IV

Agradecimientos

A mis padres, quienes con su amor y apoyo incondicional han sabido guiarme y

enseñarme a pensar.

A mis abuelos Isabel y Axel, que lo dieron

todo, su apoyo y sus fuerzas, con el fin de

educarme y ver a sus nietas con una carrera universitaria.

A mi hermana para la cual soy la guía a seguir, a ella le agradezco que confíe en

mí.

A mi novio por estar presente siempre, por brindarme su ayuda incondicional y sus

consejos oportunos, por saber comprenderme.

A mis tutores por brindarme sus conocimientos, ayuda y apoyo en especial a

Miguel Angel.

A mis amistades por apoyarme siempre en los buenos y malos momentos, en

especial a: Keily, Arletis y Osiel.

A mis compañeros de grupo por compartir tantas experiencias y alegrías juntos.

A la Revolución por darme la oportunidad de estudiar en una universidad, por

poner a nuestro alcance todos los recursos para nuestra formación

como

profesionales.

A todos los que de una manera u otra han brindado su apoyo y han sido parte de

este

logro.

(5)

V

Dedicatoria

A los que confiaron en mí

A quien me ayudó siempre, mi novio

A mis padres, a mis abuelos, a mi hermana

A toda mi familia, a mis amigos

(6)

VI

Resumen

En la última década el ascendente desarrollo que ha acontecido, ha situado las tecnologías de la información y las comunicaciones en un lugar relevante en el ámbito del intercambio y gestión de la información e informatización de los diferentes sistemas. Con el desarrollo de esta investigación se muestra la informatización de la gestión de la información correspondiente al Departamento de Metalurgia y Materiales, a partir del desarrollo de una aplicación Web que facilite la gestión de la información y de las actividades del Departamento, facilitando así una mayor visibilidad de este dentro del Instituto.

(7)

VII

Summary

During the last decade and due to the rising development of de world, information and communication technologies have been placed in the top, within this circuit the inter change and management of information and computer systems have played an important role.

Through the development of this research we showed the management information system regarding to the Metalurgic and Materials faculty. A web application was taken into account to be carry out in order to make easy the management information in the activities of the faculty to create a greater accessibility in the Institute.

For developing this research a bibliographical study, about instruments and used technologies, was carried out in the development of the system some other methodologies were taken into account for the application in the computer systems in order to choose the most appropriated to be used and applied in.

(8)

VIII

Índice

Introducción... 1

Fundamentación Teórica ... 6

Introducción... 6

Estado del Arte ... 6

1.2.1 Antecedentes de la gestión de información. ... 6

1.2.2 Claves para desarrollar sistemas de gestión “eficientes y sencillos” ... 7

1.2.3 Ventajas de la gestión de información. ... 9

1.2.4 Sistemas automatizados vinculados al campo de acción ... 9

1.3 Content Management System (CMS). ... 10

1.3.1 CMS comerciales y de código abierto ... 10

1.3.2 Ejemplos de CMS ... 12

1.4

Aplicaciones Web ... 14

1.4.1 ¿Qué es una aplicación Web? ¿Por qué la utilizamos? ... 14

1.4.2 Cualidades de las aplicaciones Web. ... 15

1.5 Software Libre ... 15

1.6 Arquitecturas para el desarrollo e implementación de producto software... 17

1.6.1 Arquitecturas en capas. ... 17

1.6.2 Patrón Arquitectónico Modelo Vista Controlador (MVC) ... 18

1.7 Tendencias y tecnologías para el desarrollo de Aplicaciones Web. ... 20

1.7.1 Lenguajes de programación ... 20

Lenguajes del lado del servidor ... 21

Lenguajes del lado del cliente: ... 22

1.6.2 Sistemas Gestores de Bases de Datos (SBGD) ... 24

PostgreSQL ... 25

(9)

IX

1.6.4 Metodologías de desarrollo de software. ... 28

1.7. Servidores web ... 33

1.8. Framework de desarrollo. ... 34

1.9 Propuesta de solución ... 35

Conclusiones del Capítulo ... 39

Planificación y Diseño ... 40

2.1 Introducción ... 40

2.2 Funcionalidades generales. ... 40

2.2.1 Personal relacionado con el sistema. ... 40

2.2.2 Lista de reserva. ... 41

2.2.3 Historias de usuario ... 42

2.3 Planificación de entregas. ... 44

2.3.1 Estimación de esfuerzo por historias de usuario. ... 44

2.3.2 Planificación de iteraciones. ... 45

2.3.3 Plan de duración de las iteraciones. ... 46

2.3.4 Clases, responsabilidades y colaboradores. ... 47

2.4 Conclusiones del Capítulo ... 48

Desarrollo y Pruebas ... 49

3.1 Introducción. ... 49

3.2 Modelo de datos. ... 49

3.3.1 Tareas por historias de usuario. ... 49

3.4 Pruebas. ... 52

3.5 Desarrollo dirigido por pruebas. ... 53

3.5.1 Pruebas de aceptación. ... 53

Conclusiones del Capítulo. ... 55

(10)

X

4.1 Introducción ... 56

4.2 Efectos Económicos ... 56

4.3 Beneficios y Costos Intangibles en el proyecto ... 58

4.4 Ficha de costo ... 58

Conclusiones del Capítulo ... 63

Conclusiones Generales ... 64

Recomendaciones ... 65

Referencias Bibliográficas ... 66

Glosario de Términos ... 68

Anexos ... 70

Anexo 1: Plantillas de Historias de Usuarios ... 70

Anexo 2: Tarjetas CRC ... 73

Anexo 3: Tarjetas de Ingeniería ... 76

(11)

XI

Índice de Tablas

Tabla 1 Personal relacionado con el sistema ... 40

Tabla 2 Modelo de planilla de historias de usuario ... 42

Tabla 3 HU No.1: Autenticar usuarios. ... 43

Tabla 4 Estimación de esfuerzo por historias de usuario ... 44

Tabla 5 Plan de duración de las iteraciones. ... 46

Tabla 6 Tarjeta CRC No.1 Gestionar datos Profesor.. ... 47

Tabla 7 Distribución de tareas por historia de usuario. ... 50

Tabla 8 Historias de usuario abordadas en la primera iteración. ... 51

Tabla 9 Historias de usuario abordadas en la segunda iteración. ... 51

Tabla 10 Historias de usuario abordadas en la tercera iteración. ... 52

Tabla 11 Tarjeta de tarea No.1: Instalar el core de Drupal ... 52

Tabla 12 Planilla de prueba de aceptación. ... 54

Tabla 13 Historia de Usuario 2. ... 70

Tabla 14 Historia de Usuario 3. ... 70

Tabla 15 Historia de Usuario 4. ... 71

Tabla 16 Historia de Usuario 5. ... 71

Tabla 17 Historia de Usuario 6. ... 72

Tabla 18 Tarjeta CRC#1: Gestionar datos Profesores ... 73

Tabla 19 Tarjeta CRC#2: Profesores_Asignaturas ... 74

(12)

XII

Tabla 21 Tarjeta CRC#4: Gestionar datos Estudiantes ... 75

Tabla 22 Tarjeta CRC#5: Gestionar datos Evaluaciones ... 76

Tabla 23 Tareas de ingeniería # 2: Insertar Usuarios ... 76

Tabla 24 Tareas de ingeniería # 3: Eliminar Usuarios ... 77

Tabla 25 Tareas de ingeniería # 4: Modificar Usuarios ... 77

Tabla 26 Tareas de ingeniería # 5: Insertar información ... 77

Tabla 27 Tareas de ingeniería # 6: Modificar información ... 78

Tabla 28 Tareas de ingeniería # 7: Eliminar información ... 78

Tabla 29 Tareas de ingeniería # 8: Insertar datos del estudiante ... 79

Tabla 30 Tareas de ingeniería # 9: Modificar datos del estudiante ... 79

Tabla 31 Tareas de ingeniería # 10: Eliminar datos del estudiante ... 79

Tabla 32 Tareas de ingeniería # 11: Listar los datos del estudiante ... 80

Tabla 33 Tareas de ingeniería # 12: Insertar datos del profesor ... 80

Tabla 34 Tareas de ingeniería # 13: Modificar datos del profesor ... 81

Tabla 35 Tareas de ingeniería # 14: Eliminar datos del profesor ... 81

Tabla 36 Tareas de ingeniería # 15: Listar los datos del profesor ... 82

Tabla 37 Tareas de ingeniería # 16: Insertar datos de las asignaturas ... 82

Tabla 38 Tareas de ingeniería # 17: Modificar datos de las asignaturas ... 83

Tabla 39 Tareas de ingeniería # 18: Eliminar datos de las asignaturas ... 83

Tabla 40 Tareas de ingeniería # 19: Listar los de las asignaturas ... 84

(13)

XIII

Tabla 42 Tareas de ingeniería # 21: Modificar datos de las evaluaciones ... 85

Tabla 43 Tareas de ingeniería # 22: Eliminar datos de las evaluaciones ... 85

Tabla 44 Tareas de ingeniería # 23: Mostrar evaluaciones ... 86

Tabla 45 Tareas de ingeniería # 24: Abrir vínculos. ... 86

Tabla 46 Tareas de ingeniería # 25: Abrir aplicaciones. ... 87

Tabla 47 Prueba de aceptación #2 para la HU “Gestionar usuarios” ... 87

Tabla 48 Prueba de aceptación #3 para la HU “Gestionar información” ... 88

Tabla 49 Prueba de aceptación #4 para la HU Sistema de gestión de información ... 88

Tabla 50 Prueba de aceptación #5 para la HU “Abrir vínculos de interés” ... 89

(14)

Sistema de Gestión de Información

1

Introducción

Desde la invención de la computadora, la informática ha ido desarrollándose considerablemente .Ha ocurrido un fenómeno sin precedentes en la historia de la humanidad a partir del impresionante desarrollo de las Tecnologías de la Información y las Comunicaciones (TIC). Actualmente el mundo se encuentra en la denominada era de la información, conocida también como era del conocimiento, donde resulta cada vez mayor la influencia del soporte tecnológico avanzado para el manejo de la información y el conocimiento.

Como resultado del acelerado auge de estas tecnologías nuestro país al igual que el resto del mundo se encuentra inmerso en el proceso de transformación computacional para llevar a cabo la informatización de la sociedad con el fin de satisfacer todas las necesidades de esta. Se han realizado numerosos esfuerzos para asimilar las tecnologías del mercado mundial, elevando así la cultura integral de cada ciudadano al ponerlas al servicio del pueblo a través de programas educativos de superación integral, así como también mediante los diferentes niveles educacionales, entre los que se incluye el nivel universitario.

En nuestra enseñanza el avance tecnológico y el manejo de la información mediante la electrónica, la informática y las telecomunicaciones han contribuido a que las diferencias entre la recolección de la información, su correcto procesamiento y su distribución vayan desapareciendo paulatinamente.

(15)

Sistema de Gestión de Información

2

como medio de información a los interesa por el que hacer de este, es por ello que se da la tarea de crear una aplicación informática que solucione este problema.

Como resultado de lo expuesto anteriormente se tiene la siguiente situación problemática:

 El trabajo con el proceso educativo se hace de forma manual a través de los registros docentes, lo que implica un uso irracional de papel y otros recursos de oficina.

 No cuentan con un medio informático que haga posible la difusión de las actividades que desarrolla el departamento así como del quehacer dentro y fuera del instituto.

De esta situación podemos definir como problema científico la no existencia de un sistema informático que permita gestionar la información relacionada con el Departamento de Metalurgia y Materiales.

Para dar solución al problema planteado se tiene como objeto de investigación la informatización de procesos de gestión de información.

Lo cual delimita como campo de acción la informatización del proceso de gestión de información para el Departamento de Metalurgia y Materiales en el Instituto Superior Minero Metalúrgico de Moa.

De manera que el objetivo general de la investigación viene encaminado en desarrollar una Aplicación Web que permita facilitar la gestión de información en el Departamento de Metalurgia y Materiales.

(16)

Sistema de Gestión de Información

3

Los objetivos específicos que se persiguen son:

 Realizar un análisis de la información que se publicará en la Web para que no haya ambigüedad y que sea precisa.

 Implementar una Base de Datos que permita el fácil y preciso acceso a las informaciones del sitio.

 Desarrollar la aplicación web.

 Documentar toda la información posible sobre la aplicación para facilitar su mantenimiento posterior.

Para lograr un eficaz desarrollo de la investigación y darle seguimiento a los objetivos trazados se plantearon las siguientes tareas específicas:

 Realizar una valoración de la situación del Departamento.

 Realizar un sistema de encuesta con el fin de descifrar las necesidades del Departamento.

 Realizar un estudio de las tecnologías de desarrollo de Aplicaciones Web.  Diseñar la base de datos.

 Realizar el levantamiento de los requerimientos del sistema.  Realizar un estudio exhaustivo sobre la arquitectura a desarrollar.  Desarrollar el diseño e implementación de la Aplicación Web.  Desarrollar el manual de usuario.

(17)

Sistema de Gestión de Información

4

Métodos empíricos que se utilizaron fueron:

Observación: se utilizó para percibir la funcionalidad que tiene el departamento dentro del instituto.

Entrevista: permitió recopilar la información necesaria para valorar la situación actual del problema lo cual condujo a realizar un análisis y determinar los principales requisitos del sistema.

Métodos teóricos empleados se encuentran:

Análisis y síntesis: se utilizó en los fundamentos teóricos, en el procesamiento de la información y en la descomposición de cada uno de los requerimientos del sistema. Hipotético deductivo: fue empleado para la elaboración de la idea a defender del trabajo, la cual permitirá deducir la solución del problema una vez demostrada por la investigación.

El presente trabajo está estructurado por un resumen, introducción general, 4 capítulos, conclusiones generales, recomendaciones, bibliografías y anexos:

En el Capítulo1, Fundamentación teórica. Se ofrece una breve descripción de diferentes conceptos imprescindibles que le sirven de pilar a la investigación que se llevó a cabo. Así como algunos elementos importantes de las herramientas a utilizar para el desarrollo del sistema.

En el capítulo 2, Planeación y Diseño, se hace uso de la metodología expuesta en el capítulo inicial para el desarrollo del proyecto, abordando en detalles cada una de sus fases.

(18)

Sistema de Gestión de Información

5

(19)

Sistema de Gestión de Información

6

Fundamentación Teórica

Introducción

Hoy en día la informática va evolucionando considerablemente y junto con ella la producción de los diversos software. El siguiente capítulo es el resultado de una investigación acerca de las herramientas y metodologías existentes con las cuales se le pudiera dar solución al problema planteado. Además veremos la importancia del uso del software libre, y las diferencias que existen entre sitios Web y aplicaciones Web.

Estado del Arte

1.2.1 Antecedentes de la gestión de información.

(20)

Sistema de Gestión de Información

7

diferentes miembros, proveedores y usuarios puedan obtener el máximo de beneficios con el mínimo de costos. Sin una adecuada gestión de información no se pueden alcanzar la eficacia y la eficiencia que reclaman los tiempos actuales.

La información para que pueda utilizarse y genere ventajas competitivas debe tener tres características básicas: completa, confiable y oportuna. Además, debe emplearse para establecer relaciones con clientes, colaboradores, distribuidores; realizar procesos en la organización, crear productos/servicios con un alto grado de valor que le proporcionen a la organización una ventaja competitiva y es sobre la base de esto que la gestión de información, es decir, la obtención de la información adecuada, a su precio adecuado, en el tiempo y lugar adecuado, para tomar la decisión adecuada, adquiere un valor real. También se define la gestión de información como aquel proceso que se encarga de gestionar la información necesaria para la toma de decisiones y un mejor funcionamiento de los procesos, productos y servicios de la organización.

El software de gestión de información proporciona acceso, análisis y almacenamiento de los datos de cualquier entorno.

1.2.2 Claves para desarrollar sistemas de gestión “eficientes y sencillos”

Sin pretender ser exhaustivos, se enumeran a continuación algunas claves que deben ser consideradas cuando se pretende crear un sistema de gestión “eficiente y sencillo”:

1. No confundir los “qué” con los “cómos”

Las normas de referencia de los sistemas de gestión establecen requisitos, pero no la

forma en la que dichos requisitos deben satisfacerse. Dicho de otra forma: las normas

de gestión dictan lo que se debe lograr, pero no la forma de hacerlo. Esta flexibilidad es

un arma de doble filo, porque algunas organizaciones confunden los requisitos con los

(21)

Sistema de Gestión de Información

8 2. Integrar el sistema de gestión con los demás sistemas existentes en la empresa.

En muchas organizaciones, el nuevo sistema de gestión se implanta de forma paralela

a los sistemas de gestión existentes (planificación estratégica, planificación y control

presupuestario, gestión comercial, ingeniería, gestión de operaciones, gestión de

personal, gestión económico-financiera). La falta de integración de sistemas genera

ineficiencias, ya que no se producen las necesarias sinergias entre los sistemas. 3. Simplificar la documentación y los registros.

La falta de integración de los sistemas conlleva en muchos casos la generación de

registros y documentos duplicados o innecesarios.

4. No confundir la documentación con el propio sistema

En algunas organizaciones se mantiene la creencia de que un sistema de gestión no es

más que un conjunto de documentos que se crean, se controlan, archivan y distribuyen.

Esta idea lleva a pensar que cuantos más documentos y registros compongan el

sistema, más completo será. Este es un concepto totalmente erróneo, ya que la esencia

de un sistema de gestión no son los documentos y los registros sino los procesos, los

recursos, las personas, los métodos y la organización necesaria para cumplir los

objetivos y requisitos que la organización se proponga. En la práctica, los mejores

sistemas son los que logran cumplir dichos objetivos y requisitos con el mínimo volumen

de documentos y registros.

5. No tener como único objetivo “la certificación” y perder de vista la “eficiencia” del

sistema.

Cuando se decide crear un sistema de gestión, debe evitarse la ceguera de buscar

únicamente la certificación del sistema. Cuando sólo se persigue este fin, el sistema acaba siendo un “centro de coste” que no aporta más beneficio que el de permitir lucir

(22)

Sistema de Gestión de Información

9 optimizar los procesos, reducir costes, mejorar el desempeño y en consecuencia

mejorar la competitividad y los resultados del negocio.

1.2.3 Ventajas de la gestión de información.

Gestión y control efectivo: Sencillez, rapidez y ahorro. De una forma sencilla, la organización tiene acceso instantáneo a toda la documentación necesaria para su actividad de negocio, con las ventajas añadidas de la eliminación de desplazamientos, reducción de tiempo de consultas y tareas de archivo, ahorro de espacio físico, resolución del problema de localización de documentos.

Uso racional de los recursos: Facilita que la información se comparta y se aproveche de forma más eficiente y como un recurso colectivo. Como consecuencia, se reducen drásticamente situaciones como la duplicidad de documentos archivados, fotocopias innecesarias, dobles grabaciones de datos, etc. Seguridad y fiabilidad Información, documentos, etc. de gran valor para la organización pueden custodiarse en locales de alta seguridad, garantizando su perfecto estado de conservación mientras que, para el uso diario, se dispone de su réplica electrónica.

Productividad y valor añadido Una gestión de Información, además de ahorro de costes, genera una productividad y valor añadido adicionales, originados por el rápido acceso a la información dentro de la organización y su posterior distribución, sin necesidad de trasladar los documentos.

1.2.4 Sistemas automatizados vinculados al campo de acción.

(23)

Sistema de Gestión de Información

10

El proyecto SIGENU surge en Junio de 2004 a solicitud de la dirección del Ministerio de Educación Superior de Cuba (MES), como requisito a las necesidades de automatización de los procesos fundamentales de la gestión académica de una Institución de Educación Superior (IES) en todas sus modalidades de estudio. El sistema está compuesto por varios módulos que gestionan la información de un estudiante desde que se matrícula hasta que se gradúa o causa baja definitiva.

1.3 Content Management System (CMS).

Un sistema de gestión de contenidos (Content Management Systems o CMS) es un software que se utiliza principalmente para facilitar la gestión de la Web, ya sea en Internet o en una Intranet, también son conocidos como gestores de contenido Web (Web Content Management o WCM). Hay que tener en cuenta, que la aplicación de los CMS no se limita sólo a la Web.

James Robertson propone una división de la funcionalidad de los sistemas de gestión de contenidos en cuatro categorías que son la creación de contenido, la gestión de contenido, la publicación y la presentación. [8]

1.3.1 CMS comerciales y de código abierto

Se puede hacer una primera división de los CMS según el tipo de licencia. Por una parte, están los comercializados por empresas que consideran el código fuente un activo más, que tienen que mantener en propiedad, por lo que no permiten que terceros tengan acceso. Por la otra, se tienen los de código fuente abierto, desarrollados por individuos, grupos o empresas que permiten el acceso libre y la modificación del código fuente.

(24)

Sistema de Gestión de Información

11

con la adquisición de una licencia especial o después de su desaparición. Generalmente las modificaciones sólo pueden hacerlas los mismos desarrolladores y siempre según sus prioridades.

Los CMS de código abierto son mucho más flexibles en este sentido, pero se podría considerar que la herramienta comercial será más estable y coherente al estar desarrollada por un mismo grupo. En la práctica esta ventaja no es tan grande, ya que los de código abierto también están coordinados por un único grupo o por empresas, de forma similar a los comerciales.

Utilizar una herramienta de gestión de contenidos de código abierto tiene otra ventaja que hace decidirse a la mayoría de usuarios: su costo. Habitualmente todo el software de código abierto es de acceso libre, es decir, sin ningún coste en licencias. Sólo en casos aislados se hacen distinciones entre empresas y entidades sin ánimo de lucro o particulares. En comparación, los productos comerciales pueden llegar a tener un costo que sólo una gran empresa puede asumir.

En cuanto al soporte, los CMS comerciales acostumbran a dar soporte profesional, con un costo elevado en muchos casos, mientras que los de código abierto se basan más en las comunidades de usuarios que comparten información y solución a los problemas. Las formas de soporte se pueden mezclar, y así se encuentran CMS de código abierto con empresas que ofrecen servicios de valor añadido y con activas comunidades de usuarios. En el caso comercial también sucede, pero el costede las licencias hace que el gran público se decante por otras opciones y por lo tanto las comunidades de soporte son más pequeñas.

(25)

Sistema de Gestión de Información

12

siempre incorporan las instrucciones de su funcionamiento de forma completa y entendible.

En el mercado hay CMS de calidad tanto comerciales como de código abierto. Muchos CMS de código abierto están poco elaborados (aunque en plena evolución), pero también se encuentran entre los comerciales. En definitiva, un buen CMS de código abierto es mucho más económico que su homólogo comercial, con la ventaja de disponer de todo el código fuente y de una extensa comunidad de usuarios. [15]

1.3.2 Ejemplos de CMS

Joomla

Es un potente gestor de contenidos Web que permite crear sitios Web elegantes, dinámicos e interactivos. Por su diseño, potencia, flexibilidad y por sus enormes posibilidades de ampliación se está convirtiendo en el sistema de publicación preferido por muchos centros educativos y por millones de webmasters en todo el mundo.

Es una aplicación de código abierto programada en lenguaje PHP bajo una licencia GPL y que utiliza una base de datos MySQL para almacenar el contenido y los parámetros de configuración del sitio. Además de libre, Joomla es gratuito y no tendrás que pagar nada por usar este CMS para construir tu Web. [15]

El sistema incorpora una serie de componentes que nos permiten, entre otras muchas cosas:

 Insertar y administrar la publicación de anuncios gráficos o banners.  Realizar encuestas en línea a los visitantes o usuarios de nuestra Web.  Distribuir nuestras noticias en formato RSS.

(26)

Sistema de Gestión de Información

13

 Habilitar formularios de contacto para que visitantes y/o usuarios puedan enviar mensajes a los administradores y otros usuarios de la Web.

 Enviar con un solo clic mensajes masivos a todas las personas registradas en el sistema. [15]

Drupal

Este es un sistema de gestión de contenido modular y muy configurable. Se destaca por la calidad de su código y de las páginas generadas, el respeto de los estándares de la Web, y un énfasis especial en la usabilidad y consistencia de todo el sistema.

El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio Web.

Aunque la mayor parte de las instalaciones de Drupal utilizan MySQL, existen otras opciones. Drupal incorpora una capa de abstracción de base de datos que actualmente está implementada y mantenida para MySQL y PostgresSQL, aunque permite incorporar fácilmente soporte para otras bases de datos.

Drupal ha sido diseñado desde el principio para ser multi-plataforma. Puede funcionar con Apache o Microsoft IIS como servidor Web y en sistemas como Linux, BSD, Solaris, Windows y Mac OS X. Por otro lado, al estar implementado en PHP, es totalmente portable.

 Ayuda on-line - Un robusto sistema de ayuda online y páginas de ayuda para los módulos del core, tanto para usuarios como para administradores.

 Búsqueda - Todo el contenido en Drupal es totalmente indexado en tiempo real y se puede consultar en cualquier momento.

(27)

Sistema de Gestión de Información

14

gestión de contenido propietarios, es posible extender o adaptar Drupal según las necesidades.

 Módulos - La comunidad de Drupal ha contribuido con muchos módulos que proporcionan funcionalidades como 'página de categorías', autenticación mediante jabber, mensajes privados, bookmarks, etc.

 Personalización -Un robusto entorno de personalización está implementado en el núcleo de Drupal. Tanto el contenido como la presentación pueden ser individualizados de acuerdo las preferencias definidas por el usuario.

 URLs amigables - Drupal usa el mod_rewrite de Apache para crear URLs que son manejables por los usuarios y los motores de búsqueda. [2]

1.4

Aplicaciones Web

1.4.1 ¿Qué es una aplicación Web? ¿Por qué la utilizamos?

Una aplicación Web es un sistema informático que los usuarios usan accediendo a un servidor Web a través de los protocolos de Internet. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero. La facilidad para actualizar y mantener las aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su creciente popularidad.

Una aplicación Web está comúnmente estructurada como una aplicación en tres capas. En su forma más común el navegador es la primera capa, un motor usando alguna tecnología de Web dinámica (Ej.: CGI, PHP, ASP, Java Servlets o Pearl) es la capa del medio, y algún tipo de gestor de bases de datos como última capa.

(28)

Sistema de Gestión de Información

15

a estas ventajas que presenta es la razón por la cual es utilizada en este trabajo para llevar a cabo la implementación del software [14]

1.4.2 Cualidades de las aplicaciones Web.

Para que la Web sea efectiva, debe poseer algunas cualidades indispensables, como la seguridad, la escalabilidad, portabilidad y un diseño eficiente de la interfaz de usuario. La escalabilidad y la portabilidad son las que generalmente caen en olvido.

Escalabilidad: la aplicación tendrá la capacidad de crecer junto a las necesidades de sus usuarios.

Portabilidad: se enlaza el concepto de escalabilidad, y se refiere a la compatibilidad de la aplicación con múltiples sistemas operativos y plataformas utilizadas en el mercado. En general, cuando la demanda de los usuarios crece, las aplicaciones deben cambiar de plataforma para pasar de un servidor pequeño a uno mediano o grande. Es entonces, cuando la portabilidad es crítica para poder “escalar” sin problemas independientemente del entorno que se requiera.

Sin dudas, las aplicaciones Web aún tienen un largo camino por recorrer, debido a que son una opción muy interesante, especialmente, en tareas donde las bases de datos juegan un papel predominantes y los usuarios se encuentran dispersos.[5]

1.5 Software Libre

(29)

Sistema de Gestión de Información

16

Software libre es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente en Internet, o a precio del coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así y, aunque conserve su carácter de libre, puede ser vendido comercialmente. Análogamente, el software gratis o gratuito (denominado usualmente Freeware) incluye en algunas ocasiones el código fuente, este tipo de software no es libre en el mismo sentido que el software libre, al menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

La implantación y adquisición del software libre es una de las principales política llevada a cabo hoy en día en nuestro país, se pretende ayudar a convencer a nuestra comunidad informática, de que con software libre bajo la licencia GNU/GPL se le pueden dar solución a disímiles problemas que nos encontramos en la actualidad sin necesidad de invertir en software y sistemas operativos propietarios.

(30)

Sistema de Gestión de Información

17

1.6 Arquitecturas para el desarrollo e implementación de producto

software.

1.6.1 Arquitecturas en capas.

Arquitectura en capas: es donde se define como organizar el modelo de diseño a través de capas, que pueden estar físicamente distribuidas, lo que quiere decir que los componentes de una capa solo puede hacer referencia a componentes en capas inmediatamente inferiores. Este patrón es importante porque simplifica la comprensión y la organización de sistemas complejos, reduciendo las dependencias de forma que las capas más bajas no son consistentes de ningún detalle o interfaz de las superiores. La programación por capas es un estilo de programación en el que el objetivo primordial es separar la lógica de negocios de la lógica de diseño, un ejemplo básico de esto es separar la capa de datos de la capa de presentación del usuario.

Figura 1: Representación de la arquitectura en tres capas. Capas o niveles

(31)

Sistema de Gestión de Información

18

Capa de negocio o lógica: Es donde residen los programas que se ejecutan, recibiendo las peticiones del usuario y enviando las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) pues es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él.

Capa de datos: Es donde se ubican los datos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de los mismos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

Ventajas:

 El estilo soporta un diseño basado en niveles de abstracción crecientes, lo cual, permite a los implementadores la partición de un problema complejo en una secuencia de pasos incrementales.

 El estilo admite muy naturalmente optimizaciones y refinamientos.

 Proporciona una amplia reutilización. Al igual que los tipos de datos abstractos, se pueden utilizar diferentes implementaciones o versiones de una misma capa a medida que soporten las mismas interfaces de cara a las capas adyacentes. Esto conduce a la posibilidad de definir interfaces de capa estándar, a partir de las cuales pueden construirse extensiones o presentaciones específicas [4]

1.6.2 Patrón Arquitectónico Modelo Vista Controlador (MVC)

(32)

Sistema de Gestión de Información

19

grande poseen una estructura y un comportamiento que los hace clasificables según su "arquitectura". En la Web es muy común la utilización de la arquitectura, es por ello que optamos por el patrón arquitectónico MVC como arquitectura para el desarrollo de la propuesta de solución. Es un patrón de diseño de arquitectura de software que separa los datos de una aplicación la interfaz de usuario, y la lógica de control en tres componentes distintos.

Modelo: Representa la información con la que trabaja la aplicación, es decir, su lógica de negocio.

Vista: Presenta el modelo en un formato adecuado, como en una página Web que le permite al usuario interactuar con ella, usualmente un elemento de interfaz de usuario.

Controlador: Responde a eventos, usualmente acciones del usuario y realiza los cambios apropiados en el modelo o en la vista.

(33)

Sistema de Gestión de Información

20

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. [5]

Ventajas del MVC

 La separación del Modelo de la Vista, es decir, separa los datos de la representación visual de los mismos.

 Crea independencia de funcionamiento.  Facilita el mantenimiento en caso de errores.

 Permite el escalamiento de la aplicación en caso de ser requerido.

1.7 Tendencias y tecnologías para el desarrollo de Aplicaciones Web.

Las tecnologías informáticas están actualmente en constante desarrollo determinadas por una combinación de influencias tecnológicas y de nuevos requerimientos por parte de los usuarios finales. Estas influencias actúan sobre todos los componentes de las tecnologías existentes y establecen el comportamiento futuro de cada una de ellas.

1.7.1 Lenguajes de programación

Un lenguaje de programación es aquel que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente.

(34)

Sistema de Gestión de Información

21

Lenguajes del lado del servidor:

PHP

Es un lenguaje de programación interpretado, diseñado originalmente para crear páginas Web dinámicas, usado principalmente en interpretación del lado del servidor, pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando distintas bibliotecas. El Pre-procesador de hipertextos se llamó PHP, siendo publicada bajo licencia de software libre. Sus principales características son:

 Es un lenguaje multiplataforma.

 Soporte para una 0gran cantidad de bases de datos.

 Integración con varias bibliotecas externas, permite generar documentos en PDF.  Ofrece una solución simple y universal para las paginaciones dinámicas Web de

fácil programación.

 Producto de código abierto.

 No requiere definición de tipos de variables.  Tiene manejo de excepciones. [9]

ASP

(35)

Sistema de Gestión de Información

22

Server. Incluso en sistemas Linux podemos utilizar las ASP si instalamos un componente denominado Chilisoft, aunque lo ideal es trabajar sobre el servidor Web para el que está pensado: IIS. [10]

JSP

JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Páginas de Servidor Java. Es pues, una tecnología orientada a crear páginas Web con programación en Java. Con JSP podemos crear aplicaciones Web que se ejecuten en variados servidores Web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual. [10]

Lenguajes del lado del cliente:

HTML

Lenguaje estático para el desarrollo de sitios Web, en español Lenguaje de Marcas Hipertextuales, desarrollado por el World Wide Web Consortium. Textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. En la actualidad existen disímiles servidores Web, pero el más utilizado, por su estabilidad y su rendimiento, es el Servidor Web Apache. Los archivos presentan las extensiones (htm, html). [11]

Ventajas

 Sencillo al describir hipertexto.

 Texto presentado de forma estructurada y agradable.  Archivos pequeños.

(36)

Sistema de Gestión de Información

23

 Fácil aprendizaje del Lenguaje.

 Admisible para todos los exploradores. Javascript

Es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos,basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.

JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes. Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM). Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. JavaScript se interpreta en el agente de usuario, al mismo tiempo que las sentencias van descargándose junto con el código HTML.

CSS

(37)

Sistema de Gestión de Información

24

definidos y con significado completo (también llamados "documentos semánticos"). Además, mejora la accesibilidad del documento, reduce la complejidad de su mantenimiento y permite visualizar el mismo documento en infinidad de dispositivos diferentes.

Al crear una página web, se utiliza en primer lugar el lenguaje HTML/XHTML para marcar los contenidos, es decir, para designar la función de c ada elemento dentro de la página: párrafo, titular, texto destacado, tabla, lista de elementos, etc. Una vez creados los contenidos, se utiliza el lenguaje CSS para definir el aspecto de cada elemento: color, tamaño y tipo de letra del texto, separación horizontal y vertical entre elementos, posición de cada elemento dentro de la página, etc.

El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores.

1.6.2 Sistemas Gestores de Bases de Datos (SBGD)

Consiste en un conjunto de programas, procedimientos y lenguajes que nos proporcionan las herramientas necesarias para trabajar con una base de datos. Incorporan una serie de funciones que nos permita definir los registros, sus campos, sus relaciones, insertar, suprimir, modificar y consultar los datos. Actualmente existen muchos sistemas gestores de bases de datos.

Microsoft SQL Server

(38)

Sistema de Gestión de Información

25

MySQL

Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. Pertenece a Sun Microsystems desde enero de 2008. Por un lado se ofrece bajo la GNU/GPL para cualquier uso compatible con esta licencia, pero las empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. Al contrario que proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual. MySQL es propiedad y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. [4]

PostgreSQL

(39)

Sistema de Gestión de Información

26

Características principales

PostgreSQL aproxima los datos a un modelo objeto-relacional, y es capaz de manejar complejas rutinas y reglas. Ejemplos de su avanzada funcionalidad son consultas SQL declarativas, control de concurrencia mult-versión, soporte multi-usuario, transactions, optimización de consultas, herencia, y arrays.

Altamente extensible: Soporta operadores, funciones métodos de acceso y tipos de datos definidos por el usuario.

Integridad referencial: Soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.

MVCC (Multi-Version Concurrency): MVCC, o Control de Concurrencia Multi-Versión, es la tecnología que PostgreSQL usa para evitar bloqueos innecesarios.

Cliente/Servidor: PostgreSQL usa una arquitectura proceso-por-usuario cliente/servidor. Esta es similar al método del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a PostgreSQL.

WAL (Write Ahead Logging): Incrementa la dependencia de la base de datos al registro de cambios antes de que estos sean escritos. Esto garantiza que en el hipotético caso de que la base de datos se caiga, existirá un registro de las transacciones a partir del cual podremos restaurar la base de datos. [7]

1.6.3 Herramientas para el desarrollo de Aplicaciones Web

SQL Manager 2007 para PostgreSQL

Es una aplicación para que puedas sacar el mejor provecho a PostgreSQL. En

concreto, se trata de un eficiente administrador que te permite gestionar y editar estas

(40)

Sistema de Gestión de Información

27

Registro de base de datos de información de diálogo:

 La mayor parte de las opciones en Red | Opciones de datos de la sección de Opciones de diálogo ahora se puede especificar de forma individual para cada una de las bases de datos registrados en la base de datos de información de registro de diálogo. Los valores indicados en la sección Red | Datos en Opciones de página se aplicarán como configuración predeterminada para bases de datos de nueva matriculación.

 La opción 'esquema organizado del árbol de base de datos', se añade. Con esta opción desactivada, el árbol de objetos se construye sin agrupación por esquemas.

Diseñador de Base de Datos Visual:

 Las tablas están dispuestas de forma más compacta en el modo de ingeniería inversa.

Embarcadero ER/Studio

Es una herramienta de modelado de datos, se usa para el diseño y la construcción lógica y física de bases de datos. Su ambiente es de gran alcance y multinivel. Simple y fácil al usuario, ayuda a las organizaciones para tomar decisiones en cómo resolver embotellamientos de los datos, elimina redundancia y alcanza en última instancia usos de más alta calidad que entreguen datos más eficientes y exactos a la empresa de desarrollo (ER/STUDIO).

Ventajas:

 Si se está comenzando un nuevo diseño o está manteniendo una base de datos existente, ER/Studio se combina con las características para ayudarle a conseguir el trabajo hecho con eficacia.

(41)

Sistema de Gestión de Información

28

1.6.4 Metodologías de desarrollo de software.

Una metodología para el desarrollo de un proceso de software es un conjunto de filosofías, fases, procedimientos, reglas, técnicas, herramientas, documentación y aspectos de formación para los desarrolladores de Sistemas Informáticos. Por ello, escoger la metodología que va a guiar el proceso de desarrollo del sistema es un paso trascendental, a continuación veremos algunas:

Metodologías tradicionales

RUP: El Proceso Unificado de Rational (RUP) publicado en 1998, es una metodología de desarrollo de Software, la cual basa su fundamento en que todo proceso de desarrollo de software debe pasar por cuatro fases.

Las principales características de este proceso unificado son:  Dirigido por casos de uso.

 Centrado en la arquitectura.  Iterativo e incremental.

Y además utiliza un solo lenguaje de modelación (UML).

UML (Unified Model Language): Es un lenguaje de modelado de propósito general que pueden usar todos los modeladores. No tiene propietario y está basado en el común acuerdo de una gran parte de la comunidad informática. Constituye una técnica utilizada para el modelado de diferentes tipos de sistemas, para describir una información bien detallada sobre el funcionamiento de los mismos mediante símbolos estándares.

(42)

Sistema de Gestión de Información

29

Metodologías ágiles

Crystal Methodologies:

Conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos. Desarrolladas por Alistair Cockburn. El desarrollo de software se considera un juego cooperativo de invención y comunicación.

 Limitado por los recursos a utilizar.

 El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de trabajo en equipo definidas. [11]

Adaptive Software Developmen (ASD):

Promovido por Jim Highsmith. Sus principales características son:  Iterativo.

 Orientado a los componentes software más que a las tareas y tolerante a los cambios.

 El ciclo de vida que propone tiene tres fases esenciales: -Especulación.

-Colaboración y aprendizaje.

En la primera de ellas se inicia el proyecto y se planifican las características del software; en la segunda desarrollan las características y finalmente en la tercera se revisa su calidad, y se entrega al cliente. La revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo. [11]

SCRUM

(43)

Sistema de Gestión de Información

30

diseñado. La idea es desarrollar aplicaciones mucho más rápido y eficazmente. [11] Esta metodología está basada entre muchas bajo estas premisas:

a) Los individuos por encima de los procesos y herramientas. b) Entregar soluciones por encima de reportes de seguimiento. c) Dar respuesta a los cambios en lugar de ceñirse a seguir un plan.

La literatura de SCRUM se enfoca principalmente en la planeación iterativa y el seguimiento del proceso. Es muy cercana a las otras metodologías ágiles en muchos aspectos y debe funcionar bien con las prácticas de código de la XP. [11]

Programación Extrema (XP)

La programación extrema (XP) es un enfoque de la ingeniería de software, es la más destacada de los procesos ágiles de desarrollo. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.

(44)

Sistema de Gestión de Información

31

Esta metodología se basa en:

 Pruebas Unitarias: consiste en las pruebas realizadas a los principales procesos, de tal manera que adelantando en algo hacia el futuro, se pueden hacer pruebas de las fallas que pudieran ocurrir. Es como si se adelantara a obtener los posibles errores.

 Refabricación: se centra en el código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.

 Programación en pares: reside en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento. [11]

Características fundamentales de XP.

 Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.

 Pruebas unitarias: continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación.

 Programación por parejas: se recomienda que las tareas de desarrollo e lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta manera el código es revisado y discutido mientras se escribe es más importante que la posible pérdida de productividad inmediata.  Frecuente interacción: del equipo de programación con el cliente o usuario. Se

recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

(45)

Sistema de Gestión de Información

32

Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.

 Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.

 Simplicidad en el código: es la mejor manera de que las cosas funcionen.

Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo. [5]

La simplicidad y la comunicación son extraordinariamente complementarias. Con más comunicación resulta más fácil identificar qué se debe y qué no se debe hacer. Mientras más simple es el sistema, menos tendrá que comunicar sobre este, lo que lleva a una comunicación más completa, especialmente si se puede reducir el equipo de programadores.

Ventajas

 Apropiado para entornos volátiles.

 Estar preparados para el cambio, significa reducir su coste.

 Planificación más transparente para los clientes, ya conocen las fechas de entrega de funcionalidades. Vital para su negocio.

(46)

Sistema de Gestión de Información

33

 Permite la retroalimentación. La presión está a lo largo de todo el proyecto y no en una entrega final.

1.7. Servidores web

Apache

Apache, es un servidor de protocolo para la transferencia de hipertextos (Hypertext Transfer Protocol, HTTP por sus siglas en inglés) de software libre para plataformas Unix, Windows, y Macintosh, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Las características que lo definen son las siguientes:

 Tiene interfaz con todos los sistemas de autenticación.

 Facilita la integración como "plug-ins" de los lenguajes de programación de páginas Web dinámicas más comunes.

 Tiene integración en estándar del protocolo de seguridad SSL. (más utilizado).  Provee interfaz a todas las bases de datos.

 Corre en una multitud de Sistemas Operativos, lo que lo hace prácticamente universal.

 Es una tecnología gratuita con un código fuente disponible. El hacho de ser gratuito es importante poro no tanto como que se trate de código fuente abierto. Esta característica le ofrece al software un grado de transparencia tal que es posible determinar en todo momento que es lo que se está instalando, si secretos ni puertas traseras.

 Trabaja con Perl, PHP y otros lenguajes de script. Perl destaca en el mundo del script y Apache utiliza su parte del pastel de Perl tanto con soporte CGI como con soporte mod perl. También trabaja con Java y páginas JSP. Teniendo todo el soporte que se necesita para tener páginas dinámicas.

 Permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurarlo para que ejecute un determinado script cuando ocurra un error en concreto.

(47)

Sistema de Gestión de Información

34

creación de ficheros log a la medida del administrador, de este modo se puede tener un mayor control sobre lo que sucede en el servidor.

Internet Information Services (IIS)

Es una serie de servicios para los ordenadores que funcionan con Windows. Originalmente era parte del Option Pack para Windows NT. Luego fue integrado en otros sistemas operativos de Microsoft destinados a ofrecer servicios, como Windows 2000 o Windows Server 2003. Windows XP Profesional incluye una versión limitada de IIS. Los servicios que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS.

Este servicio convierte a un ordenador en un servidor de Internet o Intranet es decir que en las computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

1.8. Framework de desarrollo.

Es una estructura de soporte definida mediante la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones.

Symfony

(48)

Sistema de Gestión de Información

35

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 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 adaptables 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.

1.9 Propuesta de solución

(49)

Sistema de Gestión de Información

36

¿Por qué PHP?

Una de sus características más potentes es su soporte para gran cantidad de bases de datos, como por ejemplo: InterBase, MSSQL, MySQL, Oracle, Informix, PostgreSQL, ODBC, Unix dbm, FrontBase entre otras.

Otras Ventajas

 Es un Lenguaje multiplataformas.

 Completamente orientado al desarrollo de aplicaciones Web dinámicas con acceso a información almacenada en una Base de Datos.

 Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).

 Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.  Permite aplicar técnicas de programación orientada a objeto.

 Biblioteca nativa de funciones sumamente amplia e incluida.  Tiene manejo de excepciones (desde PHP5). [6]

¿Por qué PostgreSQL?

(50)

Sistema de Gestión de Información

37

¿Por qué Drupal?

 Base de datos: MySQL 5.0.15 o PostgreSQL 8.3  PHP Versión: 5.2 o superior

 PHP Memoria: 40 MB - 64 MB

 En cuanto a la seguridad se reformaron las tareas programadas como el "cron.php", el ingreso como usuario y el sistema de contraseñas, también la actualización de los módulos. Se agregaron más tareas administrativas desplegables, las tareas programadas del Cron se realizan desde la administración sin necesidad de scripts en el servidor web, se rediseñó la fortaleza de la contraseña entre otras cuestiones.

¿Por qué XP?

Se ha determinado en la concepción de este trabajo la implantación de XP como metodología de desarrollo, ya que es una metodología ligera que requiere de poco requerimiento de documentación y planificación para el desarrollo de la aplicación. Si se escogiese una metodología tradicional o sea RUP traería grandes problemas como son:

Multitud de artefactos: El hecho de realizar varios artefactos y mantenerlos actualizados consume mucho tiempo.

(51)

Sistema de Gestión de Información

38

Planificación inexistente: La planificación que se realiza en las fases iníciales está sujeta a muchas variaciones en dependencia de los cambios que se experimenten en los requisitos. Por tanto se hace muy difícil planificar actividades específicas si no se tiene claro que se debe hacer realmente.

Se necesita: La documentación mínima necesaria para el futuro soporte y mantenimiento del producto final.

Todos estos inconvenientes son erradicados con la implementación de la metodología XP.

(52)

Sistema de Gestión de Información

39

Conclusiones del Capítulo

(53)

Sistema de Gestión de Información

40

Capítulo 2

Planificación y Diseño

2.1 Introducción

En este capítulo se presenta parte de la propuesta de solución de la investigación, iniciando la fase de planeación y diseño de la metodología XP , donde se detallan las necesidades del cliente, se describen las funcionalidades que serán objeto de automatización mediante el empleo de las historias de usuarios (HU), se realiza una estimación del esfuerzo necesario para las mismas y se establece un plan de iteraciones necesarias sobre el sistema, para su terminación, se presentan además las tarjetas, clases, responsabilidades y colaboradores, que permitirán trabajar con una metodología basada en objetos.

2.2 Funcionalidades generales.

La difusión de la información de las distintas actividades que desarrolla el Departamento de Metalurgia y Materiales del ISMM así como el trabajo con las evaluaciones y otros datos relacionados con el mismo se realiza de forma manual, provocando un aumento del gato de papel y otros materiales de oficina.

2.2.1 Personal relacionado con el sistema.

Tabla 1 Personal relacionado con el sistema Personas relacionadas con el

sistema

Descripción

Administrador Este es el encargado de gestionar la configuración del sitio, administrar los usuarios y la información.

(54)

Sistema de Gestión de Información

41

Desarrollador Es la persona responsable de llevar a cabo la implementación del sistema.

2.2.2 Lista de reserva.

Después de conocer el personal relacionado, se procede a realizar el análisis de las funcionalidades que debe cumplir la aplicación para dar respuesta a los mismos. Para ello se enumerarán mediante una lista de reserva, las funcionalidades que el sistema debe ser capaz de cumplir.

De acuerdo a lo antes expuesto, el sistema debe ser capaz de: 1) Autenticar usuarios

2) Insertar usuarios 3) Eliminar usuarios 4) Modificar usuarios 5) Insertar información 6) Eliminar información 7) Mostrar información

Referencias

Documento similar

Nombre Tarea: Mostrar accesos por código de respuesta mediante una gráfica de pastel Tipo de Tarea: Desarrollo Puntos Estimados: 0.2 semana Fecha Inicio: 29-04-2014 Fecha

Número de tarea: 2 Número de Historia de usuario: 2 Nombre de la tarea: Desarrollo de la funcionalidad para aplicar filtros lineales Tipo de tarea: configuración - desarrollo

Número tarea: 18 Número historia: 9 Nombre Tarea: Interfaz para mostrar las editoriales Tipo de tarea: Nuevo Prioridad: Alta Programador responsable: Diosbel E. Lima Sánchez

Nombre tarea: Crear interfaz Wap para gestionar el seguimiento del servicio Tipo de tarea : Desarrollo Puntos estimados: 0,6 Fecha inicio: 23/04/2007 Fecha fin:

Nombre Tarea: Diseño de la interfaz Insertar Proyectos del Profesor Tipo de Tarea : Desarrollo Puntos Estimados: 1 Fecha Inicio: 8/4/09 Fecha Fin: 8/4/09

Número de tarea: 1 Número de Historia de usuario: 2 Nombre de tarea: Creación de la tabla en la Base de Datos del módulo Medias Tipo de tarea: Desarrollo Puntos estimado:

Número de tarea: 2 Numero de historia de usuario: 9 Nombre de la tarea: Diseñar la plantilla para obtener las causas de tiempo perdido Tipo de tarea: Desarrollo Puntos

Tipo de tarea: Análisis Puntos estimados: 0.3 Fecha inicio: 30 de Marzo de 2009 Fecha fin: 1 de Abril de 2009 Programador responsable: Yunior Alayo. Descripción: Analizar