• No se han encontrado resultados

Ingenieria Inversa de Zope/Plone. Ingenieria Inversa del Sitio de la Agencia Cubana de Noticias.

N/A
N/A
Protected

Academic year: 2023

Share "Ingenieria Inversa de Zope/Plone. Ingenieria Inversa del Sitio de la Agencia Cubana de Noticias."

Copied!
156
0
0

Texto completo

(1)

Facultad # 10

Título: Ingeniería Inversa de Zope/Plone. Ingeniería Inversa del Sitio de la Agencia Cubana de Noticias.

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

AUTORES:

Ionian Alfonso Buchillon.

Niurka B. Carmenate Pérez.

Yoel A. Almarales Ávila.

TUTOR: Dunia Suárez Ferreiro.

Ciudad de la Habana, Junio de 2007

(2)

Declaración de Autoría.

 

Declaro que soy el único autor de este trabajo y autorizo al estudiante(s) 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 firmo la presente a los ____ días del mes de ________ del año ________.

Yoel Antonio Almarales Avila Niurka Bárbara Carmenate Pérez ______________ ______________

Firma del Autor Firma del Autor

Ionian Alfonso Buchillón

____________

Firma del Autor Ing. Dunia Suárez Ferreiro

______________

Firma del Tutor

II

(3)

ÂaâÇvt vÉÇá|wxÜxá xÄ xáàâw|É vÉÅÉ âÇt ÉuÄ|ztv|™Ç?

á|ÇÉ vÉÅÉ âÇt ÉÑÉÜàâÇ|wtw ÑtÜt ÑxÇxàÜtÜ xÇ xÄ uxÄÄÉ ç ÅtÜtä|ÄÄÉáÉ ÅâÇwÉ wxÄ átuxÜÊA

TÄuxÜà X|Çáàx|ÇA

III

(4)

A

AGGRRAADDEECCIIMMIIEENNTTOOSS

…………A la Universidad de las Ciencias Informáticas por contribuir a mi formación como profesional.

…………A la Ingeniera Dunia Suárez Ferreiro por toda la ayuda brindada.

…………A mi mamá por todo su apoyo, amor y ternura.

…………A mi papá por todo el esfuerzo que ha realizado para que hoy me encuentre en medio de la realización de este trabajo y por la confianza que ha depositado en mí.

…………A mi hermano por llenar mi vida de alegrías y porque cada vez que lo veo, recuerdo una vez más lo importante que son mis padres.

…………A mi querido Tatica y mi adorable abuelita Nilvia por enseñarme a andar siempre por el camino del bien.

…………A mi abuelo Daniel por inculcarme la fe en el Sagrado Corazón de Jesús.

…………A mi familia toda, por ser tan buenos y darme consejos sabios que han ayudado a mi completa formación.

…………A mis dos compañeros de tesis: Yoel (mi neny) y a Ionian por su dedicación y esfuerzo.

…………A mi querido tuky (Karel Rodríguez Varona) por toda su paciencia y ayuda.

…………A todos mis compañeros de grupo y a los que durante estos 5 años me han ayudado.

…………A todas las personas que tanto espiritual como materialmente me han brindado su apoyo.

a|âÜ~t U VtÜÅxÇtàx c°ÜxéA

…………A la Universidad de las Ciencias Informáticas por forjarme y educarme como profesional.

…………A la Ingeniera Dunia Suárez por toda su ayuda.

…………Al Ingeniero Leansy Alfonso por su apoyo y ayuda.

…………A mi Madre por ser la mejor y estar siempre a mi lado dándome fuerza para continuar.

…………A mi Padre por darme el apoyo y la confianza para seguir siempre adelante.

…………A mi hermana por darme siempre la mayor alegría del mundo.

…………A mi Abuela por todo el apoyo que me ha dado a lo largo de mi vida.

IV

(5)

…………A toda mi familia por siempre preocuparse por mí.

…………A mis dos compañeros de tesis Ionian y Niurka (mi niña) por la dedicación en este trabajo.

…………A mis compañeros de grupo que durante estos 5 años me han apoyado.

lÉxÄ TA TÄÅtÜtÄxá ˙ä|ÄtA

…………Primeramente quiero agradecerle a mis familiares en especial a mi papá por la preocupación que siempre tubo, al igual que a mis segundos padres, mis abuelos, a mi mamá y especialmente a mi primo Leansy por todo lo que me ayudó, a mis compañeros de tesis Yoel y Niurka y a las personas que en los momentos difíciles siempre me tendieron su mano.

…………Segundo agradecerle a la persona que me dijera que estudiara en la universidad nueva que se haría en La Habana (UCI) y que me dijo que se estaban buscando a los estudiantes para ella y que de momento me comento algo sobre que esto seria el futuro y muchas otras cosas, ese fue con el único amigo con que entre en la universidad Lenny.

…………Tercero quiero agradecer a todos los que me ayudaron mucho en el estudio y se portaron bien para conmigo incondicionalmente, personas como Ailen Moreira, Temis Betancourt, Laila Celia, Iliana Pérez Pupo, Yahilin Lorenzo, Yaima Oval, Yenisey Fadraga, Ariamna Trujillo, Roberto C. Glez y no puedo dejar de mencionar el grupo con el que entre en la UCI mi grupo de primero y segundo año (el mejor de los mejores).

…………Sumado a todos se encuentran también los amigos que hice durante los 5 años de la carrera con los cuales he pasado los momentos alegres y tristes, personas que conocí en la universidad y que aprecio mucho por todo lo que pasamos juntos, a continuación sus nombres y nombre de pila: Mario Dismaris (la caneca), Erick Salabarria(el boca), Osmel Ruiz(basuco), Geikel Días(el dorotillo), Jose C.

Alonso(pepe), Reinaldo Heredia(el nague), Alejandro Valdés(la pelua), Yan P. Espinosa(este es el que más se molesta de la república), Yoan Abreu(la pelua to) e incluyendo a los demás que no pongo no porque se me hayan olvidado sino porque no puedo mencionar a todos a mis compañeros de cuarto y de aula.

