• No se han encontrado resultados

Sistema de integracion de los resultados de los grupos de calidad

N/A
N/A
Protected

Academic year: 2023

Share "Sistema de integracion de los resultados de los grupos de calidad"

Copied!
94
0
0

Texto completo

(1)

Universidad de las Ciencias Informáticas Facultad 8

Título: Sistema de integración de los resultados de los grupos de calidad.

Trabajo de Diploma para optar por el título de Ingeniero Informático

Autores: Dayrán Alvarez Veliz

Carlos Rafael Estrada Miranda

Tutora: Ing. Yasirys Terry González Cotutora: Dra. Ailyn Febles Estrada

―Año 50 de la Revolución‖

Ciudad de La Habana, Cuba Junio, 2008

(2)

DECLARACIÓN DE AUTORÍA

Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.

Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.

_______________ _______________

Firma del Autor Firma del Autor

Dayrán Alvarez Veliz Carlos Rafael Estrada Miranda

_______________

Firma del Tutor Ing. Yasirys Terry González

(3)

AGRADECIMIENTOS

A todas las personas que de una forma u otra han formado parte de nuestras vidas y contribuido con nuestra formación profesional, a nuestros compañeros de estudio, a nuestros profesores y familiares.

Muchas gracias de corazón.

(4)

DEDICATORIA

Dayrán:

…en primer lugar a mis padres Mirta Veliz Thomas y Danilo Alvarez por apoyarme y guiarme siempre, son lo mejor que tengo en esta vida.

…a mis hermanas Yordanka Kindelán y Mabel Alvarez.

…a mis abuelas Mercedes y Maria (mima)

…a mi tío Lorenzo Márquez Thomas aunque ya no está.

…en general a toda mi familia.

…a mis súper amigos Saúl, Harold, Yoel, Maikel, Daydier, Daniel, Osmany, Imanol, Oviedo, Orlando y Jorge Luis entre otros por compartir conmigo momentos tan especiales que nunca podré olvidar.

…a mi amigo y hermano Marcel Mesa y David Aldana, por estar siempre dispuestos a ayudarme, pilares principales en la UCI de que hoy este donde estoy al igual que Alexis Naranjo, Enrique Altuna, Martín Morcate y Jorge Amado.

…a mi compañero de tesis, por toda la ayuda brindada y a sus siempre oportunos consejos.

…a todas las muchachas del aula Oliday, Adriana, Greilan, Yendy, Deyaniris, Mailin, Ilidian, Yane, Aida, Annie, Yadielkis, Anisley

..al piquete que siempre estuvo conmigo en todo momento mis hermanos y amigos Carlos Cruz (Andoki), Carlos Estrada (Palillo), Henry Carmenta (Cartman), Carlos Bacerio (mi hermano), Raidel Berrillo(Toni), Danyer Fidel(doble clic), Erick Tamayo, Yadier Perez(el gordo), Eduardo(el

deca),Yosber Rodríguez(The mutex), Roberto Ferre r(Fregon), Carlos Abel (Capeans), Lisbel Coto (el loco), Roddany Olivera(el niño), Maikel Pererira (kaiki), Armando Alejando(la pelua) y a todos los demás que la uci me dio la oportunidad de conocer.

… a todos lo que desaprobaron la prueba de nivel se les quieres por aquí

…mis amigas Maryorie, Karol, Yolanda, Andrea, Legna, Alina, Mizzar, Tatiana entre otras.

…a mi tutora Yasirys por su gran ayuda.

…en general a todas las personas con las que he compartido en todos estos años

en la universidad.

(5)

Charly:

Especialmente a mis padres Marcia y Carlos, a mis hermanas Yudith y Jessica por apoyarme en mi andar diario.

A mis abuelos Ivonne y Rafael por saberme guiar con su sabiduría, apoyo y amor.

A mis abuelos que ya no están, pero muchos años atrás confiaron en que podía llegar y a todos los familiares que me apoyaron y confiaron en mí siempre.

A mis amigos y a mis hermanos que estuvieron conmigo desde el principio:

Carlos (Andoki), Henry, Eduardo (El Deca), Dayrán (El Fiñe), Andrés (El yiyi) Licea, Marcel, Armandito, Yandi, Danyer, Berrillo, Roddany, Capean, Tamayo y al último que llegó Charlie Bacerio.

A toda la gente que estuvo a mi lado desde que entre a la universidad.

A toda la gente del laboratorio de tesis por compartir largos días y noches de insomnio.

A mis amigas Anisleidy y Meybis.

A las niñas y amigas del aula (ustedes saben).

A todas mis nenas, en especial para una.

A mi tutora Yasirys por guiarnos y apoyarnos.

A todo aquel que estuvo junto a mí en las buenas y malas en el desarrollo de la tesis y en mi carrera.

A todo el que me considera su amigo y compañero.

A toda la gente del paso de escalera 2 del legendario edificio 89

A Fidel, Raúl y a la Revolución por darnos esta oportunidad

Muchas Gracias

(6)

PENSAMIENTO

“El presente es de lucha y el futuro nos pertenece.”

Che

(7)

RESUMEN

El título del presente trabajo es Sistema de Integración de los Resultados de los Grupos de Calidad. Al Departamento de Calidad de la Universidad de las Ciencias Informáticas (UCI), con el incremento de los proyectos, se le hace difícil llevar el control de la información que se genera internamente en los grupos de calidad, por lo que el objetivo de la presente investigación es la construcción de un sistema que ofrezca solución a este problema. Este trabajo brinda una propuesta de aplicación Web para centralizar y facilitar el acceso a la información proveniente del departamento de calidad, específicamente documentos que se confeccionan por cada grupo de trabajo. Para llevar a cabo la creación de este sistema se tuvo como guía la metodología ágil XP, además de la utilización del CMS Drupal y de PHP como lenguaje de programación, para el almacenamiento de los datos se puso en marcha el servidor de base de datos MySQL. Como consecuencia se obtuvo un prototipo funcional del Sistema de Integración de los Resultados de los Grupos de Calidad (SIRGC) que satisface las necesidades del cliente, además de la documentación pertinente obtenida a lo largo del trabajo.

(8)

ÍNDICE

INTRODUCCIÓN ... 1

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 4

1.1INTRODUCCIÓN. ... 4

1.2GRUPOS DE CALIDAD ... 4

1.2.1 Empresas Internacionales ... 4

1.2.2 Empresas Nacionales ... 6

1.2.3 UCI ... 8

1.3TECNOLOGÍAS EMPLEADAS ... 9

1.3.1 Software Libre ... 9

1.3.2 Aplicaciones Web ... 9

1.3.3 Arquitectura Web ... 12

1.4ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN PARA LA REALIZACIÓN DE LA APLICACIÓN ... 13

1.4.1 Del lado del cliente ... 14

