• No se han encontrado resultados

Intranet de la empresa Albet S.A

N/A
N/A
Protected

Academic year: 2023

Share "Intranet de la empresa Albet S.A"

Copied!
84
0
0

Texto completo

(1)

I

Universidad de las Ciencias Informáticas Facultad 1

Título: Intranet de la empresa Albet S.A.

Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas.

Autoras:

Arnelys Yero Suárez Darianna González Pérez

Tutor: Ing. Manuel Alejandro Gil Tutor: Ing. Dasiel Alberto Pérez Suárez

Ciudad de La Habana, junio 2010 Año 52 de la Revolución

(2)

Declaración de autoría

I DECLARACIÓN DE AUTORÍA

Declaramos que somos las únicas autoras de este trabajo y autorizamos a la empresa Albet S.A. de la Universidad de las Ciencias Informáticas; así como a dicho centro para que hagan el uso que estimen pertinente con este trabajo.

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

Arnelys Yero Suárez Darianna González Pérez

______________ ______________

Firma del Autor Firma del Autor

Manuel Alejandro Gil Dasiel Alberto Pérez Suárez

______________ ______________

Firma del Tutor Firma del Tutor

(3)

II

Nada se edifica en piedra sino en arena, pero nuestro deber es edificar en la arena como si fuera piedra.

Jorge Luis Borge

(4)

Agradecimientos

III

Estos cinco años en la carrera de Ingeniería Informática y el presente trabajo de diploma como culminación de la misma, si bien ha requerido de esfuerzo y mucha dedicación por mi parte, no hubiese sido posible su realización y finalización sin la cooperación desinteresada de todas y cada una de las personas que me han ayudado y han sido un soporte muy fuerte en los momentos que he necesitado.

Primero y antes que nada, dar gracias hoy y siempre a mi familia por acompañarme en esta gran aventura, en especial a mis padres, Valentina y Guillermo y a mi hermana del alma, mi ídolo, Nani, no me imagino mi vida sin ustedes que me han convertido en mejor persona cada día, brindándome sus hombros, todo su amor y sus mejores consejos.

A mis amigos de la universidad y para toda la vida, Kire, Yalina, Daniuska, convivir con ustedes fueron mis mejores tiempos en la universidad. A Jorge Félix Portilla y Dari por ser mis hermanos y ayudarme a ponerle color a las cosas cuando las vi en blanco y negro, por entenderme o aceptarme sin entenderme, por llorar y reír (y las dos cosas al mismo tiempo) conmigo, gracias.

A las WYMCAL, aunque en algunos momentos estemos lejos físicamente siempre tengo en mi corazón un lugar para cada una.

A Chony, Dasiel y Daney por la ayuda y guía que nos brindaron.

Un agradecimiento especial a los que les sigo llamando “mi grupo¨ (1109, 1208, 1307) y del cual ninguna nueva distribución pudo separarme, no olvidaré los momentos en que compartimos fiestas o sopa de paticos.

En general quisiera agradecer a todas las personas que han hecho posible que mis cinco años en la UCI sean inolvidables, con sus altos y bajos y que no necesito nombrar porque tanto ellas como yo sabemos que desde lo más profundo de mi corazón les agradezco el haberme brindado todo el apoyo, colaboración, ánimo y sobre todo cariño y amistad.

Arne

(5)

Agradecimientos

IV

Son sin duda estas líneas las más difíciles de escribir para mí, pues han sido muchas las personas que de una forma u otra me brindaron su mano en los momentos difíciles e hicieron posible que este día llegase.

A mi mamá y a mi papá por ser lo mejores padre del mundo y por estar siempre cuando los necesito dándome el apoyo incondicional que siempre he necesitado, porque siempre están presentes en cada decisión que tomo, porque los quiero muchísimo, por ustedes es que estoy aquí y he llegado tan lejos, por depositar toda su confianza en el empeño de hacer de mí lo que soy, por su infinito amor y comprensión, gracias de todo corazón.

A mis hermanos Darián González y Oscar Manuel González por ser los mejores hermanos del mundo, que me han brindado consejos en los momentos duros por los que pasé y porque los quiero mucho.

A mi tía Zaida por su apoyo y su ayuda.

A mi prima Tahimí por todos lo momentos divertidos que hemos compartido juntas y por los que faltan, por los líos en los que me metes que a veces te matara, pero al final te adoro, te quiero y por siempre te cuidaré.

A Arnelys mi compañera de tesis, mi amiga incondicional y más que eso mi hermana, por todos los momentos por los que hemos pasamos y por los que nos faltan.

A mi novio Amed Alfonso Ríos porque me ayudó a darle sentido a mi vida cuando más lo necesité, me enseñó y me ayudó a levantarme cuando pensé que todo estaba perdido, por todos los momentos que pasamos juntos, los cuales nunca olvidaré, por darme la tranquilidad que necesitaba, el apoyo, la confianza, el amor, etc.

A Alexander y Nuvia por ayudarme siempre que lo necesitaba.

A mi familia de La Habana y a Roly y su esposa que siempre estuvieron preocupados por mí.

A Isabel que siempre estaba preocupada por mí, haciendo de las suyas para que yo estuviera bien. Jajaja.

A Marilín por sus buenos consejos constructivos cada vez que iba de pase y por preocuparse por mí cuando estaba en la universidad.

A Lorián por ayudarme en las clases, sobre todo en las de inglés, por ser un buen compañero, por los consejos y el apoyo que siempre me brindó.

A mis amigas Yalina, Kirenia, Daniuska.

A mis grupos porque a pesar de nuestras diferencias hemos hecho un montón de cosas juntos.

A Dasiel, Chony y Daney por la ayuda y guía que nos brindaron en la tesis.

A todo aquel que me brindó su ayuda.

Dari

(6)

Dedicatoria

V

Sería difícil mencionar en una sola página todas las personas en las cuales pensamos en la culminación de nuestra carrera. Con mucho amor le dedicamos el presente trabajo de diploma:

A nuestra familia la cual nos ha apoyado mucho en estos años lejos de ellos.

A nuestros amigos incondicionales y a los no tanto pero que en su momento aportaron también su poquito.

Arne y Dari

A Mami, Papi y Nani quienes me enseñaron a nadar contra la corriente y aún así mantener el curso, sin ustedes no hubiera sido posible ser la persona que soy, los amo. A Yahumara Espinosa que es parte de mi familia también.

A Israel, mi fuente de inspiración en cada momento que decaían mis ánimos de continuar, desde la primera vez que entré a la UCI pensé que cada minuto que pasaba era uno menos que quedaba para estar junto a ti.

Arne

A mi Mamá y a mi Papá quienes me han enseñado el camino de la vida, a mantenerme firme en los momentos difíciles por los que pasé y seguir adelante con la frente bien alta. Sin su ayuda no hubiese existido el esfuerzo y la voluntad de seguir adelante, los quiero. Sepan que estoy orgulloso de ser su hija.

A mis hermanos Darián Y Manuel.

A Niria, mi abuela y más que eso mi fuente de inspiración en cada momento de mi vida. Siempre has estado y estarás en mi corazón, en tus recuerdos he encontrado una guía para iluminar mi camino y seguir adelante.

A Amed alguien que en poco tiempo se ha ganado mi corazón, que tal vez después que me gradúe no lo vuelva a ver más, pero siempre estará en mí, nunca lo podré olvidar. “Cada minuto que pase será uno más para pensar en ti”.

