Download primefaces crud generador para netbeans
Document related concepts
no text concepts found
Transcript
UNIVERSIDAD CENTRAL DEL ECUADOR PORTADA FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA EN INFORMÁTICA “PRIMEFACES CRUD GENERADOR PARA NETBEANS” TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO AUTOR: PATRICIO GUSTAVO EGAS CLAVIJO TUTOR: ING RENE ALFONSO CARRILLO FLORES QUITO – ECUADOR 2015 DEDICATORIA Esta tesis la dedico a mi madre, a mi padre y a mi hermana, ya que gracias a los valores y formación inculcados de parte de mi madre y todo el amor que me brindo siempre me apoyo en todo y el ejemplo de mi padre me han servido mucho, para ser la persona que soy hoy, sin desmerecer a mi hermana que me apoyo durante toda mi carrera universitaria. A mis tíos abuelos por apoyarme toda la vida y a una persona que se ha convertido en mi consejera y me orienta en la vida a la señora muy especial que es como mi segunda madre. Además debo agradecer a todos aquellos excelentes Docentes que con sus conocimientos, contribuyeron no sólo en darme el conocimiento y formación académica respetable sino también enriquecieron mi formación personal. ii AGRADECIMIENTO A Dios por sus múltiples bendiciones y permitirme cumplir mis objetivos y darme la vida para seguir estudiando. A mis Padres Patricio Egas que me enseñó a siempre decir la verdad y Blanquita Clavijo por formarme para llegar a ser la persona que soy ahora ya que sin sus enseñanzas no lo hubiera logrado agregando que siempre ha confiado en mí y me ha brindado todo su amor. A mi hermana Elizabeth Egas, por apoyarme en toda la carrera universitaria y recibir sus consejos. A mis tíos abuelos por siempre apoyar a toda mi familia, gracias por estar presente siempre. A la Señora Mayra Castro por darme buenos consejos y ser mi orientación y la considero como mi segunda Madre. A todos mis profesores de la Universidad Central del Ecuador en especial: A mi Director de Tesis Ing. Rene Carrillo quien con su esfuerzo y dedicación, supo guiarme en el desarrollo de este proyecto de tesis. A los profesores: Mat. Jorge Arroba e Ing. Jorge Morales porque gracias a sus conocimientos y experiencia han aportado en mi formación académica y me han apoyado en el aspecto universitario y laboral. A todas las personas que forman parte de mi vida que de una u otra forma me han brindado su valiosa amistad. iii iv v vi vii CONTENIDO PORTADA................................................................................................................................ i DEDICATORIA ....................................................................................................................... ii AGRADECIMIENTO .............................................................................................................. iii CONTENIDO ....................................................................................................................... viii LISTA DE TABLAS ................................................................................................................ xi LISTA DE ILUSTRACIONES ................................................................................................ xi RESUMEN ............................................................................................................................xiv ABSTRACT ............................................................................................................................xv CAPÍTULO I ............................................................................................................................ 1 1. PRESENTACIÓN DEL PROBLEMA............................................................................... 1 1.1. Introducción ................................................................................................................. 1 1.2. Planteamiento del Problema ....................................................................................... 1 1.3. Formulación del Problema........................................................................................... 1 1.4. Interrogantes ................................................................................................................ 2 1.5. Objetivos de la Investigación....................................................................................... 2 1.5.1. Objetivo General ...................................................................................................... 2 1.5.2. Objetivos Específicos............................................................................................... 2 1.6. Justificación ................................................................................................................. 2 1.7. Alcance ........................................................................................................................ 3 1.8. Delimitación del Proyecto ............................................................................................ 3 CAPÍTULO II ........................................................................................................................... 4 2. FUNDAMENTACIÓN TEÓRICA ..................................................................................... 4 2.1. Lenguaje de programación Java ................................................................................. 4 2.2 PrimeFaces....................................................................................................................... 5 2.3 HTML ................................................................................................................................ 6 2.4 MYSQL ............................................................................................................................. 7 2.5 Marco de Trabajo (FRAMEWORK)............................................................................10 2.5.1 ¿Qué es un framework Web? ......................................................................................10 2.5.2 Patrón MVC ..................................................................................................................11 2.5.3 Tipos de framework Web........................................................................................14 2.5.4 Características..............................................................................................................14 viii a. ODBC..............................................................................................................................14 Metodología de Desarrollo Software ......................................................................15 2.5.5 CAPÍTULO III .........................................................................................................................16 ANÁLISIS DEL SISTEMA ..............................................................................................16 3 Especificación de Requerimientos .............................................................................16 3.1. 3.1.1. Contextualización....................................................................................................16 Requerimientos Funcionales ......................................................................................16 3.2. 3.2.1. Características principales del sistema. .................................................................16 3.2.2. Descripción de los Actores .....................................................................................17 3.2.2.1. Procesos de actores y roles ................................................................................18 3.2.2.1.1. Actividades del Administrador (Crud Generator for Netbeans) ..................18 3.2.2.1.2. Actividades del usuario del sistema ............................................................19 Requerimientos Específicos ...................................................................................19 3.2.3. Casos de Uso .............................................................................................................20 3.3. 3.3.1. Diagrama general de casos de uso........................................................................20 3.3.2. Descripción de los Casos de Uso...........................................................................21 Requerimientos no funcionales ..................................................................................26 3.4. CAPÍTULO IV.........................................................................................................................27 4. DISEÑO DEL SISTEMA .................................................................................................27 Arquitectura del Sistema ............................................................................................27 4.1. 4.1.1. Diseño de la Arquitectura Lógica del Sistema (PrimeFaces Crud Generator for Netbeans) ..............................................................................................................................27 4.2. Descripción de las Entidades .....................................................................................30 4.3. Diseño de Interfaces...................................................................................................33 4.3.1. Interface Sitio Web..................................................................................................33 4.3.1.1. Instalación Herramienta ......................................................................................33 4.3.1.2. Ejercicio Práctico .................................................................................................44 4.3.1.3. Interfaz de Usuario ..............................................................................................60 4.3.1.4. Interfaz Portal Web..............................................................................................65 CAPÍTULO V..........................................................................................................................72 1. 5.1 CONCLUSIONES Y RECOMENDACIONES ................................................................72 Conclusiones ..............................................................................................................72 ix 5.2 Recomendaciones ......................................................................................................73 GLOSARIO DE TÉRMINOS..................................................................................................74 BIBLIOGRAFÍA ......................................................................................................................76 x LISTA DE TABLAS Tabla 1: Descripción de Entidad Activación curso. (Autoría Personal) ................................30 Tabla 2: Descripción de Entidad Actores. (Autoría Personal) ..............................................31 Tabla 3: Descripción de Entidad Conferencistas. (Autoría Personal) ..................................31 Tabla 4: Descripción de Entidad Perfil. (Autoría Personal) ..................................................31 Tabla 5: Descripción de Entidad Propuesta_curso. (Autoría Personal) ...............................32 Tabla 6: Descripción de Entidad General. (Autoría Personal) .............................................32 LISTA DE ILUSTRACIONES Ilustración 1: Modelo Vista Contralor (MVC). (Rayfield & Avraham, 2001) 11 Ilustración 2: Actividades Administrador en Netbeans. (Autoría Personal) 18 Ilustración 3: Actividades del usuario final. (Autoría Personal) 19 Ilustración 4: Diagrama de casos de uso PrimeFaces Crud Generator for Netbeans. (Autoría Personal) 21 Ilustración 5: Diagrama casos de uso Insertar datos. (Autoría Personal) 21 Ilustración 6: Diagrama de casos de uso Modificar datos. (Autoría Personal) 22 Ilustración 7: Diagrama de casos de uso Eliminar datos Sitio Web. (Autoría Personal) 22 Ilustración 8: Diagrama de casos de uso Actualizar datos Sitio Web. (Autoría Personal) 23 Ilustración 9: Diagrama de casos de uso Administración portal web. (Autoría Personal) 23 Ilustración 10: Diagrama de casos de uso Barra de Opciones. (Autoría Personal) 23 Ilustración 11: Diagrama de caso de usos Comprar producto. (Autoría Personal). 24 Ilustración 12: Diagrama de caso de usos Chat online. (Autoría Personal) 24 Ilustración 13: Diagrama de caso de usos comentar online. (Autoría Personal) 25 Ilustración 14: Diagrama de caso de usos Contactarse. (Autoría Personal) 25 Ilustración 15: Diagrama de caso de usos ver redes sociales. (Autoría Personal) 25 Ilustración 16: Capa Presentación (Autoría Personal) 27 Ilustración 17: Capa Negocios 28 Ilustración 18: Capa Datos 28 Ilustración 19: Modelo Entidad / Relación del Sistema. (Autoría Personal) 30 Ilustración 20: Descargar JDK. (Autoría Personal) 33 Ilustración 21: Descargar Plugin PrimeFaces Crud Generator For Netbeans. (Autoría Personal) 34 Ilustración 22: Plugin NBM descomprimido. (Autoría Personal) 34 Ilustración 23: Ventana Netbeans/tools/Plugins. (Autoría Personal) 35 Ilustración 24: Pestaña downloaded para instalar plugin. (Autoría Personal) 35 Ilustración 25: Selección plugin descomprimido. (Autoría Personal) 36 Ilustración 26: Notificación reconocimiento plugin. (Autoría Personal) 36 xi Ilustración 27: Instalando PrimeFaces Crud Generator. (Autoría Personal) 37 Ilustración 28: Aceptando términos y condiciones. (Autoría Personal) 37 Ilustración 29: Terminando la instalación. (Autoría Personal) 38 Ilustración 30: Verificando la existencia del plugin. (Autoría Personal) 38 Ilustración 31: Pantalla descarga Netbeans. (Autoría Personal) 39 Ilustración 32: Diagrama descarga Netbeans. (Autoría Personal) 40 Ilustración 33: Pantalla inicial Netbeans. (Autoría Personal) 40 Ilustración 34: Descarga de MySQL. (Autoría Personal) 41 Ilustración 35: Pantalla inicia MySQL. (Autoría Personal) 41 Ilustración 36: Pantalla descarga PrimeFaces 4.0. (Autoría Personal) 42 Ilustración 37: Pantalla instalación PrimeFaces 4.0. (Autoría Personal) 42 Ilustración 38: Pantalla instalación PrimeFaces 4.0. Agregando nueva librería (Autoría Personal) 43 Ilustración 39: Agregando nuevo nombre a la librería (Autoría Personal) 43 Ilustración 40: Agregando archivos para nueva librería PrimeFaces 4.0 (Autoría Personal) 44 Ilustración 41: Pantalla creación proyecto web (Autoría Personal) 45 Ilustración 42: Pantalla creación proyecto web aplicación (Autoría Personal) 45 Ilustración 43: Dando un nombre al proyecto web (Autoría Personal) 46 Ilustración 44: Configurando Servidor y versión de Java EE (Autoría Personal) 46 Ilustración 45: Configurando Servidor y versión de Java EE (Autoría Personal) 47 Ilustración 46: Configurando Java Server Faces (Autoría Personal) 47 Ilustración 47: Configurando Java Server Faces componentes (Autoría Personal) 48 Ilustración 48: Configurando Java Server Faces escogiendo librería (Autoría Personal) 48 Ilustración 49: Finalizando configuración (Autoría Personal) 49 Ilustración 50: Ubicando el cursor en el proyecto (Autoría Personal) 49 Ilustración 51: Ubicando el cursor para aplicar Crud (Autoría Personal) 50 Ilustración 52: Seleccionando opciones para mapeo de base de datos (Autoría Personal) 50 Ilustración 53: Cargando tablas de la base de datos (Autoría Personal) 51 Ilustración 54: Seleccionan tablas de la base de datos (Autoría Personal) 51 Ilustración 55: Configurando mapeo y dando nombre al paquete (Autoría Personal) 52 Ilustración 56: Configurando mapeo de base de datos (Autoría Personal) 53 Ilustración 57: Clases generadas por mapeo de base de datos (Autoría Personal) 54 Ilustración 58: Archivo persistence.xml (Autoría Personal) 54 Ilustración 59: Configurando PrimeFaces Crud (Autoría Personal) 55 Ilustración 60: Configurando PrimeFaces Crud mapeo de base de datos (Autoría Personal) 55 Ilustración 61: Configurando PrimeFaces Crud Generator (Autoría Personal) 57 Ilustración 62: Configurando PrimeFaces Crud Generator CSS3 (Autoría Personal) 57 Ilustración 63: Configurando PrimeFaces Crud Generator CSS3 agregando jar (Autoría Personal) 58 xii Ilustración 64: Configurando PrimeFaces Crud Generator CSS3 agregando jar a la librería (Autoría Personal) 58 Ilustración 65: Configurando PrimeFaces Crud Generator CSS3 agregando líneas de código (Autoría Personal) 59 Ilustración 66: Ventana con tema nuevo (Autoría Personal) 59 Ilustración 67: Pantalla Inicial (Autoría Personal) 60 Ilustración 68: Pantalla pestaña mantenimiento (Autoría Personal) 61 Ilustración 69: Pantalla ejemplo en base de datos perfil (Autoría Personal) 61 Ilustración 70: Insertando un nuevo registro (Autoría Personal) 62 Ilustración 71: Registro insertado (Autoría Personal) 62 Ilustración 72: Ver registro insertado (Autoría Personal) 63 Ilustración 73: Editando registro (Autoría Personal) 63 Ilustración 74: Registro Editado (Autoría Personal) 64 Ilustración 75: Borrando registro (Autoría Personal) 64 Ilustración 76: Filtrando registros (Autoría Personal) 64 Ilustración 77: Pagina Inicial portal web (Autoría Personal) 65 Ilustración 78: Pagina quienes somos (Autoría Personal) 65 Ilustración 79: Pagina tienda (Autoría Personal) 66 Ilustración 80: Pagina frameworks (Autoría Personal) 66 Ilustración 81: Pagina documentación (Autoría Personal) 67 Ilustración 82: Pagina faq y chat (Autoría Personal) 67 Ilustración 83: Pagina contactos (Autoría Personal) 68 Ilustración 84: Pagina post y comentarios (Autoría Personal) 68 Ilustración 85: Pagina noticias (Autoría Personal) 69 Ilustración 86: Página miembro del equipo (Autoría Personal) 69 Ilustración 87: Paginas en línea (Autoría Personal) 70 Ilustración 88: Configuración herramienta SEO (Autoría Personal) 70 Ilustración 89: Canal de YouTube 71 xiii RESUMEN “PRIMEFACES CRUD GENERADOR PARA NETBEANS” El presente proyecto define, diseña y desarrolla un análisis de la herramienta “PrimeFaces” Crud Generador para Netbeans, soportado fundamentalmente por el lenguaje de programación Java y PrimeFaces. Realiza un proyecto de programación web en cuestión de minutos ahorra mucho tiempo, además mapea a las entidades de la base de datos por lo cual se puede hacer operaciones como insertar, eliminar, consultar, actualizar, utiliza el patrón de diseño Abstract Facade. Para realizar mantenimiento en nuestra página web es excelente, también se puede modificar el código para adaptarlo a nuestro gusto. DESCRIPTORES: PRIMEFACES CRUD GENERADOR FOR NETBEANS /JAVA/JAVA SERVER FACES/PRIMEFACES/GENERADOR DE CODIGO WEB/CSS3/BASE DE DATOS xiv ABSTRACT “PRIMEFACES CRUD GENERATOR FOR NETBEANS” This project defines, designs and develops a "PrimeFaces" Crud Generator tool for Netbeans analysis, mainly supported by Java language and PrimeFaces programming. Make a web programming project in few minutes saves time, also maps entities from the database so it is able to perform operations such as: insert, delete, query, and update applying the Abstract Façade design pattern. In order to perform a maintenance about our website is excellent, it can also modify the code to adapt it into different preferences. DESCRIPTORS: PRIMEFACES CRUD GENERATOR FOR NETBEANS / JAVA / JAVA SERVER FACES / PRIMEFACES / WEB CODE GENERATOR / CSS3 / DATABASE xv xvi xvii xviii CAPÍTULO I 1. PRESENTACIÓN DEL PROBLEMA 1.1. Introducción En la actualidad existe suficiente información en internet de cómo programar páginas web en lenguaje Java, razón por la cual se usa ese conocimiento para realizar entornos de páginas web con JSF (JAVA SERVER FACES), de una manera manual (insertar código línea a línea). La información es muy amplia respecto a las distintas versiones de Java EE y JSF y no saber por cual versión comenzar a aprender, no obstante nace la idea de crear páginas web con entorno Java de una manera automática y que facilite al usuario su fácil uso y mantenimiento. Esta herramienta es un generador Crud de PrimeFaces que realiza un proyecto web, en cuestión de minutos ahorra mucho tiempo, además mapea a las entidades de la base de datos por lo cual se puede hacer operaciones como insertar, eliminar, consultar, actualizar. El presente proyecto de Tesis que se pretende desarrollar, un análisis de la herramienta “PrimeFaces Crud Generator for Netbeans” para realizar proyectos web. 1.2. Planteamiento del Problema La escasez de herramientas de generación de código Java de una manera automática en entornos web y optimizar el tiempo al momento de generar un proyecto es vital en el día a día, para crear sistemas informáticos de manera eficiente. 1.3. Formulación del Problema ¿Se puede generar código JSF de una manera automática y con un entorno amigable con el usuario respecto al mantenimiento de un sistema? 1 1.4. Interrogantes Las cuestiones que se han bosquejado al realizar el trabajo de investigación son: ¿Cómo se podrá realizar la generación de código automática en Java en un entorno web? ¿Cómo poder implementar un canal de YouTube para el beneficio de las personas interesadas? 1.5. Objetivos de la Investigación 1.5.1. Objetivo General Realizar un análisis de la generación de código Java en un entorno web y con base de datos, apoyándose de la herramienta “PrimeFaces Crud Generator for Netbeans.” 1.5.2. Objetivos Específicos Implementación de código JSF en Java de una manera automática con base de datos(MYSQL) Generación de código automático mediante la herramienta de PrimeFaces Crud Generator for Netbeans Implementar un canal de YouTube explicando cómo se instala y funciona la herramienta y compartir ese conocimiento con el resto del mundo. 1.6. Justificación En la actualidad no se cuenta con un generador de código Java de páginas web y con hojas de estilo de calidad, Es oportuno realizar este estudio para optimizar tiempo al momento de realizar un proyecto extenso. 2 1.7. Alcance A continuación se detalla los módulos previstos para el presente proyecto: MODULO HERRAMIENTA 1. PROGRAMACIÓN Utilización de la herramienta PrimeFaces Crud Generator for Netbeans para la generación de código Java Utilización de motor de bases de datos MYSQL. PrimeFaces 4.0 Servidor de aplicaciones GlassFish 4.0 Netbeans 7.4 MÓDULO DE ANÁLISIS 1. HERRAMIENTA DE GENERACION DE CODIGO AUTOMATICO Se dispone de esta herramienta de PrimeFaces para la generación de código JSF en Java. La generación de código Java en un entorno web será específicamente para una base de datos. El código generado será analizado y corresponderá a una entidad en cuestión. 1.8. Delimitación del Proyecto El sitio web es visible únicamente en una máquina local. La base de datos es un ejemplo base en MySQL que será cargada previamente en Netbeans En el canal de YouTube se contestara todas las inquietudes de los usuarios Se utiliza GlassFish 4.0 como servidor de aplicaciones Se utiliza PrimeFaces 4.0 para la generación de las interfaces JSF Se utiliza el motor de base de datos MySQL 3 CAPÍTULO II 2. FUNDAMENTACIÓN TEÓRICA 2.1. Lenguaje de programación Java Definición Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones cliente-servidor de web, con unos 10 millones de usuarios reportados. (GOSLING, 2005) El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente. (GOSLING, 2005) La compañía Sun desarrolló la implementación de referencia original para los compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU. Otros también han desarrollado implementaciones alternas a estas tecnologías de Sun, tales como el Compilador de Java de GNU y el GNU Classpath. 4 El lenguaje Java se creó con el principal objetivo: Debería usar el paradigma de la programación orientada a objetos. Orientado a Objetos La primera característica, orientado a objetos, se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para Orientado a Objetos, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos. (GOSLING, 2005) 2.2 PrimeFaces Definición PrimeFaces es una librería de componentes para JavaServer Faces (JSF) de código abierto que cuenta con un conjunto de componentes enriquecidos que facilitan la creación de las aplicaciones web. PrimeFaces está bajo la licencia de Apache License V2. Una de las ventajas de utilizar PrimeFaces, es que permite la integración con otros componentes como por ejemplo RichFaces. (http://es.wikipedia.org/wiki/PrimeFaces, 2015) Propiedades Conjunto de componentes en (Editor de HTML, autocompletar, cartas, gráficas o paneles, entre otros). Soporte de Ajax con despliegue parcial, lo que permite controlar qué componentes de la página actual se actualizarán y cuáles no. Tiene 25 temas prediseñados: Componente para desarrollar aplicaciones web para teléfonos móviles, especiales para IPhone, Palm, Android y teléfonos móviles Nokia. 5 2.3 HTML Definición HTML, siglas de HyperText Markup Language («lenguaje de marcas de hipertexto»), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia para la ela-boración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, entre otros. Es un estándar a cargo de la W3C, organización dedicada a la estandarización de casi todas las tecnologías ligadas a la web, sobre todo en lo referente a su escritura e interpretación. (LUJÁN MORA, 2002) El lenguaje HTML basa su filosofía de desarrollo en la referenciación. Para añadir un elemento externo a la página (imagen, vídeo, script, entre otros.), este no se incrusta directamente en el código de la página, sino que se hace una referencia a la ubicación de dicho elemento mediante texto. De este modo, la página web contiene sólo texto mientras que recae en el navegador web (interpretador del código) la tarea de unir todos los elementos y visualizar la página final. Al ser un estándar, HTML busca ser un lenguaje que permita que cualquier página web escrita en una determinada versión, pueda ser interpretada de la misma forma (estándar) por cualquier navegador web actualizado. (LUJÁN MORA, 2002) Sin embargo, a lo largo de sus diferentes versiones, se han incorporado y suprimido diversas características, con el fin de hacerlo más eficiente y facilitar el desarrollo de páginas web compatibles con distintos navegadores y plataformas (PC de escritorio, portátiles, teléfonos inteligentes, tabletas, etc.). Sin embargo, para interpretar correctamente una nueva versión de HTML, los desarrolladores de navegadores web deben incorporar estos cambios y el usuario debe ser capaz de usar la nueva versión del navegador con los cambios incorporados. Normalmente los cambios son aplicados mediante parches de actualización automática (Firefox, Chrome) u ofreciendo una nueva versión del navegador con todos los cambios incorporados, en un sitio web de descarga oficial (Internet Explorer). Un navegador no actualizado no será capaz de interpretar correctamente una página web escrita en una versión de HTML superior a la que pueda interpretar, lo que obliga muchas veces a los desarrolladores a aplicar técnicas y cambios que permitan corregir problemas de visualización e incluso de interpretación de código HTML. Así mismo, las páginas escritas en una versión anterior de HTML deberían ser actualizadas o 6 reescritas, lo que no siempre se cumple. Es por ello que ciertos navegadores aún mantienen la capacidad de interpretar páginas web de versiones HTML anteriores. Por estas razones, aún existen diferencias entre distintos navegadores y versiones al interpretar una misma página web. 2.4 MYSQL Definición MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual. (CLABURN, 2007) Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius. MySQL es usado por muchos sitios web grandes y populares, como Wikipedia, Google. (CLABURN, 2007) Aplicaciones MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación. 7 Características Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad. (CLABURN, 2007) Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar: Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. Disponibilidad en gran cantidad de plataformas y sistemas. Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferentes velocidades de operación, soporte físico, capacidad, distribución geográfica, transacciones... Transacciones y claves foráneas. Conectividad segura. Replicación. Búsqueda e indexación de campos de texto. MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones. MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar 8 el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir qué puede hacer y qué no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada. (CLABURN, 2007) Características distintivas Las siguientes características son implementadas únicamente por MySQL: Permite escoger entre múltiples motores de almacenamiento para cada tabla. En MySQL 5.0 éstos debían añadirse en tiempo de compilación, a partir de MySQL 5.1 se pueden añadir dinámicamente en tiempo de ejecución: Los hay nativos como: MyISAM, Falcon, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example Desarrollados por partners como solidDB, NitroEDB, ScaleDB, TokuDB, Infobright (antes Brighthouse), Kickfire, XtraDB, IBM DB2. InnoDB Estuvo desarrollado así pero ahora pertenece también a Oracle. Desarrollados por la comunidad como memcache, httpd, PBXT y Revisión. Agrupación de transacciones, reuniendo múltiples transacciones de varias conexiones para incrementar el número de transacciones por segundo. Desarrollo del proyecto El desarrollo de MySQL se fundamenta en el trabajo de los desarrolladores contratados por la empresa MySQL AB quienes se encargan de dar soporte a los socios comerciales y usuarios de la comunidad MySQL y dar solución a los problemas encontrados por los usuarios. Los usuarios o miembros de la comunidad MySQL pueden reportar bugs revisando el manual en línea que contiene las soluciones a problemas encontrados; el historial de cambios, la base de datos bugs que contiene bugs reportados y solucionados y en las listas de correo MySQL. A través de las listas de correo los usuarios pueden enviar preguntas y éstas serán contestadas por desarrolladores brindándoles mejor soporte. 9 Licencia La licencia GNU GPL de MySQL obliga a que la distribución de cualquier producto derivado (aplicación) se haga bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite hacer justamente eso. 2.5 Marco de Trabajo (FRAMEWORK) Un marco o marco de software, es una plataforma (TECHTERMS, 2015), para el desarrollo de software de aplicaciones. Proporciona una base sobre la que los desarrolladores de software pueden crear programas para una determinada plataforma. Por ejemplo, un marco puede incluir predefinidos clases y funciones que pueden ser utilizados para procesar la entrada, gestionar los dispositivos de hardware, e interactuar con el software del sistema. Esto simplifica el proceso de desarrollo ya que los programadores no tienen que reinventar la rueda cada vez que desarrollan una nueva aplicación. Un marco es similar a una interfaz de programación de aplicaciones (API), aunque técnicamente es un marco de trabajo incluye una API. Como su nombre indica, un marco sirve como base para la programación, mientras que una API proporciona acceso a los elementos admitidos por el marco. Un marco también puede incluir bibliotecas de código, un compilador, y otros programas utilizados en el proceso de desarrollo de software. 2.5.1 ¿Qué es un framework Web? El concepto framework (INFORMATICA, 2015), se emplea un muchos ámbitos del desarrollo de sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsenos. En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta. 10 Los objetivos principales que persigue un framework son: acelerar el proceso de desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de patrones. Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por ejemplo clases en java y descriptores y archivos de configuración en XML) que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web. 2.5.2 Patrón MVC El modelo–vista–controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento. (RAYFIELD, AVRAHAM, & Avraham, 2001) Ilustración 1: Modelo Vista Contralor (MVC). (Rayfield & Avraham, 2001) 11 Descripción del patrón De manera genérica, los componentes de MVC se podrían definir como sigue: El Modelo: Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la 'vista' aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al 'modelo' a través del 'controlador'. El Controlador: Responde a eventos (usualmente acciones del usuario) e invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la información (por ejemplo, editar un documento o un registro en una base de datos). También puede enviar comandos a su 'vista' asociada si se solicita un cambio en la forma en que se presenta de 'modelo' (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el 'controlador' hace de intermediario entre la 'vista' y el 'modelo' (véase Middleware). La Vista: Presenta el 'modelo' (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario) por tanto requiere de dicho 'modelo' la información que debe representar como salida. (RAYFIELD, AVRAHAM, & Avraham, 2001) Interacción de los componentes Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de control que se sigue generalmente es el siguiente: El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace, etc.) El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario 12 (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. Este uso del patrón Observador no es posible en las aplicaciones Web puesto que las clases de la vista están desconectadas del modelo y del controlador. En general el controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista. Por ejemplo en el MVC usado por Apple en su framework Cocoa. Suele citarse como Modelo-Interface-Control, una variación del MVC más puro La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente. MVC y bases de datos Muchos sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos que debe utilizar la aplicación; en líneas generales del MVC dicha gestión corresponde al modelo. La unión entre capa de presentación y capa de negocio conocido en el paradigma de la Programación por capas representaría la integración entre la Vista y su correspondiente Controlador de eventos y acceso a datos, MVC no pretende discriminar entre capa de negocio y capa de presentación pero si pretende separar la capa visual gráfica de su correspondiente programación y acceso a datos, algo que mejora el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos cumplen ciclos de vida muy distintos entre sí. (RAYFIELD, AVRAHAM, & Avraham, 2001) 13 2.5.3 Tipos de framework Web Existen varios tipos de frameworks Web: orientados a la interfaz de usuario, como Java Server Faces, orientados a aplicaciones de publicación de documentos, como orientados e a la parte de control de eventos, como Struts y algunos que incluyen varios elementos como Tapestry. (INFORMATICA, 2015). La mayoría de frameworks Web se encargan de ofrecer una capa de controladores de acuerdo con el patrón MVC o con el modelo 2 de Servlets y JSP, ofreciendo mecanismos para facilitar la integración con otras herramientas para la implementación de las capas de negocio y presentación. 2.5.4 Características. a. ODBC Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre la aplicación y el DBMS. El propósito de esta capa es traducir las consultas de datos de la aplicación en comandos que el DBMS entienda. Para que esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC, esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos. Desde la versión 2.0 el estándar soporta SAG y SQL. (MICROSOFT, 2015) El software funciona de dos modos, con un software manejador en el cliente, o una filosofía cliente-servidor. En el primer modo, el driver interpreta las conexiones y llamadas SQL y las traduce desde el API ODBC hacia el DBMS. En el segundo modo para conectarse a la base de datos se crea una DSN dentro del ODBC que define los parámetros, ruta y características de la conexión según los datos que solicite el creador o fabricante. 14 Java Database Connectivity (JDBC) es un derivado inspirado en el mismo, una interfaz de programación de aplicaciones que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede utilizando el dialecto SQL del modelo de base de datos que se utilice. 2.5.5 Metodología de Desarrollo Software Para el desarrollo del sistema se va a considerar la metodología de desarrollo de software, RUP (Rational Unified Process) para el análisis, construcción y documentación del sistema ya que es un modelo que cubre todo el ciclo de vida del producto, soporta un enfoque de desarrollo iterativo e incremental, proporciona iteraciones tempranas que se enfocan en validar y producir una arquitectura de software, y un ciclo de desarrollo inicial que toma la forma de un prototipo ejecutable que gradualmente evoluciona convirtiéndose en el sistema final y además tiene implícito en su proceso de desarrollo la evaluación continua de la calidad con respecto a los requerimientos de calidad deseados (KRUCHTEN, 1996). El proceso de ciclo de vida de RUP se divide en cuatro fases llamadas (KRUCHTEN, 1996): Inicio: El objetivo en esta etapa es determinar la visión del proyecto. Mayor énfasis en modelado del proyecto: objetivos, alcance, limitaciones, y requerimientos. Elaboración: En esta fase el objetivo es determinar la arquitectura óptima. Se define infraestructura y ambiente de desarrollo. Construcción: En esta etapa se lleva a cabo la construcción del producto por medio de una serie de iteraciones obteniendo la capacidad operacional inicial. Transición: Se pretende obtener el producto preparado para la entrega. Pruebas beta y piloto. Esas fases se dividen en iteraciones, cada una de las cuales produce una pieza de software demostrable. 15 CAPÍTULO III 3 ANÁLISIS DEL SISTEMA 3.1. Especificación de Requerimientos Este proyecto nace por la necesidad de realizar un proyecto web de una manera muy sencilla con conexión a base de datos, que sea de fácil manejo para el administrador y para el usuario final. El objetivo principal es realizar un proyecto web con conexión a base de datos de una manera rápida y eficiente, además se mostrara los casos de uso para especificar las características de cada proceso de análisis, brindando así una descripción detallada de los requerimientos tanto funcionales como no funcionales del proyecto. 3.1.1. Contextualización El Análisis busca de mostrar una manera rápida y eficiente la generación e código automático en lenguaje java y utilizando además PrimeFaces, el Plugin de PrimeFaces “Crud Generator for Netbeans” y como motor de base de datos MySql. La fuente de código generado será un ejemplo práctico utilizando una base de datos de MySql llamada “Cursos”, y se generaran varios paquetes y clases que se explicaran como actúan en dicho código. El objetivo del trabajo es analizar la herramienta de Kay Wrobel que desarrollo un puglin con PrimeFaces que genera el crud. 3.2. Requerimientos Funcionales 3.2.1. Características principales del sistema. 1) El análisis referencia un sitio web para la venta del producto donde se visualizara una ventana principal, donde se presentaran las diferentes opciones. a) Inicio.- Muestra la ventana de inicio, una breve descripción de la herramienta PrimeFaces Crud Generator for Netbeans b) Quienes somos.- Muestra la visión y misión de la persona que suministra el producto, además de una audio que menciona todo el texto citado. 16 c) Tienda.- Consta de dos partes una framework que es donde da una breve descripción de nuestra herramienta y en la parte de documentación se encontrara una vez comprado el producto la documentación para poder manejar la herramienta así de videos explicativos e instaladores. d) Faq y chat.- Se mostrara las inquietudes las frecuentes con sus respectivas respuestas, y en la parte de chat será un chat online para preguntas y respuestas en tiempo real e) Contactos.- Donde se encuentra ubicado la persona que brinda el soporte técnico así de códigos qr para su fácil acceso a redes sociales, YouTube, wordpress. f) Post y comentarios.- Un pequeño post de la herramienta y se podrá receptar el comentario de los usuarios g) Noticias.- Se mostraran las noticias más recientes de la herramienta h) Miembro del equipo.- La persona que suministra el soporte técnico y quien desarrollo el portal web y el manejo de la herramienta de Crud Generator For Netbeans (Investigación de la herramienta) i) Paginas en línea.- Se podrá visualizar un bloc y una revista online de la herramienta j) Herramientas utilizadas.- Una herramienta de cómo posicionar un sitio web en los primeros lugares del google, herramienta SEO, propia del portal. 2) Se realizara un ejemplo práctico con una base de datos de ejemplo llamada curso del uso de la herramienta PrimeFaces Crud Generator for Netbeans, se presenta las diferentes opciones: a) Home.-Es nuestra página de Inicio b) Maintenance.-Donde mostrara las diferentes pantallas de nuestro sistema y se podrá hacer las operaciones como, ver, insertar, modificar, eliminar los registros, y constara con un filtro de los datos. 3.2.2. Descripción de los Actores El Análisis de Crud Generator for Netbeans empleará los siguientes grupos de usuarios: Administrador: Usuario encargado del mantenimiento del sitio web CRUD GENERATOR FOR NETBEANS. El administrador del modelo podrá: Insertar nuevos datos. Ver los datos 17 Modificar datos. Eliminar los datos Filtrar los datos Usuarios Final: Un usuario común utilizara el portal web en la nube: http://frameworkuce.wix.com/ucentral Los usuarios podrán: 3.2.2.1. Visualizar el portal web Comprar el producto Chatear en línea Dejar comentarios Comunicarse con un representante Ver bloc, revista relacionada a la herramienta. Ver noticias Ver herramienta especial utilizada SEO Procesos de actores y roles 3.2.2.1.1. Actividades del Administrador (Crud Generator for Netbeans) Al administrador configura y el sitio web para uso del usuario en Netbeans. Ilustración 2: Actividades Administrador en Netbeans. (Autoría Personal) 18 3.2.2.1.2. Actividades del usuario del sistema El usuario del sistema puede navegar por el sitio, con la opción de visualizar el portal web, comprar la herramienta, chatear, comentar, ver preguntas frecuentes, ver bloc y revista en línea. Ilustración 3: Actividades del usuario final. (Autoría Personal) 3.2.3. Requerimientos Específicos Usuario del Final: El usuario podrá acceder al portal web que se encuentra en la nube El usuario puede comprar el producto en línea 19 El usuario no necesitará conocimientos de programación, base de datos o diseño gráfico para poder navegar por la aplicación. Aplicación: La aplicación se ejecutara en un entorno web respecto “Crud Generator For Netbeans”. 3.3. Casos de Uso 3.3.1. Diagrama general de casos de uso 20 Ilustración 4: Diagrama de casos de uso PrimeFaces Crud Generator for Netbeans. (Autoría Personal) 3.3.2. Descripción de los Casos de Uso CU1. Insertar Datos Actor: Administrador Descripción: El Administrador podrá interactuar con todos los datos de la aplicación. Ilustración 5: Diagrama casos de uso Insertar datos. (Autoría Personal) CU2. Modificar Datos Actor: Administrador Descripción: El Administrador podrá modificar los datos de la aplicación. 21 Ilustración 6: Diagrama de casos de uso Modificar datos. (Autoría Personal) CU3. Eliminar datos Actor: Administrador Descripción: El Administrador podrá gestionar eliminar los datos del sitio web. Ilustración 7: Diagrama de casos de uso Eliminar datos Sitio Web. (Autoría Personal) CU4. Actualizar datos Actor: Administrador Descripción: El Administrador podrá actualizar del sitio web. 22 Ilustración 8: Diagrama de casos de uso Actualizar datos Sitio Web. (Autoría Personal) CU5. Gestionar Portal Web (nube) Actor: Administrador Descripción: El Administrador podrá administrar el portal web. Ilustración 9: Diagrama de casos de uso Administración portal web. (Autoría Personal) CU6. Barra de opciones Actor: Usuario Final Descripción: El Usuario final podrá tener acceso a los contenidos dentro del sitio web. Ilustración 10: Diagrama de casos de uso Barra de Opciones. (Autoría Personal) 23 CU7. Comprar producto Actor: Usuario Final Descripción: El Usuario final podrá tener acceso a los contenidos dentro del sitio web para realizar la compra del producto. Ilustración 11: Diagrama de caso de usos Comprar producto. (Autoría Personal). CU8. Chatear Actor: Usuario Final Descripción: El Usuario final puede chatear online. Ilustración 12: Diagrama de caso de usos Chat online. (Autoría Personal) CU9. Comentar Actor: Usuario Final Descripción: El Usuario final puede comentar en el portal web. 24 Ilustración 13: Diagrama de caso de usos comentar online. (Autoría Personal) CU10. Contactarse Actor: Usuario Final Descripción: El Usuario final puede mandar un mail para contactar a soporte técnico. Ilustración 14: Diagrama de caso de usos Contactarse. (Autoría Personal) CU11. Ver Redes Sociales Actor: Usuario Final Descripción: El Usuario final puede ver Facebook, Twitter, YouTube, etc. Ilustración 15: Diagrama de caso de usos ver redes sociales. (Autoría Personal) 25 3.4. Requerimientos no funcionales Describen de manera general los atributos del sistema, así tenemos: RNF1. Usabilidad El portal web debe ser amigable con el usuario, el mismo podrá comprar la herramienta “Crud Generator for Netbeans” de una manera muy intuitiva, podrá utilizar todas las funciones de una manera muy entendible Respecto a la aplicación en Java “Crud Generator for Netbeans” el usuario podrá dar su fácil mantenimiento una vez generado el código en Netbeans RNF2. Disponibilidad El sistema estará en capacidad de dar respuesta al acceso de todos los usuarios y sus procesos (Portal web), de igual manera respecto a la aplicación “Crud Generator for Netbeans”. RNF3. Escalabilidad – Capacidad El sistema “Crud Generator for Netbeans” deberá garantizar el crecimiento del volumen de la información almacenada que se manejará en la base de datos. RNF4. Portabilidad La aplicación “Crud Generator for Netbeans”, al estar desarrollada en lenguaje java, podrá ser portada de una plataforma. 26 CAPÍTULO IV 4. DISEÑO DEL SISTEMA Como beneficio del análisis meticuloso de los requisitos del sistema se describe a continuación el diseño del “Crud Generator for Netbeans”, explicando el modelo de la base de datos y diagramas que nos permitan identificar como se ha construido el sistema además de la creación de su portal web. 4.1. Arquitectura del Sistema La IEEE Std 1471-2000 (IEEE, 2015), da una definición respecto a la Arquitectura de Software manifiesta: “La Arquitectura de Software es la organización fundamental de un sistema incorporado en sus componentes, las relaciones entre ellos, el ambiente y los principios que orientan su diseño y evolución”. 4.1.1. Diseño de la Arquitectura Lógica del Sistema (PrimeFaces Crud Generator for Netbeans) En esta sección se presenta la estructura lógica de la arquitectura del sistema. Uno de los patrones arquitectónicos más utilizados para el desarrollo de aplicaciones orientadas a objetos en la actualidad es el denominado “arquitectura multi-capa”. Por definición las aplicaciones JEE utilizan una arquitectura multicapa, permitiendo separar lógicamente y en algunos casos físicamente, los aspectos de presentación de la aplicación (interfaz de usuario), la lógica del negocios (funcionalidad del sistema) y la gestión de los datos (bases de datos o archivos planos). La Capa de Presentación La que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida 27 Ilustración 16: Capa Presentación (Autoría Ilustración 16: Capa Presentación Personal) (Autoría Personal) como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio. La Capa de Lógica de Negocios Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación. Ilustración 17: Capa Negocios La Capa de Datos Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. A continuación se detallará la arquitectura de PrimeFaces Crud Generator for Netbeans en cada una de las capas, así tenemos: 28 Ilustración 18: Capa Datos 1. CAPA DE PRESENTACIÓN o CAPA DEL CLIENTE El cliente administrador o usuario para acceder a esta aplicación debe utilizar un navegador, se recomienda utilizar navegadores actualizados como por ejemplo: Firefox, Google Chrome. Para ingresar al portal web o a la ejecución de la herramienta de PrimeFaces Crud Generator for Netbeans o CAPA WEB El usuario al integrarse al sistema se le presenta un menú de control y las opciones a las que tiene acceso. Sea en el portal web y en la herramienta de PrimeFaces Crud Generator for Netbeans. Toda la capa de presentación ha sido desarrollada con la implementación PrimeFaces 4.0 además del Plugin de PrimeFaces Crud Generator for Netbeans que pertenece al estándar Java Server Faces. Toda la lógica del control de pantallas, ingreso de datos para reportes es realizado a nivel de esta capa. 2. CAPA DE LÓGICA DE NEGOCIO La lógica de negocio se encuentra dentro de esta capa. Técnicamente en el contenedor EJB 3 se encuentran los session beans que contienen dicha lógica de negocio. 3. CAPA DE DATOS Se utilizará ODBC para conectar con Java Netbeans. 4. BASE DATOS En función a los requerimientos especificados en el capítulo anterior, se usó como gestor de base de datos, MySql. o MODELO Entidad / Relación En este modelo encontraremos un conjunto de objetos básicos llamados (tablas, entidades), que son los elementos principales que se identifican en el problema a resolver. Cada entidad posee sus propios elementos o características denominadas atributos. 29 Por otro lado también están las relaciones que se representan mediante enlaces de unión entre las tablas (entidades). Ilustración 19: Modelo Entidad / Relación del Sistema. (Autoría Personal) 4.2. Descripción de las Entidades 1.- Activacioncurso: Almacena los datos, del temario, conferencista, fecha y hora que se dictara el curso. ATRIBUTOS Nombre Tipo codActivacionCurso int Temario varchar Conferencista varchar FechaInicio FechaFin HoraInicio HoraFin varchar varchar varchar varchar Descripción Código único Tema del Curso Nombre Conferencista Fecha de Inicio Fecha Fin Hora de Inicio Hora Final Tabla 1: Descripción de Entidad Activación curso. (Autoría Personal) 30 2.- Actores: Lista de personas que intervienen en la conferencia ATRIBUTOS Nombre Codactores Nombre Tipo int varchar Funcion varchar Descripción Código único actores Nombre del Actor Función que desempeña Tabla 2: Descripción de Entidad Actores. (Autoría Personal) 3.- Conferencistas: Almacena datos de los conferencistas: ATRIBUTOS Nombre Tipo Descripción Codconferencistas Int Número único Nombre del Conferencista Fecha disponible Disponibilidadinicial varchar inicial Disponibilidadfinal varchar Fecha disponible final Hora de inicio Horainicio varchar conferencia Hora de fin Horafin varchar conferencia Puntuación de la Puntacion int conferencia codperfil int Código del perfil (FK) Tabla 3: Descripción de Entidad Conferencistas. (Autoría Personal) Nombres varchar 4.- Perfil: Almacena los datos, correspondientes al perfil de cada persona: ATRIBUTOS Nombre Tipo Descripción cod_perfil int Código único Descripción profesión Tabla 4: Descripción de Entidad Perfil. (Autoría Personal) nom_perfil varchar 31 5.- Propuesta_curso: Almacena los datos, correspondientes de la propuesta de parte del tutor que va a dictar la conferencia. ATRIBUTOS Nombre Tipo Descripción Codpropuestacurso int Nombre varchar Hora varchar Código único Nombre tema conferencia Hora de conferencia Fecha de la conferencia Aprobación de Aprobacion boolean conferencia Tabla 5: Descripción de Entidad Propuesta_curso. (Autoría Personal) Fecha varchar 6.- Temarios: Almacena los datos, correspondientes al tema de la conferencia ATRIBUTOS Nombre Tipo Descripción Codtemarios int Código único Nombre de conferencia Subtemas varchar Nombre subtema Código codconferencistas int Conferencistas (FK) Tabla 6: Descripción de Entidad General. (Autoría Personal) Nombre varchar 32 4.3. Diseño de Interfaces A continuación se presentará el formato estándar de las pantallas, en cada una de las partes. 4.3.1. Interface Sitio Web 4.3.1.1. Instalación Herramienta Los instaladores son: NetBeans 7.4 Última versión (https://netbeans.org/downloads/) PrimeFaces 4.0 Última versión (http://www.primefaces.org/downloads.html) MySql o cualquier base de datos a usar (http://dev.mysql.com/downloads/mysql/) Nota si no tenemos el JDK instalamos si nos descargamos la versión completa de NetBeans no nos pedirá el JDK si no lo tienen está aquí para descargárselo http://www.oracle.com/technetwork/es/java/javase/downloads/index.html Ilustración 20: Descargar JDK. (Autoría Personal) Pasos a seguir para la instalación de Plugin PrimeFaces Crud Generator: http://sourceforge.net/projects/nbpfcrudgen/ 33 Introducción 1) Conseguir el Plugin 2) El módulo está siendo comunicado como un módulo plugin de NBM (Archivo binario) instalable. 3) Descargue el archivo plugin nbpfcrudgen Ilustración 21: Descargar Plugin PrimeFaces Crud Generator For Netbeans. (Autoría Personal) 4) Descomprimir el archivo que contiene un archivo NBM. Ilustración 22: Plugin NBM descomprimido. (Autoría Personal) 5) En NetBeans e ir a Herramientas-> Plugins. 34 Ilustración 23: Ventana Netbeans/tools/Plugins. (Autoría Personal) 6) Haga clic en la ficha Descargado. Ilustración 24: Pestaña downloaded para instalar plugin. (Autoría Personal) 7) Haga clic en el botón Add Plugins y vaya a la ubicación que ha descargado el archivo de NBM. 8) Seleccione el archivo y haga clic en Aceptar. 35 Ilustración 25: Selección plugin descomprimido. (Autoría Personal) 9) El módulo aparecerá en la lista de módulos cargados. 10) Haga clic en Instalar. El NetBeans IDE instalador aparecerá con un resumen de los módulos listos para ser instalados. Ilustración 26: Notificación reconocimiento plugin. (Autoría Personal) 11) Haga clic en Siguiente y acepte el acuerdo de licencia. Nota: actualmente no existe una licencia adjunta al módulo, pero es la intención del autor para liberarlo tanto bajo licencias GPL y CDDL. 36 Ilustración 27: Instalando PrimeFaces Crud Generator. (Autoría Personal) 12) El módulo no está actualmente firmado y NetBeans le avisará de ello. Si usted no se siente cómodo de instalar código no firmado, haga clic en Cancelar aquí y esperar a una versión más nueva que tiene la firma de un desarrollador adjunto. Si estás bien con un código sin firmar, haga clic en Continuar. Ilustración 28: Aceptando términos y condiciones. (Autoría Personal) 13) NetBeans se completa la instalación. Si la versión del IDE no coincide con la versión de la aplicación del módulo, es posible que encuentre un problema de dependencia y el IDE no se le permitirá continuar. 37 Ilustración 29: Terminando la instalación. (Autoría Personal) 14) El módulo está instalado y se mostrará en la ficha Instalación como PrimeFaces generador CRUD. Ilustración 30: Verificando la existencia del plugin. (Autoría Personal) 38 Instalación otras herramientas: 1) Instalar NetBeans 7.4 el último NetBeans en el mercado si no tenemos el instalador presionamos la dirección https://netbeans.org/downloads/ Ilustración 31: Pantalla descarga Netbeans. (Autoría Personal) 2) Descargaremos la versión completa es decir la de la última columna, Después ejecutamos el instalador y solo es cuestión de poner siguiente y siguiente después de unos minutos, ejecutamos NetBeans 7.4 y se muestra una pantalla a continuación, esta versión de NetBeans viene incluido el jdk (Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de programas en Java. Puede instalarse en una computadora local o en una unidad de red. En otras palabras El paquete JDK contiene el entorno de desarrollo de Java de Sun. Sirve para desarrollar programas Java y proporciona el entorno de ejecución necesario para ejecutar dichos programas. También incluye un módulo (Plugin) para que los navegadores puedan ejecutar programas Java. ) Que es muy importante para su instalación. 39 Ilustración 32: Diagrama descarga Netbeans. (Autoría Personal) 3) Luego nos aparecerá una ventana como esta: Ilustración 33: Pantalla inicial Netbeans. (Autoría Personal) 4) Después instalamos el MySql o cualquier base de datos si no tenemos el instalador lo descargamos en la siguiente dirección (http://dev.mysql.com/downloads/mysql/) 40 Ilustración 34: Descarga de MySQL. (Autoría Personal) 5) Lo instalamos con siguiente y siguiente poniendo el usuario y contraseña, después nos aparece una ventana como esta. Ilustración 35: Pantalla inicia MySQL. (Autoría Personal) 6) Sin embargo ahora nos toca instalar el PrimeFaces 4.0 nos descargamos de la siguiente dirección http://www.primefaces.org/downloads.html 41 Ilustración 36: Pantalla descarga PrimeFaces 4.0. (Autoría Personal) 7) Descargamos la versión Bundle que es la versión probada. Para instalarlo hacemos lo siguiente vamos a NetBeans y vamos a tools y libraries Ilustración 37: Pantalla instalación PrimeFaces 4.0. (Autoría Personal) 8) Luego New library 42 Ilustración 38: Pantalla instalación PrimeFaces 4.0. Agregando nueva librería (Autoría Personal) 9) Digitamos el nombre PrimeFaces-4.0 y damos clic en ok Ilustración 39: Agregando nuevo nombre a la librería (Autoría Personal) 43 10) Añadimos los archivos previamente de descomprimirlos, los archivos jar: ClassPath, Sources y JavaDoc Ilustración 40: Agregando archivos para nueva librería PrimeFaces 4.0 (Autoría Personal) 4.3.1.2. Ejercicio Práctico Generar una aplicación de ejemplo vamos hacer lo siguiente: Creación de un nuevo proyecto de aplicación Web Importante: Si está utilizando una versión de NetBeans (7.3.1 +) que se incluye con GlassFish 4.0 y JSF 2.2, por favor asegúrese de descargar y añadir la última biblioteca PrimeFaces desde la página de descargas PrimeFaces. Al escribir estas líneas, PrimeFaces ofrece la versión 4.0 en la sección de Community Downloads (Descargas de la Comunidad). Agregar a la biblioteca para su instalación de NetBeans en tools (Herramientas) - > Ant Libraries (Bibliotecas Ant) y lo llaman " PrimeFaces 4.0”. Esto hará que PrimeFaces 4.0 esté disponible para el asistente en la " aplicación Web”. 1) Haga clic en Archivo-> Nuevo proyecto. 44 Ilustración 41: Pantalla creación proyecto web (Autoría Personal) 2) Seleccione " Java Web " de las categorías y "Aplicación Web " de proyectos. Haga clic en Siguiente. Ilustración 42: Pantalla creación proyecto web aplicación (Autoría Personal) 3) Dele a su proyecto un nombre, por ejemplo, EjemploApp y elija la ubicación del proyecto. Deje el resto como está y haga clic en Siguiente. 45 Ilustración 43: Dando un nombre al proyecto web (Autoría Personal) 4) Configurar las opciones de configuración del servidor de la siguiente manera: Elija su Aplicación Server. En una instalación predeterminada, este será el servidor GlassFish 4.0 que viene con NetBeans. Establezca la versión Java EE a Java EE 7 Web (por defecto) Deja la ruta de contexto como es. Haga clic en Siguiente. Ilustración 44: Configurando Servidor y versión de Java EE (Autoría Personal) 46 5) Configure los marcos de la siguiente manera: 6) Ponga una marca de verificación junto a JavaServer Faces. En la pestaña Libraries, utilice la biblioteca de servidor JSF 2.2 Ilustración 45: Configurando Servidor y versión de Java EE (Autoría Personal) En la ficha Configuración, deje JSF Servlet URL patrón / faces / * y seleccione Facelets como página Idioma preferido. Ilustración 46: Configurando Java Server Faces (Autoría Personal) En la ficha componentes, ponga una marca de verificación junto a PrimeFaces. Nota: debe dar clic en la última biblioteca PrimeFaces que se agrega en " Ant Bibliotecas" 47 Ilustración 47: Configurando Java Server Faces componentes (Autoría Personal) Nota: Haga clic en Más para seleccionar la versión PrimeFaces si se ha registrado más de una. El valor predeterminado es PrimeFaces 3.5. Después de seleccionar la versión PrimeFaces de su elección, haga clic en Aceptar. Ilustración 48: Configurando Java Server Faces escogiendo librería (Autoría Personal) Haga clic en Finalizar para crear el proyecto. 48 Ilustración 49: Finalizando configuración (Autoría Personal) 7) Mapeo de entidades: Tienes dos opciones para hacerlo: puede programar sus propias entidades y unidad de persistencia, o puede dejar que NetBeans generar entidades de una base de datos existente. Para esta aplicación de ejemplo, se utiliza este último. Resalte el nodo del proyecto. Ilustración 50: Ubicando el cursor en el proyecto (Autoría Personal) Haga clic en el proyecto-> Nuevo/ other 49 Ilustración 51: Ubicando el cursor para aplicar Crud (Autoría Personal) Seleccione la opción Persistencia luego “Entity Classes from Database” clases de entidad de base de datos " de los tipos de archivos. Haga clic en Siguiente. Ilustración 52: Seleccionando opciones para mapeo de base de datos (Autoría Personal) 8) Especificar tablas de base de datos de la siguiente manera: 50 Configurar origen de datos. Para esta aplicación de ejemplo, seleccione jdbc / muestra de la lista. NetBeans se conecta con el servidor de base de datos suministrada MySQL base de datos cursos y rellena las tablas disponibles. Ilustración 53: Cargando tablas de la base de datos (Autoría Personal) Para este ejemplo, haga clic en el botón Agregar todo. NetBeans se traslada todas las tablas de la base de datos. Haga clic en Siguiente. Ilustración 54: Seleccionan tablas de la base de datos (Autoría Personal) 51 9) Configuración de clases de entidad de la siguiente manera: Especifique paquete. Aquí escribimos las "entidades" (todo en minúsculas) se llama dal.entity. Deja "Generar consulta con nombre Anotaciones para campos persistentes" controladas Deja "Generar JAXB Anotaciones " marcada. Deje la marca de verificación junto a " Crear unidad de persistencia”. Haga clic en Siguiente. Ilustración 55: Configurando mapeo y dando nombre al paquete (Autoría Personal) 10) Configurar las opciones de asignación de la siguiente manera: Association Fetch: default Collection Type: java.util.Collection (default) Configurar las opciones de asignación de la siguiente manera: Asociación Fetch: default 52 Colección: java.util.Collection (por defecto) Deja todo lo demás sin marcar a excepción de "Usar nombres de columna en las relaciones”. Haga clic en Finalizar. Ilustración 56: Configurando mapeo de base de datos (Autoría Personal) 11) NetBeans genera el paquete de entidades y seis clases de entidad: Activacioncurso.java Actores.java Conferencistas.java Perfil.java PropuestaCurso.java Temarios.java 53 Ilustración 57: Clases generadas por mapeo de base de datos (Autoría Personal) Nota: Estas clases generada en el paquete dal.entity contiene las clases de entidad, con métodos accesores get y set para mapear la base de datos. También agrega un archivo persistence.xml al proyecto para hacer referencia a la base de datos de la muestra. Ilustración 58: Archivo persistence.xml (Autoría Personal) 12) Generación PrimeFaces Páginas de clases de entidad: Nota: El generador de código puede detectar ahora la versión PrimeFaces y Apache MyFaces CODI versión CDI -Extensión Resalte el nodo del proyecto Haga clic en Archivo-> Nuevo archivo en el menú. 54 Elija " PrimeFaces CRUD Generador " de Categorías y " PrimeFaces Páginas de clases de entidad " de los tipos de archivos. Haga clic en Siguiente. Ilustración 59: Configurando PrimeFaces Crud (Autoría Personal) Haga clic en " Agregar todo >>" y haga clic en Siguiente. Ilustración 60: Configurando PrimeFaces Crud mapeo de base de datos (Autoría Personal) 55 13) Configurar Generar PrimeFaces páginas y clases de la siguiente manera: Session Bean Package: controllers Backing Bean Package: beans Converter Package: converters PrimeFaces Carpeta Páginas: [dejar en blanco] Generic Include Folder: /WEB-INF/include Entity Include Folder: /WEB-INF/include/entity Localization Bundle Name: /Bundle Default Rows Displayed: 10 Default Page Selector: 10, 20,30 Puede cambiar esto a lo que quiera. Esto afecta a la lista desplegable que se muestra en la busca de PrimeFaces DataTable. Nombre de campo artefactos para los campos extranjeros: DESCR, nombre Deje todas las marcas de verificación en los siguientes campos: Crear, Editar, Borrar, Ver, ordenar, filtrar Observe la PrimeFaces Versión, MyFaces CODI Versión y JSF Versión Bibliotecas de su ruta de clase del proyecto y puesta en marcha. Si has seguido esta aplicación de ejemplo, verá la versión 4.0 para PrimeFaces, nada para MyFaces CODI versión y la versión 2.2 para JSF. CODI sólo es importante para los proyectos de CDI antes de JSF 2.2 para permitir anotaciones @ ViewAccessScoped. Las versiones recientes de JSF comenzando con 2.2 tienen soporte nativo para CDI anotaciones @ ViewScoped. Ignorar los archivos existentes " sin control, a menos que previamente había archivos generados. Haga clic en Finalizar. 56 Ilustración 61: Configurando PrimeFaces Crud Generator (Autoría Personal) 14) Si queremos mejorar nuestra interfaz tenemos que descargar un tema de PrimeFaces como ejemplo (redmond) vamos a esta url: http://repository.primefaces.org/org/primefaces/themes/ Ilustración 62: Configurando PrimeFaces Crud Generator CSS3 (Autoría Personal) 57 Luego agregamos a libraries el jar Redmond Ilustración 63: Configurando PrimeFaces Crud Generator CSS3 agregando jar (Autoría Personal) Ilustración 64: Configurando PrimeFaces Crud Generator CSS3 agregando jar a la librería (Autoría Personal) 58 Abrimos el archivo web.xml y agregamos lo siguiente: <context-param> <param-name>primefaces.THEME</param-name> <param-value>redmond</param-value> </context-param> Ilustración 65: Configurando PrimeFaces Crud Generator CSS3 agregando líneas de código (Autoría Personal) Con eso nuestra interfaz gráfica cambia de una manera muy atractiva con css3 para el usuario Ilustración 66: Ventana con tema nuevo (Autoría Personal) 59 Nota: Paquetes Creados: Se los llama según su función. dal = capa de acceso a datos, ui = interfaz de usuario. dal.entity contiene las clases de entidad, dal.facade contiene las clases de fachada para acceder a las entidades. ui.bean contiene todos los controladores de JSF para interactuar con las páginas JSF y la capa de datos. ui.util contiene clases de ayuda y ui.converter contiene las clases de convertidor de la interfaz de usuario. 4.3.1.3. Interfaz de Usuario Menú Principal, con dos opciones (Home y Maintenance) Home: Página de Inicio Maintenance: Mantenimiento: Insertar, modificar, eliminar, ver registros en la base de datos Ilustración 67: Pantalla Inicial (Autoría Personal) 60 Pagina Maintenance Página de administración de la base de datos Curso Ilustración 68: Pantalla pestaña mantenimiento (Autoría Personal) Página perfil de ejemplo de muestra con las operaciones: Insertar, modificar, eliminar, actualizar, ver y filtrar registros. Ilustración 69: Pantalla ejemplo en base de datos perfil (Autoría Personal) 61 Insertar registros Ilustración 70: Insertando un nuevo registro (Autoría Personal) Ilustración 71: Registro insertado (Autoría Personal) 62 Ver registro Ilustración 72: Ver registro insertado (Autoría Personal) Editar registro Ilustración 73: Editando registro (Autoría Personal) 63 Ilustración 74: Registro Editado (Autoría Personal) Borrar registro Ilustración 75: Borrando registro (Autoría Personal) Filtro Registro Ilustración 76: Filtrando registros (Autoría Personal) 64 4.3.1.4. Interfaz Portal Web Página inicial Ilustración 77: Pagina Inicial portal web (Autoría Personal) Página Quienes Somos Ilustración 78: Pagina quienes somos (Autoría Personal) 65 Página Tienda Ilustración 79: Pagina tienda (Autoría Personal) Página Frameworks Ilustración 80: Pagina frameworks (Autoría Personal) 66 Página documentación Ilustración 81: Pagina documentación (Autoría Personal) Página Faq Y Chat Ilustración 82: Pagina faq y chat (Autoría Personal) 67 Página Contactos Ilustración 83: Pagina contactos (Autoría Personal) Página Post y Comentarios Ilustración 84: Pagina post y comentarios (Autoría Personal) Página noticias 68 Ilustración 85: Pagina noticias (Autoría Personal) Página miembro del Equipo Ilustración 86: Página miembro del equipo (Autoría Personal) Paginas en línea 69 Ilustración 87: Paginas en línea (Autoría Personal) Paginas herramienta utilizada Ilustración 88: Configuración herramienta SEO (Autoría Personal) Paginas canal de YouTube: 70 Ilustración 89: Canal de YouTube 71 CAPÍTULO V 1. CONCLUSIONES Y RECOMENDACIONES 5.1 Conclusiones Los algoritmos de optimización contribuyan positivamente en legibilidad del código fuente, gracias al uso del patrón de diseño MVC. La manera de generar automáticamente el código java es realmente optima Se crean diferentes clases en java según el número de tablas en el paquete dal.entity, en código generado es para el mapeo de nuestra base de datos con métodos get y set Se crea el archivo MyBundle.properties, en este archivo podemos cambiar las palabras que se encuentran en inglés, a español por ejemplo home por inicio, debemos hacerlo manualmente Se crea el archivo pfcrud.css, aquí podemos modificar nuestra interfaz gráfica que viene por defecto Se crea el paquete dal.facade manualmente y contiene las clases de fachada para acceder a las entidades. Se crea el paquete ui.bean contiene todos los controladores de JSF para interactuar con las páginas JSF y la capa de datos. Se crea el paquete ui.util contiene clases de ayuda Se crea el paquete ui.converter contiene las clases de convertidor de la interfaz de usuario. En el paquete entity se crean las interfaces web de cada pantalla está escrito en código xhtml En el portal web sirve de gran ayuda para venta y soporte de la herramienta Dicho portal web tiene herramientas intuitivas para el usuario: 1) Leer el texto en algunas páginas, 2) Preguntas y respuestas más frecuentes algo muy útil para el usuario nuevo y antiguo si surge algún problema 3) Post y comentarios: El usuario podrá ver un pequeño bloc de la herramienta y podrá comentar algo muy útil si surge algún problema con la herramienta. 4) En la página de noticias se actualizara según las nuevas novedades de nuestra herramientas es algún muy bueno para tener a los usuarios al tanto de las nuevas versiones 5) Se explotó al máximo el wordpress y una revista online para realizar una publicidad online para que la herramienta sea más conocida 6) Se utilizó la herramienta SEO propia del portal web para renquear en os primeros lugares en google, ya que con solo digitar framework uce sale en los primeros lugares 72 5.2 Recomendaciones Al momento de generar el código de una manera automática con la herramienta PrimeFaces Crud Generator se crea una interfaz gráfica básica de xhtml y css3, por lo cual se recomienda cambiar la interfaz añadiendo un tema propio de PrimeFaces muy vistoso y agradable para el usuario Se debe probar la conexión de la base datos en Netbeans para realizar el Crud Para agregar un tema de PrimeFaces con Css3 se debe modificar el archivo web.xml Si se va a cambiar el idioma de nuestra aplicación se debe modificar el archivo MyBundle.properties Cuando se va a comprar la herramienta PrimeFaces Crud Generator for Netbeans en el portal web le llegara un correo con una contraseña para que descargue su producto seleccionado La aplicación puede ejecutarse en cualquier motor de base de datos Se puede modificar el código generado a conveniencia si algo no nos satisface es decir si se genera un radio button podemos cambiarlo por un combo box, etc. Podrán escribir al canal de YouTube cualquier duda será respondida desde el canal de YouTube. En el portal web en la sección de contáctanos nos podrán escribir si surge un problema grave, el soporte técnico estará gustoso de atenderle. 73 GLOSARIO DE TÉRMINOS API, Una interfaz de programación de aplicaciones es un conjunto de convenciones internacionales que definen cómo debe invocarse una determinada función de un programa desde una aplicación. ENCAPSULAMIENTO, Es el ocultamiento del estado, es decir, del dato miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto. FRAMEWORK, Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio. HERENCIA, A través de ella los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. IEEE, El Instituto de Ingeniería Eléctrica y Electrónica abreviado como IEEE, inglés Institute of Electrical and Electronics Engineers es una asociación mundial de técnicos e ingenieros dedicada a la estandarización y el desarrollo en áreas técnicas. JSP, es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML, XML, entre otros tipos de documentos. PLUG-IN, También conocido como complemento, es una aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy específica. POJOs, Clases planas comunes y corrientes de Java utilizada por programadores para enfatizar el uso de clases simples y que no dependen de un framework en especial. POLIMORFISMO, Se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. 74 RDBMS (Sistema de Gestión de Bases de Datos Relacionales), se basa en el modelo relacional como inventado. Muchas bases de datos populares actualmente en uso se basan en la base de datos relacional modelo. SERVLET, es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, éstos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, SOBRECARGA DE MÉTODOS, es la creación de varios métodos con el mismo nombre pero con diferentes firmas y definiciones. UI, Interfaz de usuario es un conjunto de protocolos y técnicas para el intercambio de información entre una aplicación computacional y el usuario. UML, El Lenguaje de Modela miento Unificado es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. URL, es una cadena de caracteres con la cual se asigna una dirección única a cada uno de los recursos de información disponibles en la Internet. XML, es un lenguaje de marcas desarrollado por el World Wide Web Consortium utilizado para almacenar datos en forma legible. 75 BIBLIOGRAFÍA ÁLVAREZ, M. (21 de Enero de 2015). Desarrollo Web. Obtenido de http://www.desarrolloweb.com/articulos/que-es-mvc.html ANDREEVSKAI, A., & BERGLER, S. (2006b). Semantic tag extraction from wordnet glosses. En In 5th Conference on Language Resources and Evaluation. Genova: IT. ANDREEVSKAI, A., & BERGLER, S. (2007). In Proceedings of the 4th International Workshop on Semantic Evaluations. Prague: Association for Computational Linguistics. BELIAL DIAZ, E. J. (05 de Enero de 2015). Monografias. Obtenido de http://www.monografias.com/trabajos84/redes-sociales/redes-sociales.shtml CARBONELL, J. (14 de Enero de 2015). Centro Virtual Cervantes. Obtenido de http://cvc.cervantes.es/obref/congresos/sevilla/tecnologias/ponenc_carbonell.htm CLABURN, T. (2007). Google Releases Improved MySQL Code. Obtenido de http://es.wikipedia.org/wiki/MySQL GARCIA, J. (21 de Enero de 2015). Ceit. Obtenido de http://www1.ceit.es/Asignaturas/Informat2/Clases/Clases9899/Clase01/JavaEntorno/tsld 003.htm GIL, J. V. (06 de Enero de 2015). Dataprix. Obtenido de http://www.dataprix.com/blog-it/bigdata/big-data-gestion-datos-no-estructurados GOSLING, J. (2005). The Java language specification. Addison-Wesley,. Obtenido de http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n) HATZIVASSILOGLOU, V., & MCKEOWN, K. R. (1997). Predicting the semantic orientation of adjectives. En In Proceedings of ACL-97, 35th Annual Meeting of the Association for Computational Linguistics (págs. 174-181). Madrid: Association for Computational Linguistics. http://definicion.de/excel/. (21 de Enero de 2015). Definicion. Obtenido de http://definicion.de/excel/ http://es.wikipedia.org/wiki/PrimeFaces. (2015). PrimeFaces. Obtenido de http://es.wikipedia.org/wiki/PrimeFaces http://thesaurus.reference.com. (2007). Roget’s New Millennium Thesaurus, volume 1.3.1. Lexico Publishing Group,LLC, 1st edition. Obtenido de http://thesaurus.reference.com http://www.sinnexus.com/business_intelligence/. (11 de Enero de 2015). Sinnexus. Obtenido de http://www.sinnexus.com/business_intelligence/ 76 IEEE. (20 de Enero de 2015). Iso Architecture. Obtenido de http://www.iso-architecture.org/ieee1471/docs/all-about-ieee-1471.pdf INFORMATICA, E. T. (13 de Enero de 2015). Departamento de Lenguajes y Sistemas Informaticos. Obtenido de http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf JANSSEN, C. (06 de Enero de 2015). Techopedia. Obtenido de http://www.techopedia.com/definition/27689/nosql-database KAMPS, J. (2004). In Proceedings of LREC-04, 4th International Conference on. Lisbon. KATZ, P., SINGLETON, M., & WICENTOWSKI, R. (2007). the semeval-2007 systems for task 5 and task 14. En In Proceedings of the 4th International Workshop on Semantic Evaluations (SemEval-2007) (págs. 336-341). Prague: Association for Computational Linguistics. KIM, S., & HOVY, E. (2004). In Proceedings COLING-04,the Conference on Computational Linguistics. Chicago: Geneva. KRUCHTEN, P. (1996). Rational. Obtenido de www.rational.com/media/whitepapers/xtalk.pdf LERMA, E. V. (21 de Enero de 2015). Adictos al trabajo. Obtenido de http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=introduccionPrimefac es LUJÁN MORA, S. (2002). Programación de aplicaciones web: historia, principios básicos y clientes web. Obtenido de http://es.wikipedia.org/wiki/HTML MICROSOFT. (15 de Enero de 2015). Soporte Microsoft. Obtenido de http://support.microsoft.com/kb/110093/es PACKTPUB. (21 de Enero de 2015). packtpub. Obtenido de https://www.packtpub.com/books/content/conozca-qlikview RAYFIELD, J. T., AVRAHAM, L. R., & Avraham, L. (2001). Web-Application Development Using the Model/View/Controller Design Pattern. Obtenido de http://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador#cite_note3 SAHLGREN, M., KARLGREN, J., & ERIKSSON, G. (2007). Valence annotation based on seeds in word space. En In Proceedings of the 4th International Workshop on Semantic Evaluations (págs. 296-299). Prague,Czech Republic: Association for Computational Linguistics. SANCHEZ, A. (21 de Enero de 2015). Dataiq. Obtenido de http://dataiq.com.ar/blog/qvsourceignacio-albano/ SUEIRAS, E. (05 de Enero de 2015). Scribd. Obtenido de http://es.scribd.com/doc/24658747/Redes-sociales-definicion#scribd 77 TECHTERMS. (12 de Enero de 2015). techterms. Obtenido de http://techterms.com/definition/framework TURNEY. (2002). In Proceedings of the 40th Annual Meeting on Association for Computational Linguistics. 417-424. WANTON, T. (16 de Noviembre de 2014). Academia.edu. Obtenido de https://www.academia.edu/4254540/La_polaridad_de_las_opiniones YANEZ, L. (21 de Enero de 2015). Fdi. Obtenido de https://www.fdi.ucm.es/profesor/luis/fp/devtools/NetBeansUso.html 78