1.4.2 Del lado del servidor ... 16

1.5SISTEMAS DE GESTIÓN DE BASE DE DATOS ESTUDIADOS (SGBD) ... 19

1.6SERVIDORES WEB... 22

1.7DISEÑO DE INTERFAZ CON CMS ... 24

1.8METODOLOGÍAS ESTUDIADAS PARA EL DESARROLLO E INGENIERÍA DE SOFTWARE ... 26

1.9LENGUAJE DE MODELADO ... 29

1.10HERRAMIENTAS DE DESARROLLO E INGENIERÍA DE SOFTWARE ... 30

1.11CONCLUSIONES... 33

CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMA ... 35

2.1INTRODUCCIÓN. ... 35

2.2OBJETO DE ESTUDIO ... 35

2.2.1 Procesos involucrados en el campo de acción ... 35

2.2.2 Objeto de automatización ... 35

2.2.3 Propuesta del sistema... 35

2.3REQUISITOS NO FUNCIONALES DEL SISTEMA ... 37

2.4CONCLUSIONES ... 39

CAPÍTULO 3: EXPLORACIÓN Y PLANIFICACIÓN ... 40

3.1INTRODUCCIÓN. ... 40

3.2FASE DE EXPLORACIÓN ... 40

3.2.1 Historias de usuario ... 40

(9)

3.3PLANIFICACIÓN ... 45

3.3.1 Estimación de esfuerzo por historia de usuario ... 45

3.3.2 Plan de iteraciones ... 46

3.3.3 Iteración 1 ... 46

3.3.4 Iteración 2 ... 46

3.3.5 Iteración 3 ... 46

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

3.3.7 Plan de entregas ... 47

3.4CONCLUSIONES ... 47

CAPÍTULO 4: IMPLEMENTACIÓN Y PRUEBAS ... 48

4.1INTRODUCCIÓN ... 48

4.2ITERACIÓN 1 ... 48

4.2.2 Tareas de las historias de usuario desarrolladas en la iteración 1 ... 48

4.3ITERACIÓN 2 ... 53

4.3.1 Tareas de las historias de usuario desarrolladas en la iteración 2 ... 53

4.4ITERACIÓN 3 ... 56

4.4.1 Tareas de las historias de usuario desarrolladas en la iteración 3 ... 56

4.5DIAGRAMA DE ESTEREOTIPO WEB DE DRUPAL ... 59

4.6PRUEBAS ... 59

4.6.1 Pruebas de aceptación ... 60

4.7CONCLUSIONES ... 64

CAPÍTULO 5: ESTUDIO DE FACTIBILIDAD ... 65

5.1INTRODUCCIÓN. ... 65

5.2CARACTERÍSTICAS DEL PROYECTO. ... 65

5.3CÁLCULO DE INSTRUCCIONES FUENTES, ESFUERZO, TIEMPO DE DESARROLLO, CANTIDAD DE HOMBRES Y COSTO .. 67

5.4BENEFICIOS TANGIBLES E INTANGIBLES ... 69

5.5ANÁLISIS DE COSTO ... 70

5.6CONCLUSIONES ... 70

CONCLUSIONES ... 71

RECOMENDACIONES ... 72

REFERENCIAS BIBLIOGRÁFICAS ... 73

BIBLIOGRAFÍA ... 77

(10)

ANEXOS ... 79

ANEXO 1.DESCRIPCIÓN DE LA ESTRUCTURA DE UNA HISTORIA DE USUARIO. ... 79

ANEXO 2.DIAGRAMA DE ESTEREOTIPO WEB DE DRUPAL. ... 80

GLOSARIO DE TÉRMINOS ... 81

(11)

1

INTRODUCCIÓN

Con el transcurso del tiempo las organizaciones llegaron a la conclusión de que los activos intangibles son los que aportan verdadero valor a las mismas. Los activos intangibles son una serie de recursos que pertenecen a la organización pero no están valorados desde un punto de vista contable, también lo son las capacidades que se generan en la organización cuando los recursos empiezan a trabajar en grupo.

Es importante para desarrollar un sistema informativo tener en cuenta que el conocimiento a menudo reside en las mentes de las personas y, por tanto, no siempre está disponible donde y cuando es necesario para la organización.

Las empresas han pretendido transferir el conocimiento y experiencia existente en los empleados de forma tal que puedan ser utilizados por otros como un recurso disponible de la organización. Este proceso requiere capturar, organizar, almacenar y difundir el conocimiento de los trabajadores para convertirlo en un activo intelectual que aporte beneficios y se pueda compartir siendo la base el intercambio de información. En la actualidad este proceso se puede aplicar para mejorar la calidad del software, que es uno de los puntos de atención de las organizaciones, ya que el software se ha convertido en un activo que determina en gran medida la operatividad de una organización. [1]

En la Universidad de las Ciencias Informáticas (UCI) existen los grupos de trabajo de la Dirección de Calidad de Software, estos grupos requieren compartir información que es generada por cada uno y a su vez es necesaria para el trabajo de los demás. Dicha información actualmente es transferida personalmente, compartida en un servidor o enviada por correo electrónico, siendo esto un factor influyente en el tiempo de desarrollo del trabajo y por consiguiente de recursos para la institución por no contar con un medio que facilite una mayor eficiencia y rapidez en la realización del trabajo de estos grupos.

Tomando como base lo referido anteriormente, surge como problema científico ¿Cómo centralizar y facilitar el acceso a la información que se genera en los grupos de trabajo de la Dirección de Calidad de la Universidad de las Ciencias Informáticas?

(12)

2

Según lo antes expuesto se tendrá como objeto de estudio los sistemas que gestionan la información de los grupos de calidad en el mundo. Donde su campo de acción estará dirigido a los grupos de trabajo de la Dirección de Calidad de la Universidad de las Ciencias Informáticas.

El objetivo general de la investigación es elaborar un software que permita centralizar y facilitar el acceso a la información generada por cada uno de los grupos de trabajo de la Dirección de Calidad de la Universidad de las Ciencias Informáticas, especificando los siguientes objetivos.

Objetivos específicos:

Estudiar métodos de integración de los resultados de los grupos de calidad.

Analizar la situación actual de la integración de los grupos de trabajo de la Dirección de Calidad de Software.

Aplicar tecnologías, herramientas y metodologías para lograr la integración de los resultados de los grupos de calidad.

Para lograr el objetivo propuesto se han trazado una serie de tareas a desarrollar:

Estudiar el estado actual de los grupos de calidad de la UCI y su compenetración.

Escoger las tecnologías a utilizar.

Familiarizar el equipo de desarrollo con las tecnologías y herramientas seleccionadas.

Realizar implementación del sistema de forma iterativa obteniendo al final de cada iteración un prototipo funcional.