A la UCI por permitirme conocer personas tan maravillosas y por haber vivido los mejores momentos de mi vida.

A mi primo Víctor por admirarme tanto y tener confianza en que si podía, mi primo no te defraudé.

En general quisiera dedicarles mi tesis a todas las personas que me han apoyado en todo momento y han estado al tanto de mí. Para mis vecinos, mis amistades, para Maikel, para Dieguito, gracias por todo.

Dari

(7)

Resumen

VI RESUMEN

En los últimos tiempos el desarrollo y la utilización de los portales por parte de las empresas se han convertido en la mejor opción para solucionar los problemas de organización, facilidad y disponibilidad de la información externa de estas empresas. La empresa comercializadora Albet Ingeniería y Sistemas, es una empresa cubana, cuyo origen y desarrollo se vincula estrechamente a la Universidad de Ciencias Informáticas (UCI), la cual ofrece y comercializa soluciones integrales, productos y servicios vinculados al sector de las tecnologías de la información y las comunicaciones. En la empresa la información se encuentra dispersa dificultando en ocasiones la optimización de las actividades a realizar, provocando el atraso de la divulgación de las actividades del mes, los eventos a desarrollar, las convocatorias y las reuniones. Esto lleva a cabo un excesivo uso del correo electrónico, que la información no llegue a tiempo por rotura en los servidores o por poca capacidad de almacenamiento de información, se desechan materiales (hojas) a la hora de realizar por ejemplo encuestas u otra actividad que puede ser realizada mediante tecnologías de avances y que sin embargo se le puede dar un mejor uso a estos materiales.

Por lo que se hace necesaria la creación de un espacio común que mejore el flujo de los procesos existentes. La solución propuesta consiste en la realización de un portal mediante el cual puedan interactuar los trabajadores de forma sincronizada, permitiéndoles un mayor flujo de información, un correcto uso de las tecnologías y materiales de trabajo, que la información llegue en tiempo para que las actividades a desarrollan se desarrollen en el tiempo establecido y con la calidad requerida, además se está más actualizado sobre el acontecer, facilitando de esta forma que la toma de decisiones sea menos irreversible al no existir retrasos en las actividades previstas. Como resultado principal de esta investigación se obtiene una primera versión de la intranet de la empresa Albet S.A., que permite la gestión automatizada de toda la información reflejada en el dominio del problema a través de roles, además de permitir acceso a otros sistemas ya implantados en la empresa.

(8)

Índice de contenido

VIII ÍNDICE DE CONTENIDO

Introducción... 1

Capítulo 1 : Fundamentación Teórica... 6

1.1 Introducción. ... 6

1.2 Aplicación Web. ... 6

1.2.1 Portales Web. ... 6

1.3 Intranet. ... 7

1.4 Los Sistemas de Gestión de Contenido (CMS). ... 8

1.4.1 Estudio de los CMS. ... 10

1.4.2 Selección del CMS a utilizar. ... 12

1.5 Lenguajes de programación. Lenguajes de cliente o lenguajes de servidor. ... 13

1.5.1 Lenguajes del lado cliente. HTML, CCS y JavaScript. ... 13

1.5.2 Lenguajes del lado del servidor. PHP. ... 15

1.6 Servidor de aplicaciones Web. Apache. ... 15

1.7 Estudio de metodologías de desarrollo. ... 16

1.7.1 Selección de la metodología a utilizar. ... 18

1.8 Gestores de Base de datos. ... 19

1.8.1 Estudio de algunos gestores de base de datos. ... 19

1.8.2 Selección del gestor de base de datos a utilizar. ... 20

1.9 Herramientas. ... 21

1.9.1 Herramientas CASE... 21

1.9.1.1 Selección de la herramienta CASE a utilizar. ... 22

1.9.2 IDE de desarrollo. ... 23

1.9.3 EMS MySQL Manager. ... 23

1.10 Estado del arte. ... 24

1.11 Conclusiones parciales. ... 26

Capítulo 2 : Características del Sistema. ... 28

2.1 Introducción. ... 28

2.2 Problema. ... 28

2.3 Objeto a automatizar. ... 28

2.4 Información que se maneja. ... 29

(9)

Índice de contenido

VIII

2.5 Propuesta de sistema. ... 29

2.6 Modelo de Dominio. ... 30

2.7 Especificación de los Requisitos de Software... 32

2.7.1 Requisitos Funcionales. ... 32

2.7.2 Requisitos No Funcionales ... 35

2.8 Definición de los Casos de Uso del Sistema. ... 37

2.8.1 Actores del Sistema. ... 37

2.8.2 Diagrama de Caso de Uso del Sistema. ... 38

2.8.3 Descripción de los Casos de Uso del Sistema. ... 41

Flujos alternos ... 42

2.9 Conclusiones parciales. ... 43

Capítulo 3 : Diseño del Sistema. ... 44

3.1 Introducción. ... 44

3.2 Módulos utilizados en la construcción del sitio. ... 44

3.3 Modelo de diseño... 46

3.3.1 Clases del diseño. ... 48

3.4 Diseño de la Base Datos. ... 48

3.4.1 Diagrama de clases persistentes. ... 49

3.4.2 Modelo de datos. ... 50

3.4.2.1 Descripción de las tablas... 51

3.5 Arquitectura y Patrones de diseño. ... 56

3.6 Conclusiones parciales. ... 58

Capítulo 4 : Implementación y Pruebas... 59

4.1 Introducción. ... 59

4.2 Modelo de despliegue... 59

4.3 Modelo de componentes. ... 60

4.4 Pruebas. ... 61

4.4.1 Prueba de caja negra... 61

4.4.2 Casos de prueba. ... 62

4.4.3 Diseño del caso de prueba. ... 62

4.5 Conclusiones parciales. ... 64

(10)

Índice de contenido

IX

Conclusiones generales. ... 65

Recomendaciones. ... 66

Referencias bibliográficas. ... 67

Bibliografía. ... 68

Glosario de términos. ... 72 ANEXO I. Descripción de los casos de uso del Sistema. ... ¡Error! Marcador no definido.

ANEXO II. Diagramas de diseño. ... ¡Error! Marcador no definido.

ANEXO III. Casos de Prueba. ... ¡Error! Marcador no definido.

ANEXO IV. Fotos de la Interfaz de usuario. ... ¡Error! Marcador no definido.

(11)

Índice de tablas

X ÍNDICE DE TABLAS

Tabla 2.1: Descripción de los actores del sistema. ... 38

Tabla 3.1: Descripción de la tabla: Node ... 51

Tabla 3.2: Descripción de la tabla: node_revisions ... 52

Tabla 3.3: Descripción de la tabla: users_roles ... 52

Tabla 3.4: Descripción de la tabla: users ... 53

Tabla 3.5: Descripción de la tabla: roles ... 54

Tabla 3.6: Descripción de la tabla: term_data ... 54

Tabla 3.7: Descripción de la tabla: term_node... 54

Tabla 3.8: Descripción de la tabla: files... 55

Tabla 3.9: Descripción de la tabla: node_revisions users_roles ... 55

Tabla 3.10: Descripción de la tabla: content_type_story ... 56

Tabla 4.1: Descripción del Diagrama de Componentes ... 60

Tabla 4.2: Caso de prueba 1 - “Autenticar usuario” ... 62

