Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1! INTRODUCCIN ........................................................................................................................... 7! 1.1! IDENTIFICACIN DEL PROYECTO ................................................... 7! 1.2! ORGANIZACIN DE LA DOCUMENTACIN................................... 7! INTRODUCCIN............................................................................................ 9! DESCRIPCIN GENERAL DEL PROYECTO.............................................................................. 10! 1.3! OBJETIVOS .......................................................................................... 12! 1.4! METODOLOGA .................................................................................. 13! 1.5! TECNOLOGAS DE DESARROLLO .................................................. 14! 1.5.1! HTML (Hiper Text Markup Language) ................................... 14! 1.5.2! GOOGLE APP ENGINE ......................................................... 14! 1.5.3! DISEO: CSS (Cascading Style Sheets) ................................. 14! 1.5.4! AJAX (Asynchronous JavaScript And Xml)............................. 15! 2! DESCRIPCIN GENERAL DEL PRODUCTO........................................................................ 16! 2.1! FUNCIONALIDADES DEL PRODUCTO ........................................... 17! 2.2! ARQUITECTURA DEL PRODUCTO.................................................. 18! 2.3! DESLIEGUE DEL PRODUCTO........................................................... 19! 3! PLANIFICACIN Y PRESUPUESTO ....................................................................................... 21! 3.1! ESTIMACIN DE COSTES MEDIANTE PUNTOS DE FUNCIN (PFA) 21! 3.1.1! EXPLICACIN DEL PROCESO ............................................ 21! 3.1.2! ESTIMACIN POR PUNTOS DE FUNCIN ........................ 23! 3.2! ESTIMACIN COSTES MEDIANTE COCOMO ............................... 26! 3.3! PLANIFICACIN ................................................................................. 27! 3.4! PRESUPUESTO .................................................................................... 29! 4! CUESTIONES RESEABLES .................................................................................................... 30! 5! CONCLUSIONES Y POSIBLES AMPLIACIONES................................................................. 33! 5.1! CONCLUSIONES ................................................................................. 33! 5.2! CONSECUCIN DE OBJETIVOS ....................................................... 33! 5.3! POSIBLE AMPLIACIONES ................................................................. 33! 6! BIBLIOGRAFA............................................................................................................................ 34! 7! ANEXOS ......................................................................................................................................... 35! 7.1! GLOSARIO DE TRMINOS ................................................................ 35!
2.2
INTRODUCCIN
El presente documento contiene informacin que describe el problema y la solucin que se adopta para el desarrollo del proyecto, en ella se guiar a travs de diferentes etapas, a medida que avancemos en el libro se irn concretando mas los aspectos que han tenido que realizarse para el correcto desarrollo de este proyecto.
2.3
Ttulo: Apps Web. Desarrollo de una aplicacin en la nube. Autor: Diego Yage Jurez. Tutor: Fernando Daz Gmez. Departamento: Informtica. rea: Ciencias de la Computacin e Inteligencia Artificial.
2.4
ORGANIZACIN DE LA DOCUMENTACIN
La documentacin que a continuacin se presenta est divida en tres bloques, atendiendo a las recomendaciones de la E.U. de Informtica de Segovia para la elaboracin de la documentacin de proyectos Fin de Carrera. Estas tres secciones son independientes entre s y estn compuestas por diferentes unidades bien diferenciadas. En ellas se sigue un proceso lgico para el desarrollo de un proyecto software. Describimos a continuacin cada una de las secciones correspondientes al presente documento. La Seccin I, denominada Memoria del proyecto, comprende un balance global de las consideraciones tenidas en cuenta para el proceso de desarrollo software, adems de unas previsiones iniciales. Ms concretamente, podemos encontrar: Descripcin del proyecto. Descripcin del producto software desarrollado. Memoria personal Planificacin y presupuesto. PFA y COCOMO Cuestiones de diseo y de implementacin que condicionaron el desarrollo y la realizacin de la documentacin Conclusiones y ampliaciones Bibliografa
La Seccin II es la correspondiente a la parte tcnica del proyecto. En esta parte se realiza un anlisis detallado de los recursos necesarios para desarrollar un sistema que se ajuste a los requisitos especificados por el cliente y reflejados en forma de: informacin relevante que debe almacenar el sistema, restricciones y funcionalidades que debe poseer el sistema. En la segunda parte de la descripcin tcnica se ha realizado un anlisis pormenorizado de cmo se quiere desarrollar el sistema y por tanto est enfocado al diseo del sistema. Se supone que estas dos fases sern realizadas con la suficiente rigurosidad por parte de los analistas con la finalidad de que resulte ms fcil a los programadores entender el alcance y funcionalidad global del sistema y as poder implementarlo lo mas eficientemente. En resumen podemos definir una serie de apartados en los que se divide esta parte:
Anlisis del Sistema En este apartado se definen los requisitos de informacin que va a gestionar el sistema, se definen los objetivos que van a guiar el desarrollo del software, y se documentan los requisitos funcionales mediante casos de uso. Se definen tambin que tipos de usuarios van a interactuar con el sistema.
Diseo del Sistema Profundizamos ms en el diseo del sistema y definimos nuestra estructura lgica de datos mediante los diagramas entidad-relacin y el modelo relacional. Describimos el comportamiento esttico del sistema definiendo los objetos del dominio, mediante los diagramas de clases y tambin describimos el comportamiento dinmico del sistema mediante la definicin de diagramas de secuencia.
Implementacin En este apartado se incluirn aquellos aspectos relevantes de cara a la implementacin final de los componentes y unidades que van a formar la aplicacin. Se detallarn tambin las tecnologas de las que nos hemos ayudado para realizar la implementacin.
Pruebas Para corroborar que el funcionamiento del sistema es el correcto, se ha utilizado una herramienta para comprobar que los tipos de datos, funciones, enlaces, etc. funcionan como cabra esperar.
La seccin III se corresponde con la documentacin de usuario, que esta dividida en dos partes: el manual de instalacin de la aplicacin y el manual de uso. En ellos encontraremos documentacin e ilustraciones correspondientes a la instalacin de programas auxiliares, as como una serie de vistas que ilustran el funcionamiento de la aplicacin.
2.5
INTRODUCCIN
Cuando un usuario inexperto en desarrollo Web desea realizar una aplicacin, el primer problema con el que se encuentra, es que la informacin sobre cmo comenzar, esta dispersa por numerosos sitios en Internet y as gasta un preciado tiempo en realizar bsquedas hasta encontrar el resultado deseado. Queremos unificar toda esa informacin y a los usuarios que hacen uso de ella a travs de una herramienta Web que sea capaz de gestionar todo el contenido y conectar con redes sociales. Con el paso del tiempo se han diversificado las herramientas de expresin a travs de Internet y el mbito de las comunidades online se ha extendido tambin al resto de aplicaciones de la web 2.0. Un problema es el despliegue de la aplicacin. Cumplir el hosting con nuestras expectativas? Cuanto almacenamiento contrato? Qu ancho de banda necesito? Estas y otras preguntas quedan resueltas conociendo algn proveedor que ofrezca sus servicios en la nube y satisfaga nuestras necesidades. Existen aplicaciones similares, tomar como ejemplo las grandes comunidades de usuarios con editores, comunicaciones en tiempo real, integracin con redes sociales, gestin de foros, etc. Lo que va a diferenciar a la aplicacin va a ser el contenido que se va a ofrecer y la manera de comunicarse con los usuarios. Con el uso de una plataforma en la nube, se ahorra tiempo en implementar cuestiones relativas a la seguridad y persistencia de los datos. Tambin ayuda a no tener que prever las capacidades del hosting, proporcionando todas las necesidades requeridas para soportar el ciclo completo de construir y entregar aplicaciones Web y servicios desde Internet. La nube permite que la aplicacin sea accesible desde diferentes dispositivos, no solo PCs, tambin por tablets, smartphones o porttiles. Un tema importante que queda resuelto es el de la elasticidad: Habilidad para decidir si hacer un uso mayor o menor de los recursos informticos en funcin de las necesidades. La aplicacin dispondr de las operaciones bsicas para gestionar las unidades de informacin. Estas operaciones son Alta, baja, modificacin, consulta y listados. La aplicacin tendr la capacidad de comunicarse con otras aplicaciones web en tiempo real. Los siguientes definen las caractersticas a grandes rasgos. Diseo de plantillas. Diseo de interfaces funcionales. Configuraciones Gestin de contenido: temas y artculos Gestin de usuarios
DESCRIPCIN GENERAL DEL PROYECTO El proyecto implementa un sistema que es capaz de gestionar una plataforma que permita la edicin de contenido online por diferentes usuarios, que dispondrn de diferentes roles y tareas dentro del mantenimiento del sistema. La idea del proyecto es que estos usuarios sin tener conocimientos sobre pginas web puedan escribir, modificar o eliminar artculos que a fin de cuentas son pginas web. Estos artculos se publicarn automticamente para facilidad de los administradores. Esta plataforma necesita de una infraestructura donde poder almacenar la informacin correspondiente a artculos, usuarios, configuraciones, etc. Para ello se ha escogido la nube de Google y App Engine para gestionar la informacin que ser almacenada en sus servidores y desplegar la aplicacin. App Engine dispone de una zona de trabajo para poder editar las configuraciones y parmetros del servidor donde vamos alojar la aplicacin. El mbito de uso de la aplicacin ser para usuarios que pretendan conocer ms sobre el mundo del desarrollo web, los cuales podrn realizar una visita por el sitio visualizando la informacin disponible , agregando comentarios, llegando incluso a poder publicar sus propios artculos. Para el administrador es la forma que tiene de publicar contenido y gestionar la informacin de todo el sistema. As pues, las necesidades que han motivado al estudio del problema son dos: Por una parte, se tiene la necesidad de automatizar el proceso de almacenamiento y gestin de los datos. Por otra parte, se necesita, crear interfaces (vistas) de usuario adecuadas para una navegacin agradable. Tambin realizar un sistema de gestin de plantillas para mejorar la eficiencia a la hora de escribirlas.
La gestin de contenidos abarca principalmente la administracin de informacin relativa a artculos, como su contenido y vista previa, informacin asociada a estos como pueden ser los comentarios, estadsticas e informacin adicional como el autor y fecha de publicacin. Tambin elementos comunes que comparten las pginas web como el encabezado y el pie de pgina.
Tambin necesitamos gestionar los ficheros como imgenes, hojas de estilo, scripts, etc. Estos recursos son imprescindibles para el buen funcionamiento del sistema, se necesita llevar un control de quien utiliza el recurso y donde esta almacenado as por ejemplo podremos subir nuestras imgenes al servidor y utilizarlas desde alguna pgina de contenido. Gestionar informacin correspondiente a configuraciones del sitio como idioma, etiquetas, usuarios y estadsticas del sitio web, Gestionar plantillas para ahorrar tiempo a la hora de publicar una pgina, se necesita un sistema capaz de cargar el contenido en esas plantillas de forma rpida y eficaz.
10
Ahora que hemos definido nuestras unidades de informacin bsicas, debemos pensar en los responsable encargados de administrar esas unidades de informacin. En este momento nos surge el problema de cmo queremos que se gestionen esos datos y quin los va a gestionar. Se define una persona que se encargar de las tareas de administracin del sistema y varios usuarios con el rol de editores. Como hay varias personas que se encargan de esta tarea, el sistema tendr tantos editores como se deseen. Para la gestin de los datos se ha utilizado un base de datos no relacional ya que una de las restricciones por utilizar App Engine es que debemos hacer uso de su almacn de datos y solo hay este. Cmo diferenciaremos entre usuario y administrador? Para ello se ha diseado un sistema de registro e identificacin que permite diferenciar los usuarios que deseen acceder al sistema hacindolo como administradores. Cmo realizamos las vistas de usuario y administrador? Debido a la gran diferencia que hay entre las funcionalidades desempeadas por un usuario y un administrador, tambin tendrn diferencias en sus vistas. Por una parte, un administrador puede manipular los datos que contiene el sistema, as que deber tener las funciones adecuadas en su vista para poder interactuar fcilmente con las fuentes de informacin que pueda manejar el sistema. Por otro lado el usuario slo necesita ver y consultar la informacin disponible en el sistema.
Vista administrador En la vista de administracin ha sido prioritario la funcionalidad frente al diseo esttico. Para realizar satisfactoriamente esta tarea se deba tener en cuenta qu funcionalidades iban a estar disponibles para el administrador. Bsicamente son todas aquellas necesarias para manipular informacin, as se definieron unas funcionalidades bsicas para cada entidad de informacin: alta, baja, modificacin, consulta y listados. Con esto en mente, las vistas de administrador estn compuestas por rboles de directorios con operaciones disponibles, ya que dependern del contexto en el que nos encontremos.
Vista usuario En las vistas de usuario hemos priorizado el diseo esttico. Esto es as, porque entre otras cosas, lo que necesita el usuario del sistema es visualizar la informacin contenida en l, y a ser posible de una manera sencilla, cuidada y elegante. Se ha tenido en cuenta que un usuario, est donde est navegando en nuestro sistema, pueda acceder de forma rpida a otro recurso. Y por ltimo que sea sencillo de utilizar.
11
2.6
OBJETIVOS
El objetivo perseguido por el proyecto es desarrollar una plataforma software donde puedan interactuar con el sistema los usuarios y administradores de modo que las fuentes de informacin se mantengan actualizadas por parte de los administradores y puedan beneficiarse de ello los usuarios. Que los administradores puedan cambiar esta informacin, teniendo para ello un sistema en el que apoyarse sin necesidad de tener conocimiento acerca de los diferentes lenguajes empleados en el desarrollo Web, es el objetivo prioritario de este proyecto. En consecuencia con lo anterior, definimos unos objetivos globales : Gestionar la informacin de contenido. Gestionar la informacin de plantillas. Gestionar la informacin de usuarios. Gestionar la informacin de configuracin. Gestionar la informacin de recursos.
12
2.7
METODOLOGA
Para estructurar, planificar y controlar el desarrollo del software se va a utilizar una metodologa orientada a objetos ya que nos brinda unas caractersticas adecuadas para el desarrollo del proyecto, entre ellas destacamos el polimorfismo, la herencia, la abstraccin y el encapsulamiento. Para llevarla a cabo tendremos que hacer uso del lenguaje de modelado UML que nos proporciona el mecanismo de desarrollo software bajo una arquitectura en capas, y formalizado con un lenguaje estndar y unificado. Es decir, se requiere que cada una de las partes que comprende el desarrollo del software de diseo orientado a objetos, se visualice, especifique y documente con un lenguaje comn. A la metodologa escogida necesitamos darle un enfoque que gue el desarrollo, y para ello hemos escogido el proceso incremental. Se ha escogido este enfoque porque el software a desarrollar puede ser divido en diferentes fases (minicascadas), permitiendo as, abordar cada parte del problema por separado. Como se muestra en la Ilustracin 3 las fases consideradas han sido la iniciacin, elaboracin, construccin y transicin. Cada una se corresponde con un estado en el que se encuentra el desarrollo del software. Por otro lado tenemos las diferentes partes que componen el dominio del problema visto en la primera fase de modelado de negocio. Seguidamente comenzaremos con la fase de definicin de requisitos, donde a medida que avancemos en nuestro proceso de desarrollo y avancemos iteraciones, iremos encontrando nuevos requisitos que sern necesarios para una correcta comprensin del sistema realizado. La fase de implementacin ha sido la ms duradera. Las pruebas han sido realizadas con las herramientas de depuracin de Firefox y Chrome. El despliegue se ha realizado en una mquina local.
13
2.8
TECNOLOGAS DE DESARROLLO
1.1.1 HTML (Hiper Text Markup Language) El lenguaje de marcado de hipertexto, es el lenguaje con el que se definen las pginas Web. Bsicamente se trata de un conjunto de etiquetas que sirven para definir el texto y otros elementos que compondrn una pgina Web. Es el lenguaje que entiende el navegador. HTML tambin puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo JavaScript), el cual puede afectar el comportamiento de navegadores Web y otros procesadores de HTML.
1.1.2 GOOGLE APP ENGINE App Engine es un servicio de alojamiento web que presta Google de forma gratuita hasta determinadas cuotas, este servicio permite ejecutar aplicaciones sobre la infraestructura de Google. Si no se cuenta con un dominio propio, Google proporciona uno con la siguiente estructura, midominio.appspot.com. Tambin permite implementar un dominio propio a travs de Google Apps. Por el momento las cuentas gratuitas tienen un lmite de un gigabyte de almacenamiento permanente y la suficiente cantidad de ancho de banda y CPU para cinco millones de visitas mensuales, y si la aplicacin supera estas cuotas, se pueden comprar cuotas adicionales. Actualmente las aplicaciones Google App Engine se implementan mediante los lenguajes de programacin Python, Java y Go.
Ilustracin 2: Google App Engine 1.1.3 DISEO: CSS (Cascading Style Sheets) CSS es un lenguaje de estilo que define la presentacin de los documentos HTML. Por ejemplo, CSS abarca cuestiones relativas a fuentes, colores, mrgenes, lneas, altura, anchura, imgenes de fondo, posicionamiento avanzado y muchos otros temas. Es posible usar HTML, o incluso abusar del mismo, para aadir formato a los sitios Web. Sin embargo, CSS ofrece ms opciones y es ms preciso y sofisticado. CSS est soportado por todos los navegadores de hoy da.
14 Bloque I: Memoria del proyecto
Lo realmente interesante de las hojas de estilo es que se pueden vincular a ella varios documentos HTML y con un nico fichero podemos controlar toda la presentacin. Tambin es una forma de ahorrar tiempo, ya que los cambios realizados en la hoja de estilo se vern reflejados en todos los documentos con los que est asociada.
1.1.4 AJAX (Asynchronous JavaScript And Xml) Ajax, acrnimo de Asynchronous JavaScript And XML, es una tcnica de desarrollo Web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicacin asncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. Ajax es una tecnologa asncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualizacin ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado en el que normalmente se efectan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asncrono est formateado en XML. Ajax es una tcnica vlida para mltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que est basado en estndares abiertos como JavaScript y Document Object Model (DOM).
15
Desde un principio la idea era que si un usuario inexperto utiliza la aplicacin sea capaz de hacer uso de la mayor parte de las funcione intuitivas, se ha huido de las interfaces cargadas de opciones donde supone mucho esfuerzo encontrar la accin ms adecuada. La interfaz que no ven los administradores, es decir , donde los usuarios van a visualizar el contenido que el administrador ha agregado, tiene la estructura de un blog donde los artculos estn clasificados por fecha y etiquetas. Tambin hay un men principal en la parte superior. El pie de pgina esta formado por informacin adicional sobre el contenido, comentarios que se hacen, publicaciones y algn enlace externo. Para los administradores se han proporcionado vistas donde prime la rpida identificacin y edicin de recursos y contenido a travs de rboles de directorio. Se persigue as un fcil y rpido acceso a las funciones del sistema. La siguiente imagen muestra la pgina principal donde se van a visualizar los artculos publicados.
16
En la imagen siguiente se muestra parte del contenido de un artculo y se muestra la zona donde los usuarios pueden comentar ese artculo.
2.9
Para enumerar las funcionalidades del producto vamos agrupar las entidades en base a las funcionalidades que soportan. Gestionar plantillas: alta, baja, modificacin, consulta y listado. Gestionar permisos: registro e identificacin de usuarios. Gestionar contenido: alta, baja, modificacin, consulta y listado. Gestionar comentarios: alta, baja, modificacin, consulta y listado. Gestionar recursos: alta, baja, modificacin, consulta y listado.
17
18
Ilustracin 7: Despliegue de producto Se puede observar que en la imagen existen dos servidores diferentes, uno es el servidor Web y otro el Servidor de datos. Se ha realizado as para separar todos los elementos del sistema, aunque el servidor de datos podra estar incluido dentro del servidor Web. Los usuarios externos a la red local pueden acceder a los recursos disponiendo de una conexin a Internet, que podr acceder a la red local a travs del router y acceder al servidor para realizarle alguna peticin. Los usuarios internos (Red Local) pueden acceder directamente sin el uso de un router, accediendo de manera local mediante un navegador web que es el soporte que permite visualizar la aplicacin. El navegador a travs de Internet, gestiona una conexin que inicia una comunicacin con el servidor mediante el protocolo HTTP. El servidor esta compuesto por diferentes elementos que permiten al navegador mostrar la pgina. Dentro del servidor se encuentra una instancia de App Engine que permite generar los elementos necesarios para mostrar la pgina. Cuando se trata de lanzar algn script se ejecutara el interprete del navegador. El servidor puede acceder a los servicios de la base de datos sin menor problema al estar situada en la misma red.
19
El ltimo elemento que nos encontramos es la base de datos que almacena la informacin que la aplicacin utiliza para generar las interfaces de usuario. Esta es modificable por medio de componentes funcionales de la aplicacin.
20
PLANIFICACIN Y PRESUPUESTO
En los siguientes apartados se realiza una planificacin para conocer la estimacin de trabajo para el proyecto, obtener as una medida del tamao previsto. Para ello realizaremos dos estudios de estimacin basados en las caractersticas que requiere el sistema para su implementacin.
21
Este paso consiste en sumar el nmero de componentes de cada tipo conforme a la complejidad asignada y sumar sus resultados para obtener el total. ! Paso 6. Determinar el valor del factor de ajuste. El factor de ajuste se obtiene sumando 0.65 a la sumatoria de los grados de influencia de las 14 caractersticas generales del sistema, multiplicado por 0.01. Dentro de las caractersticas hay criterios como: complejidad del proceso, facilidad de instalacin, entrada de datos en lnea, etc. ! Paso 7. Determinar los puntos funcin ajustados. Para determinar los puntos funcin ajustados se consideran los puntos funcin no ajustados por el factor de ajuste. Estas son las 14 caractersticas generales de los sistemas que ayudan a obtener el factor de complejidad. Comunicacin de datos Rendimiento Volumen de transacciones Interface con el usuario Procesamiento complejo Facilidad de mantenimiento Instalacin en mltiples lugares Procesamiento distribuido Gran carga de trabajo Entrada on-line de datos Actualizacin online Utilizacin con otros sistemas Facilidad de operacin Facilidad de cambios
22
3.1.2 ESTIMACIN POR PUNTOS DE FUNCIN Hay que empezar obteniendo los parmetros que nos permitirn evaluar la funcionalidad del desarrollo software. Parmetro significativo Entradas Salidas Ficheros internos Ficheros externos Consultas externas Complejidad baja x3 x4 x7 x5 x3 Complejidad media x4 x5 x10 x7 x4 Complejidad alta x6 x7 x15 x10 x6
Tabla 2: Multiplicadores de complejidad Entradas = 13 x complejidad baja. Salidas = 2 x complejidad baja + 13 x complejidad media. Fichero internos = 2 x complejidad baja + 1 x complejidad alta. Fichero externos = 2 x complejidad media. Consultas externas = 18 x complejidad media. Para obtener los PFNA se realiza la suma de los productos de los parmetros de cada tipo.
PFNA = (13 x 3) + (2 x 4) + (13 x 5) + (2 x 7) + (1 x 15) + (2 x 7) + (18 x 4) = 227 Una vez que hemos obtenido los PFNA, tenemos que calcular el factor de ajuste valorando los factores de complejidad. Comunicacin de datos Rendimiento Volumen de transacciones Interface con el usuario Procesamiento complejo Facilidad de mantenimiento Instalacin en mltiples lugares 4 2 2 3 1 2 0 Procesamiento distribuido Gran carga de trabajo Entrada on-line de datos Actualizacin online Utilizacin con otros sistemas Facilidad de operacin Facilidad de cambios 0 2 3 3 0 1 2
En la tabla anterior podemos deducir el siguiente sumatorio. ! FC = 25 Sacamos el factor de ajuste. FA = (0.01 x 25 + 0.65 = 0,9 Los puntos de funcin se obtienen con la siguiente ecuacin. PF = PFNA x FA = 227 x 0,9 = 204,3 Ahora calcularemos las lneas de cdigo que se necesitan por cada punto de funcin. Para ellos sacamos la equivalencia de la tabla que realiz Casper Jones (Tabla 4). Como el lenguaje utilizado es PHP que no esta en la tabla, pero sabemos que PHP se basa en libreras C, escogeremos este lenguaje como lenguaje.
1PF = 29 lneas de cdigo C++. LDC = 204,,3 x 29 = 5924,7 lneas de cdigo C++.
24
Tabla 5: Relacin entre puntos de funcion y esfuerzo en horas Realizando la equivalencia obtenemos una relacin de horas con respecto a puntos de funcin de 1200 horas.
25
Tabla 6: Modos de desarrollo de COCOMO Frmulas: Esfuerzo nominal (personas-mes) = A " (KLDC)B Esfuerzo (personas-mes) = Esfuerzo Nominal " #Factores de coste Tiempo de desarrollo(meses) = 2,5 " EsfuerzoC N medio de personas(Personas) = Esfuerzo/Tiempo de desarrollo
En la siguiente imagen se muestra los factores de coste para el clculo del esfuerzo.
Para el proyecto que se est realizando se va a escoger el modelo orgnico puesto que vamos a desarrollar para un entorno estable y se prevn unas decenas de miles de lneas de cdigo. Por debajo de 50KLDC (Kilo Lneas De Cdigo). Esfuerzo nominal = 19,25 Esfuerzo (personas-mes) = 19,25 " 0.85 (Complejidad del software) x 0.86 (Calidad de los analistas) x 0,86 (Calidad de los programadores) x 0,82 (Tcnicas modernas de programacin) x 0.83 (Empleo de herramientas) = 8,23 personas-mes. Tiempo de desarrollo = 2.5 " 8,230,38 = 5,5 meses
2.14 PLANIFICACIN
La planificacin temporal para proyectos de desarrollo de software esta enfocada a que la fecha final de lanzamiento del sistema ya ha sido (irrevocablemente) establecida. La organizacin del proyecto software se ve forzada a distribuir el esfuerzo dentro de los plazos establecidos. La planificacin del proyecto se distribuye en tareas, cada tarea tiene una duracin determinada y el inicio y el fin pueden estar condicionado por el resto de tareas. Tambin observamos los predecesores en cada tarea, que significa que no se puede empezar una tarea hasta que se haya realizado la anterior. Si trabajaran mas personas en el proyecto podramos iniciar tareas en paralelo.
Modelado de negocio Introducido para tener una perspectiva general del problema al que nos enfrentamos. La primera tarea consiste en definir los lmites del problema y establecer pautas para acometer su estudio. Las siguientes tareas nos introducen en los conceptos bsicos de las herramientas y tecnologas que vamos a utilizar para el desarrollo del proyecto. Requisitos: En esta fase se ha realizado un estudio del problema con los requisitos generales que se han elicitado. Anlisis: Realizar un anlisis del producto que se va a realizar, objetivos perseguidos, definir como se van a cumplir los requisitos y ver las funcionalidades bsicas del sistema.
Bloque I: Memoria del proyecto 27
Diseo Disear la forma de actuar del sistema, como se va a comportar cuando interacte con los distintos componentes que lo forman. Implementacin Con los documentos de anlisis y diseo se empezar la implementacin del sistema. Pruebas Realizar pruebas de funcionamiento y visualizacin en distintos navegadores. Despliegue Desplegar la aplicacin en la nube de Google, definir tareas rutinarias de mantenimiento (cron), hacer pruebas de funcionamiento y de carga. La duracin del proyecto es de 99 das, empezando el 1 de Abril y terminando el 25 Agosto. La siguiente imagen muestra un diagrama de GANTT donde se observan las dependencias entre las tareas y el tiempo de realizacin de cada una.
28
2.15 PRESUPUESTO
En el siguiente apartado se muestran los diferentes recursos, ya sean materiales o de trabajo, que el proyecto necesita para su realizacin. Vamos a exponer en trminos monetarios el coste del proyecto. Recurso Materiales: Nombre Ordenador personal Impresora Internet ADSL Xampp Server Framework StartUML 5.0 Open Office Open Project 1.4 Adobe Suite (Demo) MySQL Workbench Material de oficina Uso(%) 80 25 25 100 100 100 100 100 100 100 100 Coste(!) 900 70 125 0 0 0 0 0 0 0 50
Recursos de trabajo: Nombre Jefe de Proyecto Analista Diseador Desarrollador Documentalista Ingeniero Tcnico Precio por hora 20 15 15 15 10 15
Tabla 9: Recursos de trabajo Los recursos de trabajo son las personas especializadas para cada parte del programa, pero el proyecto le he realizado yo solo y he realizado todas las funciones bajo el nombre de ingeniero tcnico.
29
CUESTIONES RESEABLES
Ayudas en el desarrollo?
Teniendo en cuenta el tiempo de desarrollo me decid por buscar herramientas que me permitan desarrollar la aplicacin de una manera mas rpida y eficiente. Encontr que para aplicaciones Web existen frameworks que permiten implementar el patrn Modelo-Vista-Controlador adems de proveer de funcionalidades implementadas por el ncleo que ayudan al desarrollo de la aplicacin. Depurador
Quiero destacar otro aspecto que me ha ayudado mucho en el desarrollo del sistema. Se trata del depurador. En un principio desconoca su existencia y al intentar localizar errores, la tarea se volva muy complicada debido a que el lenguaje JavaScript no es compilado sino interpretado y puedes crear y lanzar la aplicacin con errores. El navegador slo te avisa de que existe un error en un archivo. Cuando descubr esta herramienta, la tarea de localizar los errores en los scripts se torno ms sencilla porque este depurador no slo indica dnde est el error sino que tambin se pueden depurar todos las variables que maneja el sistema en ese momento. Interfaces
Cuando comienzas a disear una pgina Web utilizando HTML te das cuenta que slo con eso no se va a poder realizar un diseo que impacte, que llame la atencin y que produzca reacciones positivas en el usuario. Por lo que empiezo a documentarme en la manera de presentar la aplicacin al usuario de una forma ms elegante. La bsqueda me lleva a utilizar estilos en cascada, ms conocidos como CSS. Lo que hacen los estilos en cascada es separar el diseo de la presentacin del cdigo HTML. Los estilos en cascada son una manera de organizar los elementos de la interfaz y de darle un diseo a sta. Son usados de manera esttica, definiendo las propiedades de los elementos que componen las interfaces. Para cambiar el diseo dinmicamente, es decir, en respuesta a un evento se hace uso de la tecnologa JavaScript que permite realizar modificaciones del diseo cuando algn evento es registrado. Con ello podemos interactuar con el usuario y que l se d cuenta de que la pgina responde a las acciones que el realiza. AJAX
Cuando pens en usar esta tecnologa fue porque se me present el problema de estar en una pgina (interfaz) y tener que re-cargar la pgina entera cuando el cambio que se produca, solo afectaba a una pequea parte de la pgina. Es evidente que re-cargar pginas no es agradable cuando se est navegando y menos re-cargar cada vez que se necesita algn recurso en un espacio corto de tiempo. Por esto, decid empezar a documentarme sobre cmo funciona esta tecnologa y me sorprende gratamente lo que es capaz de hacer. Mediante un objeto manejado por el navegador, pueden realizarse peticiones al servidor en segundo plano, con lo que se pueden realizar otras tareas, sin dejar al usuario con una pgina en blanco. Estndares
Un problema de magnitud mayor ha sido el tener que utilizar diferentes estndares a la hora de disear las interfaces mediante CSS. Debido a que no existe un estndar comn, cada navegador posee sus propias instrucciones por lo que ha tenido que triplicarse el cdigo y con ello, el aumento del tiempo invertido en la definicin de estilos. Hay que destacar que para los navegadores Chrome, Mozilla y Opera as instrucciones son muy parecidas. El problema viene cuando se utiliza el navegador Explorer,
30 Bloque I: Memoria del proyecto
ya que no posee los mismos estndares y las instrucciones son muy diferentes. Por esta razn no est optimizado para Internet Explorer. Aparte de que las instrucciones que haya que incluir para optimizar en Interne Explorer, no puede interpretar tantas instrucciones como los dems navegadores, por lo que carece de funcionalidades de las que sera deseable disponer.
31
2.16 CONCLUSIONES
Este proyecto ha supuesto una prueba para m, tena poco tiempo disponible para realizar un proyecto que prevea que me iba a dar trabajo. He tenido que ir avanzando sin entretenerme con cuestiones sin importancia y guiar el proceso de desarrollo en una lnea que no poda desviarse de los objetivos lo ms mnimo. El tener una idea clara de lo que quera hacer me ha servido mucho para saber cual era el producto final l que quera llegar y en cierto modo lo he conseguido aunque como veremos dos apartados ms abajo, todava puedo alargar este proyecto durante unos meses. Con este proyecto he aprendido a trabajar con los datos en la nube, ha interesarme por diferentes proveedores, por como configurar servidores de aplicaciones para un uso ms eficiente. Tambin he mejorado mi grado de conocimiento de Java y otras herramientas para el desarrollo de aplicaciones que me hace ver otras aplicaciones desde otro punto de vista. Seguir avanzando en lenguajes que ya conoca como HTML, que en este ao 2012, se ha producido una gran actualizacin a la versin 5 y he podido ver y utilizar estas nuevas especificaciones con una gran capacidad de mejora.
2.17
CONSECUCIN DE OBJETIVOS
Los objetivos que se presentaron han sido cubiertos con garantas, desarrollando un entorno para poder manejar la informacin perteneciente a un entorno para compartir contenido y poder mostrarla a los usuarios interesado por medio de Internet. Accesible por todas las personas que dispongan de una conexin a Internet. Con la herramienta desarrollada los administradores son capaces de modificar la informacin que compone el dominio del problema y as mantener actualizada la pgina, sin necesidad de tener una persona especializada en programacin Web. Se mantiene los principios de sencillez, de manejo y claridad en la interfaz de usuario. Una herramienta sencilla permite un mejor uso de la aplicacin por parte de los usuarios inexpertos con herramientas informticas.
33
BIBLIOGRAFA Rumbaugh, J., Jacobson, I., Booch, G (1999). El lenguaje unificado de modelado. Manual de referencia. Madrid: Pearsons Education, S.A., 2000. Introduccin a CSS . Javier Eguluz Prez. Dirigido a programadores Web sin experiencia en CSS. Disponible en: http://librosweb.es Introduccin a JavaScript . Javier Eguluz Prez. Dirigido a diseadores Web. Disponible en: http://librosweb.es. Introduccin a AJAX . Javier Eguluz Prez. Dirigido a programadores Web. Disponible en: http://librosweb.es Refsnes Data. XML DOM tutorial. Disponible en : http://www.w3school.com/DOM/default.asp Introduccin a jQuery. Disponible en http://librojquery.com Consorcio del World Wide Web. Disponible en: www.w3c.org
34
ANEXOS
35
PFA Siglas para la estimacin de costes de un proyecto software denominado Puntos De Funcin. RSS RSS son las siglas de Really Simple Syndication, un formato XML para sindicar o compartir contenido en la Web. SQL El lenguaje de consulta estructurado o SQL, structured query language, es un lenguaje declarativo de acceso a bases de datos relacionales UML Lenguaje Unificado de Modelado (UML, por sus siglas en ingls, Unified Modeling Language) es el lenguaje de modelado de sistemas de software ms conocido y utilizado en la actualidad; URL Un localizador de recursos uniforme, ms comnmente denominado URL, uniform resource locator, es una secuencia de caracteres, de acuerdo a un formato modlico y estndar, que se usa para nombrar recursos en Internet. XML Siglas en ingls de eXtensible Markup Language , es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). XHTML Acrnimo en ingls de eXtensible Hypertext Markup Language es el lenguaje de marcado pensado para sustituir a HTML como estndar para las pginas web.
36
NDICE: ANLISIS 1! ANALISIS DEL SISTEMA............................................................................................................. 43! 1.1! INTRODUCCIN ........................................................................................................................ 45! 1.2! OBJETIVOS DEL SISTEMA....................................................................................................... 47! 1.3! CATLOGO DE REQUISITOS DEL SISTEMA ....................................................................... 49! 1.3.1!REQUISITOS DE INFORMACIN........................................... 49! 1.3.2!REQUISITOS FUNCIONALES.................................................. 53! 1.4! MATRIZ DE RASTREABILIDAD ...................................................... 67 ! 2! RESUMEN....................................................................................................................................... 69! 3! NDICE DE TABLAS ..................................................................................................................... 70! 4! INDICE DE ILUSTRACIONES ..................................................................................................... 71!
41
8.1 INTRODUCCIN
Acordes con el tiempo con el que dispongo para realizar el trabajo fin de grado, no poda escoger un desarrollo de software que implicara el estudio de alguna tecnologa nueva, tampoco tena tiempo para enrolarme en un desarrollo de software largo y tedioso. Tras estas observaciones, la idea es un desarrollo gil y procurar perder poco tiempo en tareas comunes y rutinarias con el fin de poder emplear el tiempo en otras. Se trata de desarrollar una plataforma web donde la gente pueda compartir conocimiento, pueda interactuar con otros usuarios con el fin de proporcionar un sitio de referencia en internet en cuanto a la difusin de conocimiento. Para realizar esta tarea he pensado en utilizar una herramienta de Google que se denomina App Engine que nos proporciona un entorno local para poder desarrollar nuestras aplicaciones, poder hacer uso de su nube para almacenar datos propias, y un modo sencillo y rpido para el despliegue de la aplicacin. Para el desarrollo del sistema se van a utilizar diferentes tecnologas. Para programar el nucleo de la plataforma se ha optado por utilizar JAVA por su fcil uso, por que no es una tecnologa nueva aunque si se va a profundizar ms en el uso de libreras y plugins para que el nucleo tenga la funcionalidad necesaria para resolver nuestros problemas. Para el desarrollo de las interfaces de usuario se ha obtado por utilizar tecnologas web como HTML, CSS, JavaScript por ser los lenguajes de referencia en cuanto a entornos de aplicacin web. Un problema principal es el del almacenamiento y la manipulacin de datos. Para ello vamos hacer uso del gran almacen que es como denomina Google a su gigantesca base de datos. Vamos a tener que resolver el problema que supone trabajar con una base de datos no relacional, por lo que tendremos que modificar un poco nuestra manera de pensar al realizar las consultas y definir la estructura de la base de datos. Otro problema que no quera tener era el de tener que codificar la misma cosa multitud de veces, por eso he apoyado mi desarrollo en plantillas, con ellas dotamos a nuestra aplicacin de mayor eficiencia y el proceso de desarrollo se convierte en una tarea menos tediosa y ms gil. Se ha implementado un sistema de plantillas que permiten reutilizar pequeas partes de cdigo. La plataforma puede dividirse en dos grandes partes: la zona de usuarios y la zona de administracin. La zona de administracin es la que permite manejar las entidades de datos pudiendo gestionar toda la informacin de la aplicacin bajo una plataforma de desarrollo. Es complicada porque hemos hecho uso de libreras y plugins que en su conjunto podramos dividir en:
45
Los siguientes apartados indican los puntos ms importante de la aplicacin. 1. Almacenamiento 2. Contenido: Paginas Estructura (XML): blog article Plantillas de estructura: article, article-overview 3. Plantillas 4. Recursos Carpetas Imgenes Archivos CSS y JS 5. Configuracin Configuracin del sitio Comentarios Idiomas Paquetes del mensaje Usuarios Grupos Etiquetas Atributos 6. Plugins Configuracin de plugins Formularios SEO urls, 7. Informacion Personal/ usuario Perfil Idioma Soporte 8. Funciones bsicas Guardar, exportar, importar, crear ndice de busqueda, reinicializar, cargar sitio por defecto, limpiar cache, estadsticas. Aadir, eliminar.
46
Gestionar permisos 0.1 (11/05/2012>) Diego Yage Jurez El sistema debe ser capaz de ofrecer un sistema de permisos fiable, necesitamos conseguir tener integrado un sistema de autenticacin de usuarios para separar la parte accesible por cualquier usuario de la parte de administracin, accesible solo por personal del centro. OBJ01.01 Gestin de Grupos OBJ01.02 Gestin de Usuarios Importante Hay presin En construccin Alta Tabla 11: Objetivo 02 - Gestionar permisos. Gestionar grupo 0.1 (11/05/2012) Diego Yage Jurez El sistema deber ser capaz de llevar un control de los grupos de usuario disponibles en nuestra aplicacin, se desea poder consultar, eliminar o modificar grupos existentes as como poder aadir nuevos grupos. Importante Hay presin En construccin Alta Tabla 12: Objetivo 02.01 - Gestionar grupos.
El sistema deber ser capaz de llevar un control de los usuarios que harn uso de nuestro sistema, se desea poder consultar, eliminar o modificar usuarios existentes as como poder aadir nuevos usuarios. Hay presin En construccin Alta Tabla 13: Objetivo 02.02 - Gestionar usuarios Gestionar contenido 0.1 (11/05/2012) Diego Yage Jurez El sistema debe ser capaz de poder llevar un control de los contenidos que va a tener la aplicacin, como pueden ser los artculos, del blog, o partes de la estructura de las pginas o los comentarios. Gestionar de manera eficiente todo lo que el usuario va a poder visualizar cuando acceda al sitio. Importante Hay presin En construccin Tabla 14: Objetivo 03 Gestionar contenido Gestionar recursos 0.1 (11/05/2012) Diego Yage Jurez El sistema deber ser capaz de gestionar los recursos software que se necesiten. Podrn asociarse a diferentes contenidos. Podrn ser recursos como imgenes, hojas de estilo, scripts, etc. Importante Hay presin Alta Tabla 15: Objetivo 04 - Gestionar recurso Gestionar comentario 0.1 (11/05/2012) Diego Yage Jurez El sistema deber ser capaz de gestionar los comentarios hechos sobre los artculos. Importante En construccin Alta Tabla 16: Objetivo 05 - Gestionar comentario
48
IRQ-01 Versin Autores Objetivos asociados Requisitos asociados Descripcin Datos especficos _
IRQ-02 Versin Autores Objetivos asociados Requisitos asociados Descripcin Datos especficos _ Importancia Urgencia Estado Estabilidad
Informacin sobre grupo 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar permisos OBJ-02.02 Gestionar grupos El sistema deber almacenar la informacin correspondiente a los grupos.> En concreto: Nombre Descripcin Importante. Hay presin. Pendiente de validacin. Alta. Tabla 18: IRQ 02 Informacin sobre grupo.
Informacin sobre plantillas 0.1(11/05/2012) Diego Yage Jurez OBJ-01 Gestionar plantillas El sistema deber almacenar la informacin correspondiente a las plantillas.> En concreto:
Bloque II: Documentacin Tcnica 49
Datos especficos _
Autoguardado Cuerpo Nombre Ttulo Importante. Hay presin. Pendiente de validacin. Alta. Tabla 19: IRQ 03 Informacin sobre plantillas.
IRQ-04 Versin Autores Objetivos asociados Requisitos asociados Descripcin Datos especficos _
Informacin sobre contenido 0.1(11/05/2012) Diego Yage Jurez OBJ-03 Gestionar contenido El sistema deber almacenar la informacin correspondiente al contenido. En concreto: URL amigable Idioma Ttulo Contenido Plantilla Fecha Incluir en busquedas Cach Tipo Meta Keywords META Description Contenido en Head Importante. Hay presin. Pendiente de validacin. Alta. Tabla 20: IRQ 04 Informacin sobre contenido.
IRQ-05 Versin Autores Objetivos asociados Requisitos asociados Descripcin Datos especficos _
Informacin sobre recurso 0.1(11/05/2012) Diego Yage Jurez OBJ01 Gestin de la Fundacin Virtual. El sistema deber almacenar la informacin correspondiente al contenido. En concreto: Nombre Fichero Subcarpeta Tipo MIME Tamao Importante. Hay presin.
Bloque II: Documentacin Tcnica Anlisis
Importancia Urgencia
50
Estado Estabilidad
Pendiente de validacin. Alta. Tabla 21: IRQ 05 Informacin sobre recurso. Informacin sobre comentarios 0.1(11/05/2012) Diego Yage Jurez OBJ-05 Gestionar comentario El sistema deber almacenar la informacin correspondie nte a los comentarios.> En concreto: Id Autor Email Contenido Fecha Importante. Hay presin. Pendiente de validacin. Alta. Tabla 22: IRQ 06 Informacin sobre comentario.
IRQ-06 Versin Autores Objetivos asociados Requisitos asociados Descripcin Datos especficos _
51
8.3.2 8.3.2.1
REQUISITOS FUNCIONALES DEFINICIN DE ACTORES Administrador 0.1(11/05/2012) Diego Yage Jurez Este actor representa al administrador del sistema. Este actor tendr privilegios especiales, que le permitirn hacer uso de todas las funcionalidades del sistema. Tabla 23: Actor administrador.
No registrado 0.1(11/05/2012) Diego Yage Jurez Este actor representa al usuario que accede externamente al sistema. Este actor no tendr privilegios y solo podra acceder a mtodos de carcter pblico de la aplicacin. Tabla 24: Actor usuario.
53
8.3.2.2 DIAGRAMAS DE CASOS DE USO En la siguiente figura se plantea de forma general un diagrama de subsistemas que componen la aplicacin. Este diagrama de subsistemas muestra las partes funcionales de las que se compone el sistema. En primer lugar vamos a ver que acciones puede realizar un usuario no registrado, para ello hay que observar el siguiente diagrama de casos de uso. Este usuario podr buscar parte del contenido del sistema, leer y listar los artculos, ver e insertar comentarios. Tambin podr realizar la accin de logearse para entrar como administrador. La mayora de las acciones que puede ejecutar un usuario no registrado, no implican una alteracin de los valores de la base de datos, sino que para el son datos de lectura exclusivamente. La excepcin se da al poder introducir comentario, que inserta una nueva fila en la tabla comentarios, alterando dicha tabla.
En este segundo diagrama vemos las acciones disponibles para un usuario administrador, podr crear, modificar y borrar plantillas, podra aadir, modificar y borrar pginas, por ltimo podr eliminar comentarios. Todas las acciones que realiza un administrador suponen modificar, eliminar o aadir algun dato del almacn.
55
56
8.3.2.3 Casos de uso para usuario No registrado UC-01 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal Buscar 0.1(11/05/2012) Diego Yage Jurez OBJ-03 Gestionar contenido IRQ04 Informacin sobre contenido El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando buscar. Paso Accin p1 gg Introducir criterios de busqueda p2 Establecer conexin con la base de datos p3 Realizar consulta p4 Generar interface con los datos recibidos p5 El sistema muestra el contenido por pantalla Resultados mostrados en pantalla Paso Accin p3 Si la consulta devuelve null se enva una notificacin al usuario. Alta Pendiente de validacin Alta Tabla 25: UC-01 Buscar
UC-02 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Login 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar permisos IRQ01 Informacin sobre usuario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando logear un usuario. El usuario no est logeado Paso Accin p1 Introducir datos p2 Validar datos. Ejecutar UC-03 Validar usuario p3 Si los datos son validados entonces se redirige a la zona de administracin Visualizar zona de administracin Paso Accin p2 Si las datos introducidos no son validados, el caso de uso se vuelve a ejecutar Alta Pendiente de validacin Alta Tabla 26: UC-02 Login
57
UC-03 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Validar Usuario 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar permisos IRQ-01 Informacin sobre usuarios El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se valide un usuario. Los datos de username y contrasea deben ser conocidos Paso Accin p1 gg El sistema establece conexin con la base de datos p2 El sistema realiza la consulta en la tabla users. p3 El sistema enva una respuesta confirmando los credenciales Usuario logeado Paso Accin p2 Si la consulta devuelve un resultado vacio o null el caso de uso queda sin efecto y se devuelve una excepcin. Alta Pendiente de validacin Alta Tabla 27: UC-03 Validar usuario Listar artculos 0.1(11/05/2012) Diego Yage Jurez OBJ-03 Gestionar contenido IRQ-04 Informacin sobre contenido El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se valide un usuario. Paso Accin p1 gg El sistema solicita al gestorBD un listado con todas los artculos p2 El sistema muestra por pantalla un listado con los artculos p3 Al mostrar por pantalla los artculos se podr: Leer artculo. UC-05 Leer Articulo Listado de artculos Paso Accin p1 Si la consulta devuelve un resultado vacio o null el caso de uso queda sin efecto y se devuelve una excepcin. Alta Pendiente de validacin Alta Tabla 28: UC-04 Listar artculos
UC-04 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
IRQ-04 Informacin sobre contenido El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera leer un artculo Paso gg p1 p2 Accin El sistema solicita el identificador del artculo El sistema solicita al sistema gestorBD la informacin del artculo y lo muestra por pantalla
Se muestra el artculo por pantalla Paso Accin Alta Pendiente de validacin Alta Tabla 29: UC-05 Leer artculo
UC-06 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal g
Listar comentarios 0.1(11/05/2012) Diego Yage Jurez OBJ-05 Gestionar comentarios IRQ-06 Informacin sobre comentario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se valide un usuario. Paso Accin p1 gg El sistema solicita al gestorBD un listado con todas los artculos p2 El sistema muestra por pantalla un listado con los artculos p3 Al mostrar por pantalla los artculos se podr: Nuevo comentario. UC-07 Nuevo comentario Usuario logeado Paso Accin p1 Si la consulta devuelve un resultado vacio o null el caso de uso queda sin efecto y se devuelve una excepcin. Alta Pendiente de validacin Alta Tabla 30: UC-06 Listar comentarios
59
UC-07 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal g
Postcondicin Excepciones
Nuevo comentario 0.1(11/05/2012) Diego Yage Jurez OBJ-05 Gestionar comentarios IRQ-10 Informacin sobre comentario El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera aadir un nuevo comentario Identificador del artculo Paso Accin p1 gg Introducir los datos, en concreto Nombre Email Texto p2 El sistema verifica que los campos no estn vacios y el email es vlido p3 El sistema solicita al gestorBD insertar un nuevo comentario en la base de datos para el articulo con id=identificador p4 El sistema devuelve un mensaje de xito de la operacin. El artculo cuenta con un comentario ms Paso Accin p2 Si el alguno de los campos est vacio, se informa al usuario de que debe rellenarlos y se reinicia el caso de uso p3 Si la consulta falla se informa al usuario Alta Pendiente de validacin Alta Tabla 31: UC-07 Nuevo comentario
60
8.3.2.4 Casos de uso para usuario Administrador UC-08 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal g Nueva plantilla 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar plantillas IRQ-03 Informacin sobre plantilla El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera aadir una nueva plantilla Paso Accin p1 gg Introducir los datos, en concreto Autoguardado Contenido Nombre Titulo p2 El sistema verifica que los campos no estn vacios p3 El sistema solicita al gestorBD insertar una nueva plantilla en la base de datos p4 El sistema devuelve un mensaje de xito de la operacin. Nueva plantilla en el sistema Paso Accin p2 Si el alguno de los campos est vacio, se informa al usuario de que debe rellenarlos y se reinicia el caso de uso p3 Si la consulta falla se informa al usuario Alta Pendiente de validacin Alta Tabla 32: UC-08 Nuevo comentario
Postcondicin Excepciones
UC-09 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal g
Postcondicin Excepciones
Adjuntar recurso 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar plantillas IRQ-03 Informacin sobre plantilla El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera aadir una nueva plantilla Identificador de contenido al que se va adjuntar Paso Accin p1 gg Introducir los datos, en concreto Nombre Fichero (URL) p2 El sistema verifica que los campos no estn vacios p3 El sistema solicita al gestorBD insertar un nuevo recurso adjuntado al contenido solicitado. p4 El sistema devuelve un mensaje de xito de la operacin. El contenido cuenta con un nuevo recurso Paso Accin
Bloque II: Documentacin Tcnica 61
Si el alguno de los campos est vacio, se informa al usuario de que debe rellenarlos y se reinicia el caso de uso Si la consulta falla se informa al usuario
UC-10 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Eliminar plantilla 0.1(11/05/2012) Diego Yage Jurez OBJ-02 Gestionar plantillas IRQ-03 Informacin sobre plantilla El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera borrar una plantilla del sistema Paso p1 p2 p3 p4 Accin El sistema solicita el identificador de la plantilla El sistema pide confirmacin del borrado mostrando su identificador. El sistema solicita al gestorBD eliminar la plantilla de la base de datos.
Postcondicin Excepciones
El sistema devuelve un mensaje de xito en la operacin. El sistema cuenta con una plantilla menos Paso Accin p2 Si no se confirma el borrado el caso de uso termina. A continuacin, el caso de uso queda sin efecto. p4 Si la plantilla no puede ser borrada de la base de datos, se envia un mensaje de error al administrador. A continuacin, este caso de uso queda sin efecto. Alta Pendiente de validacin Alta Tabla 34: UC-10 Eliminar plantilla Eliminar comentario 0.1(11/05/2012) Diego Yage Jurez OBJ-05 Gestionar comentarios IRQ-06 Informacin sobre comentarios El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera borrar un comentario Paso p1 p2 p3 Accin El sistema solicita el identificador del comentario El sistema pide confirmacin del borrado mostrando su identificador. El sistema solicita al gestorBD eliminar el comentario
UC-11 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
62
de la base de datos. El sistema devuelve un mensaje de xito en la operacin. El artculo cuenta con un comentario menos Paso Accin p2 Si no se confirma el borrado el caso de uso termina. A continuacin, el caso de uso queda sin efecto. p4 Si el comentario no puede ser borrado de la base de datos, se envia un mensaje de error al administrador. A continuacin, este caso de uso queda sin efecto. Alta Pendiente de validacin Alta Tabla 35: UC-11 Eliminar comentario Nueva pgina 0.1(11/05/2012) Diego Yage Jurez OBJ-03 Gestionar contenido IRQ-04 Informacin sobre contenido El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera aadir una nueva pgina en el sistema Paso Accin p1 gg Introducir los datos, en concreto URL amigable Idioma Ttulo Contenido Plantilla Fecha Incluir en busquedas Cach Tipo Meta Keywords META Description Contenido en Head p2 El sistema verifica que los campos no estn vacios p3 El sistema solicita al gestorBD insertar una nueva pgina en la base de datos p4 El sistema devuelve un mensaje de xito de la operacin. Nueva pgina en el sistema Paso Accin p2 Si el alguno de los campos est vacio, se informa al usuario de que debe rellenarlos y se reinicia el caso de uso p3 Si la consulta falla se informa al usuario Alta Pendiente de validacin Alta Tabla 36: UC-12 Nueva pgina
Bloque II: Documentacin Tcnica 63
p4
Postcondicin Excepciones
UC-12 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Postcondicin Excepciones
UC-13 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Modificar pgina 0.1(11/05/2012) Diego Yage Jurez OBJ-03 Gestionar contenido IRQ-04 Informacin sobre contenido El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera modificar una pgina del sistema Paso Accin p1 gg Introducir los datos que se quieren modificar, en concreto URL amigable Idioma Ttulo Contenido Plantilla Fecha Incluir en busquedas Cach Tipo Meta Keywords META Description Contenido en Head p2 El sistema toma los valores de los campos p3 El sistema solicita al gestorBD insertar una nueva pgina en la base de datos p4 El sistema devuelve un mensaje de xito de la operacin. Nueva pgina en el sistema Paso Accin p2 Si el alguno de los campos est vacio, se informa al usuario de que debe rellenarlos y se reinicia el caso de uso p3 Si la consulta falla se informa al usuario Alta Pendiente de validacin Alta Tabla 37: UC-13 Modificar pgina
Postcondicin Excepciones
UC-14 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Borrar pgina 0.1(11/05/2012) Diego Yage Jurez OBJ-05 Gestionar comentarios IRQ-06 Informacin sobre comentarios El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera borrar una pgina Paso p1 p2 p3 Accin El sistema solicita el identificador de la pgina El sistema pide confirmacin del borrado mostrando su identificador El sistema solicita al gestorBD eliminar la pgina de la
64
base de datos El sistema devuelve un mensaje de xito en la operacin. El sistema cuenta con una pgina menos Paso Accin p2 Si no se confirma el borrado el caso de uso termina. A continuacin, el caso de uso queda sin efecto. p4 Si la pgina no puede ser borrado de la base de datos, se envia un mensaje de error al administrador. A continuacin, este caso de uso queda sin efecto. Alta Pendiente de validacin Alta Tabla 38: UC-14 Borrar pgina Eliminar recurso 0.1(11/05/2012) Diego Yage Jurez OBJ-04 Gestionar recursos IRQ-05 Informacin sobre recursos El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se quiera borrar un recurso Identificador del contenido Paso Accin p1 El sistema solicita el identificador del recurso p2 El sistema pide confirmacin del borrado mostrando su identificador p3 El sistema solicita al gestorBD eliminar el contenido de la base de datos El sistema devuelve un mensaje de xito en la operacin. El sistema cuenta con un recurso menos Paso Accin p2 Si no se confirma el borrado el caso de uso termina. A continuacin, el caso de uso queda sin efecto. p4 Si el recurso no puede ser borrado de la base de datos, se envia un mensaje de error al administrador. A continuacin, este caso de uso queda sin efecto. Alta Pendiente de validacin Alta Tabla 39: UC-15 Eliminar recurso p4 p4
Postcondicin Excepciones
UC-15 Versin Autores Objetivos asociados Requisitos asociados Descripcin Precondicin Secuencia normal
Postcondicin Excepciones
65
66
OBJ01 IRQ 01_ IRQ02 IRQ03 IRQ04 IRQ05 IRQ06 UC01 UC02 UC03 UC04 UC05 UC06 UC07 UC08 UC09 UC10 UC11 UC12 UC13 UC14 UC15
OBJ02
OBJ03
OBJ04
OBJ05
67
RESUMEN
Descripcion Gestinar plantillas Gestionar permisos Gesionar contenido Gestionar recursos Gestionar comentarios Informacin sobre usuarios Informacin sobre grupo Informacin sobre plantillas Informacin sobre contenidos Informacin sobre recursos Informacin sobre comentarios Buscar Login Validar usuario Listar artculos Leer artculo Listar comentarios Nuevo comentario Nueva plantilla Adjuntar recurso Eliminar plantilla Eliminar comentario Nueva pgina Modificar pgina Eliminar pgina Eliminar recurso Flexibilidad Portabilidad Tabla 43: Tabla de resumen del anlisis.
TIPO OBJETIVOS
ID OBJ - 01 OBJ 02 OBJ 03 OBJ 04 OBJ 05 REQUISITOS IRQ - 01 INFORMACION IRQ 02 IRQ 03 IRQ 04 IRQ 05 IRQ 06 REQUISITOS UC - 01 FUNCIONALES UC 02 UC 03 UC 04 UC 05 UC 06 UC 07 UC 08 UC 09 UC 10 UC 11 UC 12 UC 13 UC 14 UC 15 REQUISITOS NFR - 01 NO NFR 02 FUNCIONALES
69
10 NDICE DE TABLAS "#$%#!&'!($)*"+,(!-&!.!/*0"+12!3*!4%#2"+%%#05555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 67! "#$%#!8'!($)*"+,(!-8!.!/*0"+(2#9!4*9:+0(05 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 67! "#$%#!;'!($)*"+,(!-85-&!.!/*0"+(2#9!/9<4(0555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 67! "#$%#!6'!($)*"+,(!-85-8!.!/*0"+(2#9!<0<#9+(0 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6=! "#$%#!>'!($)*"+,(!-;!?!/*0"+(2#9!@(2"*2+3( 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6=! "#$%#!A'!($)*"+,(!-6!.!/*0"+(2#9!9*@<90( 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6=! "#$%#!7'!($)*"+,(!->!.!/*0"+(2#9!@(:*2"#9+( 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6=! "#$%#!='!+9B!-&!?!+2C(9:#@+12!0($9*!<0<#9+(5 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6D! "#$%#!D'!+9B!-8!?!+2C(9:#@+12!0($9*!/9<4(555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 6D! "#$%#!&-'!+9B!-;!?!+2C(9:#@+12!0($9*!4%#2"+%%#0555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >-! "#$%#!&&'!+9B!-6!?!+2C(9:#@+12!0($9*!@(2"*2+3(5 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >-! "#$%#!&8'!+9B!->!?!+2C(9:#@+12!0($9*!9*@<90(55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >&! "#$%#!&;'!+9B!-A!?!+2C(9:#@+12!0($9*!@(:*2"#9+(5 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >&! "#$%#!&6'!#@"(9!#3:+2+0"9#3(955555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >;! "#$%#!&>'!#@"(9!<0<#9+(5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >;! "#$%#!&A'!<@.-&!$<0@#9 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >7! "#$%#!&7'!<@.-8!%(/+2 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >7! "#$%#!&='!<@.-;!,#%+3#9!<0<#9+( 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >=! "#$%#!&D'!<@.-6!%+0"#9!#9"E@<%(05555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >=! "#$%#!8-'!<@.->!%**9!#9"E@<%( 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >D! "#$%#!8&'!<@.-A!%+0"#9!@(:*2"#9+(05555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 >D! "#$%#!88'!<@.-7!2<*,(!@(:*2"#9+(555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A-! "#$%#!8;'!<@.-=!2<*,(!@(:*2"#9+(555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A&! "#$%#!86'!<@.-D!#3)<2"#9!9*@<90( 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A8! "#$%#!8>'!<@.&-!*%+:+2#9!4%#2"+%%#55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A8! "#$%#!8A'!<@.&&!*%+:+2#9!@(:*2"#9+( 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A;! "#$%#!87'!<@.&8!2<*,#!4F/+2# 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A;! "#$%#!8='!<@.&;!:(3+C+@#9!4F/+2# 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A6! "#$%#!8D'!<@.&6!$(99#9!4F/+2#55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A>! "#$%#!;-'!<@.&>!*%+:+2#9!9*@<90( 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A>! "#$%#!;&'!9*B<+0+"(!2(!C<2@+(2#%!3*!C%*G+$+%+3#35 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 AA! "#$%#!;8'!9*B<+0+"(!2(!C<2@+(2#%!3*!4(9"#$+%+3#35 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 AA! "#$%#!;;'!:#"9+H!3*!9#0"9*#$+%+3#3 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 A7! "#$%#!;6'!"#$%#!3*!9*0<:*2!3*%!#2F%+0+0555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 AD!
70
11 INDICE DE ILUSTRACIONES ILUSTRACIN 1: DIAGRAMA DE CASOS DE USO DEL USUARIO NO REGISTRADO 5555555555555555555555555555555555555555555555 >>! ILUSTRACIN 2: DIAGRAMA DE CASOS DE USO DEL USUARIO ADMINISTRADOR 55555555555555555555555555555555555555555555 >A!
71
NDICE
! 2 2.1 2.2 2.3 2.4 DISEO DEL SISTEMA INTRODUCCIN. GOOGLE APP ENGINE DISEO DE LA ESTRUCTURA DE DATOS MOTIVACIN EN LA PERSPECTIVA DE DISEO 67 69 69 70 77 78 81 81 87 91 101 103 104 107 107 110 111
2.5.1 DIAGRAMA DE TIPOS DE OBJETOS 2.5.2 DIAGRAMA DE ACTIVIDADES 2.6 3 3.1 3.2 4 5 6 7 MODELO DE COMPORTAMIENTO: DISEO DINMICO IMPLEMENTACIN MODELO DE DESPLIEGUE DEL SISTEMA TECNOLOGAS UTILIZADAS PARA LA IMPLEMENTACIN PRUEBAS RESUMEN NDICE DE TABLAS NDICE DE FIGURAS
75
77
2.1 INTRODUCCIN.
Una vez realizado el anlisis de requisitos de informacin y requisitos funcionales, descritos mediante casos de uso, se tiene que realizar un estudio mas detallado del funcionamiento del sistema, es decir, un anlisis de diseo que tiene como objetivo ilustrar al lector cmo se comportan los elementos que componen la aplicacin. Se va a realizar un estudio en dos fases que componen el diseo del sistema. Por una parte se va analizar el comportamiento esttico del sistema, y por otra parte se va a realizar un anlisis del comportamiento dinmico del sistema. El diseo del sistema esta condicionado por una herramienta llamada Google App Engine que se ha utilizado como apoyo para la aplicacin. En resumen, podemos elaborar una lista con los aparatados mas importantes que componen este bloque.
Google App Engine Diseo de la estructura de datos Modelo de comportamiento del sistema. o Comportamiento esttico:
" "
o Comportamiento dinmico
" "
79
El almacn de datos de App Engine es un almacn de datos de objetos sin esquema, que dispone de un motor de consultas y transacciones atmicas. El SDK de Java incluye implementaciones de las interfaces de objetos de datos Java (JDO, Java Data Objects) y del API de persistencia Java (JPA, Java Persistence API), as como un API del almacn de datos de nivel inferior. App Engine incluye las siguientes funcionalidades: Servidor web dinmico, totalmente compatible con las tecnologas web ms comunes Almacenamiento permanente con funciones de consulta, clasificacin y transacciones Escalado automtico y distribucin de carga API para autenticar usuarios y enviar correo electrnico a travs de Google Accounts Un completo entorno de desarrollo local que simula Google App Engine en tu equipo Colas de tareas que realizan trabajos fuera del mbito de una solicitud web Tareas programadas para activar eventos en momentos determinados y en intervalos regulares. SISTEMA GESTOR DE BASES DE DATOS
2.2.1
App Engine proporciona un potente servicio de almacenamiento de datos distribuido que incluye un motor de bsqueda y transacciones. A medida que el servidor web distribuido crece con el trfico, el almacn de datos distribuido crece con los datos. El almacn de datos de App Engine no es como una base de datos relacional tradicional. Los objetos de datos, o "entidades", disponen de un tipo y un conjunto de propiedades. Las consultas pueden recuperar entidades de un tipo determinado filtradas y ordenadas segn los valores de las propiedades. Las entidades del almacn de datos carecen de esquema. El cdigo de aplicacin se encarga de proporcionar y de aplicar la estructura de las entidades de datos. A continuacin explicaremos la especificacin de la estructura de la base de datos, con ello se consigue que el lector tenga una idea de los elementos que formaran la base de datos, incluyendo una meta descripcin de cada elemento, se informa de las relaciones que existen entre los elementos y como estn agrupados. Una primera aproximacin, con la que tener una idea, de cmo va a ser nuestro modelo de datos, es realizando un esquema entidad/relacin compuesto de entidades y relaciones, acompaado de un diccionario de datos.
80
Ilustracin 11: Modelo de la base de datos 2.3.1 2.3.1.1 DICCIONARIO DE DATOS ENTIDADES
Entidad: Plantilla Descripcin: Representa las plantillas que se pueden crear en el sistema, para que sirvan como elemento base para el contenido. ATRIBUTOS Identificador DOMINIO DESCRIPCIN DEFECTO RESTRICCIONES dIdentificador Identificador AutoClave principal nico de la tupla Increment en la entidad Nombre dNombre Nombre de la nico plantilla Titulo dCadena Ttulo de la Desconocido No nulo plantilla Cuerpo dDescripcin Cuerpo de la NULL plantilla Autoguardado dBoolean Boolean que NULL define si se realiza autoguardado Tabla 44: Atributos de la entidad plantilla
Bloque II: Documentacin Tcnica Diseo 81
Entidad: Contenido Descripcin: Representa el contenido que se puede agregar al sistema, puede representar cualquier tipo de contenido. ATRIBUTOS Identificador DOMINIO DESCRIPCIN dIdentificador Identificador nico de la tupla en la entidad Titulo dTitulo Ttulo del contenido Idioma dNombre Nombre del contenido Descripcin dDescripcion Descripcin detallada Fecha dFecha Fecha de creacin IncluirEnBusqueda dBoolean Indica si se incluye en busquedas Tipo dCadena Tipo de plantilla METAKeywords dCadena Palabras clave METADescripcion dCadena Descripcin ms detallada HEAD dCadena Texto a incluir en el HEAD DEFECTO AutoIncrement NULL nico Desconocido Desconocido No Desconocido Desconocido Desconocido Desconocido No nulo No nulo No nulo No nulo No nulo No nulo RESTRICCIONES Clave principal
Tabla 45: Atributos de la entidad contenido Entidad: Recurso Descripcin: Representa un recurso que se sube desde el PC local. ATRIBUTOS DOMINIO DESCRIPCIN DEFECTO RESTRICCIONES Identificador dIdentificador Identificador AutoClave principal nico de la tupla Increment en la entidad Nombre dNombre Nombre de la nico plantilla Fichero dCadena Direcin donde Desconocido No nulo se encuentra el fichero Subcarpeta dCadena Subcarpeta Desconocido donde se incluye el fichero MIME dCadena Tipo MIME del Desconocido No nulo fichero Tamao dEntero Tamao del Desconocido fichero Tabla 46: Atributos de la entidad condicin
Bloque II: Documentacin Tcnica Diseo
82
Entidad: Comentario Descripcin: Representa los comentarios que pueden realizar los usuarios. ATRIBUTOS DOMINIO DESCRIPCIN DEFECTO RESTRICCIONES Identificador dIdentificador Identificador AutoClave principal nico de la tupla Increment en la entidad Autor dCadena Autor No nulo comentario Email dEmail Descripcion Desconocido No nulo detallada Contenido dCadena Contenido del comentario Tabla 47: Atributos de la entidad usuarios Entidad: Usuario Descripcin: Representa los usuarios del sistema. ATRIBUTOS DOMINIO DESCRIPCIN DEFECTO RESTRICCIONES Identificador dIdentificador Identificador AutoClave principal nico de la tupla Increment en la entidad Nombre dCadena Nombre del No nulo usuario Contrasea dpassword Hora en la que 15:00 No nulo se cierra el museo y el horno Creado dFecha Indica si No permanecera cerrado el museo y el horno Tabla 48: Atributos de la entidad usuario
Entidad: Grupo Descripcin: Representa los grupos de usuarios del sistema. ATRIBUTOS DOMINIO DESCRIPCIN DEFECTO RESTRICCIONES Identificador dIdentificador Identificador AutoClave principal nico de la tupla Increment en la entidad Nombre dCadena Nombre del Desconocido grupo Descripcin dDescripcion Descripcin del No nulo grupo Tabla 49: Atributos de la entidad grupo
Bloque II: Documentacin Tcnica Diseo 83
2.3.1.2
Relaciones
Relacin: Adjuntar
" "
Descripcin: Describe la relacin existente entre plantilla y recurso. Expresa que una plantilla puede adjuntar recursos. Restricciones: Una plantilla puede adjuntar muchos recursos, y un recurso puede ser adjuntado a varias plantillas.
Relacin: Adjuntar2
" "
Descripcin: Describe la relacin existente entre contenido y recurso. contenido puede adjuntar recursos
Expresa que un
Restricciones: Un contenido puede adjuntar muchos recursos, y un recurso puede ser adjuntado a varios contenidos.
Relacin: Incluye
" "
Descripcin: Describe la relacin existente entre contenido y comentario. Expresa que el contenido puede incluir comentarios. Restricciones: El contenido puede tener muchos comentarios, y un comentario solo es incluido en un contenido.
Relacin: Pertenece
" "
Descripcin: Describe la relacin existente entre usuario y grupo. Expresa el concepto de tener un usuario inscrito en grupo. Restricciones: Un usuario solo puede inscribirse en un grupo, y en grupo se pueden inscribir uno o mas usuarios.
Dominios DOMINIO TIPO FORMATO Int Text VALORES Entero [1..429.496.265] DESCRIPCIN Identificador de la ocurrencia. Descripcin de la ocurrencia
Cadena de 0 hasta 65535 caracteres. Cadena Varchar(255) Cadena de 0 hasta 255 caracteres Fecha Time Entero Int Entero [1..429.496.265] Cadena de 0 hasta 9 caracteres
Fecha(A/M/D) Se corresponde con los enteros. Campo utilizado para almacenar la contrasea de usuario.
Email de contacto Cadena de 0 hasta 20 caracteres Tabla 50: Dominios de los tipos de atributos
Bloque II: Documentacin Tcnica Diseo
84
Ilustracin 12: Esquema general del patrn Modelo-Vista-Controlador Un controlador se usa para manejar la lgica de cierta seccin de su aplicacin. Comnmente, los controladores son usados para manejar la lgica de un solo modelo.
87
Los controladores pueden tener cualquier cantidad de mtodos a los que normalmente se les llama acciones. Las acciones son mtodos de los controladores para mostrar vistas. Una accin es un nico mtodo de un controlador. Un Modelo representa un modelo de datos y, en programacin orientada a objetos, es un objeto que representa una "cosa". La capa vista es cmo hablas a los usuarios. La mayor parte del tiempo las vistas estarn mostrando documentos (X)HTML a los navegadores.
2.4.2
Se ha implementado un sistema de gestin de contenidos (CMS) que permite construir sitios web y aplicaciones en lnea en la plataforma Google App Engine para Java. Entre las caractersticas de un CMS se incluyen internacionalizacin, URLs amigables, intercambio de pginas, comentar (con moderacin), control de versiones de contenido, las formas de entrada, cdigo de la imagen, Google Analytics, plug-ins opcionales, seguridad y gestin de grupos, estructura de pginas padre/hijo, plantillas programables, gestin de recursos, mltiples modos de edicin (visual, la sintaxis wiki, texto plano) y mucho ms, adems de alojamiento gratuito en la nube de Google.
Qu es un sistema de gestin de contenidos (CMS)? Un sistema de gestin de contenidos (CMS) es un conjunto de procedimientos utilizados para administrar el flujo de trabajo en un entorno de colaboracin. Un CMS Web es un software que puede rastrear todo el contenido y los recursos de un sitio web - al igual que una biblioteca pblica lleva un seguimiento de todos los libros y las grabaciones en las estanteras. Los componentes pueden ser de contenido como texto, imgenes, scripts y hojas de estilo, o plantillas que el contenido en formato de pantalla. Una gran ventaja de usar un CMS para mantener un sitio es que las pginas se pueden editar con el mismo navegador utilizado para ver el sitio. Se pueden hacer cambios y revisar instantneamente, con un built-in, basada en men, editor visual. Desde la CMS administra todo el contenido en un solo lugar, todos los activos de su sitio es fcil de encontrar y actualizar, sin tener que aprender las tecnologas especiales en la Web.
Caractersticas principales:
88
URL amigables Seguimiento de publicaciones por fecha CKEditor 3.0 Moderacin y manejo de comentarios Versionado Previsualizacin de pginas Gestin de pginas hijas de un padre. Plantillas Subida y exportacin de recursos
Bloque II: Documentacin Tcnica Diseo
Configuracin para Google Analatycs Soporte para capucha Soporte de plugins RSS
CONCEPTOS GENERALES - Contenido de pginas: rea de contenido CMS. El sistema le pedir que inicie sesin, y luego poder acceder a la pgina de bienvenida en el rea de trabajo. Para editar el contenido, hay que seleccionar las pginas de contenido de la pgina de bienvenida o en el enlace contenido en el encabezado. -rbol de pginas: Una pgina es un fragmento de contenido. El contenido est enlazado a una plantilla para crear una pgina web completa que puede ser interpretada por un navegador. El CMS organiza las pginas usando una jerarqua padre/hijo. En el rea de trabajo, la jerarqua se representa como un esquema de rbol. Inicialmente, el rbol est contrado. Para abrir cada rama del rbol, seleccione el botn [+] control. Para agregar una carpeta de la vista de rbol, pulse el botn [+] control. Para abrir una pgina para la edicin, seleccione el enlace de nombre de la pgina.
-rea de trabajo : El rea de trabajo de las pginas se organiza en cinco pestaas: Pgina, contenido, pginas hijas, comentarios y seguridad.
-Ficha La ficha de pgina establece los atributos de ttulo, URL amigable, plantilla, la fecha de publicacin, habilitar los comentarios, y el tipo de pgina.
-Ttulo El atributo Title se muestra en el rbol de pginas, as como en la historia del navegador. Puede o no puede coincidir con el ttulo H1.
-Plantilla La plantilla proporciona el formato Web que rodea el contenido de la pgina. Cada pgina debe estar asociada con una plantilla. Al disear un sitio se puede proporcionar una plantilla personalizada que satisfaga las necesidades especficas de su sitio.
Bloque II: Documentacin Tcnica Diseo 89
-Habilitar comentarios Los comentarios pueden ser habilitado para cualquier pgina. La plantilla de pgina debe ser compatible con los comentarios y los comentarios deben estar habilitadas para cada pgina. El marcado de bloque de comentario se puede personalizar en la configuracin del sitio.
-Tipo de pgina El sistema es compatible con dos tipos de pginas, sencilla y estructurada. Las pginas simples tienen un nico campo de contenido. Las pginas estructuradas pueden utilizar varios campos para almacenar contenido. La plantilla se puede colocar campos de contenido individuales en lugares especficos, para crear fcilmente un diseo uniforme.
-Ficha Contenido La pestaa Contenido permite la edicin y aprobacin del contenido de la pgina.
-Contenido idioma Si la aplicacin se ha configurado para utilizar varios idiomas, una visin diferente de una pgina se puede crear para cada idioma soportado. Las vistas pueden compartir la pgina y la configuracin de seguridad, pero cada uno tiene un rea de contenido independiente. El lenguaje de presentar detecta automticamente la configuracin de idioma de un navegador Web. El ajuste de idioma se mantendr durante la sesin del navegador. (Cerrar el navegador o eliminar la cookie JSESSIONID.) Si una vista no est disponible para el idioma preferido, la vista idioma por defecto se presentar en su lugar.
-Editor de pginas El CMS utiliza un plugin popular, CKEdit, para crear y mantener contenido de la pgina. La interfaz es similar a otros productos y debe ser intuitiva para la mayora de los usuarios.
-Imagen El cuadro de dilogo de imagen incluye una accin de servidor de bsqueda que muestra el rbol de recursos. Para enlazar a un recurso, seleccinelo en el rbol, y el editor va a generar la referencia adecuada.
-Los controles de formulario Para crear un formulario de entrada de datos, utilice el complemento del form, en lugar de los controles del editor de formularios.
90 Bloque II: Documentacin Tcnica Diseo
DISEO -Diseo de plantillas Las plantillas controlan como la pgina se muestra, incluida la presentacin grfica, disposicin y colores. Un plantilla de diseo consiste en un componente de contenido que define el HTML de salida de las pginas del sitio, con uno o ms ficheros CSS que definen la disposicin, fuentes, colores y otros estilos.
-Recursos estticos Los recursos son cualquier contenido esttico usado por las plantillas de diseo o por las pginas del sitio. Los recursos puede ser imgenes, archivos CSS, archivos JavaScript, archivos XML, PDFs, Excel, Word, video y cualquier otro recurso. Estn organizados dentro de carpetas en un tpico sistema de archivos. Para referenciar un recurso deber ir precedido en la URL de /file seguido del path de la carpeta y l nombre de archivo.
-Estructuras de contenido Las estructuras estn formadas para usar un conjunto de elementos consistente. Un pgina simple recoge informacin como texto en un campo de entrada. Una pgina estructurada puede recoger multitud de elementos de varios tipos.
91
2.4.3 2.4.3.1
La siguiente ilustracin es un diagrama de las principales clases que forman el sistema. Primero queremos disponer de plantillas conteniendo el cdigo bsico de la estructura para una pgina. Adems esta plantilla necesitar de elementos auxiliares por lo que se define la clase recurso para poder almacenar estos elementos en forma de ficheros. La clase pgina se integra dentro de una plantilla en el espacio reservado para ella. Una pgina solo puede integrarse con una plantilla. Las paginas pueden ser comentadas por los usuarios, para guardar estos datos se ha creado la clase comentario.
92
2.4.3.2
Descripcin del tipo de Objeto Plantilla Tipo Versin Autores Requisitos Asociados Descripcin Plantilla 1.0(25-05-2012) Diego Yage Jurez IRQ-03 Informacin sobre plantilla Este tipo concreto representa a las plantillas almacenadas en el sistema Tabla 51: Tipo de objeto Plantilla
Atributos del tipo de Objeto Plantilla Atributo variable Descripcin Tipo OCL Valor Inicial plantilla::autoguardado Atributo que indica si se quiere escoger la opcin de autoguardado mientras se edita una plantilla Boolean 0 Tabla 52: Atributo autoguardado del objeto Plantilla Atributo variable Descripcin Tipo OCL Valor Inicial plantilla::cuerpo Atributo donde se almacena todo el cdigo de la plantilla Long text Tabla 53: Atributo cuerpo del objeto Plantilla Atributo variable Descripcin Tipo OCL Valor Inicial plantilla::nombre Atributo donde se almacena el nombre para identificarla dentro del rbol de archivos String Tabla 54: Atributo nombre del objeto Plantilla Atributo variable Descripcin Tipo OCL Valor Inicial plantilla::titulo Atributo que indica el ttulo de la plantilla String Tabla 55: Atributo titulo del objeto Plantilla
93
2.4.3.3
Descripcin del tipo de Objeto Recurso Tipo Versin Autores Requisitos Asociados Descripcin Recurso 1.0(25-05-2012) Diego Yage Jurez IRQ-05 Informacin sobre Recurso Este tipo concreto representa a los recursos almacenados en el sistema Tabla 56: Tipo de objeto Recurso
Atributos del tipo de Objeto Recurso Atributo variable Descripcin Tipo OCL Valor Inicial Tabla 57: Atributo fichero del objeto Recurso Atributo variable Descripcin Tipo OCL Valor Inicial recurso::MIME Atributo que seala el tipo de MIME que tiene el archivo String Tabla 58: Atributo MIME del objeto Recurso Atributo variable Descripcin Tipo OCL Valor Inicial recurso::nombre Atributo donde se almacena el nombre para identificar al recurso dentro del rbol de archivos String Tabla 59: Atributo nombre del objeto Recurso Atributo variable Descripcin Tipo OCL Valor Inicial recurso::subcarpeta Atributo que indica en que subcarpetas se encuentra almacenado el recurso String Tabla 60: Atributo subcarpeta del objeto Recurso Atributo variable Descripcin Tipo OCL Valor Inicial recurso::tamano Atributo que indica el tamao total del archivo en bytes Float Tabla 61: Atributo tamano del objeto Recurso recurso::fichero Atributo que indica la ruta donde se encuentra el fichero String
94
2.4.3.4
Descripcin del tipo de Objeto Comentario Tipo Versin Autores Requisitos Asociados Descripcin Comentario 1.0(25-05-2012) Diego Yage Jurez IRQ-06 Informacin sobre Comentario Este tipo concreto representa a los comentarios almacenados en el sistema Tabla 62: Tipo de objeto Comentario Atributos del tipo de Objeto Comentario Atributo variable Descripcin Tipo OCL Valor Inicial comentario::email Atributo que indica el correo electrnico del autor del comentario String Tabla 63: Atributo email del objeto Comentario
comentario::fecha Atributo que guarda la fecha de publicacin del comentario Date Tabla 64: Atributo fecha del objeto Comentario
comentario::nombre Atributo donde se almacena el nombre para identificar al comentario dentro del rbol de archivos String Tabla 65: Atributo nombre del objeto Comentario
comentario::texto Atributo donde se almacena el input que escribe el usuario String Tabla 66: Atributo texto del objeto Comentario
95
2.4.3.5
Descripcin del tipo de Objeto Usuario Tipo Versin Autores Requisitos Asociados Descripcin Usuario 1.0(25-05-2012) Diego Yage Jurez IRQ-01 Informacin sobre Usuario Este tipo concreto representa a los usuarios almacenados en el sistema Tabla 67: Tipo de objeto Usuario
Atributos del tipo de Objeto Usuario Atributo variable Descripcin Tipo OCL Valor Inicial usuario::descripcion Atributo que indica una breve descripcin sobre el usuario String Tabla 68: Atributo descripcin del objeto Usuario Atributo variable Descripcin Tipo OCL Valor Inicial usuario::password Atributo que guarda la fecha de publicacin del usuario Date Tabla 69: Atributo fecha del objeto Usuario Atributo variable Descripcin Tipo OCL Valor Inicial usuario::nombre Atributo donde se almacena el nombre para identificar al usuario dentro del rbol de archivos String Tabla 70: Atributo nombre del objeto Usuario
usuario::texto Atributo donde se almacena el input que escribe el usuario String Tabla 71: Atributo texto del objeto Usuario
96
2.4.3.6
Descripcin del tipo de Objeto Pgina Tipo Versin Autores Requisitos Asociados Descripcin Pagina 1.0(25-05-2012) Diego Yage Jurez IRQ-04 Informacin sobre Contenido Este tipo concreto representa a las pginas almacenadas en el sistema Tabla 72: Tipo de objeto Pgina
Atributos del tipo de Objeto Pgina Atributo variable Descripcin Tipo OCL Valor Inicial pagina::autoguardado Atributo que se corresponde con la opcin de autoguardado en modo edicin Boolean 0 Tabla 73: Atributo autoguardado del objeto Pgina pagina::autor Atributo que seala el autor de la pgina String Tabla 74: Atributo autor del objeto Pgina Atributo variable Descripcin Tipo OCL Valor Inicial pgina::contenido Atributo donde se almacena el cuerpo de la pgina Longtext Tabla 75: Atributo contenido del objeto Pgina Atributo variable Descripcin Tipo OCL Valor Inicial pgina::creado Atributo que indica la fecha de creacin de la pgina Date Tabla 76: Atributo creado del objeto Pgina Atributo variable Descripcin Tipo OCL Valor Inicial pgina::tag Palabras representativas que describan el contenido de la pgina String Tabla 77: Atributo tag del objeto Pgina
97
pgina::titulo Ttulo que va a tener la pgina cuando la veamos desde un navegador String Tabla 78: Atributo ttulo del objeto Pgina
98
DIAGRAMA DE ACTIVIDADES Como con casos de uso solamente es posible capturar poca informacin, cada caso de uso puede ser descripto ms detalladamente mediante un proceso. Es decir, las acciones que son parte de un caso de uso as como los datos presentados al usuario y aquellos requeridos como entrada de datos pueden ser modelados con precisin como actividades. Los dos estereotipos user Action y system Action pueden ser usados anlogamente al flujo de procesos. El estereotipo user Action es usado para indicar interacciones de usuario en la pgina web iniciando un proceso o respondiendo a un requisito de informacin. Por lo contrario, system Action describe acciones que son ejecutados por el sistema. Para ejemplificar modelamos varias actividades. Primero, una actividad para el caso de uso "CrearPlantilla". El mismo muestra un formulario que permite al usuario entrar su nombre, ttulo y dems inputs. Los datos deben ser validados durante la entrada de datos. El formulario completado por el usuario es finalmente salvado en la base de datos de la aplicacin.
2.4.3.7
99
2.4.3.8
100
2.4.3.9
101
2.4.4 MODELO DE COMPORTAMIENTO: DISEO DINMICO 2.4.4.1 DIAGRAMAS DE SECUENCIA DEL SISTEMA (DSS)
En los siguiente diagramas de secuencia, solo se documenta a modo de ejemplo y por no extender innecesariamente la documentacin, las operaciones insertar, modificar y borrar correspondientes las entidades, pues gracias al diseo siguiendo el patrn, los diagramas son iguales para cualquier combinacin de operaciones y entidades.
103
104
105
106
107
109
El diagrama de estados esta enfocado hacia un evento que produzca cambios, ya sean al crear nuevos objetos o modificar los existentes, y as comprobar los estados existentes y eventos que producen que exista un cambio de un estado a otro.
110
Diagrama de estado de una consulta: el siguiente diagrama muestra la secuencia de estados que se producen al realizar, desde el modelo de alguna entidad, una consulta a la base de datos.
111
3. IMPLEMENTACIN
113
115
o JavaScript es un lenguaje de programacin interpretado. Se utiliza normalmente en el lado del cliente permitiendo mejoras en la interfaz de usuario y pginas web dinmicas. Todos los navegadores modernos interpretan el cdigo JavaScript integrado en las pginas web. Para interactuar con una pgina web se provee al lenguaje JavaScript de una implementacion del Document Object Model . o DOM o Document Object Model es un conjunto de utilidades especficamente diseadas para manipular documentos XML. Por extensin, DOM tambin se puede utilizar para manipular documentos XHTML y HTML. Tcnicamente, DOM es una API de funciones que se pueden utilizar para manipular las pginas XHTML de forma rpida y eficiente. Desafortunadamente, las posibilidades tericas de DOM son mucho ms avanzadas de las que se pueden utilizar en la prctica para desarrollar aplicaciones web. El motivo es que el uso de DOM siempre est limitado por las posibilidades que ofrece cada navegador. Mientras que algunos navegadores como Firefox y Safari implementan DOM de nivel 1 y 2 (y parte del 3), otros navegadores como Internet Explorer (versin 7 y anteriores) ni siquiera son capaces de ofrecer una implementacin completa de DOM nivel 1. o Ajax, acrnimo de Asynchronous JavaScript And XML (JavaScript asncrono y XML), es una tcnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicacin asncrona con el servidor en segundo plano. De
116 Bloque II: Documentacin Tcnica Diseo
esta forma es posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. Ajax es una tecnologa asncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualizacin ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado en el que normalmente se efectan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. Ajax es una tcnica vlida para mltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que est basado en estndares abiertos como JavaScript y Document Object Model (DOM). o jQuery es una biblioteca de JavaScript, que permite simplificar la manera de interactuar con los documentos HTML, manipular el rbol DOM, manejar eventos, desarrollar animaciones y agregar interaccin con la tcnica AJAX a pginas web.
o CSS (Cascading Style Sheets) u hojas de estilo en cascada es un lenguaje usado para definir la presentacin de un documento estructurado escrito en HTML o XML. La idea que se esconde detrs de las hojas de estilo es separar la estructura de un documento de su preentacin. Control centralizado de la presentacin de un sitio web completo con lo que se agiliza de forma considerable la actualizacin del mismo. Los navegadores permiten a los usuarios especificar su propia hoja de estilo local, que ser aplicada a un sitio web, con lo que aumenta considerablemente la accesibilidad. El documento HTML en s mismo es ms claro de entender y se consigue reducir considerablemente su tamao.
Qu es HTML5? HTML5 introduce muchas caractersticas de vanguardia que permiten a los desarrolladores crear aplicaciones y sitios web con la funcionalidad, velocidad, rendimiento y experiencia de aplicaciones de escritorio. Pero a diferencia de las aplicaciones de escritorio, aplicaciones basadas en la plataforma web puede llegar a un pblico mucho ms amplio con una gama ms amplia de dispositivos. HTML5 acelera el ritmo de la innovacin y le permite rodar sin problemas hacia fuera su ltimo trabajo a todos los usuarios al mismo tiempo. HMTL5 no es una sola cosa o una tecnologa monoltica. Se trata de un conjunto de caractersticas, las tecnologas y las API que trae el poder del escritorio y la vitalidad de la experiencia multimedia a la web, mientras que la amplificacin de los puntos fuertes de la web ncleo de interactividad y conectividad. HTML5 incluye la quinta revisin del lenguaje de marcado HTML, CSS3, y una serie de APIs JavaScript. Juntas, estas tecnologas permiten crear aplicaciones complejas que antes podan ser creados slo para plataformas de escritorio. La versin anterior y ms usada de HTML, HTML4, carece de caractersticas necesarias para la creacin de aplicaciones modernas basadas en un navegador. El uso fuerte de Javascript ha ayudado a mejorar esto, gracias a frameworks como jQuery, jQuery UI, Sproutcore, entre otros.
117
Flash en especial ha sido usado en reemplazo de HTML para desarrollar web apps que superaran las habilidades de un navegador: Audio, video, webcams, micrfonos, datos binarios, animaciones vectoriales, componentes de interfaz complejos, entre muchas otras cosas. Ahora HTML5 es capaz de hacer esto sin necesidad de plugins y con una gran compatibilidad entre navegadores. HTML4 y HTML5 son 100% compatibles entre s. Todo el cdigo que tienes en HTML normal seguir funcionando sin problemas en HTML5. Internet Explorer, claro, es tambin la razn de la poca adopcin de HTML5. Sin embargo, hay formas de que las etiquetas semnticas de HTML5 y atributos de CSS3 funcionen en IE.
Nuevas capacidades de JavaScript Web Storage Una cookie es la forma ms casposa de guardar informacin en el lado del cliente. Tambin es la nica forma. Las cookies no pueden guardar ms de 4KB por cookie, 100KB por dominio. Muy poco. Pero al mismo tiempo, todo el contenido de las cookies va pegado a cualquier peticin HTTP que hagas al servidor. Lo que significa que por cada vez que el usuario recarga la pgina o baja una imagen, tiene que subir los KB que pesan todas las cookies que le hemos dado. Web Storage soluciona este problema. Son variables que puedes guardar en el disco del usuario, con soporte en todos los navegadores (incluyendo IE8), puedes guardar hasta 5MB y no slo texto. Cualquier tipo de datos cabe en un Storage. Web Workers El problema de JavaScript es que solo puede hacer una cosa al mismo tiempo. Gran parte de la razn por la que Web fall y las web apps son simples es porque la multitarea es imposible. Web Workers soluciona eso. Web Workers permite tener multiples archivo .js corriendo en paralelo en una misma pgina. Haciendo tareas complejas ms veloces gracias al multithreading. Web Sockets Igual que XMLSockets en Actionscript, Web Sockets permite hacer aplicaciones multiusuario en tiempo real, como juegos, chats, notificaciones, etc. Si el navegador no tiene soporte de Web Sockets, es posible usar implementaciones multiuser en Javascript como PubSubHubBub. Arrastrar y soltar En Gmail, crear un email e intenta arrastrar un archivo del explorador de archivos al mail. Vers que es posible adjuntarlo con slo arrastrarlo. El gesto de arrastrar y soltar ahora es posible gracias a HTML5. Puedes traer trozos de datos o archivos enteros. Fuera de linea "Web" y "offline" son dos trminos que muchas personas no se asocian entre s. Pero pronto lo harn, con HTML5 APIs que permiten crear aplicaciones que funcionan incluso cuando no ests conectado. Cach de aplicaciones, localStorage, sessionStorage, IndexedDB, sistema de archivos y eventos en lnea y fuera de lnea permiten que las aplicaciones "amphibiously" trabajar con o sin conexin a Internet
118
3 PRUEBAS
La elaboracin de una batera de pruebas para una aplicacin web es indispensable para que la aplicacin presente un buen rendimiento. Se van a realizar dos tipos de pruebas: una en el lado del cliente donde se ejecuta una parte de la aplicacin y la otra en el lado del servidor. Una prueba se enfoca sobre la lgica interna del programa y sobre las funciones externas. Con estas pruebas se desvelan posibles errores cometidos en la elaboracin del sistema. Un buen proceso de prueba es aquel que tiene una alta probabilidad de encontrar un error no descubierto hasta entonces. Los objetivos de la fase de pruebas son los siguientes: Encontrar y documentar defectos que pueda tener la aplicacin web. Validar que funciona para lo que ha sido diseado. Verificar requisitos que debe de cumplir el software. Validar interaccin e integracin de los componentes. Asegurar que los defectos encontrados se han corregido antes de la entrega al cliente.
En cuanto a la realizacin de las pruebas se basan en testeos a diferentes niveles, se necesita probar si cada unidad funciona correctamente, luego es necesario probar si los distintos mdulos encajan entre s y por ltimo pruebas al proyecto web globales. La herramienta utilizada para realizar las pruebas en la parte cliente de la aplicacin ha sido las herramientas de desarrollo de Google para su navegado Chrome. Es un plugin que se instala como complento en el navegador y dispone de las siguientes caractersticas.
119
En la primera pestaa se encuentran los elementos, es decir, podemos visualizar toda la estructura HTML, junto con sus estilos asociados, pudiendo diferenciar las partes que componen la estructura de la pgina. La siguiente opcin es la de resources que son los recursos que esta utilizando la pgina, aqu englobamos todos los ficheros como imgenes, .html, .css, .js, etc. Aqu podemos descargarnos los ficheros a local, as como las ltimas versiones modificadas. Despus encontramos la opcin de network donde podemos ver en tiempo real los elementos que se van descargando del servidor, as como sus tiempo de carga y espera. Tambin podemos ver lo que pesa cada fichero para intentar que los ficheros ms pesados se carguen al final del resto de los elementos. Se puede acceder a los scripts de la pgina para poder insertar breakpoints y as ver el estado de la ejecucin en un momento concreto para validar su correcto funcionamiento. Con el timeline se pueden realizar grabaciones en tiempo real de los elementos que se van cargando a nivel de DOM, as como los nodos que componen la pgina, peticiones con AJAX, en definitiva el monitoreo de todas las interacciones con el servidor. Los profiles sirven para medir la eficiencia de los ficheros JavaScript de la pgina, mide tiempos de ejecucin, porcentajes de uso, funciones utilizadas, etc. En la opcin Audit podemos realizar una auditoria de la pgina que nos mostrar la utilizacin de red y el rendimiento de la pgina. Nos aconsejara cambiar las reglas que no sean eficientes y eliminar las que no se utilizen. Nos mostrar los detalles como el tamao habilitado para las cookies, contenido cacheable, etc. En la opcin de Console podemos interactuar con la pgina y ejecutar funciones para ver el funcionamiento de los elementos.
Para depurar la parte del servidor y verificar que todo funciona correctamente, se ha realizado un testeo en todas las funciones disponibles, dando diferentes datos de entrada y verificando que el resultado era el apropiado. Se han insertado registros para cada una de las entidades, modificando los valores de entrada, y as verificar el correcto funcionamiento de la aplicacin, desde que el usuario introduce los parmetros de entrada, hasta que llegan a la base de datos. Al ejecutar la aplicacin desde un plugin del elipse se puede testear el lado del servidor utilizando la perspectiva de debug y ver los logs, aadir puntos de ruptura, observar variables, ver el cdigo lnea por lnea, como si de una aplicacin normal se tratara. Se han aadido puntos de interrupcin en la creacin de los objetos, en la introduccin de registros en la base de datos, en los datos devueltos por una consulta o en la destruccin de objetos, para ver el resultado de las operaciones en puntos crticos de la ejecucin. Se puede visualizar la pila para ver que partes del programa se estn ejecutando en un momento determinado y como se relacionan entre si
120
4 RESUMEN
TIPO TIPOS DE OBJETOS DESCRIPCIN Object Controller App_controller Servicio_controller Decoraciones_controller Familias_controller Categorias_controller Piezas_controller Overloadable Model App_model Servicio Decoracion Familia Categoria Pieza Helper Text_helper Form_helper Html_helper Helper MeioUpload ModelBehaviors Imagen Catalogo App_model Incluye Ofrece Pertenece Incluida Utiliza Diagrama de secuencia insertar pieza Diagrama de secuencia modificar decoracion Diagrama de secuencia consultar categora Diagrama de secuencia borrar familia Diagrama de secuencia listar servicios Diagrama de secuencia de una peticin HTML Diagrama de secuencia realizar busqueda Diagrama de estados peticin a objeto Diagrama de estados insertar/modificar entidad Diagrama de estados consultar base de datos
ASOCIACIONES
DIAGRAMAS DE SECUENCIA
DIAGRAMAS DE ESTADOS
121
5 ndice de Tablas
TABLA 1: ATRIBUTOS DE LA ENTIDAD PLANTILLA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =&! TABLA 2: ATRIBUTOS DE LA ENTIDAD CONTENIDO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =8! TABLA 3: ATRIBUTOS DE LA ENTIDAD CONDICIN55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =8! TABLA 4: ATRIBUTOS DE LA ENTIDAD USUARIOS 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =;! TABLA 5: ATRIBUTOS DE LA ENTIDAD USUARIO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =;! TABLA 6: ATRIBUTOS DE LA ENTIDAD GRUPO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =;! TABLA 7: DOMINIOS DE LOS TIPOS DE ATRIBUTOS 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 =6! TABLA 8: TIPO DE OBJETO PLANTILLA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D;! TABLA 9: ATRIBUTO AUTOGUARDADO DEL OBJETO PLANTILLA 555555555555555555555555555555555555555555555555555555555555555555555555555 D;! TABLA 10: ATRIBUTO CUERPO DEL OBJETO PLANTILLA 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D;! TABLA 11: ATRIBUTO NOMBRE DEL OBJETO PLANTILLA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D;! TABLA 12: ATRIBUTO TITULO DEL OBJETO PLANTILLA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D;! TABLA 13: TIPO DE OBJETO RECURSO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 14: ATRIBUTO FICHERO DEL OBJETO RECURSO 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 15: ATRIBUTO MIME DEL OBJETO RECURSO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 16: ATRIBUTO NOMBRE DEL OBJETO RECURSO 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 17: ATRIBUTO SUBCARPETA DEL OBJETO RECURSO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 18: ATRIBUTO TAMANO DEL OBJETO RECURSO 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D6! TABLA 19: TIPO DE OBJETO COMENTARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D>! TABLA 20: ATRIBUTO EMAIL DEL OBJETO COMENTARIO 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D>! TABLA 21: ATRIBUTO FECHA DEL OBJETO COMENTARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D>! TABLA 22: ATRIBUTO NOMBRE DEL OBJETO COMENTARIO5555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D>! TABLA 23: ATRIBUTO TEXTO DEL OBJETO COMENTARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D>! TABLA 24: TIPO DE OBJETO USUARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 DA! TABLA 25: ATRIBUTO DESCRIPCIN DEL OBJETO USUARIO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555 DA! TABLA 26: ATRIBUTO FECHA DEL OBJETO USUARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 DA! TABLA 27: ATRIBUTO NOMBRE DEL OBJETO USUARIO 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 DA! TABLA 28: ATRIBUTO TEXTO DEL OBJETO USUARIO 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 DA! TABLA 29: TIPO DE OBJETO PGINA 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 30: ATRIBUTO AUTOGUARDADO DEL OBJETO PGINA55555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 31: ATRIBUTO AUTOR DEL OBJETO PGINA 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 32: ATRIBUTO CONTENIDO DEL OBJETO PGINA 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 33: ATRIBUTO CREADO DEL OBJETO PGINA 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 34: ATRIBUTO TAG DEL OBJETO PGINA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D7! TABLA 35: ATRIBUTO TTULO DEL OBJETO PGINA 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 D=!
122
6 ndice de Figuras
+%<0"9#@+12!&: MODELO DE LA BASE DE DATOS 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=&! ILUSTRACIN 2: ESQUEMA GENERAL DEL PATRN MODELO-VISTA-CONTROLADOR 55555555555555555555555555555555555=7! ILUSTRACIN 3: DIAGRAMA DE CLASES 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555D8! ILUSTRACIN 4: DIAGRAMA DE ACTIVIDAD: NUEVO ARTCULO 55555555555555555555555555555555555555555555555555555555555555555555555555DD! ILUSTRACIN 5: DIAGRAMA DE ACTIVIDAD: NUEVO CONTENIDO 55555555555555555555555555555555555555555555555555555555555555555555&--! ILUSTRACIN 6: DIAGRAMA DE ACTIVIDAD: NUEVO COMENTARIO 55555555555555555555555555555555555555555555555555555555555555555&-&! ILUSTRACIN 7: DIAGRAMA DE SECUENCIA INSERTAR ENTIDAD 55555555555555 !"##$#%&'#(')$#*+$*)",-+-)$.! ILUSTRACIN 8: DIAGRAMA DE SECUENCIA DE MODIFICAR UNA ENTIDAD5555555555555555555555555555555555555555555555555555&-6! ILUSTRACIN 9: DIAGRAMA DE SECUENCIA DE BORRAR UNA ENTIDAD 555555555555555555555555555555555555555555555555555555555&->! ILUSTRACIN 10: DIAGRAMA DE SECUENCIA DE UNA PETICIN HTML555555555555555555555555555555555555555555555555555555555&-A! ILUSTRACIN 11: DIAGRAMA DE SECUENCIA DE UNA PETICIN DE BUSQUEDA 5555555555555555555555555555555555555555555&-7! ILUSTRACIN 12: DIAGRAMA DE ESTADOS DE UNA PETICIN A UN OBJETO DEL MODELO 555555555555555555555555&-D! ILUSTRACIN 13: DIAGRAMA DE ESTADOS INSERTAR/MODIFICAR ENTIDAD 5555555555555555555555555555555555555555555555555&&-! ILUSTRACIN 14: DIAGRAMA DE ESTADOS DE UNA PETICIN A LA BASE DE DATOS 55555555555555555555555555555555555&&&! ILUSTRACIN 15: DIAGRAMA DE DESPLIEGUE DEL SISTEMA 555555555555555555555555555555555555555555555555555555555555555555555555555555&&>! ILUSTRACIN 17: VENTANA DE DESARROLLO CHROME 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555&&D!
123
1. NDICE 1. 2. 2.1 2.2 2.3 2.4 2.5 2.6 3. NDICE....................................................................................................127 MANUAL DE INSTALACIN..............................................................128 INSTALAR NAVEGADOR: ................................................................128 INSTALAR ECLIPSE:..........................................................................131 INSTALACIN DE GOOGLE APP ENGINE ....................................131 INSTALACIN DE MAVEN ..............................................................132 CREAR NUEVO PROYECTO.............................................................133 MANUAL DE USUARIO.....................................................................137 NDICE DE ILUSTRACIONES .............................................................151
127
2. MANUAL DE INSTALACIN
Para la ejecucin de la aplicacin se necesitan los siguientes programas. Eclipse Nos proporciona el entorno para ejecutar la aplicacin. Google App Engine Eclipse - se trata de un plugin realizado por Google para que podamos desarrollar aplicaciones con App Engine en Eclipse. Proporciona un servidor con las mismas caractersticas que tendramos si desplegramos la aplicacin en su nube. Maven Es otro plugin para eclipse que nos permite generar el os archivos necesarios para ejecutar la aplicacin. Java JDK 6 Libreras Java. Navegador Google Chrome/ Mozilla Firefox para poder visualizar la aplicacin. Cdigo fuente Cdigo necesario para generar los archivos que componen la aplicacin web. 2.1 INSTALAR NAVEGADOR: Un navegador es necesario para poder interactuar con las interfaces que se han realizado, el navegador es el que interpreta el cdigo HTML y genera las vistas, tambin cuentan con paquetes que pueden ejecutar cdigo JavaScript, interpretar PHP, representar CSS, etc. En este manual se ha escogido Google Chrome como navegador preferido. Se expresan las razones, como adquirir una versin actual, la que se adjunta en el paquete de archivos es:
Google Chrome es un navegador Web gratuito que se instala en tan slo unos minutos. Est disponible en versiones para Windows, Mac y Linux. En este artculo te guiaremos por todos los pasos del proceso de instalacin.
Para instalar Google Chrome utilizando tu cuenta de usuario, sigue los pasos descritos a continuacin. 1 Ve a http://www.google.es/chrome . 2 En el men desplegable situado encima del botn de descarga, comprueba el idioma del navegador.
Haz clic en Descargar Google Chrome. Al descargar el archivo de instalacin en este sitio, te aseguras de que Google Chrome est actualizado con las ltimas funciones y parches de seguridad.
Ilustracin 28: Seleccionar enlace de descarga 4 Consulta las Condiciones del servicio y haz clic en el botn Aceptar e instalar para continuar.
Ilustracin 29: Aceptar condiciones Google Chrome 5 Tras descargar el archivo del instalador, aparece el cuadro de dilogo "Bienvenido a Google Chrome". En l se te pide que elijas el motor de bsqueda que te gustara usar de forma predeterminada en el navegador.
129
Ilustracin 30: Seleccionar idioma de descarga Mac 4 5 En el men desplegable situado encima del botn de descarga, comprueba el idioma del navegador. Haz clic en Descargar Google Chrome.
Ilustracin 31: Seleccionar enlace de descarga 6 7 8 9 Consulta las Condiciones del servicio y, a continuacin, haz clic en el botn Aceptar e instalar para continuar. Una vez que hayas descargado el archivo "Google Chrome.dmg", brelo. En la ventana que se abrir, arrastra el icono de Google Chrome hasta la carpeta "Aplicaciones". Google Chrome se instalar para todas las cuentas de usuario de tu equipo. La primera vez que abras el navegador, el buscador te solicitar que confirmes que deseas abrir la aplicacin descargada de Internet. Haz clic en Abrir para continuar.
10 Aparecer el cuadro de dilogo "Bienvenido a Google Chrome" solicitndote que elijas el motor de bsqueda que te gustara usar de forma predeterminada en el navegador.
130
2.2 INSTALAR ECLIPSE: Para la instalacin de Eclipse mire en el CD proporcionado y bajo la carpeta software se encuentra un archivo comprimido llamado eclipse, descomprmalo en su escritorio. En la carpeta donde se ha descomprimido el ZIP busque un ejecutable llamado eclipse.exe haga doble clic y ya tendr eclipse funcionando. Haga doble click y siga las instrucciones. Cuando inicie el programa se le pedir que introduzca la ruta de un directorio donde se guardarn los proyectos que genere con Eclipse. Esto es conocido como workspace.
2.3 INSTALACIN DE GOOGLE APP ENGINE 1. Selecciona el men Help > Install New Software... (Ayuda > Instalar software nuevo). 2. En el cuadro de texto Work with (Trabajar con), introduce: http://dl.google.com/eclipse/plugin/3.6 Haz clic en el botn Add... (Aadir). En el cuadro de dilogo que aparece, haz clic en OK (Aceptar). Deja el nombre en blanco; el sistema lo obtendr del sitio actualizado. 3. Haz clic en el tringulo situado junto a "Plugin" (Complemento) y "SDKs" (SDK). Marca las casillas de verificacin situadas junto a "Google Plugin for Eclipse 3.6" y "Google App Engine Java SDK" (SDK Java de Google App Engine). Tambin puedes seleccionar "Google Web Toolkit SDK" (SDK de Google Web Toolkit) si quieres utilizar Google Web Toolkit con tus aplicaciones. 4. Haz clic en el botn Next (Siguiente). Sigue las indicaciones que aparecen para aceptar las condiciones del servicio e instalar el complemento.
131
5. Al finalizar la instalacin, aparece un mensaje de Eclipse solicitando que reinicies el sistema. Haz clic en Yes (S). Eclipse se reinicia y el complemento ya est instalado.
Ilustracin 33: Instalando App Engine 2.4 INSTALACIN DE MAVEN m2e es un plugin que nos permite integrar Maven dentro de Eclipse, de forma que podamos trabajar fcilmente con proyectos Java gestionados por Maven. La instalacin la podemos hacer por el Marketplace, o de la forma tradicional proporcionando nosotros la URL. Vamos a elegir este segundo mtodo para tener un poco ms de control sobre lo que vamos a instalar. En la pgina de documentacin de m2e nos indica dos URL de instalacin, una para la releases oficiales, y otra para las builds estables de desarrollo. Vamos a escoger la primera ya que la segunda parece no funcionar. As que la URL que vamos a usar es: http://download.eclipse.org/technology/m2e/releases Para hacer la instalacin seleccionamos en el men de Eclipse Help --> Install New Software...
132
2.5 CREAR NUEVO PROYECTO PASO 1: Antes de crear el proyecto, debes copiar los archivos que se encuentran en la carpeta /cms/ del CD al workspace que hayas definido previamente. PASO 2: Ejecutar Eclipse y en la pestaa de Archivo seleccionar la opcin Importar. Seleccionar importar proyecto Maven existente desde el workspace bajo la pestaa de Maven.
133
Olvdate de los errores y advertencias, antes de preocuparse por ellos tenemos que arreglar algo ms. En la pestaa de configuracin hay un campo donde indica el directorio de origen. Selecciona el proyecto que acabas de copiar del CD al Workspace. Dando a siguiente deberas ver la configuracin de los archivos POM. Eclipse comenzar a importar proyectos Maven y comenzar la descarga de las dependencias necesarias definidas dentro de los POM. Esta tarea llevar un tiempo al ordenador. Una vez terminado el proceso tendremos nuestro proyecto en el espacio de trabajo y podremos ver en la pestaa problemas y podremos ver los errores y advertencias. PASO 3: Solucionar problemas En primer lugar un aviso: "Problemas Java Build Path" . Para resolver esta advertencia, hay que cambiar el J2SE JRE-1.5 biblioteca de la ruta de compilacin y reemplazarla con la versin 6 de Java JRE biblioteca. Dentro del Explorador de proyectos ,haz click derecho sobre el proyecto y pincha en la opcin Propiedades. En la seccin Java Build Path, seleccione libreras y haga doble clic en Sistema de
134 Bloque III: Documentacin Tcnica Manual
Bibliotecas JRE [J2SE-1.5], cambielo por la versin 1.6. Haga clic en Finish y Eclipse actualizar la ruta de compilacin y compilar el proyecto de nuevo. Proyect Facet Siguiente en la lista: "El nivel de compilador de Java no coincide con la versin de la facet proyect instalado de Java." . Vaya al Explorador de proyectos, abra la perspectiva Java EE, haga clic en el proyecto y seleccione Propiedades ... . Seleccione el Project facets en la ventana de propiedades y cambie el valor de Java a 1,6. PASO 4: Compilar con Maven Cuando haya resuelto los errores podr ejecutar el proyecto para generar el cdigo necesario que necesite para ejecutar la aplicacin bajo App Engine. Click con el botn secundario sobre el proyecto y en ejecutar como seleccionar como maven install.
PASO 5: Ejecutar Ahora ya tiene el cdigo necesario para poder ejecutar el proyecto como una aplicacin web. Seleccione ejecutar como aplicacin web. En su navegador introduzca la url http://localhost:8888. Si es la primera vez que accede al sitio, se encontrar con una pgina que le ayudar a configurar el cms.
135
CARACTERSTICAS
Contenido: Page tree: Una pgina en Vosao CMS es un fragmento de contenido. El contenido est enlazado a una plantilla para crear una pgina web completa que pueda ser interpretada por el navegador. El CMS organiza las pginas usando una jerarqua padre / hijo. En el rea de trabajo, la jerarqua se representa como un esquema o control de rbol. Inicialmente, el rbol est contrado. Para abrir cada rama del rbol, seleccione el botn [+] control. Para agregar una carpeta de la vista de rbol, pulse el botn [+] control. Para abrir una pgina para la edicin, seleccione el enlace de nombre de la pgina. El rea de la pgina organiza acciones en cinco pestaas: Pgina, contenido, pginas hijas, comentarios y de seguridad. Un URL amigables es definido por una URL de la pgina que es nica para un sitio web. Una URL amigable consta del nombre de la pgina principal y de una subpgina. Direcciones reservadas: /ah /cms /plugin /static /login.jsp /file /setup /update /hotCron /JSON-RPC
136
2.6 MANUAL DE USUARIO A continuacin se muestran los pasos necesarios para configurar el CMS. Introduzca la siguiente url en el navegador: http://localhost:8888/cms/. Se le dirigir a la pgina para logearse en el cms y empezar una sesin como administrador.
Ilustracin 37: Pgina de login Si es la primera vez accede al sitio introduzca los siguientes credenciales: Email: admin@test.com Contrasea: admin
137
2.6.1
rea de trabajo
Es la pgina que se muestra inmediatamente despus de logearse. En ella se encuentran las opciones principales para manejar la informacin del sistema.
Esas opciones son: 1 2 3 4 5 Pgina de contenidos: Aqu puedes editar el contenido del sitio. Todo el contenido se muestra como un rbol de pginas. Puedes cambiar las propiedades de la pgina as como la plantilla utilizada. Diseo de plantillas: Aqu puedes editar el diseo de las plantillas. Un sitio puede tener varios diseos de plantilla. Para cada pgina puedes seleccionar un diseo distinto. Almacenamiento de recursos: Aqu puedes editar los recursos del sitio. Un recurso puede ser cualquier tipo de fichero, ya sea utilizado en una plantilla o referenciado desde una pgina. Configuracin del sitio: Aqu puedes cambiar la configuracin del sitio. Dominio, email, Id de Google Analytics, plantilla de comentarios, email de aviso de comentarios. Plugins: Configuracin de los plugins. Formularios. SEO Urls
138
2.6.2
Navegacin
La zona de administracin cuenta con una men principal en la parte superior dividido en dos partes. La primera ndica las opciones principales para gestionar la informacin de las distintas entidades del sistema. En la parte derecha de la barra de men estn las opciones de sesin del sistema. Existe informacin sobre quin esta logeado, el perfil de ese usuario, el idioma configurado en el sistema, y la pgina de soporte del sistema.
Ahora veremos las opciones disponibles una por una. 2.6.3 Contenido
Cuando seguimos el enlace de contenido nos encontramos un panel como muestra la imagen anterior. Podemos ver tres elementos. Primero las pestaas que muestran las pginas y su estructura. En segundo lugar se puede ver el contenido de cada pestaa, en este caso el rbol principal sin expandir. Y por ltimo una caja para realizar bsquedas de contenido en nuestro sistema. Si expandimos el rbol de directorios tendremos algo parecido a lo siguiente. Un directorio principal Home Page y pginas que cuelgan de l.
139
Ilustracin 43: rbol de contenido Puede ver la informacin que gestiona el sistema. Se pueden expandir los apartados que dispongan de subpginas. Cada apartado cuenta con cuatro opciones disponibles representadas por cuatro iconos. El icono aadir pgina gestiona el alta de una nueva pgina asociada al apartado que se ha pulsado, genera el siguiente cuadro de dilogo.
Automticamente se actualizar el rbol de directorios y mostrar una pgina ms con un smbolo que ndica que todava no ha sido aprobada.
Para aprobarla hay que situarse sobre el nombre de la pgina y pulsar el icono de editar pgina para continuar rellenando campos imprescindibles para la publicacin de contenido.
140 Bloque III: Documentacin Tcnica Manual
Ilustracin 46: Editar pgina En este apartado hay campos que definen como se va a configurar la pgina. Tambin palabras que se incluyen en el header de la pgina. La siguiente pestaa muestra el contenido y la vista previa, en este caso de un artculo para el blog. Seleccionar el idioma para mostrar y la URL.
141
Podremos ver y editar el contenido como cdigo, como muestra la imagen anterior o podemos hacer uso del editor CKEditor. Sirve para mostrar como se vera en el navegador lo que ests escribiendo. Viene equipado con varias paletas para poder editar el estilo del contenido como si de un editor de textos se tratase.
142
En todas las pestaas tenemos asociado un men en la parte inferior con diferentes acciones como el siguiente.
Para que el contenido pueda ser visualizado desde la parte externa de la zona de administracin es necesario que se marque la opcin Aprobar contenido. El segundo icono de los elementos es para eliminar una pgina del rbol de directorios.
143
El ltimo icono sirve para modificar los datos de ttulo y URL de la pgina.
En la zona de administracin siempre hay habilitado un buscador para realizar cualquier tipo de bsqueda. Podemos utilizar el buscador en su versin sencilla o en su versin extendida.
2.6.5
Plantillas
La plantilla proporciona el formato Web que rodea el contenido de la pgina. Cada pgina debe estar asociado con una plantilla. Una plantilla simple se proporciona en la configuracin de la aplicacin por defecto. Tambin se pueden disear plantillas con un diseo personalizado que satisfagan las necesidades personales. El sistema es compatible con dos tipos de pginas, sencilla y estructurada. Sencillo pginas de contenido tienda en un campo de texto nico por superficie. Pginas estructuradas pueden utilizar varios campos para almacenar contenido. La plantilla se puede colocar campos de contenido individuales en lugares especficos, para crear fcilmente un diseo uniforme. El CMS utiliza un plugin popular, CKEdit, para crear y mantener contenido de la pgina. La interfaz es similar a otros productos y debe ser intuitiva para la mayora de los usuarios.
Ilustracin 54: Plantillas Hay cuatro opciones disponibles: aadir, eliminar, exportar e importar. Cuando pulsamos sobre el nombre de alguna plantilla se muestran dos subconjuntos de opciones. Uno para su cdigo y otro para recursos asociados. Pueden ser plantillas de lo ms sencillo a lo ms complejo.
Ilustracin 56: Plantilla compleja Bajo la opcin de recursos podemos ver ficheros asociados de tipo css, js, jpg, etc.
2.6.6
Recursos
La opcin recursos muestra el rbol de contenidos de los todos los recursos disponibles en el sistema. Se puede ver a que pgina pertenece cada uno de los recursos. El cuadro de dilogo de imagen incluye una accin de bsqueda que muestra el rbol de recursos del CMS. Para enlazar a un recurso, seleccinelo en el rbol, y el editor va a generar la referencia adecuada. Para enlazar a una pgina, introduzca la referencia correspondiente. La accin de nueva imagen tratar de subir un archivo nuevo en el rea de recursos. Sobre la base de localizacin de la pgina, el sistema crear automticamente una estructura de carpetas que coincide en el rea de recursos bajo la carpeta de recursos / pgina.
146
Pulsando sobre uno de los recursos nos aparece la siguiente informacin ms detallada sobre el directorio o recurso que ha sido elegido.
2.6.7
Configuracin
Estas opciones permiten tener control sobre variables de configuracin tiles y sobre la gestin de usuarios, comentarios y tags. Los comentarios pueden ser habilitado para que cualquier pgina. La plantilla de pgina debe ser compatible con los comentarios y los comentarios deben estar habilitadas para cada pgina. El marcado de bloque de comentario se puede personalizar en la configuracin del sitio.
147
La gestin de usuarios del sistema se gestiona desde una de las pestaas de configuracin. Desde aqu se podrn cambiar los roles de usuario.
148
2.6.8
Plugins
Sitio para configurar plugins adicionales para que el sistema aumente su funcionalidad. Existen dos plugins instalados, uno para formularios y otro para URLs.
149
150
3. NDICE DE ILUSTRACIONES
+%<0"9#@+12!&'!0*%*@@+(2#9!+3+(:#!3*!3*0@#9/#!3*!/((/%*!@I9(:*!J+23(J0&8=! +%<0"9#@+12!8'!0*%*@@+(2#9!*2%#@*!3*!3*0@#9/# 55555555555555555555555555555555555555555555555555555&8D! +%<0"9#@+12!;'!#@*4"#9!@(23+@+(2*0!/((/%*!@I9(:* 5555555555555555555555555555555555555555555&8D! +%<0"9#@+12!6'!0*%*@@+(2#9!+3+(:#!3*!3*0@#9/#!:#@ 55555555555555555555555555555555555555555555&;-! +%<0"9#@+12!>'!0*%*@@+(2#9!*2%#@*!3*!3*0@#9/# 55555555555555555555555555555555555555555555555555555&;-! +%<0"9#@+12!A'!J(9K04#@*!*@%+40* 555555555555555555555555555555555555555555555555555555555555555555555555555555&;&! +%<0"9#@+12!7'!+20"#%#23(!#44!*2/+2* 55555555555555555555555555555555555555555555555555555555555555555555555&;8! +%<0"9#@+12!='!+20"#%#@+12!3*!:#,*2 5555555555555555555555555555555555555555555555555555555555555555555555555&;;! +%<0"9#@+12!D'!+:4(9"#9!49(L*@"(!:#,*2 5555555555555555555555555555555555555555555555555555555555555555&;6! +%<0"9#@+12!&-'!@(:4+%#9!@(2!:#,*2 5555555555555555555555555555555555555555555555555555555555555555555555555&;>! +%<0"9#@+12!&&'!4F/+2#!3*!"#$%& 55555555555555555555555555555555555555555555555555555555555555555555555555555555555&;7! +%<0"9#@+12!&8'!@9*3*2@+#%*0 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&;7! +%<0"9#@+12!&;'!$#99#!3*!:*2M!+HB<+*93# 5555555555555555555555555555555555555555555555555555555555555555&;D! +%<0"9#@+12!&6'!$#99#!3*!:*2M!3*9*@I# 5555555555555555555555555555555555555555555555555555555555555555555&;D! +%<0"9#@+12!&>'!@(2"*2+3( 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&;D! +%<0"9#@+12!&A'!F9$(%!3*!@(2"*2+3( 55555555555555555555555555555555555555555555555555555555555555555555555555&6-! +%<0"9#@+12!&7'!2<*,#!4F/+2#!@(2"*2+3( 55555555555555555555555555555555555555555555555555555555555555555&6-! +%<0"9#@+12!&='!4F/+2#!0+2!#49($#9 5555555555555555555555555555555555555555555555555555555555555555555555555555&6-! +%<0"9#@+12!&D'!*3+"#9!4F/+2# 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6&! !+%<0"9#@+12!8-'!*3+"#9!4F/+2#!?!@(2"*2+3( 555555555555555555555555555555555555555555555555555555555555&68! +%<0"9#@+12!8&'!@K*3+"(9 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6;! +%<0"9#@+12!88'!#@@+(2*0 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6;! +%<0"9#@+12!8;'!*%+:+2#9!4F/+2# 5555555555555555555555555555555555555555555555555555555555555555555555555555555555&66! +%<0"9#@+12!86'!:(3+C+@#9!4F/+2# 5555555555555555555555555555555555555555555555555555555555555555555555555555555&66! +%<0"9#@+12!8>'!$M0B<*3#!0+:4%* 555555555555555555555555555555555555555555555555555555555555555555555555555555555&66! +%<0"9#@+12!8A'!$M0B<*3#!#,#2H#3# 55555555555555555555555555555555555555555555555555555555555555555555555555&66! +%<0"9#@+12!87'!4%#2"+%%#0 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6>! +%<0"9#@+12!8='!4%#2"+%%#!0+:4%* 55555555555555555555555555555555555555555555555555555555555555555555555555555555&6>! +%<0"9#@+12!8D'!4%#2"+%%#!@(:4%*)# 555555555555555555555555555555555555555555555555555555555555555555555555555&6A! +%<0"9#@+12!;-'!9*@<90(0!#0(@+#3(0!#!4%#2"+%%#0 5555555555555555555555555555555555555555555555555&6A! +%<0"9#@+12!;&'!F9$(%!3*!9*@<90(0 55555555555555555555555555555555555555555555555555555555555555555555555555555&67! +%<0"9#@+12!;8'!F9$(%!3*!9*@<90(0 55555555555555555555555555555555555555555555555555555555555555555555555555555&67! +%<0"9#@+12!;;'!F9$(%!3*!9*@<90(0 55555555555555555555555555555555555555555555555555555555555555555555555555555&6=! +%<0"9#@+12!;6'!/*0"+12!3*!<0<#9+(0 55555555555555555555555555555555555555555555555555555555555555555555555555&6=! +%<0"9#@+12!;>'!4%</+20555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6D! +%<0"9#@+12!;A'!+3+(:#0555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555&6D! +%<0"9#@+12!;7'!4*9C+%!3*!<0<#9+( 5555555555555555555555555555555555555555555555555555555555555555555555555555555&>-!
151