Realizar pruebas al software elevando la calidad del producto.

Realizar el estudio de la factibilidad del proyecto obteniendo una estimación del esfuerzo necesario y costo para llevar a cabo el mismo.

Idea a Defender:

Si se realiza un producto de correcto funcionamiento que permita centralizar y facilitar el acceso a la información generada por cada uno de los grupos de trabajo de la Dirección de Calidad se contribuirá a desarrollar eficientemente el trabajo de los grupos, al mantenimiento del conocimiento en los mismos.

(13)

3

Este trabajo tiene como aporte esencial la creación de un software que ayude a centralizar y facilitar el acceso a los artefactos generados por cada uno de los grupos de trabajo de la Dirección de Calidad de la Universidad de las Ciencias Informáticas. Dicho software permitirá dar una correcta organización a la documentación generada.

El trabajo de diploma cuenta con introducción, cinco capítulos, conclusiones, recomendaciones, referencias bibliográficas, anexos y glosario de términos.

Capítulo 1: Contiene la fundamentación teórica que hace referencia a la existencia de los diferentes grupos de calidad en empresas de renombre mundial las cuales ya tienen un aval y gran experiencia en la calidad del software además de su inserción al modelo de nuestra universidad.

También se incluyen las tecnologías, herramientas y lenguajes de programación a utilizar durante el proceso de construcción de la aplicación.

Capítulo 2: En este capítulo se explican las características que tendrá el sistema a desarrollar, la propuesta del sistema, arquitectura a utilizar y requerimientos no funcionales del sistema.

Capítulo 3: Se muestran las historias de usuario y la planificación estimada para la realización de las mismas en cada iteración de la implementación.

Capítulo 4: En este capítulo se desarrolla la implementación y pruebas de cada historia de usuario y se desglosan en tareas que serán asignadas a los programadores. Además se muestra el diagrama de estereotipo Web de Drupal.

Capitulo 5: En este capítulo se desarrolló el estudio de la factibilidad del proyecto para obtener una estimación del esfuerzo necesario y costo para llevar a cabo el mismo.

(14)

4

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA

1.1 Introducción.

En el presente capítulo se hace un análisis de cómo se encuentran a nivel internacional y nacional las tecnologías similares al sistema que se pretende desarrollar. Además se exponen las propuestas de herramientas y tecnologías a utilizar para el desarrollo del sistema.

1.2 Grupos de calidad

1.2.1 Empresas Internacionales

En la actualidad existe una gran cantidad de empresas dedicadas totalmente o parcialmente a la calidad del software pudiéndose encontrar en numerosos países, estas realizan este trabajo con software producido en dichas empresas, brindando este servicio internamente y a otras, entre ellas se pueden menciona las siguientes:

NTEsa: Grupo de Calidad del Software: Asociación de Técnicos de Informática –NTE

Empresa de ingeniería y consultoría de software. Se dedica al desarrollo y la gestión de proyectos de ingeniería multidisciplinarios, con visión global de sistemas, principalmente en las áreas de instrumentación y de desarrollo de software para hospitales y laboratorios. Su objetivo principal es la aplicación de la tecnología para que los clientes obtengan ventajas competitivas en sus productos y procesos.

En NTEsa existe un departamento de control de la calidad del software el cual cuenta con un sistema integrado de calidad a lo largo del ciclo de vida del proyecto, con un flujo completo de validación y verificación, desarrollando:

Elaboración de planes de seguridad, calidad y validación de acuerdo con estándares de calidad IEEE, ESA, NASA y FDA.

Análisis y gestión de riesgos.

Revisión de especificaciones.

Análisis de código y Test unitario.

Test funcional y de sistema.

Test de performance, seguridad y carga.

(15)

5

Gestión de defectos y cambios en desarrollo y post-entrega.

Gestión de métricas.

Auditorias internas por fases de proyectos.

NTEsa también posee un departamento independiente de calidad de software que está formado por, cuatro equipos de trabajo colaborando con los equipos de desarrollo:

Aseguramiento de la calidad en la construcción del software: soporte metodológico a actividades propias de desarrollo.

Verificación Funcional: personal dedicado en exclusiva a cada proyecto.

Verificación Web: Especialistas en verificación de aplicaciones basadas en nuevas tecnologías Internet.

Aseguramiento del cumplimiento de regulaciones y normativas aplicable a cada producto en cada país. [2]

El modelo de esta empresa es similar al de nuestra universidad pero el de la universidad es adaptado a las necesidades propias de las normas del país en cuanto al desarrollo de software libre.

DMR Consulting

DMR Consulting es una consultora multinacional que ofrece soluciones de negocio globales a sus clientes cubriendo todos los aspectos de la cadena de valor de las organizaciones, desde la estrategia de negocio hasta la implantación de los sistemas.

Con el Capability Maturity Model for Software (Modelo de Capacidad y Madurez para Software), DMR Consulting mejora la calidad y la eficiencia de los procesos internos del Center for Systems Management (Centro para Sistemas de Administración), uno de los servicios claves que ofrece a sus clientes. De este modo, cubre prácticas de planificación, gestión de la configuración, ingeniería de producto, coordinación intergrupal, gestión de requisitos, control de calidad y seguimiento. [3]

(16)

6

ATCA

La Asociación Técnica de Cajas de Ahorro (ATCA), entidad integrada por Caja Inmaculada (CAI), Caixa Sabadell, Caja Rioja y Caja Insular de Canarias, ha alcanzado la certificación CMMI Nivel 4, estándar internacional que mide la madurez de los procesos software en una organización. El nivel 4 de CMMI garantiza una importante optimización en el desarrollo de proyectos, asegurando una notable mejora tanto en lo relativo a costes como a tiempos de ejecución y calidad de los procesos. [4]

Estas empresas cuentan con software de gestión propietario implementados por ellos mismos y no son de código abierto. Estas herramientas ayudan con el trabajo facilitando así la rápida operación de los diferentes grupos de calidad en un software determinado, compartiendo así la información entre los grupos de un mismo proyecto y centralizándola, evitando demoras indeseadas y pérdida de información e inconsistencia en los datos y en la misma información generada por los grupos. Su 1.2.2 Empresas Nacionales

En nuestro país existen diferentes empresas desarrolladoras de software de renombre entre ellas podemos encontrar:

Softel:

Empresa que ofrece soluciones informáticas para el Sistema de Salud, para lo cual dispone de profesionales con experiencia en diseño, implantación y gestión de estas soluciones. Combina la experiencia en el desarrollo e integración de soluciones informáticas para el sector de la salud, con la aplicación de modernas tecnologías.

Softel tiene como misión proporcionar soluciones informáticas que eleven la eficiencia de los servicios de salud con personal y tecnologías de avanzada.

Sus objetivos son:

Implementar un sistema de excelencia para el desarrollo y mantenimiento de productos de software especializados en salud.

Organizar un esquema para la prestación de servicios informáticos de excelencia al sector de la salud.

(17)

7

Encaminados a satisfacer las necesidades de nuestros clientes en todos los niveles de Salud,

disponemos de profesionales con vasta experiencia en el sector.

Especializados en el campo de las soluciones informáticas para la salud, brindan:

Consultoría especializada

Gestión de proyectos informáticos Servicios informáticos especializados Integración de soluciones informáticas [33]

Desoft:

DESOFT Empresa Nacional de Software, entidad legal con personalidad jurídica que de ella surge la división. Se dedican a prestar servicios de desarrollo, producción y comercialización mayorista de software y aplicaciones informáticas de todo tipo, prestar servicios de ejecución y comercialización mayorista de soluciones informáticas integrales, representan, intermedian y distribuyen en el país productos y soluciones informáticas nacionales y extranjeras y ofrecen sus servicios asociados, brindando servicios de instalación mantenimiento garantía y postventa , servicios de capacitación y formación en tecnologías de la información y automatización, para la gestión, la administración y el control, fundamentalmente en forma de aplicaciones dirigidas a la informatización de cualquier tema o rama de la administración, el comercio o la industria, contemplando todas las formas de automatización que potencialmente puedan realizarse.

MISIÓN: Brindar soluciones integrales eficaces en Tecnologías de Información a las organizaciones, para contribuir eficientemente al desarrollo de la sociedad cubana. Desoft, la empresa nacional se software, fundada el 5 de enero del 2004, es una organización cubana, subordinada al ministerio de la Informática y las comunicaciones (MIC).

VISIÓN: Ser líderes en soluciones integrales en Tecnologías de la Información, con reconocimiento en el mercado internacional.

(18)

8

LÍNEAS DE NEGOCIOS: Soluciones Informáticas para la gestión de los recursos empresariales.

Desarrollo de Aplicaciones. Soluciones para la gestión documental y de la información. Productos para la formación de los recursos humanos en las organizaciones.

Desoft es una empresa dedicada a las tecnologías de la informática, específicamente a la creación y soporte de software de computadoras, entre otros servicios.

Principales Servicios:

Desarrollo de software: Desarrollo de aplicaciones informática.

Implementación de productos: Proceso durante el cual se induce al cliente al uso del sistema.

Soporte y Asistencia Técnica: Proporcionar ayuda telefónica, electrónica y/o presencial al cliente.

Entregarles las actualizaciones, nuevas versiones al cliente.

Formación: Cursos a distancia y presénciales.

Seguridad Informática: Servicio de instalación de antivirus.

Procesamiento de Datos: Procesar datos de la nómina.

PSM: Publicaciones y multimedia.

Control Interno: Consultoría en el Control Interno. [34]

No se ha encontrado la posibilidad de que estas empresas cuenten con un software de gestión de este tipo de información que les permita gestionar la documentación generada por los departamentos que atienden lo referente a calidad, la información fluye por diferentes vías como manual y compartida, ralentizando el trabajo, revisando el software por diferentes áreas como la de diseño y programación con personal cualificado para ese trabajo.

1.2.3 UCI

En la UCI existen cuatro grupos de trabajo de la Dirección de Calidad de software los cuales trabajan en conjunto, en el desempeño diario de su trabajo generan un flujo de información que es difícil de organizar y controlar siendo esto esencial para su trabajo. Estos grupos de trabajo de la Dirección de Calidad no cuentan con una herramienta de gestión como las utilizadas en las diferentes empresas internacionales para la distribución y facilitación de los documentos de trabajo generados por estos

(19)

9

grupos, se ha propuesto una solución a este problema la cual es guiada por los sistemas de gestión que utilizan las diferentes empresas internacionales.

1.3 Tecnologías empleadas

Para el desarrollo del sistema se realizó un estudio de las posibles herramientas y lenguajes a utilizar en su construcción, teniéndose en cuenta la tendencia actual a nivel mundial y también en nuestro país de la tecnología del software libre y a las novedades que brindan cada una de ellas.

1.3.1 Software Libre

El software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:

La libertad de usar el programa, con cualquier propósito.

La libertad de estudiar cómo funciona el programa, y adaptarlo a las necesidades. El acceso al código fuente es una condición previa para esto.

La libertad de distribuir copias, con lo que se puede ayudar a un compañero o entidad.

La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. El acceso al código fuente es un requisito previo para esto.

La migración a software libre rompe las barreras que el software propietario mantiene sobre el desarrollo de la comunidad internacional, sobre todo en países pobres, y amplía los campos de conocimientos de la sociedad, aumentando las posibilidades de desarrollar y crear nuevas herramientas que resuelvan los problemas fundamentales de la sociedad. [5]

Debido a lo referido anteriormente en nuestro país y específicamente en la UCI se ha venido trabajando en base a la migración hacia software libre para evitar precisamente las desventajas que se adquieren al desarrollar software sobre una plataforma propietaria.

1.3.2 Aplicaciones Web

Desde la creación de las tecnologías Web se ha venido desarrollando una amplia gama de aplicaciones de esta modalidad que facilitan el trabajo de muchas entidades que realizan operaciones

(20)

10

diarias con todo tipo de información que comparten entre diversas computadoras y necesitan como recurso indispensable el acceso a la Internet y la conexión a servidores Web y Bases de Datos.

Las aplicaciones Web realizan funciones inteligentes, efectuando operaciones que interactúan con el cliente dando a este una respuesta a sus solicitudes. Tienen características similares a las páginas Web y son más populares por la facilidad de acceder a ellas por navegadores Web a través de HTML o XHTML que cargan las aplicaciones mediante la red. Además tienen una gran importancia sobre los programas tradicionales, a continuación se muestran algunas de ellas. Las definiciones son las siguientes:

Compatibilidad multiplataforma: Las aplicaciones Web tienen un camino mucho más sencillo para la compatibilidad multiplataforma que las aplicaciones de software descargables. Varias tecnologías incluyendo Java, Flash, ASP y Ajax permiten un desarrollo efectivo de programas soportando todos los sistemas operativos principales.

Actualización: Las aplicaciones basadas en Web están siempre actualizadas con el último lanzamiento sin requerir que el usuario tome acciones pro-activas, y sin necesitar llamar la atención del usuario o interferir con sus hábitos de trabajo con la esperanza de que va a iniciar nuevas descargas y procedimientos de instalación (algunas veces imposible cuando usted está trabajando dentro de grandes organizaciones).

Inmediatez de acceso: Las aplicaciones basadas en Web no necesitan ser descargadas, instaladas y configuradas. Usted accede a su cuenta online y están listas para trabajar sin importar cuál es su configuración o su hardware.