Tabla 4.3: Caso de prueba 2 - “Autenticar usuario” ... 63

Tabla 4.4: Caso de prueba 3 - “Autenticar usuario” ... 63

Tabla 4.5: Caso de prueba 4 - “Autenticar usuario” ... 64

(12)

Índice de figuras

XI ÍNDICE DE FIGURA

Figura 2.1 Diagrama del Modelo Dominio. ... 31

Figura 2.2: Diagrama de Casos de Uso del Sistema por Paquetes. ... 38

Figura 2.3: Diagrama del caso de uso del Sistema “Sub-paquete Publicación”. ... 39

Figura 2.4: Diagrama del caso de uso del Sistema “Sub-paquete Administración”. ... 40

Figura 2.5: Diagrama del caso de uso del Sistema “Sub-paquete Gestión”. ... 40

Figura 3.1: Modelo de diseño del paquete Drupal. ... 47

Figura 3.2: Modelo de diseño del caso de uso Autenticar usuario. ... 48

Figura 3.3: Diagrama de clases persistentes. ... 49

Figura 3.4: Modelo de Datos. ... 50

Figura 4.1: Diagrama de Despliegue. ... 59

Figura 4.2 Diagrama de Componentes. ... 61

(13)

Introducción

1 Introducción

Tecnología de la Información y la Comunicación (TIC)1. Cuando se unen estas tres palabras se hace referencia al conjunto de avances tecnológicos que proporciona la informática, las telecomunicaciones y las tecnologías audiovisuales, que comprende los desarrollos relacionados con los ordenadores, Internet, la telefonía, las aplicaciones multimedia y la realidad virtual. Estas tecnologías básicamente proporcionan información, herramientas para su proceso y canales de comunicación.

Las TIC, fruto del desarrollo científico, influyen a su vez en su evolución, contribuyendo al desarrollo socioeconómico y modificando el sistema de valores vigente. Sus principales aportes a las actividades humanas se concretan en una serie de funciones, que facilitan la realización de nuestra investigación, por ejemplo: el fácil acceso a todo tipo de información, los instrumentos para todo tipo de proceso de datos, los canales de comunicación inmediata, el almacenamiento de grandes cantidades de información, la automatización de tareas, la interactividad y la homogeneización de los códigos.

La expansión de las TIC en todos los ámbitos y estratos de la sociedad se han producido a gran velocidad, y es un proceso que continúa en avance, ya que van apareciendo sin cesar nuevos elementos tecnológicos. La progresiva disminución de los costos de la mayoría de los productos tecnológicos, fruto del incremento de los volúmenes de producción y de la optimización de los procesos fabriles, facilita la introducción de estas potentes tecnologías como son las intranets en todas las actividades humanas y en todos los ámbitos socioeconómicos.

Los servicios que pueden ofrecerse en una intranet son similares a los de Internet, pero con dos ventajas fundamentales: mayor seguridad, al tratarse de un entorno cerrado y de acceso restringido, y mayor velocidad, ya que no está supeditada al funcionamiento de la red Internet, además posibilitan: reducir costos, ahorrar tiempo, centralizar la información y poseen un gran valor como repositorio documental, convirtiéndose en un factor determinante para conseguir el objetivo de la oficina sin papeles.

La empresa comercializadora Albet S.A., es una empresa cubana, cuyo origen y desarrollo se vincula estrechamente a la Universidad de Ciencias Informáticas (UCI), ofrece y comercializa soluciones integrales, productos y servicios al sector de las tecnologías de la información y las comunicaciones.

Posee además los derechos comerciales de todos los productos y servicios que desarrolla la UCI y

1TIC: tecnologías que favorecen la comunicación y el intercambio de información en el mundo actual. Tiene su origen precisamente en la revolución que ha protagonizado la humanidad con la introducción en red de la información. Es la Evolución de la Comunicación Humana desde la perspectiva tecnológica.

(14)

Introducción

2 mediante la alianza con otras prestigiosas entidades ofrece soluciones integrales en esta esfera.

Con el aumento de la cantidad de productos y servicios ofrecidos, se hace difícil la gestión eficiente de la información asociada a este proceso, que involucra entidades nacionales, clientes internacionales, personas y recursos materiales.

El elevado flujo de información que se genera en la Empresa unido a la heterogeneidad de sus trabajadores y clientes han provocado que la información se encuentre dispersa y la gestión de información de la empresa Albet S.A. no tenga un desempeño efectivo.

Por las dificultades anteriormente descritas, surge la necesidad de desarrollar una intranet que funcione según las características actuales de Albet S.A., dando paso a la siguiente situación problémica.

En la empresa se desarrollan un conjunto de actividades que necesitan ser gestionadas. Algunos trabajadores tienen tareas pendientes con otros compañeros y no siempre existe una sincronización entre ellos en cuanto a hora o modo de realización, ya que existe un desconocimiento de informaciones clave, lo que implica el incumplimiento de los plazos. Los superiores usan el correo electrónico para las notificaciones masivas, o hacer extensivas diversos reportes o acuerdos realizados en reuniones anteriores y darle cumplimiento, lo que trae consigo una excesiva utilización del correo y que controlar las áreas asignadas sea más difícil. También es común el uso de otros sistemas, de los cuales no todos los trabajadores conocen las direcciones específicas de los mismos, por lo que se hace más difícil su localización y atrasa el trabajo. Adicionalmente, no existe un medio interno para dar informaciones de interés para la empresa, lo que provoca que no llegue la misma a algún trabajador, debido a que quien la genera, no conoce todas las direcciones de correo.

El problema científico que se plantea es ¿Cómo gestionar la información generada por los procesos de la empresa Albet S.A.?

Atendiendo a las necesidades de la empresa, el objeto de estudio son las tecnologías Web para el proceso de gestión de la información en la empresa Albet S.A., centrando el campo de acción en los Sistemas de Gestión del Contenido (CMS) para dicha empresa.

El objetivo general es desarrollar un portal interno para la empresa Albet S.A. que ayude a la centralización de información y facilite la toma de decisiones. Teniendo como objetivos específicos:

1 Confeccionar un marco teórico-conceptual de la investigación a partir de una búsqueda y revisión bibliográfica.

2 Realizar el diseño de la primera versión de la intranet de la empresa Albet S.A.

(15)

Introducción

3 3 Elaborar el diseño de arquitectura de información del portal.

4 Implementar una primera versión del portal, que sea validada por el Grupo de Informatización de la empresa.

5 Realizar las pruebas de la primera versión del portal.

Para guiar esta investigación se plantea la hipótesis: Con el desarrollo del portal de la empresa Albet S.A. se centralizará la información y se facilitará la toma de decisiones.

Partiendo de la hipótesis se definieron las siguientes variables:

Independiente: Desarrollo del portal de la empresa Albet S.A.

Dependientes:

1 Centralizar la información 2 Facilitar la toma de decisiones

Para ello se proponen las siguientes tareas para cumplir con los objetivos:

1 Realización de una previa caracterización sobre el funcionamiento, información y necesidades que tiene la empresa Albet S.A.

2 Realización de un estudio del estado del arte de tecnologías Web, que permitirá un portal con las características propias de los requerimientos del cliente.

3 Selección de la tecnología adecuada para el portal, de forma que se cubran los requerimientos.

4 Confección de la arquitectura de información del sitio.

