Post on 01-Apr-2021
Agradecimientos
USBC`S™ÿ�������*���ôß�������������sé Antonio Echeverría”
Facultad de Ingeniería Industrial Centro de Estudios de Ingeniería y Sistemas
“SISTEMA DE GESTIÓN DE CONTENIDOS XML”
Trabajo de Diploma para optar por el título de Ingeniería en Informática
Autores: Lianet Luaces Torres Ayleen Menéndez Senarega
Tutores: Ing. Yanet Bellón Landa Ing. Renier Valdés González
Ciudad de La Habana Junio de 2006
Resumen
RESUMEN
En la actualidad en la Empresa de Tecnologías de la Información y Servicios
Telemáticos Avanzados (CITMATEL) el manejo de los contenidos se realiza de
manera ineficiente. Para resolver este problema se han aprovechado las ventajas
que brinda la tecnología XML para la gestión de contenidos, teniendo como objetivo:
diseñar e implementar un “Sistema de Gestión de Contenidos XML” que sirva de
núcleo para el manejo de estos en el conjunto de servicios de información de
CITMATEL. El sistema propuesto será portable y genérico, de modo que servirá a los
diferentes proyectos que se desarrollen en CITMATEL.
El presente trabajo constituye la documentación del sistema y resulta de gran
importancia para su comprensión y futuro mantenimiento. En él se realiza un análisis
crítico de los conceptos principales asociados al dominio del problema, se plantean
los objetivos y se compara con los sistemas automatizados existentes vinculados al
campo de acción. Para justificar la selección de las herramientas de trabajo se
analizan las tecnologías actuales. La solución propuesta se describe a través del
modelo del dominio y para representar cómo se construye, se emplean los
mecanismos definidos por UML para aplicaciones Web. Se definen las pautas para el
diseño de la interfaz y se presenta un estudio de factibilidad del sistema.
Índice
ÍNDICE INTRODUCCIÓN .........................................................................................................1
CAPÍTULO I. Fundamentación teórica......................................................................6
Introducción ..............................................................................................................6
1.1- Objeto de estudio...............................................................................................6
1.1.1- Descripción general ....................................................................................6
1.1.2- Situación problémica y problema a resolver ...............................................8
1.2- Procesos objeto de automatización ...................................................................9
1.3- Conceptos principales asociados al dominio del problema ...............................9
1.3.1- Antecedentes históricos de XML.................................................................9
1.3.2- Documentos XML......................................................................................11
1.3.2.1- Elementos...........................................................................................12
1.3.2.2- Atributos .............................................................................................12
1.3.2.3- Comentarios .......................................................................................13
1.3.3- Comparación entre XML y HTML..............................................................13
1.3.4- DTD (Definición de Tipos de Documento).................................................14
1.3.5- El modelo de objetos de documentos DOM..............................................16
1.3.6- XSL (Extended Style Language) ...............................................................16
1.3.7- XML Schemas...........................................................................................17
1.3.8- Aplicaciones y ventajas del XML...............................................................17
1.4- Sistemas automatizados existentes vinculados al campo de acción. Análisis
comparativo con la solución propuesta...................................................................18
1.5- Objetivos..........................................................................................................22
Conclusiones ..........................................................................................................22
CAPÍTULO II. Tendencias y Tecnologías Actuales................................................24
Introducción ............................................................................................................24
2.1- Fundamentación de la metodología utilizada ..................................................24
2.1.1- Unified Modeling Language (UML)............................................................24
2.1.2- Rational Unified Process™ (RUP) ............................................................25
Índice
2.1.3- Rational Rose Enterprise Edition ..............................................................27
2.2- Fundamentación de las herramientas de desarrollo seleccionadas ................28
2.2.1- Tecnologías del lado del Servidor .............................................................28
2.2.1.1- Java....................................................................................................28
2.2.1.2- ASP (Active Server Pages).................................................................28
2.2.1.3- Asp.NET .............................................................................................29
2.2.1.4- PHP (Professional Home Pages) .......................................................30
2.2.2- Tecnologías del lado del cliente ................................................................30
2.2.2.1- HTML (Hyper Text Markup Language) ...............................................31
2.2.2.2- XHTML (eXtensible Hyper Text Markup Language) ...........................31
2.2.2.3- Cascading Style Sheets (CSS)...........................................................31
2.2.2.4- JavaScript...........................................................................................32
2.3- Gestores de Bases de Datos...........................................................................32
2.3.1- PostGreSQL..............................................................................................32
2.3.2- Oracle .......................................................................................................33
2.3.3- Microsoft SQL Server 2000.......................................................................33
2.3.4- MySQL ......................................................................................................34
2.4- Servidores .......................................................................................................34
2.4.1- Servidores Web........................................................................................35
2.4.1.1- Internet Information Server (IIS) .........................................................35
2.4.1.2- Apache ...............................................................................................36
Conclusiones ..........................................................................................................36
CAPÍTULO III. Descripción de la solución propuesta............................................38
Introducción ............................................................................................................38
3.1- ¿Por qué Modelo del Dominio? .......................................................................38
3.2- Glosario de términos del Dominio....................................................................39
3.3- Reglas del negocio ..........................................................................................40
3.4- Representación del Modelo del Dominio .........................................................41
3.5- Requerimientos funcionales ............................................................................41
3.6- Requerimientos no funcionales .......................................................................43
3.7- Actores del sistema .........................................................................................46
Índice
3.8- Paquetes y sus relaciones...............................................................................47
3.9- Diagrama de casos de uso del sistema...........................................................47
3.9.1- Paquete Autenticación ..............................................................................47
3.9.2- Paquete Gestión de Contenidos XML .......................................................48
3.9.3- Paquete Administración ............................................................................48
3.10- Descripción de los casos de uso ...................................................................49
3.10.1- Paquete Autenticación ............................................................................49
3.10.2- Paquete Gestión de Contenidos XML .....................................................50
3.10.3- Paquete Administración ..........................................................................56
Conclusiones ..........................................................................................................63
CAPÍTULO IV. Construcción de la solución propuesta.........................................64
Introducción ............................................................................................................64
4.1- Diagrama de clases del diseño........................................................................64
4.1.1- Paquete Autenticación ..............................................................................64
4.1.1.1- Caso de uso Autenticarse...................................................................64
4.1.2- Paquete Gestión de Contenidos ...............................................................65
4.1.2.1- Caso de uso Crear DTD .....................................................................65
4.1.2.2- Caso de uso Importar XML.................................................................66
4.1.2.3- Caso de uso Mostrar DOM gráficamente ...........................................66
4.1.2.4- Caso de uso Publicar XML .................................................................67
4.1.2.5- Caso de uso Validar XML...................................................................68
4.1.3- Paquete Administración ............................................................................69
4.1.3.1- Caso de uso Administrar documentos XML........................................69
4.1.3.2- Caso de uso Administrar grupos ........................................................72
4.1.3.3- Caso de uso Administrar módulos......................................................75
4.1.3.4- Caso de uso Administrar opciones .....................................................78
4.1.3.5- Caso de uso Administrar privilegios ...................................................81
4.1.3.6- Caso de uso Administrar sitios de publicación ...................................84
4.1.3.7- Caso de uso Administrar usuarios......................................................87
4.2- Principios de diseño.........................................................................................89
4.2.1- Interfaz de usuario ....................................................................................89
Índice
4.2.2- Formato de reportes..................................................................................90
4.2.3- Concepción general de la ayuda...............................................................90
4.2.4- Estilo de código.........................................................................................91
4.2.5- Tratamiento de excepciones .....................................................................93
4.3- Diseño de la base de datos .............................................................................93
4.3.1- Modelo lógico de datos .............................................................................93
4.3.2- Modelo físico de datos ..............................................................................94
4.4- Modelo de despliegue......................................................................................94
4.4.1- Estructura de los nodos ............................................................................95
4.4.2- Modelo de capas.......................................................................................95
4.4.3- Diagrama de despliegue ...........................................................................96
Conclusiones ..........................................................................................................96
CAPÍTULO V. Estudio de Factibilidad.....................................................................98
Introducción ............................................................................................................98
5.1- Planificación basada en casos de uso.............................................................98
5.2- Beneficios de la utilización del sistema..........................................................102
5.2.1- Beneficios tangibles ................................................................................102
5.2.2- Beneficios intangibles .............................................................................103
5.3- Análisis de costo-beneficio ............................................................................103
Conclusiones ........................................................................................................104
CONCLUSIONES ....................................................................................................105
RECOMENDACIONES ............................................................................................106
REFERENCIAS BIBLIOGRÁFICAS ........................................................................107
BIBLIOGRAFÍA .......................................................................................................111
GLOSARIO DE TÉRMINOS ....................................................................................113
ANEXOS ..................................................................................................................117
Índice de tablas
ÍNDICE DE TABLAS Tabla 1. Descripción de los actores del sistema. .......................................................46
Tabla 2. Descripción del caso de uso Autenticarse....................................................49
Tabla 3. Descripción del caso de uso Importar XML. .................................................50
Tabla 4. Descripción del caso de uso Mostrar DOM gráficamente.............................51
Tabla 5. Descripción del caso de uso Validar XML. ...................................................53
Tabla 6. Descripción del caso de uso Crear DTD. .....................................................54
Tabla 7. Descripción del caso de uso Publicar XML. .................................................55
Tabla 8. Descripción del caso de uso Administrar documentos XML.........................56
Tabla 9. Descripción del caso de uso Administrar usuarios. ......................................57
Tabla 10. Descripción del caso de uso Administrar grupos........................................58
Tabla 11. Descripción del caso de uso Administrar módulos. ....................................59
Tabla 12. Descripción del caso de uso Administrar opciones. ...................................60
Tabla 13. Descripción del caso de uso Administrar sitios de publicación...................61
Tabla 14. Descripción del caso de uso Administrar privilegios...................................62
Tabla 15. Estructura de los nodos..............................................................................95
Tabla 16. Factor de Peso de los Actores sin ajustar (UAW).......................................98
Tabla 17. Factor de Peso de los Casos de Uso sin ajustar (UUCW). .......................99
Tabla 18. Factores técnicos (TCF). ............................................................................99
Tabla 19. Factores de Ambiente (EF). .....................................................................100
Índice de figuras
ÍNDICE DE FIGURAS Figura 1. Conjuntos de SGML, XML y HTML .............................................................10
Figura 2. Compartimiento de documentos entre dos aplicaciones. ............................11
Figura 3. Fases, iteraciones y disciplinas. ..................................................................25
Figura 4. Servidor Web...............................................................................................35
Figura 5. Representación del Modelo del Dominio.....................................................41
Figura 6. Paquetes y sus relaciones. .........................................................................47
Figura 7. Diagrama de casos de uso. Paquete Autenticación. ...................................47
Figura 8. Diagrama de casos de uso. Paquete Gestión de Contenidos XML.............48
Figura 9. Diagrama de casos de uso. Paquete Administración. .................................48
Figura 10. Diagrama de clases del caso de uso Autenticarse....................................64
Figura 11. Diagrama de clases del caso de uso Crear DTD. .....................................65
Figura 12. Diagrama de clases del caso de uso Importar XML. .................................66
Figura 13. Diagrama de clases del caso de uso Mostrar DOM gráficamente.............66
Figura 14. Diagrama de clases del caso de uso Publicar XML. .................................67
Figura 15. Diagrama de clases del caso de uso Validar XML. ...................................68
Figura 16. Diagrama de clases del caso de uso Administrar documentos XML
(Insertar).....................................................................................................................69
Figura 17. Diagrama de clases del caso de uso Administrar documentos XML
(Modificar). .................................................................................................................70
Figura 18. Diagrama de clases del caso de uso Administrar documentos XML
(Eliminar). ...................................................................................................................71
Figura 19. Diagrama de clases del caso de uso Administrar grupos (Insertar). .........72
Figura 20. Diagrama de clases del caso de uso Administrar grupos (Modificar)........73
Figura 21. Diagrama de clases del caso de uso Administrar grupos (Eliminar). ........74
Figura 22. Diagrama de clases del caso de uso Administrar módulos (Insertar)........75
Figura 23. Diagrama de clases del caso de uso Administrar módulos (Modificar). ....76
Figura 24. Diagrama de clases del caso de uso Administrar módulos (Eliminar).......77
Figura 25. Diagrama de clases del caso de uso Administrar opciones (Insertar).......78
Índice de figuras
Figura 26. Diagrama de clases del caso de uso Administrar opciones (Modificar). ...79
Figura 27. Diagrama de clases del caso de uso Administrar opciones (Eliminar). .....80
Figura 28. Diagrama de clases del caso de uso Administrar privilegios (Insertar). ....81
Figura 29. Diagrama de clases del caso de uso Administrar privilegios (Modificar)...82
Figura 30. Diagrama de clases del caso de uso Administrar privilegios (Eliminar). ...83
Figura 31. Diagrama de clases del caso de uso Administrar sitios de publicación
(Insertar).....................................................................................................................84
Figura 32. Diagrama de clases del caso de uso Administrar sitios de publicación
(Modificar). .................................................................................................................85
Figura 33. Diagrama de clases del caso de uso Administrar sitios de publicación
(Eliminar). ...................................................................................................................86
Figura 34. Diagrama de clases del caso de uso Administrar usuarios (Insertar)........87
Figura 35. Diagrama de clases del caso de uso Administrar usuarios (Modificar). ....88
Figura 36. Diagrama de clases del caso de uso Administrar usuarios (Eliminar).......89
Figura 37. Modelo lógico de datos. ............................................................................93
Figura 38. Modelo físico de datos. .............................................................................94
Figura 39. Diagrama de despliegue. ..........................................................................96
Introducción
INTRODUCCIÓN
La tecnología XML comienza a gestarse desde el año 1996, surgiendo como
subconjunto simplificado de su padre SGML, eliminando las partes más engorrosas y
menos útiles de este, cuyo problema fundamental consistía en su excesiva dificultad.
XML, como su antecesor, proporciona un modo consistente y preciso de aplicar
etiquetas para describir las partes que componen un documento y permite el
intercambio de documentos entre diferentes plataformas.
De SGML también procede HTML, aunque siguiendo un enfoque muy distinto al de
XML. HTML es un lenguaje de especificación de contenidos para un tipo específico
de documentos SGML; es decir, mediante este se puede especificar, usando un
conjunto de etiquetas, cómo va a representarse la información en un navegador.
XML ofrece mecanismos más versátiles de mostrar datos, representando
documentos XML en los navegadores Web, de una forma más sofisticada que los
documentos HTML, ya que XML no solo proporciona una sintaxis, sino también una
semántica. Debido a que la información en los documentos XML está etiquetada por
su significado de forma precisa, se puede localizar más claramente que en
documentos HTML. La información contenida puede ser más rica y fácil de usar,
porque las habilidades hipertextuales de XML son mayores que las de HTML. La
información es más accesible y reutilizable, porque la flexibilidad de las etiquetas de
XML pueden utilizarse sin tener que amoldarse a reglas específicas de un fabricante.
Debido a las ventajas que brinda la tecnología XML para el manejo de contenidos, ha
tenido una gran aceptación a nivel mundial. Nuestro país también se ha visto inmerso
en este giro tecnológico, y en particular la Empresa de Tecnologías de la Información
y Servicios Telemáticos Avanzados, CITMATEL, que la está asimilando para mejorar
los servicios que brinda. El manejo de los contenidos, utilizando esta tecnología, en
los servicios de información de CITMATEL, constituye el campo de acción.
CITMATEL tiene la misión de satisfacer con soluciones integrales de alto valor
agregado y profesionalidad, las necesidades de productos y servicios en Tecnologías
1
Introducción
de la Información y las Comunicaciones (TIC) a clientes nacionales y foráneos, con
ofertas de alta competitividad, como consecuencia de la aplicación de la ciencia e
innovación tecnológica.
Su objeto social es desarrollar, implementar y comercializar productos y tecnologías
de información de alto valor agregado, aplicando permanentemente la ciencia y la
innovación tecnológica. Realiza investigaciones, actividades de desarrollo,
innovación tecnológica e introducción de nuevas tecnologías. Participa en la
Informatización de las entidades del Ministerio de Ciencia, Tecnología y Medio
Ambiente.
Para la administración de los servicios que se encuentran en los distintos sitios Web
de la empresa se utilizan contenidos de sitios Web externos, teniendo que delimitar,
de las páginas HTML, las partes correspondientes a los contenidos que realmente se
necesitan, siendo esta una tarea muy engorrosa, ya que HTML se centra en la
representación en la pantalla de la información, es decir, están ligados los contenidos
con su estructura física o presentación. Una vez determinado el contenido a utilizar
resulta complejo adaptarlo a la estructura de presentación de contenidos de los
servicios de información de CITMATEL.
Otra dificultad importante es el permanente acceso a los servidores de bases de
datos para extraer los datos y mostrarlos de forma dinámica en las páginas. Todo
esto trae consigo un alto consumo de tiempo y recursos.
Esta situación conlleva a plantear el siguiente problema:
No existe una aplicación única, portable y genérica, que sirva de núcleo para la
gestión de contenidos entre los servicios de información de CITMATEL.
El Sistema de Gestión de Contenidos XML propuesto en este trabajo pretende dar
solución a los problemas planteados y para ello debe cumplir con los siguientes
objetivos:
Objetivo general:
2
Introducción
Diseñar e implementar una aplicación Web que sirva de núcleo para la gestión de
contenidos XML del conjunto de servicios de información de CITMATEL.
Objetivos específicos:
Diseñar una interfaz Web adecuada para el trabajo de los especialistas en
información y gestión de contenidos de la UEB (Unidad Empresarial de Base)
Servicios Web de CITMATEL.
Permitir a los especialistas en información y gestión de contenidos de la UEB
Servicios Web de CITMATEL generar, publicar, graficar y validar contenidos XML.
Establecer una organización de los contenidos que permita la reutilización de los
mismos por los distintos servicios de información de CITMATEL.
Permitir la interacción con otros sitios Web que generen contenidos XML que se
deseen incorporar a los servicios de CITMATEL.
Independizar la publicación de los contenidos de las conexiones a las bases de
datos.
Implementar una aplicación que sea portable y pueda incluirse como módulo en el
conjunto de servicios de información de CITMATEL.
Para alcanzar los objetivos propuestos es necesario llevar a cabo las siguientes
tareas:
Análisis detallado del manejo de los contenidos en el conjunto de servicios de
información de CITMATEL y de las limitaciones que presenta.
Estudio de otros sistemas de este tipo existentes en el mundo, sus beneficios y
limitaciones.
Estudio y documentación de la tecnología XML y las herramientas de desarrollo
de software disponibles para la implementación del sistema.
Definición de requerimientos del sistema.
Análisis y diseño del sistema para garantizar que el producto satisfaga las
necesidades de los usuarios.
3
Introducción
Estudio de factibilidad del proyecto de desarrollo del sistema propuesto.
Con el cumplimiento de las tareas antes citadas y la implementación del sistema
propuesto se logrará constituir una herramienta de trabajo diario, brindando
facilidades como ahorro de tiempo y recursos. Con la utilización de la tecnología XML
las páginas se cargan más rápido y se agiliza la gestión de contenidos, ya que no se
requiere del acceso a las bases de datos pues estos están en formato XML. El
sistema propuesto será portable y genérico, de modo que servirá a los diferentes
proyectos que se desarrollen en la empresa. Además beneficiará a los usuarios
finales, para los que CITMATEL confecciona los sitios, pues los contenidos que se
exponen se harán más visibles y comprensibles, habrá una contribución al uso de las
nuevas tecnologías, se elevará el número de visitantes a sus sitios y la fidelidad de
estos a los mismos.
El Sistema de Gestión de Contenidos XML se insertará en la Red Cubana de la
Ciencia, que es uno de los proyectos de CITMATEL. Su puesta en funcionamiento
contribuirá a lograr varios de los resultados que este proyecto se propone alcanzar.
Representa un aporte al desarrollo del plan de informatización de la sociedad y el
empleo eficiente de las TIC, lo que contribuye con la batalla de ideas que se lleva a
cabo en el país.
El presente trabajo de diploma está dividido en capítulos ordenados según las fases
que propone la metodología empleada, lo que facilita la localización de los distintos
temas abordados.
El Capítulo I está dedicado al estudio teórico, se realiza una descripción de los
principales conceptos asociados al dominio del problema que son necesarios para
entender el negocio, las dificultades que presenta este último y la propuesta de
solución; se fundamenta el objeto de estudio del proyecto de software; se plantean
los objetivos del mismo y además se analizan los sistemas automatizados existentes
vinculados al campo de acción.
En el Capítulo II se realiza un estudio de las tendencias y tecnologías actuales sobre
las que se apoya el sistema propuesto. De este modo, se fundamentan las que han
4
Introducción
sido seleccionadas para implementarlo, así como la metodología seguida para el
desarrollo del mismo.
En el Capítulo III se describe la solución propuesta a través del modelo del dominio,
los requerimientos funcionales y no funcionales, los casos de uso del sistema y sus
diagramas correspondientes, lo cual proporciona un mayor volumen de información
para el entendimiento de las características y funcionalidades del sistema.
En el Capítulo IV se representan los diferentes diagramas relacionados con la
construcción de la solución propuesta, la estructuración en capas que se utilizó, los
diagramas de clases, el diseño de la base de datos y las pautas de diseño seguidas
para elaborar la interfaz de usuario.
Finalmente, en el Capítulo V se incluye el estudio de factibilidad del proyecto, que
refleja en números el costo en tiempo y dinero que reporta el desarrollo del sistema
propuesto. Se resumen los beneficios tangibles e intangibles que reportaría la
implantación del Sistema de Gestión de Contenidos XML.
5
Capítulo I. Fundamentación teórica
CAPÍTULO I. Fundamentación teórica
Introducción
Tomando como punto de partida la bibliografía consultada para introducir el tema del
manejo de contenidos XML, en este capítulo se presentan las bases de la
investigación realizada en el campo del desarrollo de sistemas de gestión de
contenidos XML, así como las soluciones existentes que más se asemejan al sistema
que se propone.
Con la información disponible a continuación se facilita la comprensión de la
necesidad, actualidad, aplicación y beneficios que reporta el sistema propuesto.
1.1- Objeto de estudio
1.1.1- Descripción general
La Empresa de Tecnologías de la Información y Servicios Telemáticos Avanzados,
CITMATEL, se caracteriza por una alta calidad de sus productos y servicios, una
eficiencia organizacional que adapta su desempeño al entorno, ser líder por su haber
científico y tecnológico en el país, ser competitiva en el mercado, posicionar
sistemáticamente nuevos productos y poseer un personal altamente calificado y de
vasta experiencia, hacedor y creativo.
Tiene la misión de satisfacer con soluciones integrales de alto valor agregado y
profesionalidad, las necesidades de productos y servicios en Tecnologías de la
Información y las Comunicaciones a clientes nacionales y foráneos, con ofertas de
alta competitividad, como consecuencia de la aplicación de la ciencia e innovación
tecnológica.
Su objeto social es desarrollar, implementar y comercializar productos y tecnologías
de información, aplicando permanentemente la ciencia y la innovación tecnológica. Realiza consultoría, proyectos, soluciones de conectividad, venta e instalación de
equipamiento, desarrollo de software y aplicaciones, asistencia técnica, servicios
6
Capítulo I. Fundamentación teórica
postventa, capacitación presencial y en línea; servicios y aplicaciones de Internet en
todo el territorio nacional y para el extranjero. Brinda servicios asociados a
producciones digitales de información y ediciones electrónicas hipermediales y
multisensoriales sobre soportes ópticos y para redes. Realiza investigaciones,
actividades de desarrollo, innovación tecnológica e introducción de nuevas
tecnologías. Participa en la Informatización de las entidades del Ministerio de
Ciencia, Tecnología y Medio Ambiente y realiza actividad exportadora.
Sus principales acciones estratégicas son: potenciar la actividad de innovación, el
desarrollo e investigación aplicada en las tecnologías de la información para elevar la
calidad y competitividad de los productos y servicios; continuar la modernización y
potenciación de la infraestructura de la red a nivel nacional; brindar nuevos servicios
de valor agregado para la red; promover el empleo del comercio electrónico y la
educación a distancia; desarrollo de servicios WAP; promover soluciones integradas
de redes; realizar alianzas estratégicas con proveedores de contenidos, de
tecnología, para la comercialización en el exterior, y con otras instituciones para la
rápida introducción de productos y servicios innovadores en el catálogo; fidelizar a
los grandes clientes satisfaciendo sus necesidades mediante soluciones integrales a
la medida.
CITMATEL se encuentra inmersa en la introducción de la tecnología XML, la cual ha
tenido una gran aceptación a nivel mundial debido a las ventajas que brinda. La
asimilación de esta tecnología posibilitará una mejora sustancial en el manejo de los
contenidos en los servicios de información de la empresa, lo cual constituye el campo
de acción.
Actualmente para gestionar los contenidos de los servicios de información que
atiende la UEB Servicios Web de CITMATEL, los administradores tienen que
importarlos manualmente de otros sitios y delimitar los contenidos que realmente
necesitan de la presentación, debido a la utilización de documentos HTML. Por otra
parte, los constantes accesos a los servidores de bases de datos implican una gran
dependencia del buen funcionamiento de los mismos. Todo esto trae consigo un alto
consumo de tiempo y recursos.
7
Capítulo I. Fundamentación teórica
Entre los proyectos de CITMATEL se encuentra la Red Cubana de la Ciencia, que es
donde se insertará el Sistema de Gestión de Contenidos XML; contribuyendo así a
lograr varios de los resultados que este proyecto se propone alcanzar, entre los que
se encuentran: proporcionar múltiples medios de presentar los contenidos, ampliar la
utilización de las nuevas tecnologías de la información y las comunicaciones y
fomentar la colaboración e interacción entre los servicios de información [CITMA,
2005].
1.1.2- Situación problémica y problema a resolver
El conjunto de servicios de información de CITMATEL está liderado por el portal
Cuba (http://www.cuba.cu) e incluye también el portal de la Red Cubana de la
Ciencia (http://www.redciencia.cu), entre otros. Este último aporta un giro tecnológico
en el desarrollo de aplicaciones Web dentro de la UEB Servicios Web de CITMATEL.
Actualmente la empresa desarrolla distintas aplicaciones, como por ejemplo para
móviles y palms, que no utilizan código HTML, pero que manejan, gestionan y
publican los mismos contenidos que utilizan las aplicaciones Web, entre otros.
Para la administración de los servicios de los distintos sitios se utilizan contenidos de
sitios Web externos, teniendo que delimitar, de las páginas HTML, las partes
correspondientes a los contenidos que realmente se necesitan, siendo esta una tarea
muy engorrosa, ya que HTML se centra en la representación en la pantalla de la
información, es decir, están ligados los contenidos con su estructura física o
presentación. Una vez determinado el contenido a utilizar resulta complejo adaptarlo
a la estructura de presentación de contenidos del conjunto de servicios de
información de CITMATEL.
Otra dificultad importante es el permanente acceso a los servidores de bases de
datos para extraer los datos y mostrarlos de forma dinámica en las páginas. El
acceso a datos almacenados en ficheros XML, como resultado, ofrece al cliente una
página que muestra la información más rápidamente.
Esta situación conlleva a plantear el siguiente problema:
8
Capítulo I. Fundamentación teórica
No existe una aplicación única, portable y genérica, que sirva de núcleo para la
gestión de contenidos entre los servicios de información de CITMATEL.
1.2- Procesos objeto de automatización
Los procesos que serán objeto de automatización son:
Publicación de documentos en los múltiples servicios de información de
CITMATEL.
Gestión de la estructura de los documentos XML.
Importación de contenidos XML desde diversos sitios Web.
Validación de los contenidos XML que se gestionan en el sistema.
Control de usuarios autorizados a interactuar con el sistema.
1.3- Conceptos principales asociados al dominio del problema
1.3.1- Antecedentes históricos de XML
En noviembre de 1996, en una conferencia sobre el antecesor de XML, SGML
(Standar Generalized Markup Language), se presenta un reporte técnico inicial
respecto a XML. En marzo de 1997 se realiza la primera conferencia sobre XML, aún
con solo la idea general al respecto; en octubre de 1997 el World Wide Web
Consortium (W3C) define algunos lineamientos fundamentales, para tener la primera
edición del estándar publicada en diciembre de 1997.
Las motivaciones fundamentales del grupo de trabajo W3C eran desarrollarlo para
ser usado en Internet; hacerlo pensando en los desarrolladores, proveedores de
contenido, buscadores y todos los demás actores; que fuese relativamente fácil
hacer programas para XML; que no hubiesen aspectos opcionales de XML, pues son
ellos los que llevan a la aparición de incompatibilidades y es por ello que XML es
mucho más estricto que HTML; tratar datos semi-estructurados de la Web; organizar
9
Capítulo I. Fundamentación teórica
colecciones de datos de distintas fuentes y formatos e intercambiar datos entre
diferentes sitios u organizaciones.
Paralelo a los primeros pasos en XSL, entre enero y agosto de 1998 se trabaja en
obtener XQL, XLink y XPointer, que son lenguajes para poder realizar consultas y
referenciar documentos estructurados en XML. En diciembre de 1998 se obtiene una
forma de describir el lenguaje HTML (el usado actualmente en Internet) en términos
de XML y XSL. En enero de 1998 se tiene una versión un poco más estable de XSL y
en febrero de 1998 se prepara el escenario determinando cómo distintas empresas
podían repartir los nombres de los identificadores para evitar confusiones entre ellas.
SGML proporciona un modo consistente y preciso de aplicar etiquetas para describir
las partes que componen un documento, permitiendo además el intercambio de
documentos entre diferentes plataformas. Sin embargo, el problema que se atribuye
a SGML es su excesiva dificultad.
Así que, manteniendo su misma filosofía, de él se derivó XML como subconjunto
simplificado, eliminando las partes más engorrosas y menos útiles. Como su padre,
XML es un metalenguaje, o sea, un lenguaje para definir lenguajes. Los elementos
que lo componen pueden dar información sobre lo que contienen, no necesariamente
sobre su estructura física o presentación, como ocurre en HTML.
Mediante XML también se podría definir el HTML, con lo que se podrían considerar
los siguientes conjuntos:
Figura 1. Conjuntos de SGML, XML y HTML
10
Capítulo I. Fundamentación teórica
XML no ha nacido solo para su aplicación en Internet, sino que se propone como
lenguaje de bajo nivel (a nivel de aplicación, no de programación) para intercambio
de información estructurada entre diferentes plataformas. Se puede usar en bases de
datos, editores de texto, hojas de cálculo, y casi cualquier cosa que se pueda pensar.
Se puede suponer de este modo que XML constituye la capa más baja dentro del
nivel de aplicación, sobre el que se puede montar cualquier estructura de tratamiento
de documentos, hasta llegar a la presentación. Observándose así, cómo se
comparten documentos entre dos aplicaciones como intercambio de datos a ese
nivel:
Figura 2. Compartimiento de documentos entre dos aplicaciones.
Dado que XML tiene una perspectiva Web-céntrica, la mayoría de los programas
están hechos en Java, un lenguaje multiplataforma, optimizado para lograr un alto
grado de compatibilidad. Estos programas están orientados a implementar el análisis
de un documento XML, la transformación de documentos XSL y el formateo y
visualización de los mismos [Castillo, 2004] [Delgado, 2001] [Merino, 2003].
1.3.2- Documentos XML
Un documento XML tiene dos estructuras, una lógica y otra física. Físicamente, el
documento está compuesto por unidades llamadas entidades. Una entidad puede
hacer referencia a otra, causando que esta se incluya en el documento. Cada
documento comienza con una entidad documento, también llamada raíz. Lógicamente,
el documento está compuesto de declaraciones, elementos, comentarios, referencias a
caracteres e instrucciones de procesamiento, todos los cuales están indicados por una
11
Capítulo I. Fundamentación teórica
marca explícita. Las estructuras lógica y física deben encajar de manera adecuada
[Lechuga, 2004].
Los documentos XML se dividen en dos grupos: documentos bien formados y
documentos válidos.
Bien formados: son todos los que cumplen las especificaciones del lenguaje
respecto a las reglas sintácticas, sin estar sujetos a unos elementos fijados en un
DTD. De hecho los documentos XML deben tener una estructura jerárquica muy
estricta y los documentos bien formados deben cumplirla.
Válidos: Además de estar bien formados, siguen una estructura y una semántica
determinada por un DTD: sus elementos y sobre todo la estructura jerárquica que
define el DTD, además de los atributos, deben ajustarse a lo que el DTD dicte
[Merino, 2003].
1.3.2.1- Elementos
Los elementos XML pueden tener contenido (más elementos, caracteres, o ambos a
la vez), o bien ser elementos vacíos.
Siempre empieza con una <etiqueta> que puede contener atributos o no, y termina
con una </etiqueta> que debe tener el mismo nombre. Al contrario que HTML, en
XML siempre se debe "cerrar" un elemento.
Hay que tener en cuenta que el símbolo "<" siempre se interpreta como inicio de una
etiqueta XML. Si no es el caso, el documento no estará bien-formado. Para usar
ciertos símbolos se usan las entidades predefinidas [Reino, 2000].
1.3.2.2- Atributos
Los elementos pueden tener atributos, que son una manera de incorporar
características o propiedades a los elementos de un documento.
En una Definición de Tipo de Documento, se especifican los atributos que puede
tener cada tipo de elemento, así como sus valores y tipos de valor posible.
12
Capítulo I. Fundamentación teórica
Al igual que en otras cadenas literales de XML, los atributos pueden estar marcados
entre comillas simples (') o dobles ("). Cuando se usa uno para delimitar el valor del
atributo, el otro tipo se puede usar dentro.
A veces, un elemento con contenido, puede modelarse como un elemento vacío con
atributos. Un concepto se puede representar de muy diversas formas, pero una vez
elegida una, es aconsejable fijarla en el DTD, y usar siempre la misma
consistentemente dentro de un documento XML [Reino, 2000].
1.3.2.3- Comentarios
A veces es conveniente insertar comentarios en el documento XML, que sean
ignorados por el procesado de la información y las reproducciones del documento.
Los comentarios tienen el mismo formato que los comentarios de HTML. Es decir,
comienzan por la cadena "<!--" y terminan con "-->".
Se pueden introducir comentarios en cualquier lugar de la instancia o del prólogo, pero
nunca dentro de las declaraciones, etiquetas, u otros comentarios [Reino, 2000].
1.3.3- Comparación entre XML y HTML
XML no es una versión nueva de HTML. Aunque los dos proceden de un mismo
metalenguaje, el SGML, el origen y enfoque que se ha seguido en ambos es muy
distinto.
HTML, no es un lenguaje de programación, es un lenguaje de especificación de
contenidos para un tipo específico de documentos SGML; es decir, mediante HTML
se puede especificar, usando un conjunto de etiquetas o tags, cómo va a
representarse la información en un navegador; o sea, es un lenguaje enfocado a la
presentación del contenido.
XML conserva todas las propiedades importantes del antes mencionado SGML; es
decir, XML es un metalenguaje, dado que con él se puede definir un lenguaje propio
de presentación y, a diferencia del HTML, que se centra en la representación en la
pantalla de la información, XML se centra en la información en sí misma. El objetivo
del desarrollo del XML es ser un estándar que sustituya a todo el conjunto de
13
Capítulo I. Fundamentación teórica
tecnologías que permiten hoy acceder a información a través del Web [Lechuga,
2004].
1.3.4- DTD (Definición de Tipos de Documento)
Los DTD son definiciones de los elementos que puede incluir un documento XML, de
la forma en que deben hacerlo (qué elementos van dentro de otros) y los atributos
que se les puede dar.
Hay varios modos de referenciar un DTD en un documento XML:
Incluir dentro del documento una referencia al documento DTD en forma de URI
(Universal Resource Identifier, o identificador universal de recursos).
Incluir dentro del propio documento el DTD.
En cuanto a la definición de los elementos, es bastante intuitiva: después de la
cláusula <!ELEMENT se incluye el nombre del elemento y después diferentes cosas
en función del elemento:
entre paréntesis, si el elemento es no vacío, se indica el contenido que puede
tener el elemento: la lista de elementos hijos o que descienden de él si los tiene,
separados por comas; o el tipo de contenido, normalmente #PCDATA, que indica
datos de tipo texto, que son los más habituales.
si es un elemento vacío, se indica con la palabra EMPTY.
A la hora de indicar los elementos descendientes (los que están entre paréntesis)
estos pueden ir seguidos de caracteres especiales: '+', '*', '?' y '|'. Sirven para indicar
qué tipo de uso se permite hacer de esos elementos dentro del documento:
+: uso obligatorio y múltiple; permite uno o más elementos de ese tipo dentro del
elemento padre, pero como mínimo uno.
*: opcional y múltiple; puede no haber ninguna ocurrencia, una o varias.
?: opcional pero singular; puede no haber ninguno o como máximo uno.
|: equivale a un OR, es decir, da la opción de usar un elemento de entre los que
forman la expresión, y solo uno.
14
Capítulo I. Fundamentación teórica
Un documento XML presenta una jerarquía muy determinada, definida en el DTD si
es un documento válido, pero siempre inherente al documento en cualquier caso
(siempre se puede inferir esa estructura a partir del documento sin necesidad de
tener un DTD en el que basarse), con lo que se puede representar como un árbol de
elementos. Existe un elemento raíz, que siempre debe ser único (sea el documento
válido o solo bien formado) y que se llamará como el nombre que se ponga en la
definición del <!DOCTYPE si está asociado a un DTD o cualquiera que se desee en
caso contrario. De él descienden las ramas de sus respectivos elementos
descendientes o hijos.
El DTD, por ser precisamente la definición de esa jerarquía, describe precisamente la
forma de ese árbol. La diferencia está en que el DTD define la forma del árbol de
elementos, y un documento XML válido puede basarse en ella para estructurarse,
aunque no tienen que tener en él todos los elementos, si el DTD no te obliga a ello.
Un documento XML bien formado solo tendrá que tener una estructura jerarquizada,
pero sin tener que ajustarse a ningún DTD concreto.
Para la definición de los atributos, se usa la declaración <!ATTLIST, seguida de:
el nombre de elemento del que se están declarando los atributos.
el nombre del atributo.
los posibles valores del atributo, entre paréntesis y separados por el carácter |,
que al igual que para los elementos, significa que el atributo puede tener uno y
solo uno de los valores incluidos entre paréntesis. Si no hay valores definidos, se
escribe CDATA para indicar que puede ser cualquier valor. También se puede
indicar con la declaración ID que el valor alfanumérico que se le dé será único en
el documento, y se podrá referenciar ese elemento a través de ese atributo y
valor.
de forma opcional y entrecomillado, un valor por defecto del atributo si no se
incluye otro en la declaración.
si es obligatorio cada vez que se usa el elemento en cuestión declarar este
atributo, es necesario declararlo con la cláusula #REQUIRED; si no lo es, se debe
15
Capítulo I. Fundamentación teórica
poner #IMPLIED, o #FIXED si el valor de dicho atributo se debe mantener fijo a lo
largo de todo el documento para todos los elementos del mismo tipo [Merino,
2003].
1.3.5- El modelo de objetos de documentos DOM
El modelo de objetos de documentos del W3Consortium (W3C), o Document Object
Model (DOM) es una representación interna estándar de la estructura de un
documento, y proporciona un interfaz al programador (API) para poder acceder de
forma fácil, consistente y homogénea a sus elementos, atributos y estilo. Es un
modelo independiente de la plataforma y del lenguaje de programación.
El objetivo es que cualquier script pueda ejecutarse de forma más o menos
homogénea en cualquier navegador que soporte dicho DOM [Merino, 2003].
1.3.6- XSL (Extended Style Language)
El XSL es un lenguaje que permite definir una presentación o formato para un
documento XML. Un mismo documento XML puede tener varias hojas de estilo XSL
que lo muestren en diferentes formatos (HTML, PDF, RTF, VRML, PostScript,
sonido, etc.).
Básicamente, XSL es un lenguaje que define una transformación entre un documento
XML de entrada, y otro documento XML de salida.
Una hoja de estilo XSL es una serie de reglas que determinan cómo va a ocurrir la
transformación. Cada regla se compone de un patrón (pattern) y una acción o
plantilla (template).
De este modo, cada regla afecta a uno o varios elementos del documento XML. El
efecto de las reglas es recursivo, para que un elemento situado dentro de otro
elemento pueda ser también transformado. La hoja de estilo tiene una regla raíz que,
además de ser procesada, llama a las reglas adecuadas para los elementos hijos
[Reino, 2000].
16
Capítulo I. Fundamentación teórica
1.3.7- XML Schemas
Un "schema XML" es algo similar a un DTD, es decir, que define qué elementos
puede contener un documento XML, cómo están organizados, y qué atributos y de
qué tipo pueden tener sus elementos.
Los schemas usan sintaxis de XML, al contrario que los DTD; permiten especificar
los tipos de datos y son extensibles [Reino, 2000].
1.3.8- Aplicaciones y ventajas del XML
Algunas de las aplicaciones de XML son:
Ofrecer mecanismos más versátiles de mostrar datos, representando documentos
XML en los navegadores Web, de una forma más sofisticada que los documentos
HTML, ya que XML no solo proporciona una sintaxis, sino también una
semántica.
Implementar buscadores inteligentes. Debido a que la información en los
documentos XML está etiquetada por su significado de forma precisa, se puede
localizar más claramente que en documentos HTML. Con DTD estandarizados
para distintas aplicaciones (librerías, tiendas de deportes, catálogos de
componentes) se podrían programar buscadores Web que recuperasen
información sobre un producto de cualquier sitio Web en el mundo sabiendo que
todos tendrán el mismo formato de datos, aunque no tengan necesariamente la
misma representación gráfica.
Intercambio de información entre sistemas heterogéneos. El fundamento es el
mismo que para los buscadores inteligentes. Debido a que el DTD proporciona un
formato estándar para representar la información de un tema específico, puede
usarse para simplificar el intercambio de información entre distintas fuentes.
Las principales ventajas del XML son:
Los autores y proveedores pueden diseñar sus propios tipos de documentos
usando XML, en vez de limitarse a HTML. Los tipos de documentos pueden ser
17
Capítulo I. Fundamentación teórica
explícitamente hechos a la medida de una audiencia, autores y diseñadores serán
libres de inventar sus propias etiquetas.
La información contenida puede ser más rica y fácil de usar, porque las
habilidades hipertextuales de XML son mayores que las de HTML.
XML puede dar más y mejores facilidades para la representación en los
visualizadores.
Elimina muchas de las complejidades de SGML, en favor de la flexibilidad del
modelo, con lo que la escritura de programas para manejar XML es más sencilla
que haciendo el mismo trabajo en SGML.
La información es más accesible y reutilizable, porque la flexibilidad de las
etiquetas de XML permite que se utilicen sin tener que amoldarse a reglas
específicas de un fabricante, como es el caso de HTML.
Los ficheros XML válidos, lo son también en SGML, luego pueden utilizarse
igualmente fuera de la Web, en un entorno SGML [Lechuga, 2004].
Los contenidos XML se pueden representar con HTML y XSL, esto lo hace más
portable y reafirma que su propósito principal es el contenido y la independencia
de este de la forma de representarlo.
1.4- Sistemas automatizados existentes vinculados al campo de acción. Análisis comparativo con la solución propuesta
En la actualidad existen diversos sistemas (editores XML) con funcionalidades
semejantes a las de la solución propuesta; sin embargo, no se encontró ninguno que
englobe todos los requerimientos y se adecue a las características específicas de la
empresa. Además, la mayoría exigen de un gasto por adquisición muy elevado, no
comparable con los costos en que incurriría la empresa al producirlo por sí misma.
Un editor XML es una herramienta que ofrece facilidades para crear y editar
documentos XML. Existen dos tipos principales:
18
Capítulo I. Fundamentación teórica
Los que representan los ficheros en forma de árbol y permiten construir un
documento trabajando sobre este árbol y formularios adicionales (XML Notepad
de Microsoft o Visual XML).
Los que representan el documento XML en su formato original y que
normalmente son editores de ficheros de texto con facilidades para XML (XED o
PSGML de Emacs).
Entre ambos tipos hay que diferenciar los que trabajan con una DTD y por lo tanto,
validan el contenido de lo que se escribe, y los que simplemente aseguran que el
documento XML es bien formado, es decir, sintácticamente correcto respecto a las
especificaciones del XML [Lechuga, 2004].
A continuación se detallan los editores más significativos con sus características más
relevantes y los inconvenientes que presentan en comparación con la solución que
se propone.
El Authentic es un editor visual de documentos XML, desarrollado por Altova Inc. Las
plantillas visuales, que son presentadas a los usuarios finales, pueden ser
visualmente diseñadas usando el Stylesheet Designer. Soporta XML Schema y DTD.
Puede ser integrado a una base de datos. A pesar de que es gratis, solo está
disponible como aplicación de escritorio o como un plug-in para el Internet Explorer y
se puede ejecutar únicamente sobre la plataforma Windows.
El EditiX es un editor de XML poderoso y fácil de usar, desarrollado por JapiSoft.
Diseñado para ayudar a los programadores de aplicaciones a utilizar los avances de
las tecnologías XML y otras relacionadas. Provee a los usuarios de una extensa
gama de funcionalidades de XML. Tiene ubicación de XPath en tiempo real y
detección de errores de sintaxis. Incluye plantillas por defecto con XML, DTD,
XHTML y XSLT. Su principal inconveniente es su alto costo en el mercado.
El EditML Pro es un editor visual multidocumentos, desarrollado por NetBryx
Technologies, para la creación de documentos XML válidos y bien formados, que es
fácil de usar. Algunas de las funcionalidades son la validación de documentos, la
creación automática de XML, la generación visual de XPath Query, la generación
19
Capítulo I. Fundamentación teórica
automática de DTD y XML Schema, importar XML y ficheros de texto desde una
base de datos y un wizard para la creación de nuevos documentos. Es bastante
integrador pero muy costoso y solamente se puede ejecutar sobre la plataforma
Windows.
El Emilé es un editor de XML, desarrollado por Media Design in Progress. Provee de
diálogos y menús para un trabajo eficiente con documentos XML. Se adapta
automáticamente al DTD actual. Personaliza la interfaz de usuario de acuerdo a sus
necesidades particulares. Se puede ejecutar sobre la plataforma Macintosh
solamente, lo que junto a su alto precio, constituye su mayor desventaja.
El Exchanger es un editor de XML basado en Java, desarrollado por Cladonia Ltd.
Ofrece la validación contra DTD y XML Schema, una vista en forma de árbol para la
edición libre de las etiquetas del documento, búsqueda de expresiones XPath,
diferenciación y unión de documentos XML. Además contiene un debugger de
XSLT, que puede ejecutarse solo o integrado al editor. Al igual que los anteriores es
comercial.
El iXink es un editor de XML de código abierto, desarrollado por Pavel Vrecion.
Chequea que los documentos XML estén bien formados y los valida contra su DTD.
Incluye características como el autocompletamiento, el marcado de sintaxis,
generación de plantillas desde el DTD e importa documentos Excel. A pesar de sus
ventajas se puede ejecutar sobre la plataforma Windows solamente.
El Turbo XML es un ambiente de desarrollo integrado para el trabajo con XML. Fue
desarrollado por TIBCO Software Inc. Incluye facilidades para crear, validar y
convertir XML Schemas, ficheros XML y DTD. Se puede ejecutar únicamente sobre
la plataforma Windows (95/98/NT/2000) y fue creado para su comercialización.
El Ultra XML es un editor, desarrollado por Mai-KG en una versión comercial, que
permite la publicación y creación de documentos. Tiene un árbol XML para facilitar la
navegación y edición del documento. Incluye un editor visual de atributos y entidades
del DTD y una herramienta de creación de hojas de estilo. Presenta los mismos
inconvenientes que el anterior.
20
Capítulo I. Fundamentación teórica
El XML Wrench es un editor para el trabajo con XML y otros ficheros. Permite el
marcado de sintaxis tanto de XML como de CSS, DTD, XSL y RSS. También se
puede utilizar para importar desde HTML, chequear y validar XML y convertirlos
usando XSLT. Fue desarrollado por Nick Moon con fines comerciales y se puede
ejecutar sobre la plataforma Windows solamente.
El XML EditPro es un editor simple de XML para trabajar con documentos XML bien
formados, XSL, XHTML y DTD. Fue desarrollado en C++. Permite la validación de
documentos, tiene una vista de código y una vista en forma de árbol. Aunque es
gratis solo se puede ejecutar sobre la plataforma Windows.
El XML Spy es un editor de documentos para el trabajo con XML, DTD y XSLT,
desarrollado por Altova Inc con fines comerciales. Provee vistas de edición
estructurada y un diseñador gráfico de XSLT. Tiene una vista gráfica de diseño para
los XML Schemas. Permite el salvado de ficheros directamente hacia servidores
FTP. Se puede ejecutar sobre la plataforma Windows solamente [XML Software,
2000].
Muchas son las aplicaciones que existen actualmente para el manejo de contenidos
XML, pero la mayoría no es posible adquirirlas por sus altos costos; otras solo se
pueden implantar en una sola plataforma, y ninguna engloba todos los requerimientos
de la empresa CITMATEL, que consisten en la posibilidad de ejecutarse sobre
cualquier plataforma, fundamentalmente Unix; que cumplan con la política que sigue el
país de trabajar con software libre y de código abierto; que agrupe un conjunto de
funcionalidades como importar y validar documentos XML, mostrar gráficamente su
modelo de objetos, crear sus definiciones de tipo, entre otras, y que sea un sistema
organizado por niveles de acceso por usuarios y grupos, con distintos privilegios de
acceso a los módulos. Es por esto que se considera que la mejor solución es la que se
propone en el presente trabajo.
21
Capítulo I. Fundamentación teórica
1.5- Objetivos
Objetivo general
Diseñar e implementar una aplicación Web que sirva de núcleo para la gestión de
contenidos XML del conjunto de servicios de información de CITMATEL.
Objetivos específicos
Diseñar una interfaz Web adecuada para el trabajo de los especialistas en
información y gestión de contenidos de la UEB Servicios Web de CITMATEL.
Permitir a los especialistas en información y gestión de contenidos de la UEB
Servicios Web de CITMATEL: generar, publicar, graficar y validar contenidos
XML.
Establecer una organización de los contenidos que permita la reutilización de los
mismos por los distintos servicios de información de CITMATEL.
Interactuar con otros sitios Web que generen contenidos XML que se deseen
incorporar a los servicios de CITMATEL.
Independizar la publicación de los contenidos de las conexiones a las bases de
datos.
Implementar una aplicación que sea portable y pueda incluirse como módulo en el
conjunto de servicios de información de CITMATEL.
Conclusiones
Muchas son las alternativas que existen actualmente para el manejo de contenidos
XML, de lo que se trata es de seleccionar aquella que satisfaga mejor las
expectativas del usuario y se adecue a las características del entorno donde será
utilizada. La mayoría de los sistemas existentes en el mundo exigen de un gasto por
adquisición muy elevado, otros no es posible implantarlos en diversas plataformas,
específicamente sobre Unix que es la que existe en la empresa, y ninguno engloba
22
Capítulo I. Fundamentación teórica
todos los requerimientos necesarios; esto los elimina de la lista de posibles
soluciones de la situación problémica planteada.
Contar con una aplicación única que sirva de núcleo para la gestión de contenidos
XML del conjunto de servicios de información de CITMATEL, con una interfaz
sencilla, para los especialistas en información y gestión de contenidos de la UEB
Servicios Web de CITMATEL; permitirá el ahorro de tiempo y recursos en la gestión
de los contenidos de los diferentes proyectos que se desarrollen en la empresa.
Además beneficiará a los usuarios finales, para los que CITMATEL confecciona los
sitios, pues los contenidos que se exponen se harán más visibles y comprensibles,
habrá una contribución al uso de las nuevas tecnologías, se elevará el número de
visitantes a sus sitios y la fidelidad de estos a los mismos.
Para lograr esto es importante la correcta selección de las herramientas a utilizar en
su confección y para ello es necesario analizar las tecnologías y tendencias actuales.
23
Capítulo II. Tendencias y tecnologías actuales
CAPÍTULO II. Tendencias y Tecnologías Actuales
Introducción
Para el desarrollo de las aplicaciones en la actualidad se utilizan herramientas que
garantizan que estas salgan al mercado soportadas por las tecnologías más
avanzadas.
El buen funcionamiento del sistema propuesto depende de la elección correcta de las
tecnologías de que se dispone para su realización. Es por ello que en el presente
capítulo se tienen en cuenta las ventajas y desventajas de las tendencias y
tecnologías actuales, para justificar así el lenguaje de programación, el gestor de
bases de datos y la metodología de análisis y diseño del sistema que fueron
seleccionados.
2.1- Fundamentación de la metodología utilizada
2.1.1- Unified Modeling Language (UML)
UML es un lenguaje de modelado visual y consistente, que unifica varios de los
lenguajes de modelado existentes anteriormente en un único lenguaje orientado a
objetos. Cubre todas las vistas necesarias para desarrollar y luego desplegar los
sistemas. Existe un equilibrio entre expresividad y simplicidad, pues no es difícil de
aprender ni de utilizar.
Comprende un conjunto de estereotipos para la modelación de cualquier proyecto, ya
sea de software, de arquitectura o de cualquier otra rama. Permite representar las
distintas fases de desarrollo por las que atraviesa un software según RUP, mediante
diagramas que relacionan cada uno de los componentes que constituyen el sistema
que se modela. La unión de estos diagramas representa la arquitectura del sistema.
Mediante UML es posible especificar todas las decisiones de análisis, diseño e
implementación, construyéndose así modelos precisos, no ambiguos y completos
[Jacobson, 2000].
24
Capítulo II. Tendencias y tecnologías actuales
Es el estándar para la modelación de la arquitectura de los sistemas en desarrollo y
el resultado de su empleo constituye la documentación que acompañará al sistema
para futuros mantenimientos.
2.1.2- Rational Unified Process™ (RUP)
Rational Unified Process™ (RUP) es una propuesta de proceso para el desarrollo de
software orientado a objeto, que utiliza UML como Lenguaje de Modelamiento
Unificado para describir un sistema, mejora la productividad del equipo de trabajo y
entrega las mejores prácticas del software a todos los miembros del mismo. Es,
además, una metodología de desarrollo de software que intenta integrar todos los
aspectos a tener en cuenta durante el ciclo de vida del software, con el objetivo de
abarcar tanto pequeños como grandes proyectos [Kruchten, 2001].
RUP tiene una estructura bidimensional, dividiendo el proceso en fases, y estas en
flujos de trabajo, lo cual puede observarse en la siguiente figura.
Figura 3. Fases, iteraciones y disciplinas.
RUP divide el desarrollo del software en cuatro fases:
Inicio: Determinar la visión del proyecto.
Elaboración: Determinar la arquitectura óptima.
Construcción: Obtener la capacidad operacional inicial.
Transición: Obtener el release del proyecto.
25
Capítulo II. Tendencias y tecnologías actuales
Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones, que
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.
El ciclo de vida que se desarrolla por cada iteración, es llevada bajo dos disciplinas o
flujos de trabajo:
Disciplina de Desarrollo:
Ingeniería de Negocios: Entendiendo las necesidades del negocio.
Requerimientos: Trasladando las necesidades del negocio a un sistema
automatizado.
Análisis y Diseño: Trasladando los requerimientos dentro de la arquitectura de
software.
Implementación: Creando un software que se ajuste a la arquitectura y que tenga
el comportamiento deseado.
Pruebas: Asegurándose que el comportamiento requerido es el correcto y que
todo lo solicitado está presente.
Disciplina de Soporte:
Configuración y administración del cambio: Guardando todas las versiones del
proyecto.
Administrando el proyecto: Administrando horarios y recursos.
Ambiente: Administrando el ambiente de desarrollo.
Distribución: Hacer todo lo necesario para la salida del proyecto.
Las características distintivas de RUP son las siguientes:
Dirigido por Casos de Uso:
Tiene a los casos de uso como el hilo conductor que orienta las actividades de
desarrollo. Se centra en la funcionalidad que el sistema debe poseer para satisfacer
26
Capítulo II. Tendencias y tecnologías actuales
las necesidades de un usuario (persona, sistema externo, dispositivo) que interactúa
con él.
Centrado en la arquitectura:
La arquitectura involucra los elementos más significativos del sistema y está
influenciada entre otros por plataformas de software, sistemas operativos,
manejadores de bases de datos, protocolos; consideraciones de desarrollo como
sistemas heredados y requerimientos no funcionales. Una vez definida la arquitectura
se puede decir que el sistema tiene “forma”.
Iterativo e incremental:
Esta característica propone dividir el proceso de desarrollo en partes, cada una de
las cuales incluya las fases de: Requerimientos, Análisis, Diseño, Implementación y
Pruebas, con el objetivo de acelerar el ritmo de desarrollo para que el producto salga
al mercado en el menor tiempo posible y con mayor calidad.
Cualquier tipo de proyecto (incluidos los pequeños, los basados en Web, aquellos
fundamentales para un proyecto y los proyectos integrados) permiten obtener unos
resultados más acordes con las previsiones gracias a la aplicación del proceso
RUP™ [Jacobson, 2000].
2.1.3- Rational Rose Enterprise Edition
Rational Rose Enterprise Edition es una herramienta Lower CASE, que permite el
diseño detallado del software y la generación de código fuente (de programas y
bases de datos) e ingeniería inversa (obtención del diseño a partir del código fuente),
basado en modelos con soporte UML [Anónimo, 2006]. Es una forma de ayuda para
la comprensión del sistema y de sus distintos componentes. Su característica más
significativa consiste en la creación de componentes, que contengan una serie de
archivos dentro de los cuales se encuentran las distintas clases pertenecientes a
dicho componente [Anónimo, 2002].
27
Capítulo II. Tendencias y tecnologías actuales
2.2- Fundamentación de las herramientas de desarrollo seleccionadas
2.2.1- Tecnologías del lado del Servidor
Estas tecnologías son interpretadas y ejecutadas por el servidor. Se consideran de
mayor importancia ya que son las que garantizan el intercambio de datos en ambos
sentidos, entre el navegador del cliente y el servidor Web, y a su vez las que
soportan la funcionalidad del sitio.
2.2.1.1- Java
En cuanto salió Java fue acogido con gran entusiasmo por la comunidad mundial de
los diseñadores de programas y de los proveedores de servicios Internet. Esto
porque Java permitía a los usuarios de Internet usar aplicaciones seguras e
independientes de la plataforma, y que se pueden encontrar en cualquier punto de la
red [Álvarez, 2005b].
Java es un lenguaje de programación orientado a objetos, y tiene todos los beneficios
que ofrece esta metodología de programación. Además al ser Java un lenguaje se
pueden hacer cálculos matemáticos, procesadores de palabras, bases de datos,
aplicaciones gráficas, animaciones, sonido, hojas de cálculo, etc.
Permite desarrollar páginas Web dinámicas y se le pueden poner toda clase de
elementos multimedia que permiten un alto nivel de interactividad, sin tener que
gastar en paquetes costosos de multimedia [Monografías, 2005].
Java compila e interpreta por lo que consume doble tiempo. El tiempo de compilación
es más lento que en otros lenguajes y es una tecnología nueva que no está
estandarizada [Anónimo, 2005b].
2.2.1.2- ASP (Active Server Pages)
Es el lenguaje del lado del servidor creado por Microsoft para la creación de páginas
dinámicas del servidor ASP, se puede programar utilizando el lenguaje Visual Basic
Script, Jscrip (Javascript de Microsoft) u otros lenguajes Script popularmente
conocidos para el uso del lado del cliente.
28
Capítulo II. Tendencias y tecnologías actuales
ASP permite el acceso a bases de datos para extraer información y visualizarla en el
navegador, envío de correo electrónico, acceso al sistema de archivos del servidor y
en general a todos los recursos que tenga el propio servidor. Una potencialidad en
ASP está en el uso de controles ActiveX construidos para ser ejecutados en el
servidor.
El código ASP está mezclado con el contenido, la implementación de componentes y
la configuración es compleja y solo soporta lenguajes de scripting [Reynoso, 2006]. Es
difícil proveer seguridad a los datos de los clientes. El rendimiento de las aplicaciones
es limitado, debido al ancho de banda de Internet [Zarza, 2003].
2.2.1.3- Asp.NET
ASP.NET es la apuesta de la tecnología de Microsoft .Net para el desarrollo de
páginas Web dinámicas. El cual trae diversas mejoras con respecto al ASP
tradicional entre las que se destacan algunas:
Rapidez en programación: Mediante diversos controles se puede con unas pocas
líneas y en menor tiempo mostrar toda una base de datos y hacer rutinas complejas.
Programación Multilenguaje: El programador ya no se encuentra restringido a la
utilización de VBScript o JScript para programar las páginas ASP. Puede utilizar
cualquiera admitido por la plataforma .NET, lo que incluye diversos lenguajes como
C#, Visual Basic.NET, JScipt.NET, COBOL.NET, entre otros.
Programación visual: La arquitectura está diseñada de forma que el desarrollo de las
aplicaciones Web sea análogo a la forma en que se hace en las aplicaciones de
ventanas estándar, representando los controles como objetos que se pueden
manipular en la programación, al igual que se hace en las librerías de ventanas
orientadas a objetos. Además permitiendo que con herramientas visuales, diseñarlas
sea fácil, como arrastrar los componentes necesarios sobre la página y hacer doble
click sobre cada componente para escribir la lógica de respuesta a los eventos que
se puedan realizar sobre ellos, de forma parecida a como se hace en entornos RAD
(Rapid Application Development) como Delphi [Ciberaula, 2005].
29
Capítulo II. Tendencias y tecnologías actuales
Sus principales desventajas consisten en que, a pesar de que el software es gratis, su
plataforma no lo es y además es solamente para Internet Information Server; su código
no está disponible y, comparado con PHP, su velocidad y eficiencia es más débil [Hull,
2006].
2.2.1.4- PHP (Hypertext Preprocessor)
PHP es un lenguaje de programación, de código abierto, que se ejecuta del lado del
servidor, cuyo código se combina con el HTML, para procesar la información de
formularios, generar páginas con contenidos dinámicos, o mandar y recibir cookies
[Cibertua, 2005].
Dispone de múltiples herramientas que permiten acceder a bases de datos de forma
sencilla, por lo que es ideal para crear aplicaciones en Internet. Existe mucha
documentación disponible sobre este lenguaje y miles de ejemplos y código fuente.
Es multiplataforma, funciona tanto para Unix (con Apache) como para Windows (con
Microsoft Internet Information Server), de forma que el código que se haya creado para
una de ellas no tiene por qué modificarse al pasar a la otra. Su integración con Apache
y MySQL es perfecta [Cortés, 2002].
La sintaxis que utiliza la toma de otros lenguajes muy extendidos como C y Perl. PHP
es muy parecido a las ASP (Active Server Pages) de Microsoft, solo que más rápido,
gratuito y multiplataforma, es por ello que fue el lenguaje seleccionado para el
desarrollo del sistema propuesto [Cibertua, 2005].
La versión utilizada es la 5.1.2, que es verdaderamente orientada a objetos.
2.2.2- Tecnologías del lado del cliente
Son las páginas dinámicas que se procesan en el navegador del cliente, en las que
toda la carga de procesamiento de los efectos y funcionalidades la soporta el
navegador. El código necesario para crear los efectos y funcionalidades se incluye
dentro del mismo archivo HTML y es llamado SCRIPT. Cuando una página HTML
contiene scripts de cliente, el navegador se encarga de interpretarlos y ejecutarlos
para realizar los efectos y funcionalidades. Ofrecen respuestas inmediatas a las
30
Capítulo II. Tendencias y tecnologías actuales
acciones del usuario y permiten la utilización de algunos recursos de la máquina local
[Álvarez, 2005a].
2.2.2.1- HTML (Hyper Text Markup Language)
HTML es el punto de partida para el desarrollo Web. Es una aplicación del SGML que
utiliza etiquetas para marcar elementos, tales como texto y gráficos, en un
documento para indicar cómo los navegadores del Web deben visualizar estos
elementos al usuario y deben responder a las acciones del usuario.
Aunque existan ya, editores HTML muy potentes para la creación de páginas Web,
es importante conocer en plenitud este "lenguaje de marcado", pues se utiliza en
combinación con otros lenguajes de programación, como por ejemplo PHP, en el
caso del sistema propuesto [Escobar, 2004].
2.2.2.2- XHTML (eXtensible Hyper Text Markup Language)
XHTML es el lenguaje de marcado pensado para sustituir a HTML como estándar para
las páginas Web. Es la versión XML de HTML, por lo que tiene, básicamente, las
mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su
objetivo es avanzar en el proyecto del W3C de lograr una Web semántica, donde la
información, y la forma de presentarla estén claramente separadas. En este sentido,
XHTML serviría únicamente para transmitir la información que contiene un documento,
dejando para hojas de estilo y JavaScript su aspecto y diseño en distintos medios.
Tiene facilidad de edición directa del código y de mantenimiento, pero presenta
algunas desventajas como que algunos navegadores antiguos no son totalmente
compatibles con los estándares, lo que hace que las páginas no siempre se muestren
correctamente y muchas herramientas de diseño Web aún no producen código XHTML
correcto [Wikipedia, 2006].
2.2.2.3- Cascading Style Sheets (CSS)
Las hojas de estilo facilitan muchísimo la creación de páginas. Gracias a estas
podemos definir un estilo específico para cada atributo sin tener que modificar las
31
Capítulo II. Tendencias y tecnologías actuales
etiquetas dentro de la página HTML. CSS se puede utilizar para manejar los estilos
de todo un sitio [Escobar, 2004].
2.2.2.4- JavaScript
JavaScript es un lenguaje script u orientado a documento. El código JavaScript para
cliente se integra directamente en páginas HTML y es interpretado en su totalidad por
el cliente Web en tiempo de ejecución. En este caso, lo importante es que, sin
necesidad de realizar ninguna transmisión de datos por la red, se puede validar dicha
información, mostrando al usuario un cuadro de diálogo en caso de que esta sea
incorrecta.
Los clientes Web que soportan JavaScript, tales como el Netscape
Navigator/Communicator (desde la versión 2.0) o el Microsoft Internet Explorer
(desde la versión 3.0) pueden interpretar sentencias JavaScript colocadas en un
documento HTML [Universidad de Navarra, 2005].
Se utiliza para activar procesos o desarrollar algoritmos que hagan tareas sencillas y
para darle vida a las Webs, haciendo que cambien imágenes, que se procesen datos,
entre otros.
2.3- Gestores de Bases de Datos
2.3.1- PostGreSQL
PostgreSQL es uno de los Sistemas de Gestión de Bases de Datos (SGBD) más
conocidos del mundo del código libre. Surge a mediados de los años ochenta con el
nombre Postgres, en sus inicios con un lenguaje de consulta propio denominado
Postquel, hasta 1995 que adopta SQL como lenguaje y pasa a llamarse PostGreSQL
en 1996 [Mateu, 2004].
Su principal desventaja es la velocidad, considerándose más lento que SqlServer y
MySql. Además consume una gran cantidad de recursos.
Se puede integrar a la plataforma .Net instalando un proveedor de acceso a datos
almacenados en bases de datos desarrolladas en PostGreSQL, denominado:
32
Capítulo II. Tendencias y tecnologías actuales
PostgreSQLDirect.Net. Está basado completamente en tecnología ActiveX Data
Object para el framework .Net 1.1 o superior (ADO.Net). Puede ser utilizado de igual
forma que el proveedor de acceso a datos para SQL Server que viene incluido en el
framework [Development, 2005].
2.3.2- Oracle
Es un SGBD muy costoso aplicado fundamentalmente en grandes empresas
multinacionales. Trabaja con un lenguaje propio denominado PL/SQL, muy potente.
Para utilizar Oracle primeramente habría que instalar la herramienta servidor, Oracle
8i, y luego se podría acceder a la base de datos desde otros equipos con
herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las
herramientas básicas de programación sobre Oracle [Masip, 2002].
La principal limitante de utilizar Oracle como SGBD es el alto precio de las licencias,
además de que se cuenta con muy poca experiencia en el manejo de este sistema.
2.3.3- Microsoft SQL Server 2000
Microsoft SQL Server 2000 está diseñado para funcionar eficazmente como base de
datos central en un servidor compartido por muchos usuarios que se conectan a la
misma a través de una red. El número de usuarios puede ascender a miles de
empleados en una empresa de mediano o gran tamaño, o a cientos de miles de
usuarios de la Web. Además está pensado como gestor de bases de datos de
escritorio que sirvan solo a aplicaciones que se ejecutan en el mismo escritorio
[Corporation, 2000].
Es el primero en soportar la auto-configuración y auto-sintonización y en proveer
administración de multi-servidor para cientos de servidores.
Microsoft SQL Server 2000 asigna también de manera muy eficaz los recursos
disponibles, como memoria, ancho de banda de la red y E/S del disco, entre los
distintos usuarios [Corporation, 2000].
Su principal desventaja es que corre solamente sobre la plataforma Windows por lo
que su portabilidad es limitada.
33
Capítulo II. Tendencias y tecnologías actuales
2.3.4- MySQL
MySQL es un gestor de bases de datos SQL; una implementación Cliente-Servidor
que consta de un servidor y diferentes clientes [Fernández, 1998].
Una característica importante del servidor de bases de datos MySQL es que
consume muy pocos recursos, tanto de CPU (Unidad Central de Procesamiento)
como de memoria. Fue desarrollado originalmente para manejar grandes bases de
datos mucho más rápido que las soluciones existentes. Son apropiadas su
conectividad y velocidad para acceder a bases de datos en Internet.
Resulta útil para la administración (backup, recuperación de errores); no tiene límites
en el tamaño de los registros; es portable de modo que se puede emplear tanto en
servidores Linux como Windows y realiza control de acceso de usuarios y permisos;
posee una gran velocidad a la hora de realizar las operaciones, lo que le hace uno de
los gestores que ofrecen mayor rendimiento; tiene gran facilidad de configuración e
instalación, y una probabilidad muy reducida de corromper los datos, incluso en los
casos en los que los errores no se produzcan en el propio gestor, sino en el sistema
en el que está [Aguilar, 2004] [Anónimo, 2005a].
Por todas las ventajas antes mencionadas y por la perfecta integración Apache-PHP-
MySQL es el gestor de bases de datos seleccionado para el sistema propuesto.
2.4- Servidores
Un servidor es una máquina que provee datos de modo que otras máquinas
(clientes) puedan utilizarlos. Los clientes se comunican con los servidores a través de
los proveedores de Servicio de Internet, empresas que actúan de puente entre las
comunicaciones de clientes y servidores. Los archivos para cada sitio de Internet se
almacenan y se ejecutan en el servidor. Hay muchos servidores en Internet y muchos
tipos de servidores, con el objetivo común de proporcionar el acceso a los archivos y
servicios.
34
Capítulo II. Tendencias y tecnologías actuales
2.4.1- Servidores Web
Un Servidor Web es un programa de aplicación que satisface las solicitudes HTTP
realizadas por los navegadores. La máquina que la soporta debe estar conectada a
la Intranet y, por consiguiente, tener asignada una dirección IP [EO, 2005].
Figura 4. Servidor Web.
2.4.1.1- Internet Information Server (IIS)
Internet Information Server (IIS), es el servicio Web con el que cuenta la familia de
Sistemas Operativos Windows 2000 y XP para la publicación de información en
Intranets e Internet.
Incluye una herramienta de administrador personal de la Web, que ayuda a
administrar y publicar un sitio de publicación personal. Permite a los usuarios
remotos crear, mover o borrar archivos, directorios y propiedades de directorio en el
servidor a través de una conexión HTTP. Brinda los servicios de FTP, Ghoper y
WWW, al igual que de envío de correo electrónico y noticias, a través del servicio
SMTP de Microsoft, que usa el Protocolo Simple de transferencia de correo (SMPT),
un estándar de Internet.
Ofrece mayor protección y confiabilidad de las aplicaciones Web. De manera
predeterminada, IIS ejecutará todas las aplicaciones en un proceso común o
agrupado que está separado de los procesos del núcleo de IIS. También puede aislar
35
Capítulo II. Tendencias y tecnologías actuales
aplicaciones cuyas misiones sean críticas y que deban ejecutarse fuera tanto de los
procesos de núcleo de IIS como de los agrupados [Internet Information Server, 2000].
Sin embargo, posee algunas desventajas, ya que solo está disponible para Windows,
requiere pagar licencia para su utilización y resulta poco confiable ante los
numerosos ataques que sufren los sitios de Internet [Osmosis Latina, 2000].
2.4.1.2- Apache
Apache es un servidor Web, que permite el alojamiento de páginas Web en una
máquina específica. Es prácticamente universal ya que se ejecuta en la mayoría de
los Sistemas Operativos Windows y de las versiones de Unix y sus derivados.
Es una tecnología gratuita de código fuente abierto, de modo que se puede ver lo
que se está instalando como servidor sin ningún problema y se puede adaptar a los
requerimientos específicos de la empresa donde se use.
Es un servidor altamente configurable de diseño modular. Trabaja con Perl, PHP,
Java y otros lenguajes de script y permite personalizar la respuesta ante posibles
errores que se puedan dar en el servidor [EO, 2005].
Por ser fiable, portable, tolerante a fallas y poco infectado por virus, es el servidor
Web existente en CITMATEL desde 1996. Este se ejecuta sobre la plataforma Unix
requiriendo menos hardware que las aplicaciones Windows. Además, por ser
gratuito, cumple con la tendencia a nivel nacional de no usar softwares comerciales.
Conclusiones
La amplia variedad de tecnologías existentes actualmente para el desarrollo de
aplicaciones Web constituye un factor importante para decidir qué herramienta utilizar
en la confección de la aplicación.
Teniendo en cuenta los requerimientos del sistema propuesto, se seleccionan para
su implementación el lenguaje PHP y el SGBD MySQL por las facilidades que estos
brindan; además de que son tecnologías gratis y cumplen con las tendencias del país
36
Capítulo II. Tendencias y tecnologías actuales
de trabajar con aplicaciones de código abierto. Además constituyen una perfecta
integración con el Apache que es el servidor Web con que cuenta CITMATEL.
Para el análisis y diseño del sistema se sigue la metodología de desarrollo con
tecnología orientada a objetos Rational Unified Process (RUP), que utiliza notación
UML (Unified Modeling Language), la cual garantiza la elaboración de todas las fases
de un producto de software.
El análisis del sistema, que permite la metodología RUP, se inicia en el capítulo
siguiente.
37
Capítulo III. Descripción de la solución propuesta
CAPÍTULO III. Descripción de la solución propuesta
Introducción
Para lograr una descripción de la solución propuesta primero se analiza el contexto
donde se desarrolla el sistema. Para ello existen dos métodos fundamentales,
Modelo del Negocio, que está dirigido a entender el funcionamiento del negocio
dentro de la organización, y Modelo del Dominio, que se utiliza para capturar los
objetos más importantes en el contexto del sistema.
De los métodos que propone la metodología empleada para presentar el entorno del
sistema, se seleccionó el Modelo del Dominio, que reúne los objetos más relevantes
del sistema y su relación; la justificación de dicha selección es uno de los temas
discutidos en este capítulo.
Los límites del sistema quedan definidos con la descripción de los casos de uso, que
responden a los requerimientos que debe cumplir el sistema y que también son
abordados en el presente capítulo.
3.1- ¿Por qué Modelo del Dominio?
El sistema está diseñado para ser empleado por los especialistas en información y
gestión de contenidos de la UEB Servicios Web de CITMATEL. Existen tres roles:
Administrador, Gestor de contenidos y Gestor de estructura; pero no es posible
identificar un flujo organizacional que permita describir el entorno actual del sistema
mediante el modelo del negocio, ya que este explica cómo se realiza un proceso por
un conjunto de trabajadores que usan unas entidades y unidades de trabajo
[Jacobson, 1999].
Se fundamenta el empleo del Modelo del Dominio para representar los objetos
principales que conforman el sistema a desarrollar, sobre la base de que no se
cumplen los siguientes factores que permiten la modelación del negocio:
Entender la estructura y la dinámica de la organización.
38
Capítulo III. Descripción de la solución propuesta
Entender los problemas actuales e identificar mejoras potenciales.
Asegurarse de que los clientes, usuarios finales y desarrolladores tengan una
idea común de la organización.
Derivar los requerimientos del sistema a partir del modelo de negocio que se
obtenga.
3.2- Glosario de términos del Dominio
Documento XML: Documento con una estructura lógica que garantiza la organización
del contenido, y una estructura física compuesta por entidades.
DTD: Definición de los elementos que puede incluir un documento XML. Puede estar
incluida dentro de este o con una referencia hacia un fichero externo.
DOM: Representación interna estándar de la estructura de un documento XML. Se
puede graficar, en forma de árbol, para una mejor comprensión de la estructura y
contenido del documento XML.
XML Válido: Son documentos XML que además de estar bien formados (que
cumplen con las especificaciones del lenguaje), siguen una estructura y una
semántica determinada por un DTD.
Documento XML Importado: Documento XML tomado de un sitio Web de Internet y
almacenado en la base de datos del sistema.
Documento XML Publicado: Documento XML almacenado en la base de datos del
sistema y publicado en un sitio Web.
Administradores: Son los usuarios que tienen todos los privilegios para trabajar con el
sistema.
Gestores de contenido: Son los usuarios que se ocupan de trabajar con los
contenidos XML. Tienen permisos solamente para importar y validar documentos
XML.
39
Capítulo III. Descripción de la solución propuesta
Gestores de estructura: Son los usuarios que se encargan de trabajar con la
estructura de los documentos XML, con la posibilidad de crear ficheros DTD, ver la
estructura DOM de un documento XML, publicarlo, importarlo y validarlo.
3.3- Reglas del negocio
Las reglas del negocio son aquellas condiciones o restricciones que existen en el
negocio o entorno del sistema, que deben ser tenidas en cuenta en las etapas de
desarrollo, ya que representan políticas a seguir para que el sistema cumpla con los
requerimientos planteados [Ortín, 2004]. A continuación se reúnen las reglas
identificadas para el presente proyecto:
El sistema permite a los Administradores del mismo trabajar con todas sus
funcionalidades; sin embargo, los Gestores de contenido solo pueden importar y
validar documentos XML y los Gestores de estructura, además de estas dos
funcionalidades, pueden crear DTD, ver la estructura DOM y publicar los documentos
XML.
Para importar XML se requiere de una conexión suficientemente rápida a Internet.
Una vez importados los documentos, son almacenados en una ubicación física única,
sin permitir al usuario modificarla. Cuando se importa un documento cuyo nombre es
igual al de algún fichero previamente importado, se le concatena a su nombre un
número para diferenciarlo.
Para crear un DTD se hace siempre a partir de un documento XML almacenado en la
base de datos y no se permite al usuario que escoja un XML de otra ubicación.
Para publicar un documento XML en un sitio Web se requiere de permiso de escritura
en el mismo.
Para las funcionalidades que requieren trabajar con documentos XML, se garantiza la
existencia de estos listando los almacenados en la base de datos para que el usuario
escoja el que desea.
40
Capítulo III. Descripción de la solución propuesta
3.4- Representación del Modelo del Dominio
Administradores
Gestores de contenido
Gestores de estructura
DTD
GraficaDOM
PublicaDoc
UsuariosDocumento XML
11
11
11 11
1
1
1
1
0..n 10..n 1
XMLValidador
1
1
1
1ImportaDoc
1..n
1
1..n
1
0..1 10..1 1
Figura 5. Representación del Modelo del Dominio.
3.5- Requerimientos funcionales
Los requisitos funcionales son capacidades o condiciones que el sistema debe
cumplir, expresando más detalladamente las responsabilidades del mismo. Con ellos
se pretende determinar de manera clara y concisa lo que debe hacer el sistema
siguiendo un enfoque funcional [Jacobson, 2000].
Seguidamente se enumeran los requerimientos funcionales del sistema propuesto:
1. Importar documentos XML de otros sitios Web.
2. Mostrar, gráficamente, el Modelo de Objetos de un documento XML.
3. Validar un documento XML.
Dada su ubicación física.
Seleccionado de la base de datos.
Dado el contenido del fichero.
4. Crear una DTD a partir de un documento XML existente.
Seleccionado de la base de datos.
5. Publicar documentos XML.
41
Capítulo III. Descripción de la solución propuesta
Listar documentos publicados.
Publicar documentos XML por copia interna.
6. Administrar documentos XML.
Listar.
Insertar.
Modificar.
Eliminar.
Buscar documentos XML por distintos criterios.
7. Administrar Usuarios.
Listar.
Insertar.
Modificar.
Eliminar.
8. Administrar Grupos.
Listar.
Insertar.
Modificar.
Eliminar.
9. Administrar Módulos.
Listar.
Insertar.
Modificar.
Eliminar.
10. Administrar Opciones.
42
Capítulo III. Descripción de la solución propuesta
Listar.
Insertar.
Modificar.
Eliminar.
11. Administrar Sitios de Publicación.
Listar.
Insertar.
Modificar.
Eliminar.
12. Administrar Privilegios de los grupos de usuarios.
Listar.
Insertar.
Modificar.
Eliminar.
13. Autenticar usuarios registrados en el sistema.
3.6- Requerimientos no funcionales
Los requerimientos no funcionales especifican las propiedades o cualidades que el
producto debe tener, añadiéndole funcionalidad al sistema, pues hacen que sea fácil
de usar, seguro o interactivo [Jacobson, 2000].
Apariencia o interfaz externa
La interfaz del sistema debe ser sencilla y de fácil manejo, para agilizar el trabajo con
la información por los especialistas que manipularán el sistema. Debe respetar los
estándares de diseño Web, sin uso excesivo de recursos, para aumentar la velocidad
43
Capítulo III. Descripción de la solución propuesta
de carga de las páginas; ser un sitio consistente, es decir, que tenga el mismo
aspecto y diseño en todas sus páginas.
Usabilidad Por la sencillez de la interfaz y la fácil navegación, el sistema debe alcanzar una gran
aceptación por parte de los diferentes usuarios. A esto contribuirán también las
facilidades que se brindan a los Gestores de contenido y de estructura, para los que
está concebido el sistema, para gestionar los documentos XML de forma sencilla y
rápida; permitiéndoles crear DTD, mostrar el DOM, importar, validar y publicar
documentos XML. Además deben existir usuarios en el rol de Administradores con
todos los privilegios para trabajar con las funcionalidades antes mencionadas y para
administrar la información de la base de datos del sistema.
Rendimiento
La interfaz Web implementa el manejo de sesiones para reducir el tiempo de
respuesta a las solicitudes de los diferentes usuarios. El sistema será utilizado por la
UEB Servicios Web de CITMATEL, por lo que la audiencia del mismo será reducida,
influyendo positivamente en su rendimiento. A esto además contribuye la rápida
conexión de la Intranet de la empresa, donde será utilizado.
Soporte
La asistencia y mantenimiento del sistema es responsabilidad de los administradores
del mismo. Se implementan las funcionalidades más importantes del sistema pero se
prevé, en los próximos años, incorporar otras más a la solución para el trabajo con
documentos XML y RSS (Really Simple Syndication), entre otras, por lo que la
implementación actual del sistema debe ser lo suficientemente flexible para este
propósito. Por ello se utilizan las facilidades que brinda la arquitectura multicapas,
que garantizan la independencia de los datos, la presentación y la lógica del negocio.
El sistema debe ser compatible con los sistemas operativos Windows, Unix y Linux.
Portabilidad
44
Capítulo III. Descripción de la solución propuesta
La aplicación se debe poder ejecutar sobre cualquier plataforma, por lo que la
portabilidad no será limitada, esto se basa en las herramientas de desarrollo
seleccionadas para la implementación del sistema.
Seguridad
La seguridad del sistema debe ser garantizada con la debida autenticación de los
usuarios, con distintos privilegios según el grupo de usuarios al que pertenezcan. Los
roles: Administrador, Gestor de contenido y Gestor de estructura, se corresponden
con los grupos en que están divididos los usuarios del sistema.
Se deben verificar los datos antes de su envío y/o almacenamiento. El sistema gestor
de base de datos realiza el control de acceso de usuarios y permisos.
Confiabilidad
El sistema debe notificar al usuario en caso de que no exista conexión a la base de
datos.
Ayuda y documentación en línea
El sistema debe contar con una ayuda en línea que sirva de manual de usuario y que
incluya las instrucciones necesarias para el trabajo con el mismo.
Software
El sistema requiere de la instalación de PHP 5 con soporte para XML; para el trabajo
con la base de datos, de MySQL Server y de un servidor Web, que puede ser
Apache o IIS.
La máquina cliente debe tener como sistema operativo Windows 98 o superior; con
los navegadores Internet Explorer 5.5 o superior, Opera, o NetScape 7 como mínimo.
Hardware
Se recomienda emplear para el servidor donde se instale el sistema:
Plataforma Unix: Pentium III o superior, 256 MB o más de memoria RAM, 1 GHz,
10 GB de disco duro como mínimo.
45
Capítulo III. Descripción de la solución propuesta
Plataforma Windows: Pentium IV o superior, 256 MB o más de memoria RAM, d2
GHz, 10 GB de disco duro como mínimo.
La máquina cliente debe tener como requerimientos de hardware: Pentium II o
superior y 128 MB o más de memoria RAM.
Políticos culturales
El sistema debe responder a los intereses y convicciones de la empresa que
representará (CITMATEL) y del país, mostrando información acorde a los principios
de los mismos.
3.7- Actores del sistema
Tabla 1. Descripción de los actores del sistema.
Nombre del Actor Descripción
Administrador Se le asocian todos los requerimientos funcionales del
sistema.
Gestor de estructura Es el que se encarga de trabajar con la estructura de los
documentos XML, con la posibilidad de crear ficheros DTD,
ver la estructura DOM de un documento XML y publicarlo.
Los Administradores también pueden jugar este rol.
Gestor de contenidos Rol que juegan los Administradores y los Gestores de
estructura al autenticarse en el sistema, así como al
importar o validar documentos XML.
46
Capítulo III. Descripción de la solución propuesta
3.8- Paquetes y sus relaciones
Administración
Autenticación
Gestión de contenidos XML
Figura 6. Paquetes y sus relaciones.
3.9- Diagrama de casos de uso del sistema
3.9.1- Paquete Autenticación
Gestor de estructura
(f rom Actores)
Administrador
(f rom Actores)
AutenticarseGestor de contenidos(f rom Actores)
Figura 7. Diagrama de casos de uso. Paquete Autenticación.
47
Capítulo III. Descripción de la solución propuesta
3.9.2- Paquete Gestión de Contenidos XML
Administrador
(from Actores)
Importar XML
Validar XML
<<extend>>
Gestor de contenidos(from Actores)
Publicar XMLCrear DTD
Mostrar DOM graficamente
Gestor de estructura
(from Actores)
Figura 8. Diagrama de casos de uso. Paquete Gestión de Contenidos XML.
3.9.3- Paquete Administración
Administrar documentos XML
Administrar usuarios
Administrar grupos
Administrar modulos
Administrar opciones
Administrar sitios de publicacion
Administrar privilegios
Administrador
(from Actores)
Figura 9. Diagrama de casos de uso. Paquete Administración.
48
Capítulo III. Descripción de la solución propuesta
3.10- Descripción de los casos de uso
3.10.1- Paquete Autenticación
Tabla 2. Descripción del caso de uso Autenticarse.
Nombre del caso de uso
Autenticarse
Gestor de contenidos Actores
Resumen
El caso de uso se inicia cuando el Gestor de
contenidos desea entrar al sistema, especificando
su usuario y contraseña. El sistema chequea en la
base de datos que el usuario exista y se culmina el
caso de uso mostrando la página principal con las
opciones disponibles en dependencia de los
privilegios del Gestor de contenidos.
En caso de que la información suministrada por el
Gestor de contenidos sea incorrecta, se muestra
una página de error notificando que el usuario o la
contraseña son incorrectos, con la opción de
regresar a la página de autenticación nuevamente.
Que exista el Gestor de contenidos en la base de
datos con sus privilegios definidos.
Precondiciones
El Gestor de contenidos entra al sistema con sus
privilegios establecidos.
Poscondiciones
- Requisitos especiales
Prototipo
49
Capítulo III. Descripción de la solución propuesta
3.10.2- Paquete Gestión de Contenidos XML
Tabla 3. Descripción del caso de uso Importar XML.
Nombre del caso de uso
Importar XML
Gestor de contenidos Actores
Resumen
El caso de uso se inicia cuando el Gestor de
contenidos desea importar documentos XML de
sitios Web determinados; indicando la cantidad de
documentos que desea importar, la URL desde
donde lo hará y si desea importar o no el XSL
asociado. El sistema valida que la URL esté escrita
correctamente y que se trate de un documento
XML.
Se importan los XML y sus DTD hacia una
ubicación específica, registrándose en la base de
datos. En caso de que la operación no se haya
podido realizar esto se notifica al Gestor de
contenidos.
El sistema brinda la posibilidad de Validar los
50
Capítulo III. Descripción de la solución propuesta
documentos XML importados, así como de
importar más.
El caso de uso culmina cuando se han importado
y/o validado los documentos.
Debe existir conexión a Internet. Precondiciones
Se importan los documentos XML, sus DTD y,
opcionalmente, sus XSL, hacia una ubicación
específica y quedan registrados en la base de
datos.
Poscondiciones
- Requisitos especiales
Prototipo
Tabla 4. Descripción del caso de uso Mostrar DOM gráficamente.
Nombre del caso de uso
Mostrar DOM gráficamente
Actores Gestor de estructura
51
Capítulo III. Descripción de la solución propuesta
Resumen
El caso de uso se inicia cuando el Gestor de
estructura desea ver la estructura DOM de un
documento XML, gráficamente. El sistema muestra
los documentos disponibles de la base de datos y
el Gestor de estructura selecciona el que desea
ver. Se lleva el documento al formato adecuado
para mostrarlo y se muestran gráficamente los
diferentes niveles del árbol DOM: la raíz y los
nodos de los diferentes niveles con sus atributos y
contenido.
El caso de uso culmina cuando se muestra el
gráfico del DOM.
Debe existir el documento XML en la base de
datos.
Precondiciones
Se obtiene la estructura gráfica del DOM con los
diferentes nodos y sus atributos.
Poscondiciones
- Requisitos especiales
Prototipo
52
Capítulo III. Descripción de la solución propuesta
Tabla 5. Descripción del caso de uso Validar XML.
Nombre del caso de uso
Validar XML
Gestor de contenidos Actores
El caso de uso se inicia cuando el Gestor de
contenidos desea validar un documento XML. El
sistema muestra tres opciones para validar un
documento XML: de una ubicación específica o
almacenado en la base de datos, y una tercera
opción para introducir el código del documento a
validar. El Gestor de contenidos selecciona la
opción que va a utilizar y el sistema valida el
documento XML contra su DTD y verifica que esté
bien formado. El caso de uso termina cuando se
muestra el resultado de estas operaciones,
especificando, en caso necesario, los errores del
XML.
Resumen
Debe existir el documento XML que se quiere
validar.
Precondiciones
Se conoce si el documento seleccionado es válido
y bien formado.
Poscondiciones
- Requisitos especiales
Prototipo
53
Capítulo III. Descripción de la solución propuesta
Tabla 6. Descripción del caso de uso Crear DTD.
Nombre del caso de uso
Crear DTD
Gestor de estructura Actores
El caso de uso se inicia cuando el Gestor de
estructura desea crear un DTD a partir de un
documento XML existente. El sistema muestra los
documentos disponibles de la base de datos y el
Gestor de estructura selecciona el que desea. El
sistema crea el fichero DTD y lo almacena en la
misma ubicación física del XML, referenciándolo
dentro de este; culminándose el caso de uso.
Resumen
Debe existir el documento XML en la base de
datos.
Precondiciones
Se almacena el fichero DTD y se referencia en el
XML correspondiente.
Poscondiciones
- Requisitos especiales
Prototipo
54
Capítulo III. Descripción de la solución propuesta
Tabla 7. Descripción del caso de uso Publicar XML.
Nombre del caso de uso
Publicar XML
Gestor de estructura Actores
Resumen
El caso de uso se inicia cuando el Gestor de
estructura desea publicar un documento XML. Para
ello se listan los documentos XML disponibles, así
como los sitios Web en los cuales se pueden
publicar.
Además el Gestor de estructura tiene la posibilidad
de conocer los documentos XML que ya están
publicados, mediante una lista de los mismos con
sus correspondientes sitios de publicación.
El caso de uso termina cuando se escribe el
fichero XML en un directorio específico del sitio
Web de publicación seleccionado.
Precondiciones Que exista el documento XML en la base de datos
y que haya sitios Web de publicación disponibles.
El Gestor de estructura debe tener permiso de
escritura en el directorio donde se publicará el
XML.
55
Capítulo III. Descripción de la solución propuesta
Se publica el documento XML. Poscondiciones
- Requisitos especiales
Prototipo
3.10.3- Paquete Administración
Tabla 8. Descripción del caso de uso Administrar documentos XML.
Nombre del caso de uso
Administrar documentos XML
Administrador Actores
Resumen
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un documento
XML. Para ello se listan los documentos
registrados en la base de datos.
También se puede iniciar cuando el Administrador
desea buscar documentos XML almacenados en la
base de datos. La búsqueda se puede realizar por
distintos criterios.
56
Capítulo III. Descripción de la solución propuesta
Para modificar o eliminar un documento XML, este
debe existir en la base de datos.
Precondiciones
Poscondiciones Se actualiza la base de datos por la inserción,
eliminación o modificación del documento XML.
Se elimina, inserta o modifica el fichero XML
físicamente.
Si se realizó una búsqueda de documentos XML,
se muestra la lista de los que cumplen con los
parámetros especificados.
- Requisitos especiales
Prototipo
Tabla 9. Descripción del caso de uso Administrar usuarios.
Nombre del caso de uso
Administrar usuarios
Administrador Actores
Resumen
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un usuario.
Para ello se listan los usuarios registrados.
57
Capítulo III. Descripción de la solución propuesta
Para modificar o eliminar un usuario, este debe
existir en la base de datos.
Precondiciones
Se actualiza la base de datos por la inserción,
eliminación o modificación del usuario.
Poscondiciones
- Requisitos especiales
Prototipo
Tabla 10. Descripción del caso de uso Administrar grupos.
Nombre del caso de uso
Administrar grupos
Administrador Actores
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un grupo. Para
ello se listan los grupos existentes.
Resumen
Precondiciones Para modificar o eliminar un grupo, este debe
existir en la base de datos.
58
Capítulo III. Descripción de la solución propuesta
Se actualiza la base de datos por la inserción,
eliminación o modificación del grupo.
Poscondiciones
- Requisitos especiales
Prototipo
Tabla 11. Descripción del caso de uso Administrar módulos.
Nombre del caso de uso
Administrar módulos
Administrador Actores
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un módulo.
Para ello se listan los módulos existentes.
Resumen
Para modificar o eliminar un módulo, este debe
existir en la base de datos.
Precondiciones
Se actualiza la base de datos por la inserción,
eliminación o modificación del módulo.
Poscondiciones
Requisitos especiales -
59
Capítulo III. Descripción de la solución propuesta
Prototipo
Tabla 12. Descripción del caso de uso Administrar opciones.
Nombre del caso de uso
Administrar opciones
Administrador Actores
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar una opción.
Para ello se listan las opciones existentes.
Resumen
Para modificar o eliminar una opción, esta debe
existir en la base de datos.
Precondiciones
Se actualiza la base de datos por la inserción,
eliminación o modificación de la opción.
Poscondiciones
- Requisitos especiales
Prototipo
60
Capítulo III. Descripción de la solución propuesta
Tabla 13. Descripción del caso de uso Administrar sitios de publicación.
Nombre del caso de uso
Administrar sitios de publicación
Administrador Actores
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un sitio Web.
Para ello se listan los sitios Web registrados en la
base de datos.
Resumen
Para modificar o eliminar un sitio Web, este debe
existir en la base de datos.
Precondiciones
Se actualiza la base de datos por la inserción,
eliminación o modificación del sitio Web.
Poscondiciones
- Requisitos especiales
Prototipo
61
Capítulo III. Descripción de la solución propuesta
Tabla 14. Descripción del caso de uso Administrar privilegios.
Nombre del caso de uso
Administrar privilegios
Administrador Actores
El caso de uso se inicia cuando el Administrador
desea insertar, eliminar o modificar un privilegio.
Para ello se listan los privilegios existentes por
grupo de usuarios.
Resumen
Para modificar o eliminar un privilegio, este debe
existir en la base de datos.
Precondiciones
Se actualiza la base de datos por la inserción,
eliminación o modificación del privilegio.
Poscondiciones
- Requisitos especiales
Prototipo
62
Capítulo III. Descripción de la solución propuesta
Conclusiones
En este capítulo se ha descrito el contexto en que se desarrolla el sistema propuesto
a través del Modelo del Dominio, para representar los objetos fundamentales en la
comprensión del alcance que se pretende. Se han establecido los requerimientos
funcionales y no funcionales para comprender mejor el problema que la aplicación ha
de solucionar. Además, se definen casos de uso que especifican la secuencia de
acciones que el sistema debe llevar a cabo. Estos se describen detalladamente y se
presenta el prototipo de la aplicación. Los casos de uso se agrupan en paquetes que
se definen teniendo en cuenta la gran utilidad que representa su uso. Esta
explicación posibilitará la comprensión de las fases posteriores de construcción y el
estudio de factibilidad realizado al sistema.
63
Capítulo IV. Construcción de la solución propuesta
CAPÍTULO IV. Construcción de la solución propuesta
Introducción
Dando continuidad al proceso de análisis llevado a cabo en el capítulo anterior, a
este le corresponde la etapa de diseño, donde se define cómo debe ser construido el
sistema. Teniendo en cuenta esto, se realizan los diagramas de clases, agrupados
en paquetes, empleando los mecanismos de extensión definidos por el UML para
aplicaciones Web, así como el diagrama de clases persistentes para la base de
datos y el modelo de despliegue. Además, se definen las pautas para el diseño de la
interfaz de la aplicación partiendo de su importancia en la obtención del producto
final.
4.1- Diagrama de clases del diseño
4.1.1- Paquete Autenticación
4.1.1.1- Caso de uso Autenticarse
Usuario
idusuarionombreapell idosloginclaveclasificacionestado
Eliminar()Insertar()Modificar()
(f rom Acceso a datos)
index
(f rom Autenticacion)
form
(f rom Autenticacion)
main(f rom Autenticacion)
<<submit>>
indexform
ValidateForm()
(f rom Autenticacion)
<<build>>
error(f rom Autenticaci...
<<redirect>><<link>>
<<dependency>>
bienvenido
(f rom Autenticacion)
<<build>>
cooljsmenu
COOLjsMenu()
(f rom Autenticacion)
<<javascript>>
<<include>>
Figura 10. Diagrama de clases del caso de uso Autenticarse.
64
Capítulo IV. Construcción de la solución propuesta
4.1.2- Paquete Gestión de Contenidos
4.1.2.1- Caso de uso Crear DTD
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista DTD
(from Crear DTD)
Lista_DTD
(from Crear DTD)
<<build>>
DTDCreado
(from Crear DTD)
DTDM
(from Crear DTD)
<<link>><<build>>
<<dependency>>
DTDControl
Crear_DTD()
(from Crear DTD)
<<dependency>>
DTD
parse()Fix()GetAttributes()AttributeOcurrency()DeleteRepeated()FinAttrib()Multiplicity()Alones()Signs()
(from Crear DTD)
111 1
Figura 11. Diagrama de clases del caso de uso Crear DTD.
65
Capítulo IV. Construcción de la solución propuesta
4.1.2.2- Caso de uso Importar XML
Documento
iddoctitulofichurlidusuariopublicadoestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
GetWebObject
hostportpathheadercontent
GetWebObject()fetch()get_header()get_content()
(from Importar XML)
Import_doc
filename
Import_doc()ImportXML()ImportXSL()ImportDTD()QuitarRefereciaXSL()
(from Importar XML)
1
1
1
1
1..n
1
1..n
1
formimport
(from Importar XML)
Import
(from Importar XML)
Importar XML
(from Importar XML)
<<submit>>
Import_form
ValidateForm()
(from Importar XML)
<<build>>
Validacion
Validar()
(from Validar XML)
<<javascript>>
Validar importados
(from Importar XML)
<<build>><<link>>
<<include>>
<<dependency>>
Figura 12. Diagrama de clases del caso de uso Importar XML.
4.1.2.3- Caso de uso Mostrar DOM gráficamente
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista DOM
(from Mostrar DOM)
Lista_DOM
(from Mostrar DOM)
<<build>>
Dibujo
(from Mostrar DOM)
<<link>>
Diagram
bordercolorfontalignwidth
Diagram()Draw()
(from Mostrar DOM)<<dependency>>
Dibujar
(from Mostrar DOM)
<<link>>
<<build>>
Graficar
DOM
Fix()Draw()
(from Mostrar DOM)
1
1
1
1
<<dependency>>
Figura 13. Diagrama de clases del caso de uso Mostrar DOM gráficamente.
66
Capítulo IV. Construcción de la solución propuesta
4.1.2.4- Caso de uso Publicar XML
DocPublicado
iddocpubiddocidsitio
DocPublicados()Insertar()
(from Acceso a datos)
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista sitios Web
(from Publicar XML)
Publicar
(from Publicar XML)
Lista publicados
(from Publicar XML)
Lista publicar
(from Publicar XML)
Lista_sitiosWeb
(from Publicar XML)
<<build>>
<<link>>
Lista_publicados
(from Publicar XML)
<<build>>
Lista_publicar
(from Publicar XML)
<<build>>
<<link>>
<<link>>
<<dependency>>
<<dependency>>
<<dependency>>
<<dependency>>
Figura 14. Diagrama de clases del caso de uso Publicar XML.
67
Capítulo IV. Construcción de la solución propuesta
4.1.2.5- Caso de uso Validar XML
Validate
(from Val idar XML)
Validacion
Validar()
(from Val idar XML)
<<javascript>>
Lista_validate_db
(from Val idar XML)
<<include>>ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Validate_db
(from Val idar XML)
<<build>>
Validateoptions
(from Val idar XML)
<<build>>
<<include>><<link>>
script
Muestra()
(from Val idar XML)
<<javascript>><<include>>
<<dependency>>
Figura 15. Diagrama de clases del caso de uso Validar XML.
68
Capítulo IV. Construcción de la solución propuesta
4.1.3- Paquete Administración
4.1.3.1- Caso de uso Administrar documentos XML
Insertar documento XML
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_documentos(from Administrar documentos)
Lista documentos
(from Administrar documentos)
<<build>>
adddocumentoform
ValidateForm()
(from Administrar documentos)
<<link>><<build>>
formadddocumento
(from Administrar documentos)
<<dependency>>
adddocumento
(from Administrar documentos)
<<submit>>
Documento
iddoctitulofichurlidusuariopublicadoestado
Eliminar()Insertar()Modificar()Publicar()
(from Acceso a datos)
<<dependency>>
Figura 16. Diagrama de clases del caso de uso Administrar documentos XML (Insertar).
69
Capítulo IV. Construcción de la solución propuesta
Modificar documento XML
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_documentos(from Administrar documentos)
Lista documentos
(from Administrar documentos)
<<build>>
formmodifdocumento
(from Administrar documentos)
modifdocumento
ValidateForm()
(from Administrar documentos)
<<link>><<build>>
<<dependency>>
actdocumento
(from Administrar documentos)
<<submit>>
Documento
iddoctitulofichurlidusuariopublicadoestado
Eliminar()Insertar()Modificar()Publicar()
(from Acceso a datos)
<<dependency>>
Figura 17. Diagrama de clases del caso de uso Administrar documentos XML (Modificar).
70
Capítulo IV. Construcción de la solución propuesta
Eliminar documento XML
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(f rom Acceso a datos)
Lista_documentos(f rom Administrar documentos)
Lista documentos
(f rom Administrar documentos)
<<build>>
elimina_documento
(f rom Administrar documentos)
<<link>><<build>>
formelimdocumento
(f rom Administrar documentos)
<<dependency>>
eliminadocumento
(f rom Administrar documentos)
<<submit>>
Documento
iddoctitulofichurlidusuariopublicadoestado
Eliminar()Insertar()Modificar()Publicar()
(f rom Acceso a datos)
<<dependency>>
Figura 18. Diagrama de clases del caso de uso Administrar documentos XML (Eliminar).
71
Capítulo IV. Construcción de la solución propuesta
4.1.3.2- Caso de uso Administrar grupos
Insertar grupo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_grupo(from Administrar grupos)
Lista grupo
(from Administrar grupos)
<<build>>
addgroupform
ValidateForm()
(from Administrar grupos)
<<link>> <<build>>
formaddgroup
(from Administrar grupos)
Grupo
idgruponombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
addgroup
(from Administrar grupos)
<<submit>>
<<dependency>>
<<dependency>>
Figura 19. Diagrama de clases del caso de uso Administrar grupos (Insertar).
72
Capítulo IV. Construcción de la solución propuesta
Modificar grupo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_grupo(from Administrar grupos)
Lista grupo
(from Administrar grupos)
<<build>>
modifgrupo
ValidateForm()
(from Administrar grupos)
<<link>><<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifgroup
(from Administrar grupos)
Grupo
idgruponombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
actgroup
(from Administrar grupos)
<<submit>>
<<dependency>>
<<dependency>>
Figura 20. Diagrama de clases del caso de uso Administrar grupos (Modificar).
73
Capítulo IV. Construcción de la solución propuesta
Eliminar grupo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_grupo(from Administrar grupos)
Lista grupo
(from Administrar grupos)
<<build>>
elimina_grupo
(from Administrar grupos)
<<link>> <<build>>
formelimgrupo
(from Administrar grupos)
eliminagrupo
(from Administrar grupos)
<<submit>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
Grupo
idgruponombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
<<dependency>>
<<dependency>>
Figura 21. Diagrama de clases del caso de uso Administrar grupos (Eliminar).
74
Capítulo IV. Construcción de la solución propuesta
4.1.3.3- Caso de uso Administrar módulos
Insertar módulo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_modulo(from Administrar modulos)
Lista modulo
(from Administrar modulos)
<<build>>
addmodulosform
ValidateForm()
(from Administrar modulos)
<<link>> <<build>>
formaddmodulo
(from Administrar modulos)
Modulo
idmodulonombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
addmodulo
(from Administrar modulos)
<<submit>>
<<dependency>>
<<dependency>>
Figura 22. Diagrama de clases del caso de uso Administrar módulos (Insertar).
75
Capítulo IV. Construcción de la solución propuesta
Modificar módulo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_modulo(from Administrar modulos)
Lista modulo
(from Administrar modulos)
<<build>>
modifmodulo
ValidateForm()
(from Administrar modulos)
<<link>><<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifmodulo
(from Administrar modulos)
Modulo
idmodulonombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
1
1
1
actmodulo
(from Administrar modulos)
<<submit>>
<<dependency>>
<<dependency>>
Figura 23. Diagrama de clases del caso de uso Administrar módulos (Modificar).
76
Capítulo IV. Construcción de la solución propuesta
Eliminar módulo
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_modulo(from Administrar modulos)
Lista modulo
(from Administrar modulos)
<<build>>
elimina_modulo
(from Administrar modulos)
<<link>> <<build>>
formelimmodulo
(from Administrar modulos)
eliminamodulo
(from Administrar modulos)
<<submit>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
Modulo
idmodulonombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
<<dependency>>
<<dependency>>
Figura 24. Diagrama de clases del caso de uso Administrar módulos (Eliminar).
77
Capítulo IV. Construcción de la solución propuesta
4.1.3.4- Caso de uso Administrar opciones
Insertar opción
Opcion
idopciontitulourlestadomodulo
Eliminar()Insertar()Modificar()
(from Acceso a datos)
addopcion
(from Administrar opciones)
formaddopcion
(from Administrar opciones)
<<submit>>
addopcionform
ValidateForm()
(from Administrar opciones)
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_opciones(from Administrar opciones)
<<link>>
Lista opciones
(from Administrar opciones)
<<build>>
<<build>>
<<dependency>>
<<dependency>>
Figura 25. Diagrama de clases del caso de uso Administrar opciones (Insertar).
78
Capítulo IV. Construcción de la solución propuesta
Modificar opción
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_opciones(from Administrar opciones)
Lista opciones
(from Administrar opciones)
<<build>>
modifopcion
ValidateForm()
(from Administrar opciones)
<<link>> <<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifopcion
(from Administrar opciones)
Opcion
idopciontitulourlestadomodulo
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
actopcion
(from Administrar opciones)
<<submit>>
<<dependency>>
<<dependency>>
Figura 26. Diagrama de clases del caso de uso Administrar opciones (Modificar).
79
Capítulo IV. Construcción de la solución propuesta
Eliminar opción
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_opciones(from Administrar opciones)
Lista opciones
(from Administrar opciones)
<<build>>
elimina_opcion
(from Administrar opciones)
<<link>> <<build>>
formelimopcion
(from Administrar opciones)
eliminaopcion
(from Administrar opciones)
<<submit>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
Opcion
idopciontitulourlestadomodulo
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
<<dependency>>
<<dependency>>
Figura 27. Diagrama de clases del caso de uso Administrar opciones (Eliminar).
80
Capítulo IV. Construcción de la solución propuesta
4.1.3.5- Caso de uso Administrar privilegios
Insertar privilegio
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_privilegios(from Administrar privilegios)
Lista privilegios
(from Administrar privilegios)
<<build>>
addprivilegioform
ValidateForm()
(from Administrar privilegios)
<<link>> <<build>>
formaddprivilegio
(from Administrar privilegios)
Privilegio
idprivilegioidgrupoidopcionacceso
Eliminar()Insertar()Modificar()
(from Acceso a datos)
addprivilegio
(from Administrar privilegios)
<<submit>>
<<dependency>>
<<dependency>>
Figura 28. Diagrama de clases del caso de uso Administrar privilegios (Insertar).
81
Capítulo IV. Construcción de la solución propuesta
Modificar privilegio
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_privilegios(from Administrar privilegios)
Lista privilegios
(from Administrar privilegios)
<<build>>
modifprivilegio
ValidateForm()
(from Administrar privilegios)
<<link>> <<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifprivilegio
(from Administrar privilegios)
Privilegio
idprivilegioidgrupoidopcionacceso
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
actprivilegio
ModificarPrivilegio()
(from Administrar privilegios)
<<submit>>
<<dependency>>
<<dependency>>
Figura 29. Diagrama de clases del caso de uso Administrar privilegios (Modificar).
82
Capítulo IV. Construcción de la solución propuesta
Eliminar privilegio
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_privilegios(from Administrar privilegios)
Lista privilegios
(from Administrar privilegios)
<<build>>
elimina_privilegio
(from Administrar privilegios)
<<link>> <<build>>
formelimprivilegio
(from Administrar privilegios)
eliminaprivilegio
(from Administrar privilegios)
<<submit>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
Privilegio
idprivilegioidgrupoidopcionacceso
Eliminar()Insertar()Modificar()
(from Acceso a datos)
11
11
<<dependency>>
<<dependency>>
Figura 30. Diagrama de clases del caso de uso Administrar privilegios (Eliminar).
83
Capítulo IV. Construcción de la solución propuesta
4.1.3.6- Caso de uso Administrar sitios de publicación
Insertar sitio de publicación
SitioPublicacion
idsitionombrecaminoestadodescripcionpath
Eliminar()Insertar()Modificar()
(from Acceso a datos)
addsitio
(from Administrar sitios)
formaddsitio
(from Administrar sitios)
<<submit>>
addsitioform
ValidateForm()
(from Administrar sitios)
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_sitios(from Administrar sitios)
<<link>>
Lista sitios
(from Administrar sitios)
<<build>>
<<build>><<dependency>>
<<dependency>>
Figura 31. Diagrama de clases del caso de uso Administrar sitios de publicación (Insertar).
84
Capítulo IV. Construcción de la solución propuesta
Modificar sitio de publicación
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_sitios(from Administrar sitios)
Lista sitios
(from Administrar sitios)
<<build>>
modifsitio
ValidateForm()
(from Administrar sitios)
<<link>> <<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifsitio
(from Administrar sitios)
SitioPublicacion
idsitionombrecaminoestadodescripcionpath
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
1
1
1
actsitio
(from Administrar sitios)
<<submit>>
<<dependency>>
<<dependency>>
Figura 32. Diagrama de clases del caso de uso Administrar sitios de publicación (Modificar).
85
Capítulo IV. Construcción de la solución propuesta
Eliminar sitio de publicación
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_sitios(from Administrar sitios)
Lista sitios
(from Administrar sitios)
<<build>>
elimina_sitio
(from Administrar sitios)
<<link>> <<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formelimsitio
(from Administrar sitios)
SitioPublicacion
idsitionombrecaminoestadodescripcionpath
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
1
1
1
eliminasitio
(from Administrar sitios)
<<submit>>
<<dependency>>
<<dependency>>
Figura 33. Diagrama de clases del caso de uso Administrar sitios de publicación (Eliminar).
86
Capítulo IV. Construcción de la solución propuesta
4.1.3.7- Caso de uso Administrar usuarios
Insertar usuario
Usuario
idusuarionombreapellidosloginclaveclasificacionestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
adduser
(from Administrar usuarios)
formadduser
(from Administrar usuarios)
<<submit>>
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_usuario(from Administrar usuarios)
adduserform
ValidateForm()
(from Administrar usuarios)
<<link>>
Lista usuario
(from Administrar usuarios)
<<build>>
<<build>>
<<dependency>>
<<dependency>>
Figura 34. Diagrama de clases del caso de uso Administrar usuarios (Insertar).
87
Capítulo IV. Construcción de la solución propuesta
Modificar usuario
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_usuario(from Administrar usuarios)
Lista usuario
(from Administrar usuarios)
<<build>>
modifuser
ValidateForm()
(from Administrar usuarios)
<<link>> <<build>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
formmodifuser
(from Administrar usuarios)
Usuario
idusuarionombreapellidosloginclaveclasificacionestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
1
1
1
actusuario
(from Administrar usuarios)
<<submit>>
<<dependency>>
<<dependency>>
Figura 35. Diagrama de clases del caso de uso Administrar usuarios (Modificar).
88
Capítulo IV. Construcción de la solución propuesta
Eliminar usuario
ADODBPager
iddbsqlelimmodifagrowsshowpageLinkslinksPerPages
ADODB_Pager()Render()
(from Acceso a datos)
Lista_usuario(from Administrar usuarios)
Lista usuario
(from Administrar usuarios)
<<build>>
elimina_usuario
(from Administrar usuarios)
<<link>>
<<build>>
formelimuser
(from Administrar usuarios)
eliminausuario
(from Administrar usuarios)
<<submit>>
ADOConnection
databasedatabasetypehostuserpass
ADONewConnection()PConnect()Execute()GetUpdateSQL()Close()
(from Acceso a datos)
Usuario
idusuarionombreapellidosloginclaveclasificacionestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
1
1
1
<<dependency>>
<<dependency>>
Figura 36. Diagrama de clases del caso de uso Administrar usuarios (Eliminar).
4.2- Principios de diseño
4.2.1- Interfaz de usuario
La interfaz diseñada presenta a los usuarios una aplicación clara, sencilla y de fácil
manejo; con vistas a garantizar la eficiente navegación a través de las diferentes
opciones que brinda el sistema. El sistema tiene el mismo aspecto y diseño en todas
sus páginas, garantizando la consistencia del sitio lo que permite a los usuarios
construir un modelo preciso de la forma en que trabaja.
89
Capítulo IV. Construcción de la solución propuesta
Se utiliza un menú desplegable que posibilita el agrupamiento de la navegación y no
ocupa mucho espacio, permitiendo al usuario moverse libremente dentro del sitio.
Además ofrece una visión de la estructura del mismo. (Ver Anexo 1).
La aplicación se caracteriza por tener pocas imágenes. Los colores y fuentes
utilizados cumplen con los estándares de diseño para aplicaciones Web.
Se utilizan textos oscuros en fondos claros y textos claros en fondos oscuros para
resaltar las opciones que se brindan. Predominan las tonalidades naranjas siguiendo
el estándar usado para representar los contenidos XML en Internet.
La familia de fuentes seleccionada fue: Verdana, Arial, Helvética y se utilizaron hojas
de estilo para garantizar la uniformidad de la información que se visualiza.
4.2.2- Formato de reportes
El Sistema de Gestión de Contenidos XML muestra diferentes listados para el trabajo
con las funcionalidades del mismo. Estos tienen un formato estándar para garantizar
la consistencia de la interfaz de la aplicación.
Los títulos se muestran centrados y de color negro. La fuente de los encabezados de
las tablas es de color blanco, sobre un fondo gris. El color de fondo en el resto de la
tabla es diferente para las celdas alternas. La primera columna de cada listado
contiene los números correspondientes a las filas. En el extremo superior izquierdo
se ubican los números de las páginas, resaltando el de la página visualizada; para
los casos en que la información que se muestra exceda los siete elementos. En el
extremo inferior izquierdo aparece el número de la página actual y el de la cantidad
total de páginas del listado. Para las funciones de administración se brinda la
posibilidad de realizar operaciones en lote. Los vínculos a estas opciones se ubican
en la parte inferior derecha. Se utilizan imágenes sencillas y que sugieren claramente
el tipo de operación que se realiza al dar click sobre ella. (Ver Anexo 2).
4.2.3- Concepción general de la ayuda
La ayuda se concibió para el trabajo de todos los usuarios que interactúen con el
sistema y se puede acceder a ella desde el menú principal de la aplicación.
90
Capítulo IV. Construcción de la solución propuesta
Se contemplan los pasos necesarios para el manejo de las distintas funcionalidades
del sistema. Contiene documentación sobre la tecnología XML, para un mejor
entendimiento de las operaciones que se pueden realizar con la aplicación sobre los
documentos XML. (Ver Anexo 3).
4.2.4- Estilo de código
El uso de un estilo uniforme facilita la lectura del código por parte de los
programadores, particularmente en las etapas de mantenimiento y los ciclos de
depuración de errores; evitando que se pueda llegar incluso a la reprogramación,
debido a la difícil asimilación del código fuente del software. La correcta utilización
del estilo de código evidencia el aumento de la eficiencia de los programadores.
Palabras reservadas
Las palabras reservadas van en minúsculas sin excepción alguna.
Identación
El identado es de dos espacios por bloque de código.
Los inicios ( { ) y cierre ( } ) de ámbito están alineados debajo de la declaración a la
que pertenecen y en una línea ellos solamente.
Las funciones no llevan espacio de separación con respecto al margen izquierdo.
Uso de espacios en blanco
El uso de espacios en blanco mejora la legibilidad del código agrupando secciones
de código que se relacionan lógicamente.
Los signos lógicos y de operación están separados por un espacio antes y después
del mismo.
Líneas en blanco
Se coloca una línea en blanco antes y después de:
la declaración de una clase.
las funciones de una clase.
91
Capítulo IV. Construcción de la solución propuesta
comentarios que están relacionados con una porción de código.
el conjunto de instrucciones que cumplen una función específica y difícil de
comprender.
Comentarios
Los comentarios se hacen en español.
Los comentarios de línea siguen al código que referencian y aparecen en la misma
línea.
Se coloca un comentario al inicio de cada clase y método para explicar su objetivo.
Declaraciones IF
La cláusula else, siempre está alineada con la cláusula if.
Declaraciones SWITCH
Las expresiones constantes dentro de las declaraciones switch están ordenadas
numérica o alfabéticamente, dependiendo del tipo al que pertenecen; si
corresponden a variables sin tipo están ordenadas de acuerdo al grado de
importancia.
Todas las partes de la declaración están identadas. Todas las declaraciones de
condición están escritas dentro del bloque {}. La cláusula default se alinea con la
cláusula case.
Declaraciones repetitivas: WHILE, FOR, DO WHILE
Todo el código de inicialización para un ciclo se realiza antes de entrar al mismo.
Los inicios ( { ) y cierre ( } ) no aparecen en la misma línea de la declaración del ciclo,
estos se alinean debajo de la declaración.
Reglas para seleccionar nombres
Se buscan nombres nemotécnicos que pueden ser una palabra simple o compuesta.
Las variables usadas para el control de un ciclo generalmente son nombradas con un
solo caracter como i, j o k.
92
Capítulo IV. Construcción de la solución propuesta
4.2.5- Tratamiento de excepciones
Dada la importancia del tratamiento de errores, se realiza un trabajo minucioso tanto
del lado del cliente como del servidor de las páginas Web.
En el cliente se usarán listas de selección y checkbox para seleccionar datos,
siempre que deba elegir valores predeterminados. Por otra parte, se realizarán las
validaciones de los formularios a través de funciones JavaScript.
En todos los casos se mostrarán mensajes de error al usuario que especifiquen de
forma clara los errores cometidos para su corrección.
4.3- Diseño de la base de datos
4.3.1- Modelo lógico de datos
SitioPublicacion
idsitionombrecaminoestadodescripcionpath
Eliminar()Insertar()Modificar()
(from Acceso a datos)
DocPublicado
iddocpubiddocidsitio
Insertar()
(from Acceso a datos)
0..n1 0..n1
Documento
iddoctitulofichurlidusuariopublicadoestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
10..n 10..n
Usuario
idusuarionombreapellidosloginclaveclasificacionestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
10..n 10..n
Grupo
idgruponombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
1
0..n
1
0..n
Privilegio
idprivilegioidgrupoidopcionacceso
Eliminar()Insertar()Modificar()
(from Acceso a datos)
10..n 10..n
Opcion
idopciontitulourlestadomodulo
Eliminar()Insertar()Modificar()
(from Acceso a datos)
0..n1 0..n1
Modulo
idmodulonombreestado
Eliminar()Insertar()Modificar()
(from Acceso a datos)
0..n1 0..n1
Figura 37. Modelo lógico de datos.
93
Capítulo IV. Construcción de la solución propuesta
4.3.2- Modelo físico de datos
T_SitiosPublicacionidsitio : INTnombre : VARCHAR(0)camino : VARCHAR(0)estado : CHAR(0)descripcion : VARCHAR(0)path : VARCHAR(0)
T_DocPublicadosiddocpub : INTiddoc : INTidsitio : INT
0..*1 0..*1
T_Documentosestado : CHAR(0)fecha : DATETIMEfile : VARCHAR(0)publicado : CHAR(0)titulo : VARCHAR(0)urlfrom : VARCHAR(0)iddoc : INTidusuario : INT
0..* 10..* 1
T_Usuariosidusuario : INTnombre : VARCHAR(0)apellidos : VARCHAR(0)login : VARCHAR(0)clave : VARCHAR(0)estado : CHAR(0)idgrupo : INT
0..*1
0..*1
T_Gruposidgrupo : INTnombre : VARCHAR(0)estado : CHAR(0)
0..*1 0..*1
T_Modulosidmodulo : INTnombre : VARCHAR(0)estado : CHAR(0)
T_Privilegiosacceso : CHAR(0)idprivilegio : INTidgrupo : INTidopcion : INT
0..* 10..* 1
T_Opcionesidopcion : INTtitulo : VARCHAR(0)url : VARCHAR(0)estado : CHAR(0)idmodulo : INT
0..* 10..* 1
0..*
1
0..*
1
Figura 38. Modelo físico de datos.
4.4- Modelo de despliegue
El diagrama de despliegue muestra la configuración de los componentes hardware,
los procesos, los elementos de procesamiento en tiempo de ejecución y los objetos
que existen en tiempo de ejecución. En este tipo de diagramas intervienen nodos,
asociaciones de comunicación, componentes dentro de los nodos y objetos que se
encuentran a su vez dentro de los componentes. Un nodo es un objeto físico en
tiempo de ejecución, es decir, una máquina que se compone habitualmente de, por lo
94
Capítulo IV. Construcción de la solución propuesta
menos, memoria y capacidad de procesamiento, a su vez puede estar formado por
otros componentes [Booch, 1996].
4.4.1- Estructura de los nodos
A continuación se detallan las características de los nodos:
Tabla 15. Estructura de los nodos.
Nodo Características
Cliente Memoria externa: 40Gb
Potencia de procesamiento: PIII 800MHz
Servidor Web Memoria externa: 20Gb
Potencia de procesamiento: PIII 800MHz
RAM: 512Mb
Protocolo: TCP/IP
Servidor de
aplicaciones y BD
Memoria externa: 2HDD 20Gb c/u
Potencia de procesamiento: PIII 900MHz
RAM: 512Mb
Protocolo: TCP/IP
Proxy Potencia de procesamiento: PIV 2GHz Compaq
Protocolo: TCP/IP
Servidor en Internet Protocolo: HTTP
Tipo de conexión: Internet
4.4.2- Modelo de capas
El sistema se diseña utilizando un modelo de cuatro capas: capa de datos, que
contiene todo lo relacionado con el almacenamiento de la información que maneja el
sistema así como las operaciones que se realizan sobre los datos, todas las tablas y
las relaciones entre ellas, además de los procedimientos almacenados y los ficheros
que utiliza; la capa de acceso a datos, que incluye las operaciones y métodos para
interactuar con la base de datos y los ficheros del sistema; capa de las reglas del
negocio, que permite realizar las validaciones de la entrada de los datos del usuario y
95
Capítulo IV. Construcción de la solución propuesta
los procesos que rigen el comportamiento de la aplicación; capa de presentación,
que establece una organización en cuanto a los elementos que se desean mostrar ya
sea en la inferfaz del sistema, en cuanto a fuentes, estilo de botones, imágenes,
colores, así como en la estructura de la base de datos.
Esta estructura multicapas ofrece muchas facilidades debido a la independencia
entre las capas, es decir, que una no conoce las responsabilidades de la otra, lo cual
posibilita que al realizar una actualización o mantenimiento del software en una, no
se afecte el funcionamiento de otra y por tanto la corrección de errores no sería una
tarea muy compleja.
4.4.3- Diagrama de despliegue
Figura 39. Diagrama de despliegue.
Conclusiones
La construcción de la solución comienza con la confección de los diagramas de
clases por paquetes, en aras de conocer las clases que se implementan para dar
solución al problema, teniendo presente que el sistema constituye una aplicación
Web y por lo tanto sigue otro tratamiento según UML.
96
Capítulo IV. Construcción de la solución propuesta
Se diseña la base de datos a través del diagrama de clases persistentes y el modelo
de datos. También se incluye el modelo de despliegue y se definen los principios de
diseño para desarrollar la aplicación y garantizar, de esta manera, claridad y una
buena navegabilidad.
De este modo queda demostrado cómo fue construida la solución propuesta para
resolver la situación problémica planteada. Seguidamente se realiza un estudio de
factibilidad al sistema y se analizan sus beneficios.
97
Capítulo V. Estudio de factibilidad
CAPÍTULO V. Estudio de Factibilidad
Introducción
Para la confección y desarrollo de todo proyecto de software siempre resulta
imprescindible hacer un estudio de factibilidad del mismo en fases tempranas, con el
objetivo de controlar todos los recursos que se mueven a su alrededor y reducir las
posibilidades de gastos innecesarios. Los resultados que se obtienen de este estudio
son la base para la toma de decisiones en la posterior introducción del software.
La estimación temprana del tiempo y esfuerzo requeridos para el desarrollo de un
proyecto de software, es la clave para evitar problemas como: el incremento de la
complejidad de los sistemas, que los proyectos nunca terminen en el plazo previsto,
así como problemas más costosos que se producen en las fases más tempranas del
desarrollo del software.
Existen varias metodologías para realizar el estudio de factibilidad de un proyecto de
software, la utilizada en este caso fue la estimación basada en casos de uso, ya que
resulta muy efectiva para estimar el esfuerzo requerido en el desarrollo de los
primeros casos de uso de un sistema, estos son los que ejercitan la mayor parte de
la arquitectura del software y los que a su vez ayudan a mitigar los riesgos más
significativos.
5.1- Planificación basada en casos de uso
Factor de Peso de los Actores sin ajustar (UAW). Tabla 16. Factor de Peso de los Actores sin ajustar (UAW).
Tipo de Actor Factor # Actores Resultado
Simple 1 0 0
Promedio 2 0 0
Complejo 3 3 9
Total (UAW) 9
98
Capítulo V. Estudio de factibilidad
Factor de Peso de los Casos de Uso sin ajustar (UUCW). Tabla 17. Factor de Peso de los Casos de Uso sin ajustar (UUCW).
Tipo de CU Descripción Factor # CU Resultado
Simple 1-3 transacciones 5 9 45
Promedio 4-7 transacciones 10 2 20
Complejo 8 o más transacciones 15 2 30
Total (UUCW) 95
Puntos de Casos de Uso sin ajustar (UUCP)
UUCP = UAW + UUCW = 9 + 95
UUCP = 104
Factores Técnicos (TCF)
Tabla 18. Factores técnicos (TCF).
# Factor Descripción Peso Valor Factor Comentario
T1 Sistema
Distribuido
2 4 8 Es una aplicación cliente-
servidor.
T2 Tiempo de
respuesta
1 5 5 Su objetivo fundamental
es agilizar todos los
procesos de gestión de
contenidos.
T3 Eficiencia por el
usuario
1 5 5 Garantiza que se
gestionen los contenidos
eficientemente.
T4 Procesamiento
interno complejo
1 1 1 No hay cálculos
complejos.
T5 Reusabilidad 1 5 5 Es totalmente reusable.
T6 Facilidad de 0.5 0 0 No requiere de
99
Capítulo V. Estudio de factibilidad
instalación instalación.
T7 Facilidad de uso 0.5 4 2 Fácil de usar.
T8 Portabilidad 2 5 10 Garantiza la portabilidad
hacia varios sistemas.
T9 Facilidad de
cambio
1 3 3 Se requiere un costo
moderado de
mantenimiento.
T10 Concurrencia 1 4 4 Garantiza la concurrencia
de usuarios.
T11 Objetivos
especiales de
seguridad
1 3 3 Seguridad normal.
T12 Acceso directo a
terceras partes
1 0 0 Los usuarios que navegan
por la Web no tienen
acceso directo.
T13 Facilidades
especiales de
entrenamiento a
usuarios finales
1 1 1 Pocos usuarios internos,
sistema fácil de usar.
Total (TFactor) 47
TCF = 0.6 + 0.01 * TFactor = 0.6 + 0.01 * 47 = 0.6 + 0.47
TCF = 1.07
Factores de Ambiente (EF)
Tabla 19. Factores de Ambiente (EF).
# Factor Descripción Peso Valor Factor Comentario
E1 Familiaridad con
el modelo de
proyecto utilizado
1.5 3 4.5 No existía una alta
familiaridad con el modelo
de proyecto utilizado.
100
Capítulo V. Estudio de factibilidad
E2 Experiencia en la
aplicación
0.5 3 1.5 Experiencia media en
cuanto al lenguaje de
programación utilizado.
E3 Experiencia en
O.O.
1 4 4 El grupo tiene experiencia
anterior en la
programación O.O.
E4 Capacidad del
analista líder
0.5 3 1.5 El analista líder tiene
experiencias anteriores de
otros proyectos
semejantes.
E5 Motivación 1 5 5 Alta motivación.
E6 Estabilidad de los
requerimientos
2 3 6 Existen posibilidades de
cambios futuros.
E7 Personal media
jornada
-1 5 -5 Todo el personal trabaja
media jornada.
E8 Dificultad en el
lenguaje de
programación
-1 3 -3 El lenguaje no tiene una
alta complejidad.
Total (EFactor) 14.5
EF = 1.4 + (-0.03 * EFactor) = 1.4 + (-0.03 * 14.5) =1.4 – 0.435
EF = 0.965
Puntos de Casos de Uso ajustados (AUCP)
AUCP = UUCP * TCF * EF = 104 * 1.07 * 0.965
AUCP = 107
Esfuerzo (E)
E = AUCP * CF = 107 * 20
E = 2140
101
Capítulo V. Estudio de factibilidad
Esfuerzo total (Etotal)
Etotal = E / 0.4 = 2140 / 0.4
Etotal = 5350
Tiempo de desarrollo (TDes)
TDes = Etotal / CHtotal = 5350 / 2
TDes = 2675
Costo Total (Ctotal)
Ctotal = Etotal * 2 * TH = 5350 * 2 * 1.031
Ctotal = 11031
CF: Factor de Conversión
TH: Tarifa Horaria
CHtotal: Cantidad de Hombres
5.2- Beneficios de la utilización del sistema
5.2.1- Beneficios tangibles
En el mercado internacional existen soluciones que brindan algunas de las
funcionalidades que se requieren, pero no engloban todas las que se necesitan ni se
adaptan a las especificidades de la empresa CITMATEL, además de que son
comerciales, lo que implicaría un gasto monetario que superaría el costo de la
realización del sistema en la empresa.
El desarrollo del mismo en CITMATEL implicaría un ahorro de 8300 dólares por una
cuota inicial de diez licencias, sin contar los costos de mantenimiento y cumpliría con
la política del país que aboga por la utilización de software gratis y de código abierto.
102
Capítulo V. Estudio de factibilidad
5.2.2- Beneficios intangibles
La realización de este proyecto resulta muy factible a la empresa, ya que constituirá
una herramienta de trabajo diario, brindando facilidades como ahorro de tiempo y
recursos. Con la utilización de la tecnología XML las páginas se cargan más rápido y
se agiliza la gestión de contenidos, ya que no se requiere del acceso a las bases de
datos pues estos están en formato XML. El sistema propuesto será portable y
genérico, de modo que servirá a los diferentes proyectos que se desarrollen en la
empresa; ya que esta actualmente desarrolla aplicaciones para móviles y palms,
entre otras, que no utilizan código HTML pero sí manejan, gestionan y publican
contenidos Web.
Además beneficiará a los usuarios finales, para los que CITMATEL confecciona los
sitios, pues los contenidos que se exponen se harán más visibles y comprensibles,
habrá una contribución al uso de las nuevas tecnologías, se elevará el número de
visitantes a sus sitios y la fidelidad de estos a los mismos.
La puesta en funcionamiento de este sistema representa un aporte al desarrollo del
plan de informatización de la sociedad y el empleo eficiente de las TIC, lo que
contribuye con la batalla de ideas que se lleva a cabo en nuestro país.
5.3- Análisis de costo-beneficio
Tomando como base el estudio de factibilidad realizado y el conjunto de beneficios
tangibles e intangibles que brinda el sistema propuesto, se determina que el mismo
es factible y que su empleo contribuye en gran medida al desarrollo satisfactorio de la
empresa CITMATEL.
El costo estimado es bajo en comparación con los del resto de las soluciones
existentes en el mercado internacional, a pesar de no incluir los costos adicionales
que conllevarían la completa realización y posterior implantación y mantenimiento del
sistema.
103
Capítulo V. Estudio de factibilidad
Conclusiones
El estudio de factibilidad de un proyecto de desarrollo de software constituye un
factor importante y una herramienta clave en el análisis de la estimación de los
resultados del proyecto y de los valores de tiempo, costo y recursos requeridos.
Este contribuye a estimar el alcance que tendrá el producto en desarrollo.
El sistema propuesto se considera económicamente factible debido a todos los
beneficios que reporta y al impacto social que conlleva.
104
Conclusiones
CONCLUSIONES
A partir de la realización del presente trabajo se puede arribar a las siguientes
conclusiones:
Se automatizaron los procesos que permiten a los especialistas en información y
gestión de contenidos de la UEB Servicios Web de CITMATEL una gestión
eficiente de los contenidos XML, cumplimentando así los requerimientos
funcionales del sistema propuesto.
Se logró la interacción con otros sitios Web que generan contenidos XML y la
reutilización de los mismos por los distintos servicios de información de
CITMATEL.
Se independizó la publicación de los contenidos de las conexiones a las bases de
datos, con la réplica de los mismos en formato XML.
Se diseñó una interfaz sencilla y de fácil manejo para el trabajo de los
especialistas en información y gestión de contenidos de la UEB Servicios Web de
CITMATEL, que son los usuarios del sistema.
Se realizó un análisis crítico y comparativo de los sistemas de este tipo existentes
en el mundo con el sistema propuesto, que junto al análisis costo-beneficio del
desarrollo de este último, corroboraron la factibilidad de la realización del mismo.
Se conformó la documentación detallada del proyecto de software que se propone
con el empleo del lenguaje UML y de RUP como metodología para el desarrollo
de la Ingeniería de Software del sistema.
Se implementó una aplicación Web portable, que sirve de núcleo para la gestión
de contenidos XML del conjunto de servicios de información de CITMATEL.
105
Recomendaciones
RECOMENDACIONES
Con vistas a mejorar los resultados obtenidos con la realización de este proyecto se
recomienda:
Proveer al sistema de otras funcionalidades como: generar XML a partir de una
base de datos y/o con un formato específico, crear plantillas XML y corregir
contenidos.
Extender la aplicación al trabajo con ficheros RSS, para aumentar las facilidades
en el manejo de contenidos; específicamente en los servicios de noticias de
CITMATEL, que requieren de actualizaciones frecuentes.
106
Referencias bibliográficas
REFERENCIAS BIBLIOGRÁFICAS
[Aguilar, 2004]. Aguilar, V; Suau, P. MySQL vs. PostgreSQL. http://www.mmlabx.ua.es/mysql_postgres.html. (22/12/05). 2004. [Álvarez, 2005a]. Álvarez, M.A. Páginas dinámicas de cliente. http://www.desarrolloweb.com/articulos/714.php?manual=27. (13/02/06). España 2005. [Álvarez, 2005b]. Álvarez, M.A. ¿Qué es Java? http://www.DesarrolloWeb.com. (09/02/06). España 2005. [Anónimo, 2002]. Rational Rose Enterprise Edition. http://www.ciao.es/Rational_Rose_Enterprise_Edition__Opinion_612900. (13/02/06). 2002. [Anónimo, 2005a]. Comparativa en Benchmarks entre MySQL Y PostgreSQL. http://glud.udistrital.edu.co/glud/areas/doc/miniproyectos/6_comparativa_bd/miproyecto_old/x996.html. (20/02/06). Colombia. 2005. [Anónimo, 2005b]. Ventajas y desventajas de Java. http://paidoteca.dgsca.unam.mx/neopaidoteca/cursos/becas-java/Java2b.html. (13/02/06). 2005. [Anónimo, 2006]. Introducción a la ingeniería del software. http://www.desarrollos-mecame.com. (13/02/06). 2006. [Booch, 1996]. Booch, G. Análisis y Diseño Orientado a Objetos. 2da edición. Ed. Addison-Wesley / Díaz de Santos. 1996. [Castillo, 2004]. Castillo, C. XML y marcado. http://www.tejedoresdelweb.com/307/article-1057.html. (17/02/06). 2004. [Ciberaula, 2005]. Ciberaula. Acerca de ASP.NET. http://www.ciberaula.com/curso/aspnet/que_es/. (13/02/06). 2005.
107
Referencias bibliográficas
[Cibertua, 2005]. Cibertua.Net. Introducción a PHP. http://www.cibertua.net/webmaster/php/default.asp. (09/02/06). 2005. [CITMA, 2005]. CITMA. Proyecto Red de la Ciencia. http://programa.redciencia.cu. (20/02/06). Cuba. 2005. [Corporation, 2000]. Corporation, M. Libros en Pantalla de Microsoft SQL Server 2000. 2000.
[Cortés, 2002]. Cortés Cortés, C. ¿Porque PHP se esta comiendo al ASP?. http://bulma.net/body.phtml?nIdNoticia=1363. (20/02/06). 2002.
[Delgado, 2001]. Delgado, A. XML y tecnologías asociadas: Hacia la Web Semántica. Barcelona, España. 2001.
[Development, 2005]. Development, C.S. PostGreSQLDirect.Net Data Provider. http://crlab.com/pgsqlne. (20/02/06). 2005. [EO, 2005]. EO. ¿Qué es un servidor Web? http://eo.ccu.uniovi.es/llamaquique/virtual/recursos/comun/webHTML/servidorweb/servidorweb.htm. (16/01/06). 2005. [Escobar, 2004]. Escobar Jariton, N. Tecnologías. http://www.alexandria.com.mx/tecnologias.php. (24/02/06). México. 2004. [Fernández, 1998]. Fernández, J.M. MySQL Servidor de Bases de Datos. http://www.linuxfocus.org/Castellano/July1998/article59.html. (23/02/06). 1998.
[Hull, 2006]. Hull, S. PHP and ASP.NET Go Head-to-Head. One developer's view of the pros and cons of the two most popular means of building web applications. http://www.oracle.com/technology/pub/articles/hull_asp.html. (20/02/06). 2006.
[Internet Information Server, 2000]. Internet Information Server. Microsoft Corporation. Microsoft Windows 2000 Server Documentation. 2000.
108
Referencias bibliográficas
[Jacobson, 1999]. Jacobson, I; Booch, G; Rumbaugh, J. Ed. Addison Wesley, Proceso Unificado Captura Requisitos. España. 1999.
[Jacobson, 2000] Jacobson, I; Booch, G; Rumbaugh, J. El proceso unificado de desarrollo de software. 2da Edición. Madrid, España. 2000. [Kruchten, 2001]. Kruchten, P. The Rational Unified Process An Introduction. Addison Wesley. 2001.
[Lechuga, 2004]. Lechuga Gómez, O.L. Extended Markup Language (XML). http://www.programacion.net/visitar.php?id=76. (10/02/06). Universidad de Málaga, España. 2004.
[Masip, 2002]. Masip, D. ¿Qué es Oracle? http://www.desarrooloweb.com/articulos. (23/5/2005). 2002.
[Mateu, 2004]. Mateu, C. Desarrollo de Aplicaciones Web. 1ra Edición. Catalunya: Eureca Media. 2004.
[Merino, 2003]. Merino, M. Manual de XML. http://www.mundophp.org/documentacion/xml/?cap=1. (10/02/06). España. 2003.
[Monografías, 2005]. Monografías. Introducción a Java. http://www.monografias.com/trabajos/java/java.shtml. (13/02/06). 2005.
[Ortín, 2004]. Ortín, M.J. El Modelo del Negocio como base del Modelo de Requisitos. http://www.lsi.us.es/~amador/JIRA/Ponencias/JIRA_Ortin.pdf. (05/05/06). España. 2004.
[Osmosis Latina, 2000]. Osmosis Latina. Servidores de Páginas: "Web-Servers" y "Java Application Servers". http://www.osmosislatina.com/aplicaciones/servidor_web.htm. (13/02/06). 2000.
[Reino, 2000]. Reino, A. Introducción a XML en castellano. http://asptutor.com/xml/default.asp. (10/02/06). 2000.
109
Referencias bibliográficas
[Reynoso, 2006]. Reynoso, A.; Pagano de Harriague, J. Desarrollo de Aplicaciones en .NET. http://www.microsoft.com/Argentina/downs/ppt_nov02_arg/MB_Cordoba_3-12/Conferencia1y2.htm. España. 2006.
[Universidad de Navarra, 2005]. Universidad de Navarra. Introducción al JavaScript. http://www.unav.es/cti/manuales/TutorialJavaScript/lecciones/leccion1.html. (13/02/06). 2005.
[Wikipedia, 2006]. Wikipedia. XHTML. http://es.wikipedia.org/wiki/XHTML. (24/02/06). 2006.
[XML Software, 2000]. XML Software. XML Editors. http://www.xmlsoftware.com/editors.html. (15/03/06). 2000.
[Zarza, 2003]. Zarza, J.L. Application Service Provider ASP. http://64.233.179.104/search?q=cache:xxYJirAi-IwJ:www.jeuazarru.com/docs/ASP.html. (13/02/06). Asunción, Paraguay. 2003.
110
Bibliografía
BIBLIOGRAFÍA
Alcaide Rodríguez, I. Sistema de gestión de los cursos académicos de la CUJAE. Trabajo de Diploma para optar por el título de Ingeniero Informático. Instituto Superior Politécnico “José Antonio Echeverría”. Ciudad de La Habana, Cuba. 2002. Definición de las TICs. http://www.transformando.com/minisites/tecnologia/escritorio/Paginas/Cont1D.htm. (10/03/06). 2006. Guirola Tsibulova, D. Sistema de gestión para servicio de indexación de contenido Web de la RED-CUJAE. Trabajo de Diploma para optar por el título de Ingeniero Informático. Instituto Superior Politécnico “José Antonio Echeverría”. Ciudad de La Habana, Cuba. 2005.
Jorge Aguirre, Y.; Romero Lovio, L. Subsistema de selección y contratación. Versión SQL. Trabajo de Diploma para optar por el título de Ingeniero Informático. Instituto Superior Politécnico “José Antonio Echeverría”. Ciudad de La Habana, Cuba. 2004.
López Báez, Y. MiPlayer. Sistema de reproducción de contenidos multimedia. Trabajo de Diploma para optar por el título de Ingeniero Informático. Instituto Superior Politécnico “José Antonio Echeverría”. Ciudad de La Habana, Cuba. 2005.
Martínez Prieto, J.; Fernández Pérez, Y.; Otero Cruz, C.; et al. Buenas Prácticas para el Diseño de Sitios Web. Instituto Superior Politécnico “José Antonio Echeverría”. Ciudad de La Habana. Cuba. 2002.
Peralta, M. Estimación del esfuerzo basada en casos de uso. http://www.itba.edu.ar/capis/rtis/rtis-6-1/estimaci%F3n-del-esfuerzo-basada-en-casos-de-usos.pdf. (6/03/06). Buenos Aires, Argentina. 2004.
Tomas, Alex. Apache - Servidor HTTP. http://www.manualphp.es/diccionario-apache.html. (10/03/06). 2005.
Universidad Carlos III de Madrid. ¿Cómo citar bibliografía? http://www.uc3m.es/biblioteca/GUIA/citasbibliograficas.html. (27/02/06). España. 2005.
111
Bibliografía
Universidad de los Andes (Chile). Normas para la presentación de tesis. http://biblioteca.uandes.cl/doc/NTesis26102005.pdf. (27/02/06). Chile. 2005.
Vera, R. ¿Cómo escribir una tesis de grado? http://www.monografias.com/trabajos/tesisgrado/tesisgrado.shtml. (27/02/06). Argentina. 1997.
Wikipedia. Dirección IP. http://es.wikipedia.org/wiki/Direcci%C3%B3n_IP. (10/03/06). 2006.
Wikipedia. Domain Name System. http://es.wikipedia.org/wiki/DNS. (10/03/06). 2006.
Wikipedia. File Transfer Protocol. http://es.wikipedia.org/wiki/FTP. (10/03/06). 2006.
Wikipedia. RSS. http://es.wikipedia.org/wiki/RSS. (09/03/06). 2006.
Wikipedia. Web semántica. http://es.wikipedia.org/wiki/Web_sem%C3%A1ntica. (10/03/06). 2006.
112
Glosario de términos
GLOSARIO DE TÉRMINOS
Apache: Servidor HTTP de para plataformas Unix, Windows y otras,
que implementa el protocolo HTTP y la noción de sitio virtual.
código abierto
Base de datos: Conjunto de datos comunes a un proyecto, almacenados sin
redundancia, para ser útiles a múltiples aplicaciones.
Caso de uso: Especifica una secuencia de acciones que el sistema puede llevar a
cabo interactuando con sus actores, incluyendo alternativas dentro de la secuencia.
Cliente: Programa que se usa para contactar y obtener datos de un programa de
servidor localizado en otro ordenador, a menudo a gran distancia. Cada programa
cliente está diseñado para trabajar con uno o más tipos de programas servidores
específicos, y cada servidor requiere un tipo especial de cliente.
Código abierto (Open source): Término por el que se conoce al distribuido
y desarrollado bajo el concepto de código fuente disponible públicamente.
software
Dirección IP: Número que identifica a una interfaz de un dispositivo (habitualmente
un ordenador) dentro de una red que utilice el protocolo IP.
DNS (Domain Name System): Es una base de datos distribuida y jerárquica que
almacena información asociada a nombres de dominio en redes como Internet.
Aunque como base de datos el DNS es capaz de asociar distintos tipos de
información a cada nombre, los usos más comunes son la asignación de nombres de
dominio a direcciones IP y la localización de los servidores de correo electrónico de
cada dominio.
DOM (Modelo de Objetos del Documento): Representación interna estándar de la
estructura de un documento XML.
DTD (Definición de Tipos de Documentos): Definición de los elementos que puede
incluir un documento XML.
Escalabilidad: Capacidad de un sistema de incrementar sus prestaciones en función
del número de usuarios simultáneos que lo utilizan.
113
Glosario de términos
FTP (File Transfer Protocol): Es uno de los diversos protocolos de la red Internet y es
el ideal para transferir grandes bloques de datos por la red.
HTML (HyperText Markup Language): Lenguaje para dar formato a documentos de
hipertexto, concebido para mostrar páginas Web en un navegador. El formato de los
documentos se marca mediante etiquetas que indican el comienzo y el final de los
elementos que componen el documento como: encabezados, párrafos, hipervínculos
y otros.
HTTP: Protocolo estándar de comunicación y transferencia de información entre un
navegador y un servidor Web. Conjunto de reglas para transferencia de ficheros
(texto, gráfico, imagen, sonido, video, y otros) sobre la Web. Es un protocolo de
aplicación diseñado para la capa superior de protocolos TCP/IP.
IIS (Internet Information Server): Servidor Web que permite administrar las
aplicaciones Web y comunicarse con los navegadores cliente mediante el protocolo
HTTP; también ofrece otros servicios de protocolo, como transferencia de archivos
(FTP), servicio de correo electrónico (SMTP) y servicio de noticias (NNTP).
Internet: Conjunto de redes de computadoras interconectadas entre sí, Internet no
tiene una autoridad central. Cada red mantiene su independencia y se une
cooperativamente al resto respetando normas de interconexión. La familia de
protocolos TCP/IP es la encargada de agrupar esta diversidad de redes.
Intranet: Red de redes de una empresa. Su aspecto es similar al de las páginas de
Internet.
Java: Lenguaje de programación que permite crear programas que funcionan en
cualquier tipo de computadora y sistema operativo.
Lenguajes Scripts: Lenguajes de programación en el que los programas no son
compilados, sino interpretados.
Página dinámica: Página que crece a medida que se ingresa información sin
necesidad de generar más código, el cliente puede modificarlas tantas veces quiera,
añadiendo, borrando o modificando el contenido.
114
Glosario de términos
Página Web: Documento electrónico, unidad básica de información de la Web.
Portal: Término, sinónimo de puente, para referirse a un sitio Web que funciona
como una plataforma de despegue para la navegación en la Web.
Rational Rose: Herramienta de modelación visual que provee el modelado del
desarrollo de los proyectos basado en UML.
Red: En términos de tecnologías de información, una red es una serie de puntos o
nodos interconectados por algún medio físico de comunicación.
RSS (Really Simple Syndication): Es parte de la familia de los formatos XML
desarrollado específicamente para todo tipo de sitios que se actualicen con
frecuencia y por medio del cual se puede compartir la información y usarla en otros
sitios Web o programas.
Script: Tipo de programa que consiste en una serie de instrucciones que serán
utilizadas por otra aplicación.
Servidor: Un servidor es una computadora que trata las peticiones de datos, el
correo electrónico, la transferencia de ficheros, y otros servicios de red realizados por
otras computadoras (clientes).
SGBD (Sistema de Gestión de Base de Datos): Conjunto de elementos software con
capacidad para definir, mantener y utilizar una base de datos.
SGML (Standar Generalized Markup Language): Sistema para la organización y
etiquetado de documentos. Utilizado para especificar las reglas de etiquetado de
documentos y no impone en sí ningún conjunto de etiquetas en especial. Empleando
este lenguaje, se crean y mantienen documentos que luego son llevados a otros
formatos finales como HTML, XML, etc.
Sitio Web: Conjunto de archivos electrónicos y páginas Web referentes a un tema en
particular, que incluye una página inicial, con un nombre de dominio y dirección en
Internet.
Software: Conjunto de programas, instrucciones y reglas informáticas para ejecutar
ciertas tareas en una computadora.
115
Glosario de términos
TCP/IP: Conjunto de protocolos que cubren los distintos niveles del modelo OSI,
utilizado por todas las computadoras conectadas a Internet, de manera que estas
puedan comunicarse entre sí. TCP/IP es compatible con cualquier sistema operativo
y con cualquier tipo de hardware.
TIC (Tecnologías de la Información y las Comunicaciones): Conjunto de tecnologías
que permiten la adquisición, producción, almacenamiento, tratamiento, comunicación,
registro y presentación de informaciones contenidas en señales de naturaleza
acústica (sonidos), óptica (imágenes) o electromagnética (datos alfanuméricos).
UML: Lenguaje gráfico para especificar, construir, visualizar y documentar las partes
o artefactos que son información utilizada u originada mediante un proceso de
software. Es un lenguaje estándar de modelado orientado a objetos.
WAP (Wireless Application Protocol): Es un protocolo basado en los estándares de
Internet que ha sido desarrollado para permitir a teléfonos celulares navegar a través
de Internet.
WWW: Es uno de los muchos servicios que utiliza Internet sobre el protocolo IP, el
más visible y el que más rápidamente ha evolucionado.
XML (eXtensible Markup Language): Tecnología cuya principal novedad consiste en
permitir compartir los datos con los que se trabaja a todos los niveles, por todas las
aplicaciones y soportes.
XML Schema: Es un lenguaje para definir la estructura de los documentos XML.
XSL (eXtensible Stylesheet Language): Hojas de estilo para XML.
116
Anexos
ANEXOS
Anexo 1. Interfaz de usuario.
117
Anexos
Anexo 2. Formato de reportes.
118
Anexos
Anexo 3. Formato de la Ayuda del sistema.
119