Facilidad de prueba: Finalmente no habrá más obstáculos para permitir pruebas sencillas y efectivas con herramientas y aplicaciones.

Menos requerimientos de memoria: Las aplicaciones basadas en Web tienen muchas más razonables demandas de memoria RAM de parte del usuario final que los programas instalados localmente. Al residir y correr en los servidores del proveedor, esas aplicaciones basadas en Web usan en muchos

(21)

11

casos la memoria de las computadoras que ellos corren, dejando más espacio para correr múltiples aplicaciones al mismo tiempo sin incurrir en frustrantes deterioros en el rendimiento.

Menos Bugs: Las aplicaciones basadas en Web deberían ser menos propensas a colgarse y crear problemas técnicos debido a software o conflictos de hardware con otras aplicaciones existentes, protocolos o software personal interno. Con aplicaciones basadas en Web, todos utilizan la misma versión, y todos los bugs pueden ser corregidos tan pronto como son descubiertos. Esta es la razón por la cual las aplicaciones basadas en Web deberían tener mucho menos bugs que el software de escritorio descargable tradicional.

Precio: Las aplicaciones basadas en Web no requieren la infraestructura de distribución, soporte técnico y marketing requerido por el software descargable tradicional. Esto permite que las aplicaciones online cuesten una fracción de sus contrapartes descargables si no totalmente gratuitas, mientras que ofrecen componentes adicionales como una opción.

Los datos también van online. Por supuesto con el desplazamiento de las aplicaciones locales a aquellas basadas en Web también los datos que creamos y accedemos van a necesitar experimentar profundos cambios. Eliminando así el no poder acceder al correo electrónico cuando se esta de viaje, el no poder recuperar un documento particular cuando se conecta desde un lugar lejano de su oficina.

Múltiples usuarios concurrentes: Las aplicaciones basadas en Web pueden realmente ser utilizada por múltiples usuarios al mismo tiempo. No hay más necesidad de compartir pantallas o enviar instantáneas cuando múltiples usuarios pueden ver e incluso editar el mismo documento de manera conjunta. Las compañías de conferencia Web y colaboración online están involucradas en algunas transformaciones claves y los usuarios necesitan explorar que significa realmente trabajar efectivamente y co-editar documentos juntos.

Los datos son más seguros: Si bien la ruptura de discos no va a desaparecer, es probable que los usuarios escuchen mucho menos del tema. A medida que las compañías se hagan cargo del almacenamiento de los datos del usuario, granjas de almacenamiento de datos redundantes, altamente fiables, será la norma más que la excepción, y los usuarios van a tener mucho menos riesgo de perder sus datos debido a una ruptura de disco impredecible o a un virus de la computadora.

(22)

12

Desarrollar aplicaciones en el lenguaje que usted quiera: Una vez que las aplicaciones han sido separadas de computadoras locales y sistemas operativos específicos, estas pueden ser escritas prácticamente en cualquier lenguaje de programación. Ya que las aplicaciones Web son esencialmente una colección de programas más que un simple programa, ellas podrían ser escritas en cualquier lenguaje de programación que esté por ahí. Mientras que para software escritorio usted está limitado a usar el mismo lenguaje que el sistema operativo subyacente este no es el caso cuando la aplicación de software es independiente del sistema operativo.

Estas y otras integran la amplia gama de posibilidades que brinda el uso de las aplicaciones Web, demostrando su importancia en el desarrollo de software actualmente. [6]

1.3.3 Arquitectura Web

De la misma forma en que los arquitectos tradicionales diseñan y coordinan la construcción de edificios, los arquitectos Web diseñan y coordinan el desarrollo de sitios web. Los sitios Web son una conjunción muy compleja de distintos sistemas integrados entre sí Bases de datos, servidores, redes, componentes de backup y seguridad. El resultado final será un sitio que pueda resolver las necesidades de negocios: Vender productos y servicios online y servir mejor a las necesidades de los clientes. En el diseño de sitios Web, igual que en el diseño de edificios, se requiere un firme conocimiento de las tecnologías aplicadas. En el diseño de edificios estos conocimientos son sobre las propiedades estructurales de los materiales, electricidad, mecánica, plomería, entre otros. En el desarrollo Web se requieren de conocimientos de lenguajes programación y estructura de bases de datos, el protocolo TCP/IP, el lenguaje HTML y muchos otros. En ambos casos es necesario tener conocimientos generales y ser un voraz estudiante de las tecnologías, dado que estas están en continuo desarrollo y avanzan día a día. Sin embargo, hay algo que se mantiene constante, la gente debe poder usarlo, sino se irán de nuestra Web y será un fracaso, desperdiciándose una gran cantidad de dinero. El rol de arquitecto Web es asegurarse de que esto no ocurra.

Para el desarrollo del software se utilizará la arquitectura cliente-servidor que es la más usada para este tipo de aplicaciones y las más difundida entre los desarrolladores para los sistemas Web.

(23)

13

Arquitectura del sistema propuesto (Cliente Servidor):

Figura 1 Arquitectura cliente- servidor

La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información, en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor, al proceso que responde a las solicitudes. Es el modelo de interacción más común entre aplicaciones en una red. No forma parte de los conceptos de la Internet como los protocolos IP, TCP o UDP, sin embargo todos los servicios estándares de alto nivel propuestos en Internet funcionan según este modelo.

Los principales componentes del esquema cliente/servidor son entonces los Clientes, los Servidores y la infraestructura de comunicaciones.

En este modelo, las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario. [7]

1.4 Estudio de los lenguajes de programación para la realización de la aplicación

Un lenguaje de programación es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas

(24)

14

sintácticas y semánticas que definen un programa informático. A continuación se comparan varios lenguajes de programación que se utilizan para la construcción de sitios Web.

1.4.1 Del lado del cliente

Se puede decir que existen tres utilizaciones básicas de los lenguajes de marcas, los que sirven principalmente para describir su contenido, los que sirven más que nada para definir su formato y los que realizan las dos funciones indistintamente. Las aplicaciones de bases de datos son buenas referencias del primer sistema, los programas de tratamiento de textos son ejemplos típicos del segundo tipo, y el HTML es la muestra más conocida del tercer modelo. [8]

Hypertext Markup Language (HTML)

HTML, no es un lenguaje de programación, es un lenguaje de especificación de contenidos para un tipo específico de documentos. Es decir, mediante HTML podemos especificar, usando un conjunto de etiquetas o tags, cómo va a representarse la información en un navegador o browser. Se centra en la representación de la información en la pantalla.

El HTML es un lenguaje de marcas. Los lenguajes de marcas no son equivalentes a los lenguajes de programación aunque se definan igualmente como "lenguajes". Son sistemas complejos de descripción de información, normalmente documentos, que se pueden controlar desde cualquier editor ASCII. Las marcas más utilizadas suelen describirse por textos descriptivos encerrados entre paréntesis angulares (<) y (>), siendo lo más usual que exista una marca de principio y otra de final.