5 Implementación de la primera versión del sitio.

6 Integración de los sistemas que Albet S.A. considere necesarios al portal.

7 Comprobación de la validez de lo implementado.

Posible resultado:

Portal interno de la empresa, que ayude a la toma de decisiones de sus directivos, centrando la información dispersa en distintos sistemas que hoy se utilizan.

Los métodos científicos utilizados para el desarrollo de la investigación son:

Métodos teóricos:

1 Método inductivo-deductivo.

El método inductivo-deductivo permitió llegar a un grupo de conclusiones particulares sobre lo que se quiere lograr, a partir de un conocimiento general del funcionamiento de la

(16)

Introducción

4 empresa.

2 Método histórico-lógico.

El método histórico-lógico permitió realizar el estudio de sistemas similares al que se quiere implementar, así como los procesos de gestión de información de las actividades de la empresa de Albet S.A.

Métodos empíricos:

1 La entrevista.

El método de la entrevista permitió conocer especificidades sobre las necesidades de los trabajadores de Albet S.A.

2 La observación.

El método de la observación con carácter cualitativo permitió conocer cuáles son las mayores dificultades en la empresa que se pueden resolver con nuestro sistema.

El presente documento se estructura en cuatro capítulos:

Capítulo 1 “Fundamentación Teórica”: abarca la fundamentación teórica del tema que se trata, se realiza un estudio detallado del estado del arte en el ámbito nacional y en nuestra universidad. Se abordan las tendencias, tecnologías, herramientas, metodologías y programas actuales, además de la fundamentación del uso de la metodología y tecnología escogida para la realización de esta investigación.

Capítulo 2 “Características del sistema”: contiene las características que tendrá el sistema. Se realiza un estudio desde el punto de vista de la ingeniería de software, abarcando el objeto de estudio, el flujo de trabajo de negocio, viendo los objetivos estratégicos de la institución y analizando el flujo actual de los procesos involucrados en el campo de acción, para arribar a la conclusión de cuál es el motivo de desarrollo de esta investigación, viendo cómo se desarrolla el proceso en estos momentos, las consecuencias que esto provoca en la empresa.

Capítulo 3 “Diseño del sistema”: Contiene el modelo de diseño del sistema, mostrando los diagramas de los casos de uso, así como el diseño general de los paquetes del sistema de gestión de contenido usado , se presenta además la estructura de la base de datos del sistema mediante el modelo de datos y se describen las tablas de la misma.

(17)

Introducción

5 Capítulo 4: “Implementación y Pruebas”: Se realiza la implementación de la intranet, y se exponen los modelos de despliegue y componente, se valida la solución propuesta, la evaluación de su ejecución y los resultados obtenidos.

Aportes prácticos

Con la puesta en práctica del portal en la empresa Albet S.A. se ha experimentado un cambio en cuanto a la organización y cumplimiento en tiempo de las tareas, se conoce el contenido de trabajo por día, la gestión de la información fluye de una manera más coherente, ya no hay un excesivo uso del correo anteriormente utilizado para divulgar las actividades y eventos a desarrollar. Se encuentran más organizados y estructurados los medios con los cuales se trabaja en la empresa, ya sean plan de actividades del mes, sistemas y sitios de uso constante, contenidos importantes sobre las organizaciones que dirigen el país, como el Partido Comunista de Cuba (PCC), la Unión de Jóvenes Comunista (UJC) o la Central de Trabajadores de Cuba (CTC), así como una amplia gama de noticias de todo tipo de interés que fomenten el desarrollo científico-cultural de los trabajadores.

Con la construcción de dicho portal, se contribuye a la comunidad de Drupal2 con algunas funcionalidades al implementar dos módulos, el módulo CustomLayout3, mediante el cual se puede estructurar el contenido de manera diferente a la predefinida por el Sistemas de Gestión del Contenido (CMS) (y que no permite configurar) y el módulo Exportar_CSV4, el cual permite la exportación de los usuarios registrados en la intranet en formato Valor Separado por Coma (CSV) para su posterior uso por el grupo de Informatización de la empresa.

En la actualidad, el sitio está puesto en práctica en la empresa para ver la aceptación del mismo y los futuros cambios que este pudiera tener para un mejor funcionamiento y beneplácito de los trabajadores de la empresa.

2 Drupla: es un sistema de gestión de contenido modular multipropósito y muy configurable que permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones y administración de usuarios y permisos.

3Exportar_CSV: módulo creado para la exportación de los usuarios de la intranet, dicha exportación será en la extensión Valor Separado por Coma (CSV).

4Custom_Layout: módulo creado para definir capas adicionales para la composición del sitio y el módulo Panel.

(18)

Capítulo 1 Fundamentación teórica

6 Capítulo 1 : Fundamentación Teórica.

1.1 Introducción.

En este capítulo se definen los conceptos básicos asociados al dominio del problema y que se hacen necesarios para entender el desarrollo de la investigación.

Se realiza además un estudio crítico de las tecnologías, metodologías y herramientas usadas en la actualidad para desarrollar portales Web, así como una valoración de las que son más factibles para dar solución al problema en cuestión. También se abordan el concepto y características de Sistemas de Gestión del Contenido (CMS), específicamente del CMS Drupal y son mencionados y explicados los lenguajes de programación y herramientas que se utilizan.

1.2 Aplicación Web.

Se denomina aplicación Web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor Web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación que se codifica en un lenguaje soportado por los navegadores Web en la que se confía la ejecución al navegador.

1.2.1 Portales Web.

Un portal es un sitio Web que sirve de punto de partida para navegar por Internet. A diferencia de una página Web, que es simplemente un documento hipertexto con cierta información, los portales ofrecen diversidad de servicios como por ejemplo: listado de sitios Web, noticias, motores de búsqueda, grupos de discusión. Deben tener dos aspectos muy importantes, estos son: servicios y contenidos.

Servicios:

Correo electrónico.

Espacio para páginas Web.

Tertulia.

Comunidades virtuales.

Motor de búsqueda.

Contenidos:

Información completa sobre el tema tratado en el portal Web.

Noticias de todo tipo.

Novedades.

(19)

Capítulo 1 Fundamentación teórica

7 Pueden existir diferentes tipos de portales en función de sus usuarios, los portales Horizontales y los Verticales.

Portal Horizontal.

Su objetivo son los usuarios en general. Suelen ofrecer motores de búsqueda, noticias, servicio de correo electrónico y otras posibilidades de comunicación. Ganan dinero mediante los anuncios.

Portal Vertical.

Son portales especializados en determinados temas, que buscan públicos objetivos muy determinados.

Se pueden a su vez clasificar en función de su objetivo:

Portal intranet: comunicación corporativa para las personas de la organización o empresa.

Portal extranet: comunicación corporativa para las personas de la organización o empresa y además para algunas otras personas que sean de confianza en dicha organización.

Portal vertical: comunicación corporativa con clientes.

La diferencia entre los portales Horizontales y Verticales, es que los primeros ofrecen sus servicios para los usuarios en general, mientras que los segundos enfocan sus servicios para alguna institución determinada mediante la implementación de intranets, extranets o portales verticales.

El tipo de portal a desarrollar es un portal Vertical, buscando implementar una intranet que sea capaz de ofrecer una comunicación con sus empleados. Estará enfocada a que sea accesible y adaptable a las necesidades y realidad de la empresa Albet S.A.