\ÉÇ|tÇ TÄyÉÇáÉ Uâv{|ÄÄÉÇA

V

(6)

D

DEEDDIICCAATTOORRIIAA

…………A mi mamá, mi papá y mi hermano.

…………A mis cuatro grandes amigas: Andovi, Dany, Marbe y Yady.

a|âÜ~t U VtÜÅxÇtàx c°ÜxéA

…………A mi mamá, mi papá y mi hermana.

…………A todos los que creyeron en mí.

lÉxÄ T TÄÅtÜtÄxá ˙ä|ÄtA

…………A mis abuelos (Zaida y Miguel Ángel).

…………A mi papá y mi mamá (Iroel e Iris M.).

…………A mi tío y a mi sobrina (Maikel y Kailyn)

…………A todos mis hermanos (Yenny, Irosmary, José Carlos, Irosleidys).

…………A la esposa de mi papá y la de mi tío (María Luisa y Kenia)

…………A todos mis amigos.

\ÉÇ|tÇ TÄyÉÇáÉ Uâv{|ÄÄÉÇA

VI

(7)

R

REESSUUMMEENN

El siguiente trabajo se titula Ingeniería Inversa de Zope/Plone. Ingeniería inversa al sitio de la Agencia Cubana de Noticias y se ha desarrollado además una metodología para trabajar con el CMS Plone., debido a que actualmente muchas personas lo utilizan pero no saben nada de cómo fue creado y de cómo es su funcionamiento interno.

La UCI (Universidad de Ciencias Informáticas) es uno de los principales centros de estudios de nuestro país, capacitando a miles de estudiantes para que se formen como profesionales en el campo de la informática. La UCI presenta cuenta con varios proyectos productivos entre los cuales se encuentra el proyecto Intranet2, que surge a partir de los problemas que presenta la intranet actual, por lo que existe la necesidad de migrar dicha intranet a la plataforma de software libre montándola con el CMS Plone.

Debido a ello surge la necesidad de estudiar dicho CMS, para saber trabajar con dicha herramienta, desarrollar un manual para trabajar con el CMS, realizar ingeniería inversa a un sitio realizado con este CMS y proponer el mejoramiento del mismo mediante una propuesta de ingeniería inversa del CMS Plone , para acercarse al entendimiento de la parte que menos se conoce y poder adaptarlo a las necesidades de quien lo desee usar en un futuro o para aquellas personas que quieran desarrollar uno o sencillamente realizarle mejoras al existente.

En el presente documento están recogidos los resultados de la investigación que se ha llevado a cabo.

PALABRAS CLAVE Ingeniería inversa.

CMS.

Plone.

VII

(8)

Ì

ÌNNDDIICCEE

INTRODUCCIÓN...1

CAPÍTULO 1...5

1.1SISTEMAS GESTORES DE CONTENIDOS (CMS)...5

1.1.2 Necesidad de un CMS ...5

1.1.3 Ventajas de su utilización. ...6

1.1.4 CMS más usados...7

1.2 PLONE...8

1.2.1 Principales características de Plone. ...8

1.2.3 Esferas de la sociedad que usan Plone...10

1.2.4 Uso de Plone en Cuba. ...14

1.2.5 Apreciación global técnica sobre Plone. ...16

1.3ZOPE...16

1.3.1 Historia de Zope. ...17

1.3.2 ¿Por qué usar Zope a cambio de otros servidores de aplicaciones? ...17

1.4PYTHON...19

1.4.1 Historia de Python. ...19

1.4.2 Características del lenguaje. ...20

1.5CONCLUSIONES...21

CAPÍTULO 2...22

2.1METODOLOGÍAS...22

2.1.1 Importancia de las metodologías de investigación...22

2.2CARACTERÍSTICAS DE VARIAS METODOLOGÍAS EXISTENTES EN EL MUNDO. ...23

2.2.1 Metodología Rational Unified Process (RUP) ...23

2.2.2 Metodología XP (Extreme Programming)...24

2.2.3 Microsoft Solution Framework (MSF)...26

2.2.4 Feature Driven Development (FDD)...28

2.3PROPUESTA DE LA METODOLOGÍA PARA TRABAJAR CON PLONE. ...28

VIII

(9)

2.3.1 Fase 1: Inicio. ...29

2.3.2 Fase 2: Visión. ...30

2.3.3 Fase 3: Construcción...31

2.4CONCLUSIONES...39

CAPÍTULO 3...40

3.1INGENIERÍA INVERSA...40

3.2DESCRIPCIÓN DEL PROCESO DE DOMINIO...41

3.3MODELO DE DOMINIO...41

3.4DIAGRAMA DEL MODELO DE DOMINIO. ...43

3.5REQUERIMIENTOS DEL SISTEMA...43

3.7CASOS DE USOS DEL SISTEMA...46

3.8DIAGRAMA DE CASOS DE USOS DEL SISTEMA...49

3.9DESCRIPCIÓN DETALLADA DE LOS CASOS DE USO. ...49

3.10MODELO DE ANÁLISIS. ...58

3.10.1 Diagramas de clases del análisis...58

3.10.2 Diagramas de interacción. (Colaboración)...61

3.11MODELO DE DISEÑO...65

3.11.1 Diagramas de clases del diseño...66

3.12CONCLUSIONES...70

CAPÍTULO 4...71

4.1DESCRIPCIÓN DEL PROCESO DE DOMINIO...71

4.2MODELO DE DOMINIO...71

4.3DIAGRAMA DE MODELO DE DOMINIO...72

4.4REQUERIMIENTOS DEL SISTEMA...72

4.5DESCRIPCIÓN DE ACTORES Y CASOS DE USOS...75

4.6DIAGRAMA DE CASOS DE USOS DEL SISTEMA...78

4.7CASOS DE USOS EXPANDIDOS. ...78

4.8DIAGRAMAS DE CLASES DEL ANÁLISIS...84

4.9DIAGRAMAS DE INTERACCIÓN (COLABORACIÓN)...86

IX

(10)

4.10CONCLUSIONES...89

CONCLUSIONES ...91

RECOMENDACIONES...92

REFERENCIAS BIBLIOGRÁFICAS ...93

BIBLIOGRAFÍA. ...94

ANEXOS. ...96

GLOSARIO DE TÉRMINOS. ...142

X

(11)

Índice de figuras.

Fig. 1 Modelo de Dominio de la Agencia Cubana de Noticias... 43

Fig. 2 Diagrama de Casos de usos del Sistema de la Agencia Cubana de Noticias... 49

Fig. 3 Diagrama de clases “Autenticar Usuarios”. ... 58

Fig. 4 Diagrama de clases “Buscar Noticias”... 59

Fig. 5 Diagrama de clases “Redactar Noticias”. ... 59

Fig. 6 Diagrama de clases “Revisar Noticias”... 59

Fig. 7 Diagrama de clases “Publicar Noticias”. ... 59

Fig. 8 Diagrama de clases “Crear Encuesta”... 60

Fig. 9 Diagrama de clases “Configurar Sistema”. ... 60

Fig. 10 Diagrama de clases “Crear Chat”. ... 60

Fig. 11 Diagrama de clases “Crear Usuarios”... 60

Fig. 12 Diagrama de clases “Otorgar Roles”. ... 61

Fig. 13 Diagrama de Colaboración “Autenticarse”... 61

Fig. 14 Diagrama de Colaboración “Buscar Noticias”... 61

Fig. 15 Diagrama de Colaboración “Redactar noticias”. ... 62

Fig. 16 Diagrama de Colaboración “Revisar Noticias”... 62

Fig. 17 Diagrama de Colaboración “Publicar Noticias”. ... 63

Fig. 18 Diagrama de Colaboración “Crear Encuestas”. ... 63

Fig. 19 Diagrama de Colaboración “Configurar Sistema”. ... 64

Fig. 20 Diagrama de Colaboración “Crear Chat”. ... 64

Fig. 21 Diagrama de Colaboración “Crear Usuarios”... 65

Fig. 22 Diagrama de Colaboración “Otorgar Roles”. ... 65

Fig. 23 Diagrama de clases del Diseño por paquetes. ... 66

Fig. 24 Diagrama de clases del Diseño “Autenticación”. ... 66

Fig. 25 Diagrama de clases del Diseño “Gestión de Usuarios”. ... 67

Fig. 26 Diagrama de clases del Diseño “Gestión Contenidos”. ... 68

Fig. 27 Diagrama de clases del Diseño “Gestión de Noticias”... 69

XI

(12)

Fig. 28 Diagrama de clases del Diseño “Gestión de Sistema”. ... 70

Fig. 29 Modelo de Dominio del CMS Plone. ... 72

Fig. 30 Diagrama de Casos de Usos del Sistema para Plone... 78

Fig. 31 Diagrama de clases “Buscar Contenidos”. ... 85

Fig. 32 Diagrama de clases “Gestionar Contenidos”. ... 85

Fig. 33 Diagrama de clases “Aprobar Contenidos”... 86

Fig. 34 Diagrama de clases “Crear Sitio”... 86

Fig. 35 Diagrama de clases “Crear Skin”... 86

Fig. 36 Diagrama de Colaboración “Buscar Contenidos”. ... 87

Fig. 37 Diagrama de Colaboración “Crear Contenidos”... 87

Fig. 38 Diagrama de Colaboración “Actualizar Contenidos”... 88

Fig. 39 Diagrama de Colaboración “Copiar Contenidos”. ... 88

Fig. 40 Diagrama de Colaboración “Mostrar Contenidos”. ... 88

Fig. 41 Diagrama de Colaboración “Mover Contenidos”... 89

Fig. 42 Diagrama de Colaboración “Eliminar Contenidos”... 89

XII

(13)

Introducción

.

En la sociedad actual Internet ha ido cobrando un extenso auge, a tal punto que se ha convertido en el sistema más importante tanto de publicación como de obtención de la información. Hace algunos años sólo podían conectarse a esta enriquecida fuente de información los usuarios de algunos sectores puntuales de la sociedad. Sin embargo hoy en día es casi imposible imaginar que alguna aplicación de la vida cotidiana no tenga cabida en esta red que mueve al mundo y que con tanta fuerza lo atrae sobre sí.

Se debe tener en cuenta que gracias al avance arrollador de las tecnologías y los medios de comunicación los usuarios de Internet han incrementado en un gran número. Los hechos demuestran que la gran red de ordenadores ha logrado ser casi imprescindible y se ha convertido en una herramienta de gran valor para las empresas y organismos, ya sean públicos o privados.

Aparejado a este gran desarrollo de las TICs ha surgido otro proceso importante que se está haciendo muy popular y es el desarrollo de las llamadas Intranets, que no son más que un gestor de información al que los usuarios acceden en busca de soluciones. Desde el momento en el que se produce esta interacción, se convierte en un vehículo comunicacional. Hablar de intranet es hablar del futuro de los nuevos sistemas de información. La intranet es un instrumento de comunicación y ello implica que haya una retroalimentación de las partes que interactúan pues el usuario puede obtener y publicar información en la misma.

Hoy en día para casi cualquier empresa, y muy especialmente las de un futuro venidero, la intranet va ha ser un recurso indispensable, los empresarios se han dado cuenta que los componentes que funcionan tan bien en Internet serían del mismo modo valioso en el interior de sus empresas y esa es la razón por la que las Intranets se están haciendo tan populares; otro factor que influye además es que los actuales métodos de inserción y consulta de datos se están quedando obsoletos debido a la gran cantidad de información que genera una empresa, pero todo cambia cuando se tienen todos estos datos localizados dentro de una pequeña red en la empresa o institución que se trabaje, o cuando con sólo un clic se pueden realizar muchas operaciones.

Las ventajas de implementar Intranet son:

• Mayor eficacia organizacional y productividad.

• Ahorro de recursos y la preparación de la empresa en una tecnología fundamental

1

(14)

para la supervivencia en la nueva economía, en las áreas funcionales de servicio al cliente, ventas y marketing, producción y operaciones, ingeniería, recursos humanos, administración, contabilidad y finanzas.

• Mejoría en el clima organizacional con efectos directos en la satisfacción de sus clientes y accionistas.

Actualmente se está utilizando en gran medida para el desarrollo de las intranets y de sitios web el uso de los (CMS) Sistemas Gestores de Contenidos, debido a las facilidades que los mismos brindan para la gestión y administración de la web.

Estas herramientas basan su funcionalidad en gestionar los contenidos de un sitio corporativo que se denomina portal, hoy en día, existe una amplia gama de herramientas de administración de contenidos en el mercado. Estas herramientas son de gran utilidad cuando es necesario realizar cambios de mucha frecuencia en un sitio web, como por ejemplo: noticias diarias, actividades, eventos, entre otros.

Para la creación de un portal, los CMS aportan herramientas para definir la estructura, el formato de las páginas, el aspecto visual, uso de patrones, y un sistema modular que permite incluir funciones no previstas originalmente.

Los contenidos creados, por ejemplo, noticias o artículos, se depositan en una base de datos central, donde también se guarda el resto de datos del portal, como son los datos relativos a los documentos, datos y preferencias de los usuarios y la estructura del portal.

La estructura se puede configurar con una herramienta que, habitualmente, presenta una visión jerárquica del sitio y permite modificaciones. Mediante esta estructura se puede asignar un grupo a cada área, con responsables, editores, autores y usuarios con diferentes permisos.

Una página aprobada se publica automáticamente cuando llega la fecha de publicación, y cuando caduca, se archiva para futuras referencias. En su publicación se aplica el patrón definido para toda la Web o para la sección concreta donde está situada. Así el resultado final es un sitio web con un aspecto consistente en todas sus páginas. Esta separación entre contenido y forma permite que se pueda modificar el aspecto visual de un sitio web sin afectar a los documentos ya creados, y libera a los autores de preocuparse por el diseño final de sus páginas.

Cuba también está inmerso en la construcción de intranets, ya sea para hospitales, empresas, instituciones, universidades, etc.

2

(15)

La Universidad de las Ciencias Informáticas (UCI) tiene su propia intranet, en la cual se puede encontrar cualquier cantidad de información de interés para los usuarios que la visitan, ya sea de tipo cultural, informativa, además de una exquisita documentación etc.

Lamentablemente en la actualidad la intranet está presentando una serie de problemas que es necesaria su rápida solución, los mayores inconvenientes están en que generalmente el servidor está congestionado; ha habido un aumento de usuarios en la universidad; existen problemas de integridad de la Información y de la autogestión de la Intranet; no existe personal disponible con conocimientos del código de la Intranet actual; tampoco existe documentación de la misma y existe una decadencia natural de un software que no se mantiene.

Por la gran importancia que se le confiere a esta intranet y observando los problemas anteriormente descritos, surge como necesidad el desarrollo de una nueva intranet, para solucionar los problemas de la actual y además que presente mejoras para los usuarios que la visitan. Teniendo en cuenta las características de esta universidad, se hará con un diseño totalmente diferente, no sólo visual sino también en cuanto a la arquitectura de información y de desarrollo, es por ello que la nueva intranet se va a hacer utilizando el CMS Plone, por ser un CMS que además de no ser un CMS propietario, brinda muchas facilidades para los usuarios que lo utilizan.

Además está también el inconveniente de que la mayoría de las personas en el mundo que realizan sus sitios web, intranets o portales utilizando cualquier CMS, nunca se dedican a entender cómo es que funcionan verdaderamente estas herramientas, o sea, por lo general ellos realizan sus sitios solamente dando clic y publicando todo lo que deseen, pero casi nunca llegan a estudiarse el código para saber lo que implica dar un clic y en realidad ver lo que sucede por la parte de atrás (en su código).

Debido a esto, ha surgido la necesidad de realizar la ingeniería inversa de este CMS (Plone), pues es un tema muy interesante y de una gran necesidad tanto para la UCI como para el mundo entero pues de esta forma los usuarios que se dediquen a utilizarlo, podrán entender mejor como funciona verdaderamente Plone, no como ellos lo ven sino todo lo que realiza por atrás, en su interior,en su código.

Entiéndase por Ingeniería Inversa aquel método de resolución que se le aplica a algo o a algún producto para profundizar en el estudio de su funcionamiento, hasta el punto de que se puede llegar a entender, modificar, y mejorar dicho modo de funcionamiento.

Los productos más comunes que son sometidos a la ingeniería inversa son los programas de computadoras y los componentes electrónicos.

3

(16)

Este trabajo de diploma pretende estudiar el funcionamiento detallado de la herramienta Zope/Plone, con el fin de entender, mejorar y modificar el mismo, para que de esta forma se pueda utilizar para la migración que se pretende hacer de la intranet de nuestra universidad para que tenga un éxito total y una mejora en cuanto a todos los problemas que están presentes actualmente.

Por tanto el problema a resolver quedaría formulado dentro de la siguiente interrogante ¿Cómo lograr la realización de una propuesta inicial para hacer la ingeniería inversa del CMS Plone?

El objeto de estudio lo constituyen los CMS.

El campo de acción de este trabajo lo constituye el CMS Plone.

El objetivo general de esta investigación es realizar una propuesta inicial para realizar una Ingeniería Inversa del CMS Plone.

A partir de lo anterior se derivan los siguientes objetivos específicos:

1. Estudio de los CMS.

2. Estudio de como funciona el CMS Plone.

3. Profundización en el tema de metodologías de investigación para software.

4. Estudio de una propuesta para comenzar a realizar ingeniería inversa de un sitio hecho en Plone.

5. Estudio de una propuesta para comenzar a realizar ingeniería inversa de Plone.

Para un mejor cumplimiento de estos objetivos específicos se han trazado las siguientes tareas:

• Desarrollar una documentación para desarrollar sitios web utilizando Zope/Plone.

• Aprender como funciona el CMS Plone.

• Hacer una propuesta de metodología para el trabajo con el CMS Plone.

• Realizar la ingeniería inversa de un sitio hecho en Plone.

• Realizar una propuesta inicial de cómo hacer la ingeniería inversa del CMS Plone.

4

(17)

Capítulo 1

En este capítulo se describe mediante la teoría todo lo relacionado con los CMS en general, centrando más la atención sobre el CMS Plone, debido a que en base a este se basa la siguiente investigación. Está presente además la necesidad de su uso, debido al desarrollo y los avances que va teniendo el mundo actual.

1.1 Sistemas gestores de contenidos (CMS)

Los CMS (Content Management Systems) o Sistemas de Gestión de Contenidos es un software que se utiliza principalmente para facilitar la gestión de entornos web, ya sea en una Intranet o Extranet, y por eso también son conocidos como WCM (Web Content Management) o Gestores de Contenido Web.

1.1.2 Necesidad de un CMS

Los CMS son importantes y necesarios porque hace falta un sistema que gestione un entorno web.

Se podría pensar que no es necesario para un sitio web relativamente pequeño o cuando no se necesitan tantas funcionalidades. La flexibilidad y escalabilidad que permiten estos sistemas, justifican su utilización en prácticamente cualquier tipo de web.

Muchos usuarios utilizan CMS gratuitos para elaborar y gestionar sus webs personales, obteniendo webs dinámicas y ricas en cuanto a funcionalidades. El resultado que obtienen es superior al de algunas empresas que se limitan a tener páginas estáticas.

Éstos son algunos de los puntos más importantes que hacen útil y necesaria la utilización de un CMS:

• Inclusión de nuevas funcionalidades en el web. Esta operación puede implicar la revisión de una gran multitud de páginas y la generación del código que aporta las funcionalidades. Con un CMS eso puede ser tan simple como incluir un módulo realizado por terceros, sin que eso suponga muchos cambios en la web. El sistema puede crecer y adaptarse a las necesidades futuras.

5

(18)

• Mantenimiento de gran cantidad de páginas. En una web con muchas páginas hace falta un sistema para distribuir los trabajos de creación, edición y mantenimiento con permisos de acceso a las diferentes áreas. También se tienen que gestionar los metadatos de cada documento, las versiones, la publicación y caducidad de las páginas entre otros aspectos.

• Reutilización de objetos o componentes. Un CMS permite la recuperación y reutilización de páginas, documentos, y en general de cualquier objeto publicado o almacenado.

• Páginas interactivas. Las páginas estáticas llegan al usuario exactamente como están almacenadas en el servidor Web. En cambio, las páginas dinámicas no existen en el servidor tal como se reciben en los navegadores, sino que se generan según las peticiones de los usuarios.

• Cambios del aspecto de la web. Si no hay una buena separación entre contenido y presentación, un cambio de diseño puede comportar la revisión de muchas páginas para su adaptación.

Los CMS facilitan los cambios con su utilización, por ejemplo, del estándar CSS (Cascading Style Sheets u hojas de estilo en cascada) con lo que se consigue la independencia de presentación y contenido.

• Consistencia de la web. La consistencia en una web no quiere decir que todas las páginas sean iguales, sino que hay un orden visual. Un usuario nota enseguida cuándo una página no es igual que el resto de las de la misma web por su aspecto, la disposición de los objetos o por los cambios en la forma de navegar. Estas diferencias provocan sensación de desorden, los CMS pueden aplicar un mismo estilo en todas las páginas con el mencionado CSS, y aplicar una misma estructura mediante patrones de páginas.

• Control de acceso. Controlar el acceso a un web no consiste simplemente al permitir la entrada a la web, sino que comporta gestionar los diferentes permisos a cada área de la web aplicados a grupos o individuos.

1.1.3 Ventajas de su utilización.

La utilización de los CMS proporciona muchas ventajas, entre ellas se pueden enumerar las que siguen a continuación:

• Autonomía en la administración de contenidos y diferentes áreas pueden participar en el mantenimiento.

6

(19)

• Facilitan tener al día la información, mayor dinamismo en el sitio y renovación constante de la imagen del sitio.

• Contenidos reutilizables y presentación de contenidos en diversos dispositivos y formatos.

• Las personas que actualizan los datos no necesitan tener conocimientos técnicos.

• Fácil implantación y mantenimiento de la plantilla general, ya seas un webmaster experimentado o solo un usuario final con conocimientos técnicos sobre la materia.

• Posibilidad de modificación del código del CMS ajustándolo a las necesidades de la entidad que lo implantó.

• Acceso a todo tipo de información (texto, imagen y sonido) a través de un entorno visual y muy intuitivo, ya que la utilización de un CMS permite la creación e implantación de módulos con contenido multimedia.

• Acceso a una gran cantidad de información, ya sea en texto, audio o video de manera organizada.

• Implantación rápida y sencilla. En pocos minutos tienes realizada la plantilla principal.

1.1.4 CMS más usados.

Drupal: Es un poderoso CMS muy conocido por la calidad de su código y por la seguridad que brinda, es estable y de actualización continua. Permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos.

Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno web incluido en el producto.

JOOMLA: Sólo hay que ocuparse de la información que se desee publicar, debido a que el sistema gestionará todos los demás detalles técnicos y administrativos, como son: organización del sitio web, publicación de contenidos, escalabilidad e implementación de nuevas funcionalidades, administración de usuarios, diseño y aspecto estético del sitio, navegación y menú, administrador de imágenes, disposición de módulos modificables, encuestas, publicidad, estadísticas de visitas.

Plone: Es ideal para servicios de intranets y Extranets. Trae herramientas para la colaboración y la creación de grupos de trabajo, para la publicación de documentos. En el equipo de desarrollo se incluyen

7

(20)

a expertos en usabilidad, garantizando que la herramienta sea atractiva y fácil de usar en la creación, y actualización de contenidos. Cuenta con la traducción en más de 50 lenguajes, además existen herramientas para crear contenidos en más de un lenguaje. Tiene licencia GPL, la cual permite la libre distribución, uso, y cambios de la aplicación. Cuenta con un equipo de cientos de desarrolladores de diferentes lugares del mundo. Usa estándares de usabilidad y accesibilidad. Usa los estándares web xhtml y CSS. Se puede extender integrándole nuevas funcionalidades desarrolladas por nuestros equipos o por otros de otras partes del mundo. La aplicación puede correr en diversos sistemas operativos como son Linux, Windows, Mac.

1.2 Plone

Plone es un Sistema de Gestión de Contenidos que corre sobre el servidor de aplicaciones Zope distribuido bajo la licencia GNU/GPL. Plone es multiplataforma, fácil de instalar, sumamente flexible, y le proporciona un sistema para la administración Web, generalmente es ideal para los proyecto de grupos, comunidades, sitios web, extranets e intranets, así como para la colaboración entre entidades que se encuentren distantes.

El proyecto Plone se inició en el año 1999 por Alan Runyan, Alexander Limi, y Vidal Andersen, y más temprano que tarde se convirtió en uno de los CMS de código abierto más usados, y ya en el 2004 se creó para la protección y promoción de Plone la Fundación de Plone.

1.2.1 Principales características de Plone.

• Es fácil instalar.

Plone se puede instalar con sólo dar un clic ejecutando el instalador, y rápidamente se tendrá un Sistema de Gestión de Contenidos que correrá en la computadora en sólo unos minutos.

• Es fácil usar.

8

(21)

El Equipo de Plone incluye a expertos de utilidad que han hecho Plone más fácil y atractivo para los administradores de sistemas para agregar, actualizar, y almacenar contenido.

• Es internacional.

La interfaz de Plone tiene más de 50 traducciones, y existen herramientas para administrar contenidos multilenguajes.

• Es estándar.

Plone sigue las normas cuidadosamente para la utilidad y accesibilidad.

• Es de Código Abierto.

Plone está bajo la Licencia Pública General GNU, la misma licencia usada por Linux. Esto le da el derecho para usar Plone sin una cuota de la licencia, y para mejorar el producto.

• Es extensible.

Hay una multitud que hace los productos para Plone para agregar nuevos rasgos y diferentes tipos de contenidos. Además, Plone puede ser usado con lenguajes de código abierto

• Es una tecnología neutral.

Plone puede ser ínter operable con más sistemas de la base de datos correlativos, código abierto y comercial, y corre en una inmensa gama de plataformas, incluyendo Linux, Windows, Mac OS X, Solaris y BSD.

1.2.2 Facilidades de usar Plone.

9

(22)

1. Plone es Open Source (de fuente abierta). Esto significa no sólo que es gratis sino que existe una comunidad activa de desarrolladores que constantemente están trabajando para mejorar las características, su escalabilidad y facilidad de uso del software.

2. Plone corre encima de Zope Application Server (servidor de aplicaciones Zope), que es un sistema totalmente orientado a objetos. Esto significa que todo en Plone, ya sea un archivo, un documento o incluso una imagen, es un objeto en una base de datos interna. Tomando en cuenta sólo esta característica, lo ubica como líder en los sistemas administradores de contenidos tanto Open Source como propietarios.

3. Plone y Zope son extensibles. Esto significa que es relativamente simple desarrollar nuevos tipos de contenidos, aplicaciones y objetos.

4. Plone está emergiendo como un consenso entre los sistemas Open Source. Computer Associates eligió a Zope y a Plone como la base de sus ofertas comerciales. CA es decir (Computer Associates) pertenece al consejo directivo de la Plone Foundation (fundación de Plone).

Se debe tener en cuenta que aunque Plone brinde múltiples facilidades de uso, eso no significa que sea súper fácil, pues implementar un CMS en una organización, sea Plone u otro, es una tarea grande. Se deben definir procesos y procedimientos internos para que exista un desarrollo exitoso. Sin embargo, Plone ofrece bastantes funcionalidades "out-of-the box" que son muy superiores a cualquier otro producto que exista en el mercado.

1.2.3 Esferas de la sociedad que usan Plone.

Organizaciones no lucrativas:

Alrededor del mundo escogen Plone porque lo hace fácil para las personas que no dominan el lenguaje HTML para mantener pulidas sus publicaciones y sitios web profesionales con complicaciones mínimas. Plone es un fácil "tema" para manejar interfaces gráficas de no mucha complicación, y puede también ocuparse de sitios de mucha envergadura.

• Amnistía Internacional Suiza

10

(23)

Amnistía Internacional Suiza es una organización activista que ha obtenido hasta un premio Nobel, esta emprende investigaciones y acciones haciendo énfasis en la necesidad de prevenir y acabar graves abusos de derechos humanos alrededor del mundo. Desde el 2006 de julio, Amnistie Suiza Internacional ha usado Plone para sus sitios web editados en diferentes idiomas como son el: (alemán, francés, italiano, e inglés).

• BALLE

Es una Alianza Comercial para las Economías Vivientes Locales. BALLE es una alianza internacional de redes de negocio locales independientemente operadas, dedicada a construir las Economías Vivientes Locales. Desarrollado por ifpeople.net que es otra empresa que utiliza Plone.

• Bio-conductor

Bio-conductor es una fuente abierta y el proyecto de software de desarrollo abierto para el análisis y comprensión de datos del genoma humano.

• El Museo y Archivo Postal británico

El Museo y Archivo Postal británico ilumina las vidas de las personas en el Correo, los mensajes llevados por el Correo Real, la historia que todos nosotros compartimos. El sitio incluye un discurso extenso de por qué ellos escogieron Plone y cómo ellos lo usan.

• EngageMedia

EngageMedia es un sitio web para vídeos sobre la justicia social y los problemas relacionados con el medio ambiente en Australia, Sudeste de Asia y el Pacífico.

• Food and Water Watch

Es una empresa medioambiental que utiliza Plone porque para ellos es fácil de usar para las autenticaciones, para páginas informativas, uso del correo electrónico, blogs e inscripciones de la publicación. Plone también está impulsando su extranet privada.

• La Unión Nacional de Obreros de Australia.

La Unión Nacional de Obreros es un sindicato australiano grande, donde ellos plantean el por qué migraron hacia Plone, "Nosotros migramos a Plone debido a su flexibilidad y a su bajo costo y su modelo de seguridad y datos están bien estructurados”.

Organizaciones Comerciales:

11

(24)

El poder de Plone, facilidad de uso, escalabilidad, flujo de trabajo y seguridad es una gran opción para los sitios web comerciales de todos los tamaños. Plone soporta múltiples lenguajes y es en particular atractivo para empresas de ámbito global.

• AChatPublic.com

Un Sitio Web francés echo por Ingeniweb, que promociona productos de origen animal, carne y productos cárnicos.

• Atkins

Es un compañía de comidas que ofrece varios servicios y posee mas 30, 000 almacenes y tiendas a lo largo y ancho de toda Norte América.

• Business Portal 24

Un portal que proporciona diferentes tipos de servicios a las compañías pequeñas y el elemento más importante es la publicación y distribución de artículos de la prensa. La mayoría de los servicios son gratuitos. Se piensa que es usado por el público internacional (pero algunos de los servicios sólo están actualmente disponibles en Alemania).

• Career Tiger

Un sitio holandés con la información sobre la educación y desarrollo profesional y vocación de un equipo de escritores independientes, con ninguna o pequeña experiencia con CMS anteriormente, pero por las facilidades que proporciona Plone decidieron utilizarlo.

• Discover Magazine

Una revista científica americana, publicada con CMS Plone.

• eBay

EBay es un sitio Web que se dedica a la subasta de productos a través de Internet, usa Plone en Microsoft Windows para manejar su Sitio Web y la información de diseñador.developer.ebay.com proporciona el acceso al mercado de eBay a través de la web lo prepara para que pueda comprar más fácil en el eBay.

• Inmersio

Inmersio es un proveedor global de simuladores de entrenamiento virtuales y soluciones de visualización innovadoras. Ellos usan Plone para su principal Sitio Web y extranet del cliente.

• Natural Awakenings Publishing

12

(25)

Opera en alrededor de 30 ciudades de EE.UU. La compañía usa Plone para publicar su volumen en línea y complementar su publicación en papel. Ellos también ofrecen la posibilidad de crear su propio sitio dentro del sitio corporativo a cada concesionario. El sitio habilita la tradicional impresión en sólo revistas para construir una comunidad en línea, calendario, y publicidad.

La educación:

El apoyo fuerte de Plone para las normas de accesibilidad y la integración fácil con los sistemas de autenticación de empresa lo hace ideal para el uso en las instituciones educativas.

• Chester County Intermediate Unit

La Unidad Intermedio Chester proporciona servicios a los 12 distritos de la escuela en el Condado de Chester, Pennsylvania. Para impulsar y publicar sitios web primarios hechos en Plone.

• Universidad de Columbia

La Universidad de Columbia está usando Plone para una variedad de proyectos, incluyendo un CMS en el curso de Periodismo de la Escuela Columbia que publica Noticias y brinda Servicio en la Escuela, es utilizado como una herramienta del portafolio, y también como una plataforma de desarrollo de aplicaciones rápidas.

• European Institute for E-Learning (EIfEL)

EIfEL está usando Plone durante varios años para su portal principal (2000 usuarios registrados) el uso de Plone dedicado a los casos para sus eventos principales (las conferencias internacionales del ePortfolio, las conferencias del aprendizaje electrónico en europea) así como para proyectos europeos fundados por la Comisión europea (Gears, Mosep, Efquel).

• Penn State University - Smeal College of Business

Penn State University - Smeal College of Business migró en el 2006 de julio a Plone 2.0.5 y primero lanzó la WebLion, en agosto del mismo año fue rediseñada la migración a Plone 2.5.1 que ha alcanzado mucha atención por la dirección Universitaria y ha incitado otras unidades y universidades para adoptar a Plone como su CMS.

Organizaciones Gubernamentales:

La accesibilidad de Plone, facilidad de uso y su seguridad tan fuerte las características perseguidas y muy apropiadas para todos los tipos de Sitios Web gubernamentales.

13

(26)

• Berna, Suiza

La ciudad de Berna, Suiza impulsa sus sitios web primarios con CMS Plone.

• El Gobierno brasileño

El gobierno brasileño es un líder internacional en el código de fuente abierta. Plone impulsa los Sitios Web principales del Parlamento brasileño, por ejemplo: Portal Cámara de Diputados de Brasil está implementado en Plone y es un portal institucional que soporta tres idiomas, español, inglés y portugués.

El propósito del portal es crear un entorno integrado, que optimice la imagen de la institución, organice su conocimiento-base y provea servicios a todos sus ciudadanos.

• Durban, Sur de África

La ciudad de Durban, en el Sur de África impulsa su Sitio Web primario en Plone.

• El Gobierno de Nueva Zelanda

En Nueva Zelanda, Plone se usa actualmente por www.e.govt.nz (es un programa gubernamental de Nueva Zelanda, dedicado a la observación de la calidad y administración de Galicia), www.electricitycommission.govt.nz (es una empresa que regula las operaciones de la industria eléctrica y el mercado, además de promover y facilitar un uso adecuado de la electricidad), www.companies.govt.nz (es un sitio web que brinda el servicio de directorio gubernamental de empresas) y varias agencias gubernamentales que ya expresan el interés en este CMS.

Otro ejemplo es:

• NASA / los Laboratorios del Motor de reacción de Propulsión

NASA/JPL usan Plone para varios Sitios Web que proyectan incluso los Datos del mismo.

1.2.4 Uso de Plone en Cuba.

En la actualidad con el auge que ha ido tomando el software libre y debido a la necesidad que tienen los países del tercer mundo, esta es una alternativa muy factible para los mismos, en Cuba se han ido tomando medidas para ir migrando poco a poco hacia una plataforma de libre acceso, por lo que hoy en día algunas instituciones en el país ya han tomado la iniciativa y ya han comenzado a usarlas. Todo esto

14

(27)

ha traído como consecuencia que se hayan tenido que cambiar las herramientas de trabajo que antes se utilizaban y se han comenzado a utilizar así las de código abierto. La UCI ha mostrado avances significativos en cuanto a una posterior migración hacia el software libre, contando con una facultad que ha sido faro y guía de este proceso de migración, demostrando que es factible y necesario este cambio, ya se migró totalmente la facultad # 10 y se han ido incorporando otras facultades a este proceso así como muchos proyectos de producción ya están tomando también esta iniciativa.

Por la necesidad que presentan la mayoría de las empresas cubanas de gestionar sus contenidos e informaciones, han optado por el uso de los sistemas gestores de contenidos, para realizar sus sitios web, o intranet, el CMS que más utilizan es Plone, porque brinda muchas facilidades para la gestión de sus contenidos, algunas de las instituciones que utilizan Plone son:

• La Universidad Virtual de Salud en Cuba, es un centro que se encarga de brindar un modelo de aprendizaje en red para la educación médica cubana, impartiendo cursos, discusiones clínicas, estudio de casos, preguntas a expertos, entre otras.

• Periódico Trabajadores, institución que se encarga de divulgar la realidad del país en el ámbito laboral, el mismo incluye informaciones sobre el mundo laboral cubano, la sociedad, la cultura, el deporte, la salud, brindando un suplemento de consejería preventiva para las mujeres, las adolescentes, los niños, entre otros.

• Universidad Virtual Cátedra Manuel Fajardo, es una de las 11 instituciones que forma parte del Instituto Superior de Ciencias Médicas de La Habana, donde se gradúan cada año a Licenciados en Enfermería, Psicólogos, Médicos y Tecnólogos de la Salud para la Atención Primaria de Salud. En dicho centro se estudian además alrededor de 20 especialidades médicas, 16 de tecnología de la salud, 7 de enfermería.

• Infomed es un portal de salud cubana, en el cual se publican noticias, artículos, enlaces, discusión sobre tópicos de salud, además los contenidos que en él se encuentran están dirigidos fundamentalmente a profesionales de la salud.

• La Universidad de las Ciencias Informáticas (UCI), que cuenta con un gran número de proyectos productivos, entre los cuales algunos se implementan utilizando dicho CMS, en la facultad # 3 y 10 se pueden encontrar algunos de estos proyectos que utilizan Plone. Además se le ha asignado a la UCI la realización de algunos de los portales de interés nacional para que sean montados con este CMS como es

15

(28)

el caso de la Agencia Cubana de Noticias, de la revista Bohemia, y destacar además que fue esta institución que monto el portal del periódico Trabajadores en Plone, entre otros proyectos que aun están en fase constructiva.

1.2.5 Apreciación global técnica sobre Plone.

Plone es un administrador de contenidos que trabaja encima de Zope, un servidor de Código Abierto extensamente usado en aplicaciones web y sistemas de desarrollo. Para usar Plone, no se necesita aprender nada sobre Zope.

Zope está escrito en Python, un lenguaje de programación de código abierto, este puede usarse para agregarle nuevos rasgos a Plone, y usarlo para entender cómo hacer cambios y conocer la forma de trabajo de Zope y Plone.

Plone guarda por defecto sus volúmenes en Zope, donde se encuentra construida, la ZODB, que no es más que una base de datos que trae Zope por defecto donde almacena todo el contenido que se gestiona y sus siglas responden a (Base de Datos de Objetos de Zope).

1.3 Zope

Zope es un servidor de aplicación de fuente abierta principalmente escrito en el idioma de programación Python. Ofrece una base de datos de objeto transaccional que no sólo puede guardar los datos personalizados y satisfactoriamente, también plantillas de HTML dinámicas, scripts, también consta de un artefacto de búsqueda, y la base de datos correlativa (RDBMS) conexiones y código. Ofrece un modelo de desarrollo a través de la web, mientras que permite poner al día su sitio Web desde cualquier parte de en el mundo. Para permitir esto, Zope ofrece un modelo de seguridad herméticamente integrado, construido alrededor del concepto "seguridad de mando", la arquitectura de seguridad de Zope también permite ponerle seguridad a las partes de un sitio Web de otras organizaciones o individuos. El modelo transaccional no sólo aplica la base de datos de objetos de Zope, sino a muchos conectores de la base de

16

(29)

datos correlativos también, permitiendo una fuerte integridad de los datos. Este modelo de transacción pasa automáticamente, mientras se asegura que todos los datos se guarden con éxito en las fuentes de los datos conectadas cuando una contestación ha sido devuelta a un navegador de la web u otro cliente.

1.3.1 Historia de Zope.

En 1996 Jim Fulton (el actual CTO de Zope Corporation, los distribuidores de Zope) fue escogido para dictar una clase de programación CGI, desanimado por no saber mucho acerca del tema. CGI o

"Common Gateway Interface" (Interfaz común de pasarela) es un lenguaje común de desarrollo web que permite a los desarrolladores construir sitios Web dinámicos. Jim estudió toda la documentación existente de CGI en sus caminos a clase. De vuelta de dictar las clases, Jim considero que a él no le gustaban muchos los entornos de desarrollo tradicional de CGI. Desde ese momento, el núcleo de Zope fue escrito en el vuelo de regreso de las clases.

La Corporación Zope (luego conocida como Digital Creation) libero tres paquetes de software de código libre (open source) que soportaban publicación Web, Bobo, Document Template, y BoboPOS.

Estos paquetes fueron escritos en un lenguaje llamado Python, dando facilidades a la publicación en Web, plantillas de texto, y bases de datos orientadas a objetos. Digital Creations ha desarrollado un servidor de aplicaciones comerciales basado en esos tres componentes de software libre. Este producto fue llamado Principia. En noviembre de 1998, el investigador Hadar Pedhazur convenció a Digital Creations de liberar el código fuente de Principia convirtiéndose así en software libre. Estos componentes han evolucionado en el núcleo de componentes de Zope.

1.3.2 ¿Por qué usar Zope a cambio de otros servidores de aplicaciones?

Zope ayuda potencialmente a crear aplicaciones web con menos costos y mucho mas rápido que con otro servidor de aplicaciones. Esto es debido a características propias de Zope:

• Zope es gratuito y es distribuido bajo licencia de software libre. A cambio de las muchas aplicaciones no libres comerciales las cuales son relativamente costosas.

• Zope por si mismo es una plataforma inclusiva. Trae todos los componentes necesarios para comenzar a desarrollar una aplicación. No es necesario conseguir una licencia extra para complementar Zope (por ejemplo una base de datos relacional) como requisito para comenzar a desarrollar una aplicación. Esto hace que Zope sea muy fácil de instalar. Muchos de los otros servidores de aplicaciones

17

(30)

tienen costos "ocultos" que requieren de una licencia costosa o de una configuración complicada de herramientas de terceros para iniciar a desarrollar una aplicación.

• Zope permite y apoya los desarrollos de terceros para ser distribuidos como aplicaciones listas para usar. A la par, Zope tiene una gran variedad de servicios integrados y módulos disponibles para su uso inmediato. La mayoría de esos componentes, como Zope en si, son gratis y de código abierto. La popularidad de Zope es debida a una gran comunidad de desarrolladores. Muchos de los otros servidores de aplicaciones no cuentan con el apoyo de terceros o cuentan con muy pocos plug-ins.

• Las aplicaciones creadas en Zope pueden escalarse linealmente con el uso de Zope Enterprise Objects (ZEO) solución para clusters. Usando ZEO, puede servir una aplicación Zope basándose en múltiples computadores sin necesidad de cambiar mucho del código de la aplicación. Muchos servidores de aplicaciones no poseen esta escalabilidad de una manera transparente.

• Zope permite a los desarrolladores crear aplicaciones web con el sólo uso de un navegador web.

Puede ser Mozilla, Internet Explorer, Netscape, OmniWeb, Konqueor, Opera, son todos compatibles para mostrar y manejar el entorno de desarrollo de Zope (Zope Management Interface también conocido como ZMI). Zope también permite a los desarrolladores delegar funciones de desarrollo de la aplicación a otros desarrolladores a través de Internet de una manera muy segura usando la misma interfaz. Muy pocos de los demás servidores de aplicaciones proponen este nivel de funcionalidad.

• Zope provee un granular y extensible entorno de desarrollo. Zope se puede integrar fácilmente con diversas sistemas de autenticación y autorización como LDAP, WindowsNT, y RADIUS simultáneamente, usando módulos pre-fabricados. Muchas de los otros servidores de aplicaciones sólo ofrecen algunos de estos sistemas de autenticación y autorización.

• Zope permite que equipos de desarrolladores se colaboren entre si efectivamente. Entornos colaborativos requieren de herramientas que permitan a los usuarios trabajar sin interferir a otro, por eso Zope tiene Deshacer, Versiones, Historial y otras herramientas que ayudan a trabajar seguros y recuperarse de los errores. Muchos de los otros servidores de aplicaciones no ofrecen este tipo de características.

• Zope corre en las plataformas de sistemas operativos más difundidas como: Linux, Windows NT/2000/XP, Solaris, FreeBSD, NetBSD, OpenBSD, y Mac OS X. Zope corre también en Windows 98.

18

(31)

Muchos de los demás servidores de aplicaciones requieren que estés en un sistema determinado que ellos escogen según el tipo de licencia.

• Zope puede ser complementado usando el lenguaje interpretado de scripts Python, este es muy popular y fácil de aprender, y promueve un rápido desarrollo. Muchas librerías están disponibles para Python las cuales pueden ser usadas cuando se está desarrollando una aplicación. Muchos de los demás servidores de aplicaciones deben ser extendidos usando lenguajes como Java, lo cual limita la velocidad de desarrollo y los demás usan lenguajes poco conocidos y que no tienen muchas librerías disponibles para su uso.

1.4 Python

Python es el lenguaje de programación que utiliza Plone, es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas Web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad.

En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:

9 La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.

9 La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.

9 La cantidad de plataformas en las que puede correr no son pocas esto lo hace más poderoso aún, plataformas como Unix, Windows, OS/2, Mac, Amiga y otros.

9 Además, Python es gratuito, incluso para propósitos empresariales.

1.4.1 Historia de Python.

19

(32)

El creador del lenguaje es un europeo llamado Guido Van Rossum. Hace ya más de una década, ayudado y motivado por su experiencia en la utilización de otro lenguaje llamado ABC. El objetivo de Guido era cubrir la necesidad de un lenguaje orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la programación que habitualmente se hacía en Unix usando C.

El desarrollo de Python duró varios años, durante los que trabajó en diversas compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales, después de esto se dedicó a trabajar en Zope, una plataforma de gestión de contenidos y servidor de aplicaciones para web, por supuesto, programada por completo en Python.

1.4.2 Características del lenguaje.

Propósito general

Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.

Multiplataforma

Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él.

Interpretado

Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código.

Interactivo

20

(33)

Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias.

Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente.

Orientado a Objetos

La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables.

Funciones y librerías

Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.

Sintaxis clara

Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar [1].

1.5 Conclusiones

Con la realización de este capitulo se realizó la fundamentación teórica del presente trabajo, abordándose las características fundamentales de Plone, así como de Zope que es el gestor de bases de datos que lo soporta y además las características de Python, que es el lenguaje en el cual está programado dicho CMS, refiriéndose además a las empresas e instituciones que lo utilizan y a la necesidad de su uso.

21

(34)

Capítulo 2

Escoger una metodología de trabajo no es una tarea nada fácil debido a que existe un gran número de estas, es por ello que se necesita hacer un profundo estudio de cada una de ellas, en muchas ocasiones en vez de escoger una para aplicarla a nuestro proyecto se torna tan difícil que se decide optar por desarrollar una metodología propia, siempre y cuando cumpla con el objetivo. En este capítulo se pretende proponer una metodología que guíe a los usuarios en cuanto al trabajo con el CMS Plone.

2.1 Metodologías

• Estudios de los principios que guían, o deberían guiar, la investigación científica. La metodología no habla de la ciencia empírica en el mismo sentido en que la ciencia empírica habla acerca del mundo, ella trata más bien de hacer claro el sentido de la ciencia empírica. [2]

• Parte de la lógica que estudian los métodos. Se divide en dos partes: la sistemática, que fija las normas de la definición, de la división, de la clasificación y de la prueba, y la inventiva, que fija las normas de los métodos de investigación propios de cada ciencia.

• Descripción de la base metodológica para el desarrollo del proyecto y el logro de los resultados esperados.

• La metodología es un conjunto de métodos eficientes orientados a conseguir un objetivo propuesto. [3]

2.1.1 Importancia de las metodologías de investigación

− Permite el análisis reflexivo y crítico de los conceptos teóricos a desarrollar en una investigación.

− Conlleva a la utilización de pasos y procedimientos para resolver problemas cuyas soluciones se hallan por la aplicación del método científico.

- Desarrolla la capacidad de crítica y argumentación a la hora de tomar decisiones frente a los procesos a seguir.

− Es una herramienta fundamental para el desarrollo de las actividades académicas y científicas.

22

(35)

− Establece el rumbo correcto de una investigación asegurando un trabajo eficaz y eficiente frente al logro de los resultados.

2.2 Características de varias metodologías existentes en el mundo.

• Metodología RUP(Racional Unified Process)

• Metodología XP (Extreme Programing)

• Metodología MSF (Microsoft Solution Framework)

• Metodología FDD (Feature Driven Development)

2.2.1 Metodología Rational Unified Process (RUP)

Es una de las más usadas en el mundo de la ingeniería, debido a las grandes ventajas que brinda en cuanto a la calidad de los proyectos que esta le proporciona a quien la utiliza, es una metodología muy amplia y segura. Se divide en cuatro fases de desarrollo muy importantes, las cuales son:

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

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

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

8. Transmisión: el objetivo es llegar a obtener el release del proyecto.

Estas etapas se desarrollan mediante el ciclo de iteraciones, los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes.

Es preciso que se sepa que el ciclo de vida desarrollado por cada iteración, es llevada bajo dos disciplinas:

1.-Disciplina de Desarrollo

Ingeniería de Negocios: Se especifican las necesidades del negocio.

23

(36)

Requerimientos: Se trasladan las necesidades del negocio a un sistema automatizado.

Análisis y Diseño: Se trasladan los requerimientos dentro de la arquitectura de software.

Implementación: Se crea un software que se ajuste a la arquitectura y que tenga el comportamiento deseado.

Pruebas: Hay que asegurar que el comportamiento requerido es el correcto y que todo los solicitado esta presente.

2.-Disciplina de Soporte

- Configuración y administración del cambio: Se guardan todas las versiones del proyecto.

- Administrando el proyecto: Se administran horarios y recursos.

- Ambiente: Se administra el ambiente de desarrollo.

- Distribución: Se hace todo lo necesario para la salida del proyecto

Los elementos del RUP son:

Actividades: Son los procesos que se llegan a determinar en cada iteración.

Trabajadores: Son las personas o entes involucrados en cada proceso.

Artefactos: Un artefacto puede ser un documento, un modelo, o un elemento de modelo.

Algo muy peculiar en esta metodología es que en cada ciclo de iteración, se hace exigente el uso de artefactos, siendo por este motivo, una de las metodologías más importantes para alcanzar un grado de certificación en el desarrollo del software.

Además es una metodología más adaptable para proyectos de largo plazo. [4]

2.2.2 Metodología XP (Extreme Programming)

24

(37)

Hoy en día esta es una de las más exitosas metodologías de desarrollo de software para proyectos de corto plazo, de corto equipo y cuyo plazo de entrega era inmediato. Consiste en una programación rápida o extrema, teniendo como particularidad al usuario final, que es parte del equipo pues es uno de los requisitos para llegar al éxito del proyecto.

Características de XP, 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. Es como si nos adelantáramos a obtener los posibles errores.

- Refabricació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.

- 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é propone XP?

- Empieza en pequeño y añade funcionalidad con retroalimentación continua.

- El manejo del cambio se convierte en parte sustantiva del proceso.

- El costo del cambio no depende de la fase o etapa.

- No introduce funcionalidades antes que sean necesarias.

- El cliente o el usuario se convierte en miembro del equipo.

El cliente tiene derecho a:

25

(38)

- Decidir que se implementa

- Saber el estado real y el progreso del proyecto

- Añadir, cambiar o quitar requerimientos en cualquier momento - Obtener lo máximo de cada semana de trabajo

- Obtener un sistema funcionando cada 3 o 4 meses

El desarrollador tiene derecho a:

- Decidir como se implementan los procesos - Crear el sistema con la mejor calidad posible

- Pedir al cliente en cualquier momento aclaraciones de los requerimientos - Estimar el esfuerzo para implementar el sistema

- Cambiar los requerimientos en base a nuevos descubrimientos

Lo fundamental en este tipo de metodología es:

- La comunicación que se establece entre los usuarios y los desarrolladores - La simplicidad al desarrollar y codificar los módulos del sistema

- La retroalimentación concreta y frecuente del equipo de desarrollo, el cliente y los usuarios finales

2.2.3 Microsoft Solution Framework (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 de MSF:

26

(39)

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

MSF se compone de varios modelos encargados de planificar las diferentes partes implicadas en el desarrollo de un proyecto: Modelo de Arquitectura del Proyecto, Modelo de Equipo, Modelo de Proceso, Modelo de Gestión del Riesgo, Modelo de Diseño de Proceso y finalmente el modelo de Aplicación.

1.- Modelo de Arquitectura del Proyecto: Diseñado para acortar la planificación del ciclo de vida.

Este modelo define las pautas para construir proyectos empresariales a través del lanzamiento de versiones.

2.- Modelo de Equipo: Este modelo ha sido diseñado para mejorar el rendimiento del equipo de desarrollo. Proporciona una estructura flexible para organizar los equipos de un proyecto. Puede ser escalado dependiendo del tamaño del proyecto y del equipo de personas disponibles.

3.- Modelo de Proceso: Diseñado para mejorar el control del proyecto, minimizando el riesgo, y aumentar la calidad acortando el tiempo de entrega. Proporciona una estructura de pautas a seguir en el ciclo de vida del proyecto, describiendo las fases, las actividades, la liberación de versiones y explicando su relación con el Modelo de equipo.

4.- Modelo de Gestión del Riesgo: Diseñado para ayudar al equipo a identificar las prioridades, tomar las decisiones estratégicas correctas y controlar las emergencias que puedan surgir. Este modelo proporciona un entorno estructurado para la toma de decisiones y acciones valorando los riesgos que puedan provocar.

5.- Modelo de Diseño del Proceso: Diseñado para distinguir entre los objetivos empresariales y las necesidades del usuario. Proporciona un modelo centrado en el usuario para obtener un diseño eficiente y

27

(40)

flexible a través de un enfoque iterativo. Las fases de diseño conceptual, lógico y físico proveen tres perspectivas diferentes para los tres tipos de roles: los usuarios, el equipo y los desarrolladores.

6.- Modelo de Aplicación: Diseñado para mejorar el desarrollo, el mantenimiento y el soporte, proporciona un modelo de tres niveles para diseñar y desarrollar aplicaciones software. Los servicios utilizados en este modelo son escalables, y pueden ser usados en un solo ordenador o incluso en varios servidores.

La Metodología MSF se adapta a proyectos de cualquier dimensión y de cualquier tecnología.

2.2.4 Feature Driven Development (FDD)

Esta metodología de desarrollo se utiliza en proyectos con tiempo de desarrollos relativamente cortos y se basa en un proceso iterativo con iteraciones cortas que producen un software funcional. Se divide en 5 fases de desarrollo como son:

• El desarrollo de un modelo general.

• La construcción de la lista de funcionalidades.

• Plan de releases en base a las funcionalidades a implementar.

• Diseñar en base a las funcionalidades.

• Implementar en base a las funcionalidades.

Las dos últimas fases requieren de un mayor período de tiempo durante el desarrollo del proyecto.

El trabajo de desarrollo y modelado se realiza a nivel de grupo y las funcionalidades de implementar los releases se dividen entre los miembros del equipo. Esta metodología define métricas durante el proceso de desarrollo de la aplicación que pueden ser de mucha ayuda en proyectos futuros.

Luego de un estudio de algunas de las metodologías existentes en el mundo y visto todas sus diferencias y semejanzas, se opta por hacer una propuesta de metodología debido a que lo que les falta a una metodología lo tiene otra y así sucesivamente, pues incluso en las fases que resultan coincidentes es notable la diferencia entre una y otra metodología.

2.3 Propuesta de la metodología para trabajar con Plone.

La siguiente propuesta consta de 3 fases, la fase de inicio, la de visión y la de construcción.

28

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

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

Con este trabajo se presenta una versión mejorada del portal web del periódico “Trabajadores” el cual se pretende establecer como sitio modelo a seguir para el desarrollo de

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

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la