Java Script

JavaScript es un lenguaje de scripts desarrollado por Netscape para incrementar las funcionalidades del lenguaje HTML. Se utiliza embebido en el código HTML, entre las tags <script> y </script>. Sus características más importantes son:

Es un lenguaje interpretado, es decir, no requiere compilación. El navegador del usuario se encarga de interpretar las sentencias JavaScript contenidas en una página HTML y ejecutarlas adecuadamente.

(25)

15

Es un lenguaje orientado a eventos. Cuando un usuario pincha sobre un enlace o mueve el puntero sobre una imagen se produce un evento. Mediante JavaScript se pueden desarrollar Scripts que ejecuten acciones en respuesta a estos eventos.

JavaScript es un lenguaje orientado a objetos. El modelo de objetos de JavaScript está reducido y simplificado, pero incluye los elementos necesarios para que los Scripts puedan acceder a la información de una página y puedan actuar sobre la interfaz del navegador. [9]

XHTML

Acrónimo inglés de eXtensible Hyper Text Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas Web. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una Web semántica, donde la información, y la forma de presentarla estén claramente separadas. En este sentido, XHTML serviría únicamente para transmitir la información que contiene un documento, dejando para hojas de estilo (como las hojas de estilo en cascada) y JavaScript su aspecto y diseño en distintos medios (ordenadores, teléfonos móviles e impresoras). [10]

Ventajas:

Compatibilidad parcial con navegadores antiguos, la información se visualiza, aunque sin formato. Apuntar que el XHTML 1.0 fue diseñado expresamente para ser mostrado en navegadores que soportan HTML de base.

Un mismo documento puede adoptar diseños radicalmente distintos en diferentes medios, pudiendo incluso escogerse entre varios diseños para un mismo medio.

Facilidad de edición directa del código y de mantenimiento.

Formato abierto, compatible con los nuevos estándares que actualmente está desarrollando el Consorcio World Wide Web (W3C) como recomendación para futuros agentes de usuario o navegadores.

Los documentos escritos conforme a XHTML 1.0 pueden potencialmente presentar mejor rendimiento en las actuales herramientas Web que aquellos escritos conforme a HTML. [10]

(26)

16

Inconvenientes:

Algunos navegadores antiguos no son totalmente compatibles con los estándares, lo que hace que las páginas no siempre se muestren correctamente. Esto cada vez es menos problemático, al ir cayendo en desuso los antiguos navegadores.

Muchas herramientas de diseño Web aún no producen código XHTML correcto. [10]

1.4.2 Del lado del servidor Active Server Page (ASP)

ASP, Páginas Activas en el Servidor, es una tecnología creada por Microsoft, destinada a la creación de sitios Web. No se trata de un lenguaje de programación en sí mismo (ya que las ASP se pueden programar en VBScript, JavaScript, PerlScript), sino de un marco sobre el cual construir aplicaciones basadas en Internet.

ASP añade otra alternativa en sus posibles opciones para el desarrollo de las funcionalidades del lado del servidor. ASP le permite combinar HTML y código Script en el servidor para crear páginas Web dinámicas y altamente interactivas.

El paradigma de desarrollo de ASP difiere en gran medida de la programación Script del lado del cliente, ya que en esta última, el Script se incrusta dentro de la página que es enviada al usuario, este a su vez, es ejecutado por el navegador, que por supuesto debe soportar el uso del lenguaje Script particular para poder ejecutarlo. Si el navegador no reconoce el lenguaje del Script, entonces ignorará el código. Por el contrario, con ASP, todos los Scripts son procesados en el servidor y los resultados son retornados al cliente en formato HTML estándar, reconocible por cualquier navegador. [11]

Java Server Pages (JSP)

JSP es la tecnología para generar páginas Web de forma dinámica en el servidor, basado en scripts que utilizan una variante del lenguaje Java.

La tecnología JSP, o de Java Server Pages, es una tecnología Java que permite a los programadores generar dinámicamente HTML, XML o algún otro tipo de página Web. Esta tecnología permite al código Java y a algunas acciones predefinidas ser embebidas en el contenido estático. En las páginas

(27)

17

JSP, se escribe el texto que va a ser devuelto en la salida (normalmente código HTML) incluyendo código Java dentro de él para poder modificar o generar contenido dinámicamente.

En una posterior especificación, se incluyeron taglib; esto es, la posibilidad de definir etiquetas nuevas que ejecuten código de clases Java. La asociación de las etiquetas con las clases Java se declara en archivos de configuración en XML.

La principal ventaja de JSP frente a otros lenguajes es que permite integrarse con clases Java (.class) lo que permite separar en niveles las aplicaciones Web, almacenando en clases Java las partes que consumen más recursos así como las que requieren más seguridad, y dejando la parte encargada de formatear el documento HTML en el archivo jsp.

Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a jsp le da mucha versatilidad.

Sin embargo JSP no se puede considerar un script al 100% ya que antes de ejecutarse el servidor Web compila el script y genera un servlet, por lo tanto se puede decir que aunque este proceso sea transparente para el programador no deja de ser una aplicación compilada. La ventaja de esto es algo más de rapidez y disponer del API de Java en su totalidad.

Debido a esto la tecnología JSP, así como Java está teniendo mucho peso en el desarrollo Web profesional (sobre todo en intranets). [12]

PHP

PHP es el acrónimo de Hypertext Preprocessor (Preprocesador de Hipertexto). Se trata de un lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor. Está muy orientado al desarrollo de aplicaciones Web y permite insertar contenidos dinámicos en las páginas.

(28)

18

Algunas Características:

Rapidez de ejecución.

Es un lenguaje específicamente diseñado para realizar aplicaciones Web, mientras que otros lenguajes son adaptaciones de lenguajes preexistentes, no pensados para la Web.

El software necesario para ejecutar aplicaciones es software libre. (GNU/Linux) Mantiene un bajo consumo de recursos de máquina.

Gran seguridad, muy poca probabilidad de corromper los datos.

Trabaja con una diversidad de bases de datos Rico en funciones predefinas.