1.3 Intranet.

Las intranets son redes privadas que se han creado utilizando las normas y protocolos de Internet.

Aportan la interfaz de exploración del World Wide Web (WWW) (cuya traducción al español es Red de Amplitud Mundial) a la información y servicios almacenados en una red de área local corporativa.

La intranet está basada en los estándares y protocolos abiertos desarrollados en Internet. Estos estándares soportan aplicaciones y servicios como correo electrónico, trabajo en grupo, servicios de directorio, seguridad, acceso a bases de datos, compartición de información y administración de sistema.

(1)

Las intranets esencialmente funcionan de la misma manera que Internet, la diferencia está en la localización de la información y quién accede a ella ya que Internet es global, abierto a cualquiera que tenga una conexión. Las intranets están restringidas a aquellas personas que están conectadas a la red privada de la empresa u organización.

(20)

Capítulo 1 Fundamentación teórica

8 Las redes internas corporativas, son potentes herramientas que permiten divulgar con efectividad información de la empresa u organización a sus empleados o involucrados, consiguiendo que estos estén permanentemente informados con las últimas novedades y/o datos. También es habitual su uso en universidades y otros centros de formación, ya que facilita la consulta de diferentes tipos de información y el seguimiento de la materia del curso.

Otra característica es la consistencia, porque la información es la misma a lo largo y ancho de la empresa o universidad.

Tienen gran valor como repositorio documental, convirtiéndose en un factor determinante para conseguir el objetivo de la oficina sin papeles. Al permitir la posibilidad de acceder a tiempo a información critica, esta tecnología mejora el proceso de toma de decisiones. Es posible organizar y mantener información centralizada o distribuida, según se requiera o se facilite para la obtención y actualización.

Al proveer información instantánea y segura en formato electrónico, se elimina el tiempo y costo asociado a la publicación, duplicación y distribución asociados a la documentación en papel.

Añadiéndoles funcionalidades como un buen buscador y una organización adecuada, se puede conseguir una consulta rápida y eficaz de un volumen importante de información.

Las intranets también permiten compartir información y conocimientos independientemente de la ubicación. Los grupos multidisciplinarios pueden aprovechar grandemente los foros de discusión virtuales y boletines informativos para preparar reuniones o mejorar la toma de decisiones.

1.4 Los Sistemas de Gestión de Contenido (CMS).

Un CMS es una herramienta que permite a los usuarios modificar, administrar, manejar y publicar de forma rápida y segura el contenido de una página Web. El objetivo de los CMS es doble, por una parte la generación de la información y por otra la administración y difusión. Controla una o varias bases de datos donde se aloja el contenido del sitio. El sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el primero y darle en cualquier momento un diseño distinto del sitio, sin tener que darle formato al contenido nuevamente.

Un sistema de administración de contenido siempre funciona en el servidor Web en el que esté alojado el portal. El acceso al gestor se realiza generalmente a través del navegador Web, y se puede requerir el uso del Protocolo de Transferencia de Ficheros (FTP) para subir contenido. Cuando un usuario accede a un Localizador de Recurso Uniforme (URL), se ejecuta en el servidor esa llamada, se selecciona el esquema gráfico y se introducen los datos que correspondan de la base de datos. La página se genera

(21)

Capítulo 1 Fundamentación teórica

9 dinámicamente para ese usuario, el código de Lenguaje de Marcado de Hipertexto (HTML) final, se genera en esa llamada. Normalmente, se predefine en el gestor varios formatos de presentación de contenido, para darle la flexibilidad a la hora de crear nuevos apartados e informaciones.

Ventajas de los CMS.

Publicar contenidos: puede administrar contenidos principales, novedades, artículos títulos, textos e imágenes, se editan desde un sencillo editor HTML, que le permitirá formatear los textos con los estilos deseados en forma similar de como lo haría en un editor de texto como Microsoft Word.

Administrar módulos y componentes: tiene la posibilidad de instalar, desinstalar y administrar componentes y módulos, por ejemplo galerías de fotos, sistemas de votaciones, publicación de noticias por parte de los usuarios.

Administrar usuarios: desde la interfaz administrativa también se controla completamente a los usuarios del sitio, pudiendo especificar niveles jerárquicos, editar perfiles, censurar, dar permisos de publicación. Los niveles de usuarios son: súper administrador, administrador, editor y usuario registrado. Podrá también enviar correos electrónicos masivos a todos los usuarios, entre otras cosas.

Cambiar el diseño del sitio: es muy fácil cambiar "en cuestión de minutos" todo el diseño del sitio, gracias al sistema de plantillas que utiliza, las cuales se instalan y luego se seleccionan desde la interfaz administrativa.

Tipos de CMS.

Existe gran variedad de tipos de CMS los cuales pueden agruparse según el tipo de sitio que permiten gestionar:

Foros: sitio que permite la discusión en línea donde los usuarios pueden reunirse y discutir temas en los que están interesados. Ejemplos: phpBB, es un sistema de foros gratuito, basado en un conjunto de paquetes de código programados en el popular lenguaje de programación Web Preprocesador de Hipertexto (PHP), cuya intención es la de proporcionar fácilmente y con amplia posibilidad de personalización, una herramienta para crear comunidades.

Sitios Web periódicamente actualizados (Bitácoras): publicación de noticias o artículos en orden cronológico con espacio para comentarios y discusión. Ejemplos: Wordpress, es el CMS para la creación de bitácoras por excelencia, el más utilizado y el mejor valorado, también creado en PHP y gratuito.

(22)

Capítulo 1 Fundamentación teórica

10 Wikis: sitio Web donde todos los usuarios pueden colaborar en los artículos, aportando información o reescribiéndola. También permite espacio para discusiones. Es indicado para material que irá evolucionando con el tiempo. Ejemplos: MediaWiki, es un software wiki libre, escrito originalmente para Wikipedia. Ahora es utilizado por otros proyectos wikis de la Fundación Wikimedia.

Comercio electrónico: sitios Web para comercio electrónico. Ejemplo: Vignette, es un sistema CMS comercial, fue el primero de su tipo que apareció en el mercado.

Portal: sitio Web con contenidos y funcionalidades diversas, que sirve como fuente de información o como soporte a una comunidad. Ejemplos: Drupal, uno de los CMS más populares, en este caso gratuito y de código abierto5. Creado en PHP y con posibilidad de utilizar varias bases de datos distintas, por defecto MySQL. Otro ejemplo es Joomla, es un CMS de código libre, también creado en PHP. Surge como una mejora o ampliación de Mambo. Plone es un sistema de gestión de contenidos muy potente, no necesita el uso de ningún servidor Web ya que él mismo incorpora uno e implementa un sistema de publicación de documentos impecable. También esta Postnuke, este CMS es la solución ideal para todos aquellos que desean crear una comunidad de usuarios sumamente activa, donde todos puedan participar e intercambiar sus opiniones.

Galería: permite administrar y generar automáticamente un portal o sitio Web que muestre contenido audiovisual, normalmente, imágenes. Ejemplo: Gallery es un programa para publicación de fotos en línea, tipo álbum fotográfico libre, basado en PHP y con Licencia Pública General (GPL)6.

Aprendizaje electrónico: sirve para la enseñanza de conocimientos, los usuarios son los profesores y estudiantes. La publicación de un contenido por un profesor es la puesta a disposición de los estudiantes, en un aula virtual, de ese contenido. Ejemplo: Moodle es un sistema de gestión de cursos, que ayuda a los educadores a crear comunidades de aprendizaje en línea. (2)

A continuación se hace un análisis sobre algunos CMS para escoger el más factible y conveniente para el desarrollo de la intranet de la empresa Albet S.A.

1.4.1 Estudio de los CMS.

Wordpress.

5 Código abierto: Denominación dada al software que permite ver su código fuente, modificarlo, redistribuirlo y compartirlo libremente.

6GPL (General Public License, Licencia Pública General): es una licencia creada por la fundación de software libre y su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios.

(23)

Capítulo 1 Fundamentación teórica

11 Wordpress es un sistema de gestión de contenido enfocado a la creación de sitios Web periódicamente actualizados. Es una gran opción para de una manera directa, montar un espacio Web. Es el sistema más fácil de entender e instalar y es sencillo de mantener y actualizar ya que permite configurar el sistema sin necesidad de ser un experto tecnológico. Hay muchos temas predefinidos disponibles para su descarga e instalación y adaptarlos a nuestras necesidades específicas, es un proceso relativamente directo para alguien familiarizado con HTML y Hojas de Estilo en Cascada (CSS). Subir, actualizar y editar imágenes y/o texto es también muy cómodo. Contiene múltiples módulos para ampliar la instalación.

Joomla.

Joomla es un sistema sólido, bueno para diferentes situaciones de desarrollo. Es relativamente cómodo de instalar y configurar. El sistema está dividido en tres tipos de páginas: Secciones, Categorías y Artículos. Múltiples módulos permiten implementar una amplia variedad de funcionalidades, desde carros de compra a comunidades virtuales, proporcionando una sólida base para diferentes tipos de sitios Web.

Plone.

Plone es un sistema robusto y poderoso adecuado para organizaciones con necesidades muy complejas.

Es utilizado por muchos periódicos y grandes empresas. El sistema ofrece un inmenso grado de flexibilidad y control, soporta además complicados flujos de trabajo. Las herramientas de administración están bien pensadas y es fácil para administradores no técnicos, actualizar textos e imágenes.

Drupal.

Drupal es una plataforma dinámica para la construcción de sitios Web, que permite a individuos o comunidad de usuarios publicar, manejar y organizar una variedad de contenido. Integra muchas características populares de los CMS, herramientas de colaboración y comunidades de discusión, todo en un paquete fácil de utilizar. No se hace necesario desarrollar un previo análisis debido a que Drupal puede mostrar en las páginas Web de administración de informes enlaces entrantes, posibilitándole a los usuarios el conocimiento de cómo pueden navega por el sitio. Por su diseño modular, puede ser fácilmente ampliado y adaptado a las necesidades de diversas empresas y proyectos de cualquier envergadura, ya que este producto ha sido concebido desde el comienzo, para proveer una escalabilidad inmejorable comparado con otras soluciones similares disponibles en el mercado. Drupal es una solución

(24)

Capítulo 1 Fundamentación teórica

12 de código abierto distribuida bajo la licencia GPL y es mantenido y desarrollado por una gran cantidad de usuarios y desarrolladores en todo el mundo. (3)

1.4.2 Selección del CMS a utilizar.

Después de ser analizados cada uno de los CMS anteriormente mencionados se escoge Drupal, ya que con Wordpress no se pueden configurar páginas Web complejas. Está diseñado para soportar instalaciones de dos tipos de contenidos, entradas de bitácoras y páginas Web. Hay una diferenciación básica de roles, sin ninguna forma rápida para soportar permisos de publicación o edición basados en una sección o tipo de contenido. Por tanto, no resulta el más conveniente para el desarrollo del portal que se quiere implementar en la empresa Albet. S.A.

Al estudiar Joomla se pudo llegar a la conclusión que no ofrece un modo sencillo de crear un flujo de trabajo basado en secciones o tipo de contenido. Aunque Joomla soporta estructuras más complejas que Wordpress, no es tan flexible como Drupal. Cada parte del contenido está normalmente asociado a una página lo que hace que el sistema sea más cómodo de entender, pero limita avanzadas estructuras. No es fácil crear un tipo de contenido propio (por ejemplo un directorio de trabajadores o estudiantes de un a organización, que incluya información clave acerca de estas personas), y luego mostrarlo en diferentes páginas en tu Web.

El mayor obstáculo de Plone está en la instalación y la configuración, se necesita un alojamiento específico, configurarlo y personalizarlo correctamente. Añadir temas gráficos, módulos, crear temas propios y configurar la estructura es más complejo que en Drupal. Plone está escrito en Python en lugar del familiar PHP, en el que está escrito Drupal, por lo que puede ser más difícil encontrar alguien que pueda programar nuevas funcionalidades para este sistema.

Sin embargo Drupal es flexible y poderoso. Soporta una amplia variedad de estructuras Web, se puede definir reglas muy detalladas sobre que contenido se quiere mostrar, dónde y cómo construir tu propio tipo de contenido. Es sencillo para los administradores encontrar y actualizar el contenido, debido a que el sistema de control de versiones de Drupal permite seguir y auditar totalmente las sucesivas actualizaciones del contenido, así como mantener comentarios sobre los sucesivos cambios o deshacer

Dirigirse el Glosario de Términos.

(25)

Capítulo 1 Fundamentación teórica

13 los cambios, recuperando una versión anterior. No se tiene que establecer permisos para cada usuario, en lugar de eso, se pueden asignar permisos a un 'rol' y agrupar los usuarios por roles. Para su uso en una intranet, Drupal se puede integrar con un servidor de Protocolo Ligero de Acceso a Directorios (LDAP).

Se llega a la conclusión de que Drupal es una herramienta altamente adaptable a cualquier necesidad, lo que la convierte en apta tanto para sitios Web de carácter personal, como para grandes portales corporativos, ofreciendo posibilidades de crecimiento innumerables al ser modulable y personalizable.

Además, es una herramienta con soporte multiplataforma, (puede funcionar en sistemas como Linux, Windows y Mac OS X) y licencia de utilización libre. En la universidad es el más usado por lo que existe una gran comunidad y documentación que pueden brindar apoyo durante el futuro mantenimiento de la intranet. Se tuvo en cuenta también durante la selección la decisión del cliente.

1.5 Lenguajes de programación. Lenguajes de cliente o lenguajes de servidor.

Cuando hacemos una página Web, generalmente usamos los lenguajes de cliente, es decir, que cada vez que se va a mostrar dicha página, el archivo de ella se recupera del servidor, pero el programa que se encarga de interpretarla es el cliente, en este caso el navegador Web. Ejemplo de estos lenguajes de cliente es HTML. En los lenguajes de servidor, las páginas son interpretadas en el propio servidor, tal es el caso de PHP. (4)

1.5.1 Lenguajes del lado cliente. HTML, CCS y JavaScript.

Cuando navegamos y ponemos una dirección en nuestro navegador, enviamos un requerimiento al servidor Web, el cual consiste en la petición del archivo que deseamos ver, el servidor lee el requerimiento, busca la página Web solicitada, y la envía al cliente, el cual recibe la página en su navegador y se la muestra al usuario.

HTML.