Puede ser instalado en servidores Windows con emuladores: (Apache + PHP + (MySql/PostgreSQL)

Fácil aprendizaje Es un lenguaje libre

Dispone de muchísimos más recursos que ASP.

Trabaja en combinación con otras tecnologías: perl, javascript, phyton y dhmtl.

Creación o uso de binarios ejecutables por parte del propio usuario.

Crea páginas que obtiene información como si del servidor se tratase.

Permite embeber su pequeño fragmento de código dentro de la página HTML

Las tareas fundamentales que puede realizar directamente el lenguaje son definidas en el mismo lenguaje como funciones.

Presenta una filosofía totalmente diferente y, con un espíritu más generoso, es progresivamente construido por colaboradores desinteresados que implementan nuevas funciones en nuevas versiones del lenguaje.

Combina excelentemente con otras inmejorables herramientas, como son el servidor apache y la base de datos mysql (o postgres).

Dispone de librerías para la programación de entorno de escritorio, como GTK y QT.

Buena documentación.

Principales Ventajas:

Muy sencillo de aprender.

Similar en sintaxis a C y a PERL

(29)

19

Soporta en cierta medida la orientación a objeto. Clases y herencia.

El análisis léxico para recoger las variables que se pasan en la dirección lo hace PHP de forma automática. Librándose el usuario de tener que separar las variables y sus valores.

Se puede incrustar código PHP con etiquetas HTML.

Excelente soporte de acceso a base de datos.

La comprobación de que los parámetros son válidos se hace en el servidor y no en el cliente (como se hace con Javascript) de forma que se puede evitar que chequear que no se reciban solicitudes adulteradas. Además PHP viene equipado con un conjunto de funciones de seguridad que previenen la inserción de órdenes dentro de una solicitud de datos.

Se puede hacer de todo lo que se pueda transmitir por vía HTTP.

Algunas desventajas:

Promueve creación de código desordenado y con un mantenimiento complejo.

Es muy difícil de optimizar.

Diseñado especialmente para realizar aplicaciones Web. [13]

1.5 Sistemas de gestión de base de datos estudiados (SGBD) Base de Datos

Una Base de Datos (BD) es un conjunto de datos interrelacionados, almacenados con carácter más o menos permanente en la computadora, puede ser considerada una colección de datos variables en el tiempo.

Un Sistema de Gestión de Base de Datos (SGBD) es el software que permite la utilización y/o la actualización de los datos almacenados en una (o varias) base(s) de datos por uno o varios usuarios desde diferentes puntos de vista y a la vez.

El objetivo fundamental de un SGBD consiste en suministrar al usuario las herramientas que le permitan manipular, en términos abstractos, los datos, o sea, de forma que no le sea necesario conocer el modo de almacenamiento de los datos en la computadora, ni el método de acceso empleado.

(30)

20

Un SGBD tiene los siguientes objetivos específicos:

Independencia de los datos y los programas de aplicación Minimización de la redundancia

Integración y sincronización de las bases de datos Integridad de los datos

Seguridad y protección de los datos Facilidad de manipulación de la información Control centralizado

La información es representada a través de tuplas, las cuales describen al fenómeno, proceso o ente de la realidad objetiva que se está analizando y se representan a través de tablas. [14]

SQL (Structure Query Language)

Es mucho mejor manejar datos desde bases de datos, que escribir y leer datos para/desde archivos de texto. SQL es un lenguaje de consulta estructurado.

Algunas de las características del SQL son:

Es una forma estándar de consulta de datos específicos

Es una forma de extraer y manipular datos de una base de datos

Usado para todas las funciones de bases de datos, incluyendo administración Creación de esquemas y datos recuperables

Puede ser usado de forma implícita dentro de una aplicación

Existen SGBD que utilizan el SQL para realizar el tratamiento de los datos almacenado como son MySQL y SQL Server. [15]

Oracle

Oracle es un sistema de administración de base de datos (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation. Es considerado como uno de los sistemas de bases de datos más completos, destacando su, soporte de transacciones, su estabilidad, escalabilidad y es multiplataforma. Su mayor defecto es su enorme precio, que es de

(31)

21

varios miles de euros (según versiones y licencias), otro aspecto que ha sido criticado por algunos especialistas es la seguridad de la plataforma, y las políticas de suministro de parches de seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de exposición de los usuarios. En los parches de actualización provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilidades públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años.

Aunque su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux. [16]

PostgreSQL

El PostgreSQL es un servidor de base de datos objeto relacional libre. Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo, dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Entre sus características fundamentales se encuentran la alta concurrencia que permite, mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés), PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. [17]

MySQL

MySQL es un sistema de administración de Base de Datos. Opera en una arquitectura cliente/servidor.

Es un proyecto ―open sourse‖. Permite la fácil conectividad, alta velocidad de respuesta a solicitudes, y gran seguridad, por ello se utiliza para acceder a Bases de Datos desde Internet.

MySQL es muy rápido, confiable y fácil de usar, es multiplataforma, multiusuario y permite elaborar consultas con el robusto SQL, además no tiene valor monetario, es un software que se puede adquirir libremente, la licencia es completamente libre.

(32)

22

El lenguaje PHP es altamente compatible con MySQL, por el amplio conjunto de comandos definidos para el tratamiento de este. [18]

1.6 Servidores Web Apache

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

Apache tiene amplia aceptación en la red: en 2005, Apache fue el servidor HTTP más usado, siendo el servidor empleado en el 48% de los sitios web en el mundo. Sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años.

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.

Ventajas

El servidor HTTP Apache es un software (libre).

Es muy usado en la facultad 8 y en toda la universidad.

Amplia disposición de Documentos e información en general para el trabajo con este software en la universidad.

(33)

23

Modular.

Open source.

Multi-plataforma.

Extensible.

Popular (fácil conseguir ayuda/soporte en Internet y otros sitios).

Presenta entre otras características mensajes de error altamente configurables.

Apache tiene amplia aceptación en la red.

El CMS que será usado en el desarrollo de la aplicación en cuestión propone como uno de los servidores Web al Apache y entre lo propuestos este es el mejor candidato.

Internet Information Services (IIS)

Internet Information Services (IIS) son una serie de servicios para los ordenadores que funcionan con Windows. 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 (servidor Web).

El servidor Web se basa en varios módulos que le dan capacidad para procesar distintos tipos de páginas, por ejemplo Microsoft incluye los de Active Server Pages (ASP) y ASP.NET. También pueden ser incluidos los de otros fabricantes, como PHP o Perl.

Características

Simple, por que esto maneja sólo el mínimo necesario para poner en práctica el protocolo HTTP, algunas veces un poco más que el mínimo.

Pequeño, por que esto también tiene un pequeño tamaño de período de explotación, ya que esto no se divide en dos partes y es muy cuidadoso sobre la asignación de memoria.

Portátil, por que esto se compila limpiamente sobre la mayoría de sistemas operativos, expresamente incluyendo FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF.

(34)

24

Rápido, por que en el empleo típico es sobre todo más rápido que los mejores servidores

―destacados‖ (APACHE), y bajo la carga extrema es mucho más rápido.

Seguro, por que este se extiende a grandes longitudes para proteger el servidor WEB contra ataques otros sitios.

Ventajas

El administrador puede decidir restringir la transferencia de archivos de imagen JPEG a en la mayor parte de 20 kilobytes por segundo. Esto impide a la conexión hacerse saturado de modo que el servidor todavía sea sensible bajo la carga pesada, con la compensación que reducen (obligan) la velocidad de transferencia de archivo.

Los promedios de carga se caen debido a la reducción de la transferencia grafica gracias a THTTPD.

Desventajas

No posee las mismas aplicaciones que se pueden obtener de un software estándar como lo es el Apache.

1.7 Diseño de interfaz con CMS Los CMS

Los sistemas de gestión de contenidos (Content Management Systems o CMS) son software que se utilizan principalmente para facilitar la gestión de Webs, ya sea en Internet o en una intranet, y por eso también son conocidos como gestores de contenido Web (Web Content Management o WCM). Hay que tener en cuenta, sin embargo, que la aplicación de los CMS no se limita sólo a las Webs.

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

Drupal

Drupal es un sistema de gestión de contenidos que sirve para administrar recursos Web. Es un sistema multiusuario, multiplataforma, multilenguaje, extensible y modular. Introduce el concepto de nodo como sinónimo de tipos de contenido, cualquier recurso que se ingrese al sistema pasa a ser un nodo, que puede ser variable e incluir artículos, historias, posts, encuestas, imágenes, libros

(35)

25

colaborativos, reseñas, recetas, etcétera. Este nuevo concepto nos permite estandarizar la información asignándoles las mismas características a distintos tipos de objetos y la posibilidad de tener toda la información centralizada y a la vez catalogada.

La clasificación de los nodos es un tanto arbitraria y está al servicio de los usuarios/administradores de contenidos que pueden construir los que necesite. [20]

Joomla

Joomla es un sistema de gestor de contenidos dinámicos (CMS o Content Management System) que permite crear sitios web de alta interactividad, profesionalidad y eficiencia. Está programado en PHP y con base de datos MySQL.

Con Joomla podemos crear sitios Web de noticias, sitios corporativos, sitios Web de presencia, portales comunitarios, e incluso también puede crearse con Joomla sistemas que funcionen en redes cerradas (Intranets) para gestionar información interna (comunicaciones, usuarios) de compañías o empresas de negocios. Con esto último se puede advertir que el ámbito de aplicación de Joomla no es exclusivo de Internet.

Características de Joomla:

Software Open Source. Software Libre (Licencias GNU/GPL), ampliable al disponer el código fuente.

Creación de perfiles y privilegios con niveles jerárquicos para diferentes niveles de usuarios (super administrador, administrador, mánager, publisher y usuario registrado).

Plantillas (templates) para modificar el diseño gráfico de la Web de forma automática en pocos minutos.

Fácil inserción de imágenes y galerías de fotos.

Creación y administración rápida de una comunidad on-line. [21]

PHP-Fusion

Es un sistema de gestión de contenidos (CMS) de código abierto (Open Source), escrito en PHP y que utiliza una base de datos MySQL para almacenar los contenidos.

(36)

26

PHP-Fusion se encuentra en constante desarrollo e incluye las características más habituales de muchos otros CMS, proporcionando una fácil instalación y un potente sistema de administración, por lo que resulta muy sencillo crear y mantener un sitio Web interactivo y dinámico sin necesidad de conocimientos de programación.

También dispone de numerosos complementos (Infusions) y diseños o temas (Themes), por lo que su aspecto y funcionalidad pueden ser modificados y ampliados muy fácilmente y de una forma totalmente intuitiva. [22]

1.8 Metodologías estudiadas para el desarrollo e ingeniería de software Extreme Programming (XP)

Extreme Programming o Programación Extrema, es una de las metodologías llamadas ―ágiles‖, para el desarrollo de proyectos de software. Se basa en los principios de la simplicidad, la comunicación, la retroalimentación y el coraje para implicar a todo el equipo (y a los usuarios o clientes) en la gestión del proyecto. En 1996, Kent Back y Ward Cunningham pusieron en práctica una nueva metodología primando la simplicidad y evitando los hábitos que convertían las cosas fáciles en difíciles durante el desarrollo de un proyecto en DaimlerChrysler. El resultado fue la metodología Extreme Programming o XP (que por supuesto nada tiene que ver con software de la compañía Microsoft).

En su forma más genérica, las metodologías ágiles proponen una implicación total del cliente en el proyecto, y llevan al límite el modelo de desarrollo evolutivo en espiral. Esto es, realizar un plan de proyecto basado en versiones del producto acordadas a partir de funcionalidades concretas, y realizar el desarrollo para esas funcionalidades concretas. Una vez entregada la versión del proyecto cumpliendo con los requisitos (no un prototipo, sino una versión funcionando), el proceso vuelve a iniciarse con un conjunto mayor de funcionalidades.

Los procesos y prácticas de esta metodología están basados en la experiencia de equipos de desarrollo, y en los errores cometidos o encontrados una y otra vez al utilizar metodologías más tradicionales. Sin embargo, se puede ver que algunas de sus propuestas son bastante chocantes y otras serán incompatibles con grandes organizaciones o grandes proyectos.

(37)

27

Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste 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. Es como el chofer y el copiloto: mientras uno conduce, el otro consulta el mapa.

¿Qué es lo que propone XP? Empieza en pequeño y añade funcionalidad con retroalimentación continua. El manejo del cambio se convierte en parte escencial del proceso. El costo del cambio no depende de la fase o etapa. No introducen funcionalidades antes que sean necesarias.

La proximidad de esta metodología al entorno del software libre viene dada por sus principios básicos, en especial la de la propiedad colectiva del código. XP plantea que todos los programadores pueden realizar cambios en cualquier parte del código en cualquier momento, enfatiza la comunicación de los programadores a través del código, utilizando líneas directivas para la codificación que están bien establecidas. Extreme Programming, puede dividirse en cuatro fases sobre los que se va iterando hasta que el proyecto ha finalizado (el cliente aprueba el proyecto). Estas fases son planificación, diseño, desarrollo y pruebas. [23]

Microsoft Solution Framework (MSF)

MSF es una metodología flexible e interrelacionada con una serie de conceptos, modelos y prácticas de uso, que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas.

Características:

Adaptable: es parecido a un compás, usado en cualquier parte como un mapa, del cual su uso es limitado a un específico lugar.

Escalable: puede organizar equipos tan pequeños entre 3 o 4 personas, así como también, proyectos que requieren 50 personas a más.

Flexible: es utilizada en el ambiente de desarrollo de cualquier cliente.

Tecnología Agnóstica: porque puede ser usada para desarrollar soluciones basadas sobre cualquier tecnología.

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la

Con el cometido de evaluar la credibilidad del testimonio en casos de violencia de gé- nero, a la vez que la huella psíquica con- trolando una potencial simulación, hemos

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,