HTML es un lenguaje de programación muy sencillo que se utiliza para crear textos y páginas Web. Si se hace la traducción de su nombre, sería “Lenguaje de Marca de Hipertextos”. Esta definición se debe a que está compuesto por etiquetas, que definen la estructura y el formato del documento que verá el usuario a través de la Web. Esas etiquetas son leídas por el navegador o visualizador permitiendo que puedan ser visibles en nuestra máquina. Este lenguaje permite que se creen enlaces entre distintas partes del mismo documento o entre distintas fuentes de información, a través de hiperenlaces o

(26)

Capítulo 1 Fundamentación teórica

14 hipervínculos, e incluso insertar otros elementos como imágenes y sonidos, brinda facilidades para publicar documentos en línea con encabezados, listas, o para diseñar formularios, incluir hojas de cálculo, video, sonido y otras aplicaciones directamente en su contenido.

CCS.

Al crear una página Web con HTML a veces tenemos inconvenientes que no podemos resolver completamente con este lenguaje, por lo que no podemos impedir que la página Web se vea de forma distinta en dependencia del navegador que se use, por tanto, resulta de útil apoyo el CCS, que es un componente de HTML dinámico, que especifica las características de formato de la página, así como el color de la fuente, el espaciado entre letras, los márgenes o la imagen de fondo, que pueden aplicarse a una o a un grupo de páginas. Se puede crear hojas de estilos en el mismo código de la página HTML o en un archivo independiente, y luego enlazarlo desde la página. CSS es la mejor forma de separar los contenidos y su presentación, el lenguaje HTML o el Lenguaje Extensible de Marcado de Hipertexto (XHTML) se utilizan para marcar los contenidos, es decir, para designar lo que es un párrafo o lo que es una lista de elementos, el lenguaje CSS se utiliza para definir el aspecto de esos contenidos y es imprescindible para la creación de páginas Web complejas. Al separar los contenidos y su presentación mejora la accesibilidad del documento, reduce la complejidad de su mantenimiento y permite visualizar el mismo documento en infinidad de dispositivos diferentes.

JavaScript.

JavaScript es un lenguaje interpretado orientado a las páginas Web, con una sintaxis semejante a la del lenguaje Java. Se utiliza en páginas Web HTML, para realizar tareas y operaciones en el marco de la aplicación cliente. Al igual que HTML, JavaScript es un lenguaje de programación que se puede utilizar para construir sitios Web y para hacerlos más interactivos, tiene la ventaja de ser incorporado en cualquier página Web y de ser ejecutado sin la necesidad de instalar otro programa para ser visu alizado.

Aunque comparte muchas de las características y de las estructuras del lenguaje Java, fue desarrollado independientemente. El lenguaje JavaScript puede interactuar con el código HTML, permitiendo a los programadores Web utilizar contenido dinámico. Como el código JavaScript se ejecuta en el cliente, el servidor no es solicitado más de lo debido. Es compatible por la mayoría de los navegadores como Internet Explorer, Netscape, Mozilla Firefox entre otros.

(27)

Capítulo 1 Fundamentación teórica

15 1.5.2 Lenguajes del lado del servidor. PHP.

Al usar algún lenguaje del lado del servidor como por ejemplo PHP, al enviar un pedido al servidor Web para ver una página, el servidor recoge el pedido y busca la página, se ejecuta el código en el servidor y se preparan los resultados en formato HTML para enviar los resultados al cliente y de esta forma sean interpretados por el navegador.

PHP.

PHP es un lenguaje del lado del servidor como se había visto anteriormente, especialmente creado para el desarrollo de páginas Web dinámicas. Puede ser incluido con facilidad dentro del código HTML, y permite una serie de funcionalidades extraordinarias. Es software libre por lo que se puede usar en cualquier aplicación, personal o profesional. Puede soportar numerosas visitas con escaso mantenimiento y su integración con múltiples bases de datos es sencilla, destacándose su complementación con MySQL, aunque también puede usar otras como Oracle o PostgreSQL. También ofrece la integración con varias bibliotecas externas y es más fácil de mantener y poner al día que el código desarrollado en otros lenguajes. Cuenta con la ayuda de un gran grupo de programadores, permitiendo que los fallos de funcionamiento se encuentren y reparen rápidamente. El código fuente escrito en PHP es invisible al navegador y al cliente, ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador, esto hace que la programación en PHP sea segura y confiable.

Existiendo diferentes modos de utilizar PHP, existe también una multitud de opciones de configuración que permiten controlar su funcionamiento.

1.6 Servidor de aplicaciones Web. Apache.

Apache es el servidor Web hecho por excelencia, su robustez y estabilidad hacen que cada vez millones de servidores reiteren su confianza en este programa. La popularidad de este software libre grandemente reconocido en muchos ámbitos empresariales y tecnológicos se debe a que corre en una multitud de sistemas operativos, lo que lo hace prácticamente universal, además de ser una tecnología gratuita de código abierto . Apache te permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor, ya que es posible configurarlo para que ejecute un determinado conjunto de instrucciones cuando ocurra un error en concreto. Permite la creación de ficheros de archivos de registro a medida del administrador, de este modo se puede tener un mayor control sobre lo que sucede en el servidor.

Dirigirse al Glosario de Términos.

(28)

Capítulo 1 Fundamentación teórica

16 Presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido.

1.7 Estudio de metodologías de desarrollo.

Una metodología es un proceso. No existe una metodología de software universal, las características de cada proyecto exigen que el proceso sea configurable.

Proporciona una guía para el orden de todas las actividades de un equipo de desarrollo de software.

Se encarga de dirigir las tareas de cada desarrollador por separado y del equipo en conjunto.

Especifica los artefactos que deben desarrollarse.

Ofrece criterios para el control y la medición de los productos y las actividades del proyecto.

A continuación se hace un estudio de algunas metodologías para seleccionar la más conveniente a usar en el desarrollo del portal.

Proceso Unificado de Software (RUP).

La metodología RUP divide en cuatro fases el desarrollo del software:

Inicio: el objetivo en esta etapa es determinar la visión del proyecto.

Elaboración: en esta etapa el objetivo es determinar la arquitectura óptima.

Construcción: en esta etapa el objetivo es llevar a obtener la capacidad operacional inicial.

Transición: el objetivo es llegar a obtener una primera versión del software.

Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones , la cual consiste en reproducir el ciclo de vida en cascada a menor escala. Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes. Tiene entre sus principales características que está dirigido por los casos de uso, centrado en la arquitectura, y es iterativo e incremental.

Proceso dirigido por Casos de Uso.

En RUP los casos de uso no son sólo una herramienta para especificar los requisitos del sistema, sino que también guían su diseño, implementación y prueba. Los casos de uso constituyen un elemento integrador y una guía de trabajo.

Los casos de uso, además, inician el proceso de desarrollo y proporcionan un hilo conductor, basándose en ellos se crean los modelos de análisis y diseño, luego la implementación que los lleva a cabo, y se

Dirigirse al Glosario de Términos.

(29)

Capítulo 1 Fundamentación teórica

17 verifica que efectivamente el producto implemente adecuadamente cada caso de uso. Todos los modelos deben estar sincronizados con el modelo de casos de uso.

Proceso centrado en la arquitectura.

En el caso de RUP, además de utilizar los casos de uso para guiar el proceso, se presta especial atención al establecimiento temprano de una buena arquitectura, que no se vea fuertemente impactada ante cambios posteriores durante la construcción y el mantenimiento.

Cada producto tiene tanto una función como una forma. La función corresponde a la funcionalidad reflejada en los casos de uso y la forma la proporciona la arquitectura. Existe una interacción entre los casos de uso y la arquitectura, los casos de uso deben encajar en la arquitectura cuando se llevan a cabo y la arquitectura debe permitir el desarrollo de todos los casos de uso requeridos, actualmente y en el futuro. Esto provoca que tanto arquitectura como casos de uso deban evolucionar en paralelo durante todo el proceso de desarrollo de software.

Proceso iterativo e incremental.

Según el libro “El Proceso Unificado de Desarrollo de Software” el equilibrio correcto entre los casos de uso y la arquitectura es algo muy parecido al equilibrio de la forma y la función en el desarrollo del producto, lo cual se consigue con el tiempo. Para esto, la estrategia que se propone en RUP es ten er un proceso iterativo e incremental, donde el trabajo se divida en partes más pequeñas o mini proyectos, permitiendo que el equilibrio entre casos de uso y arquitectura se vaya logrando durante cada mini proyecto.

XP.

La metodología consiste en una programación rápida o extrema, cuya particularidad es tener como parte del equipo, al usuario final, pues es uno de los requisitos para llegar al éxito del proyecto. S e diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.

La metodología se basa en:

Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que adelantándonos en algo hacia el futuro, podamos hacer pruebas de las fallas que pudieran ocurrir.

Re-fabricación: se basa en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.

(30)

Capítulo 1 Fundamentación teórica

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

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

Desarrollo Guiado por la Funcionalidad (FDD).

FDD está pensado para proyectos con tiempo de desarrollo relativamente corto. Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional que el cliente y la dirección de la empresa pueden ver y monitorizar. Las iteraciones se deciden sobre la base de funcionalidades, que son pequeñas partes del software con significado para el cliente.

Un proyecto que sigue FDD se divide en 5 fases:

1. Desarrollo de un modelo general.

2. Construcción de la lista de funcionalidades.

3. Plan de primeras versiones del software sobre la base de las funcionalidades a implementar.

4. Diseñar en base a las funcionalidades.

5. Implementar en base a las funcionalidades.

Las primeras tres fases ocupan gran parte del tiempo en las primeras iteraciones , siendo las dos últimas las que absorben la mayor parte del tiempo según va avanzando el proyecto, limitándose las primeras a un proceso de refinamiento.

1.7.1 Selección de la metodología a utilizar.

No existen dos proyectos de desarrollo de software que sean iguales. Cada uno tiene prioridades, requerimientos, y tecnologías muy diferentes. Sin embargo, en todos los proyectos, se debe minimizar el

Dirigirse al Glosario de Términos.

(31)

Capítulo 1 Fundamentación teórica

19 riesgo, garantizar la predictibilidad de los resultados y entregar software de calidad superior a tiempo. Se escoge para la realización de la presente investigación la metodología RUP, debido a que es una plataforma flexible de procesos de desarrollo de software y permite seleccionar fácilmente el conjunto de componentes de proceso que se ajustan a las necesidades específicas del proyecto. Además, captura varias de las mejores prácticas en el desarrollo moderno de software en una forma que es aplicable para un amplio rango de proyectos y organizaciones. Se basa en Lenguaje Unificado de Modelado (UML) como herramienta principal. Provee a cada miembro del equipo fácil acceso a una base de conocimiento con guías, plantillas y herramientas para todas las actividades críticas de desarrollo. RUP es uno de los procesos más generales de los existentes actualmente, ya que en realidad está pensado para adaptarse a cualquier proyecto.

1.8 Gestores de Base de datos.

Un gestor de base de datos no es más que un conjunto de programas no visibles al usuario final, que se encargan de la privacidad, la integridad, la seguridad de los datos y la interacción con el sistema operativo. Proporciona una interfaz entre los datos, los programas que los manejan y los usuarios finales.

Cualquier operación que el usuario hace contra la base de datos está controlada por el gestor. El gestor almacena una descripción de datos en lo que llamamos diccionario de datos, así como los usuarios permitidos y los permisos. También tiene que haber un usuario administrador encargado de ce ntralizar todas estas tareas. (5)

Abordaremos a continuación características de algunos gestores de bases de datos.

1.8.1 Estudio de algunos gestores de base de datos.

PostgreSQL.

PostgreSQL es un sistema de gestión de bases de datos objeto-relacional basado en el proyecto POSTGRES, de la Universidad de Berkeley. El director de este proyecto es el profesor Michael Stonebraker, y fue patrocinado por la Agencia de Investigación de Proyectos Avanzados de Defensa (DARPA). PostgreSQL incluye características de la orientación a objetos, como puede ser: la herencia, tipos de datos, funciones, restricciones, disparadores. Soporta operadores funcionales, métodos de acceso y tipos de datos definidos por el usuario. Usa una arquitectura proceso por usuario cliente/servidor

(32)

Capítulo 1 Fundamentación teórica

20 y una gran flexibilidad de la Interfaz de Programación de Aplicaciones (API) que ha permitido a los vendedores proporcionar soporte al desarrollo fácilmente.

MySQL.

MySQL es un sistema de gestión de bases de datos, uno de los más importantes en cuanto al diseño y programación de base de datos de tipo relacional, licenciado bajo la GPL (6).

Su diseño multihilo le permite soportar una gran carga de forma muy eficiente. Es probablemente, el gestor más usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso. Esta gran aceptación es debida a que existen infinidad de librerías y otras herramientas, que permiten su uso a través de gran cantidad de lenguajes de programación, además de su fácil instalación y configuración, también presenta gran versatilidad ya que trabaja tanto con sistemas operativos basados en Unix como con el sistema operativo Windows. Gestiona usuarios y contraseñas, manteniendo buen nivel de seguridad en los datos.

MySQL es sin duda, la base de datos más popular y utilizada a la hora de desarrollar páginas Web dinámicas. Dispone de API´s en gran cantidad de lenguajes (C, C++, Java, PHP, etc.). Se suele trabajar en combinación con PHP, ya que ambos son lenguajes dirigidos a la Web, se complementan a la perfección y comparte con éste algunas de las características que lo convierten en una elección segura.

Entre ellas que son gratuitos, se trata de software libre que puede ser utilizado sin limitación alguna y son innumerables las páginas donde encontrar información.

1.8.2 Selección del gestor de base de datos a utilizar.

MySQL en su diseño, su principal objetivo es la velocidad, tanto al conectarse al servidor como al responder a alguna consulta, consume muy pocos recursos tanto de Unidad de Proceso Central (CPU)7 como de memoria aleatoria por lo que tiene mayor rendimiento. Tiene mayores utilidades de administración, copia de seguridad, recuperación de errores y no suele perder información ni corromper

Dirigirse al Glosario de Términos.

7CPU: Abreviatura de Central Processing Unit (unidad de proceso central). Es la parte central de toda computadora ya que es la que cumple la tarea de procesamiento de todas las funciones.

Referencias

Documento similar

grupos de interés ... La información sobre las actuaciones administrativas automatizadas y los algoritmos utilizados por las Ad- ministraciones públicas ... Fortalecer la calidad

Consecuentemente, en el siglo xviii hay un cambio en la cosmovi- sión, con un alcance o efecto reducido en los pueblos (periferia), concretados en vecinos de determinados pueblos

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

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),