Sei sulla pagina 1di 73

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TLAXIACO

“APLICACIÓN MÓVIL PARA ÓRDENES DE SERVICIO DE


BARES Y RESTAURANTES PARA LA EMPRESA VISORUS
SOFT FACTORY.”

Presenta:
Franco Sarmiento Núñez
Juan Carlos Ambrosio Olea

Carrera:
Ingeniera en Sistemas Computacionales

Producto:
Tesina

Asesor:
Ing. José Alfredo Román Cruz

Tlaxiaco, Oax., Octubre de 2018.

“Educación, Ciencia y Tecnología, Progresos día con día” ®


RESUMEN
La empresa Visorus Soft Factory cuenta con un sistema para bares y restaurantes
denominado ResBar este sistema está diseñado solo para controlar las ventas por
tal motivo se dio a la necesidad de mejorarlo aumentando un módulo para el
levantamiento de órdenes por medio de un dispositivo móvil. En el cual se
mostrará la carta de presentación del bar o restaurante que adquiera el sistema
con el módulo de levantamiento de órdenes agregado, los usuarios podrán elegir
sus comidas o bebidas de una manera fácil y rápida si necesidad de que los
meseros acudan a su lugar a tomar su orden.
Para desarrollar esta aplicación se utiliza la metodología en cascada y se hace
uso de las herramientas Grails, Groovy, Intellij IDEA; Firebird y PosgreSQL para el
almacenamiento de datos.
Al finalizar el desarrollo del módulo de levantamiento de ordenes se obtiene una
aplicación móvil que permite identificar y realizar los pedidos de cada mesa a
través de código QR asignado previamente, esto permite agilizar el proceso de
órdenes a través de la selección del menú desde el dispositivo móvil, además de
realizar las órdenes de acuerdo a la posibilidad económica, al seleccionar su
orden se refleja en la lista de consumo misma que el usuario puede ver en su
pantalla, esto hace que el sistema sea flexible para que antes de enviar la orden
se pueda modificar contando con un campo de texto para poner la cantidad de
platillos o bebidas que se desea ordenar.

ii
CONTENIDO
Introducción ................................................................................................................ vii

Objetivos ................................................................................................................... viii

Objetivo general ........................................................................................................ viii

Objetivos específicos ................................................................................................ viii

Justificación del proyecto ............................................................................................ ix

Capitulo I. Fundamentos

1.1 Fundamento teórico ............................................................................................ 10

1.1.1 Metodología cascada ....................................................................................... 10

1.2 Fundamento conceptual ...................................................................................... 11

1.2.1 Software ........................................................................................................... 11

1.3 Base de datos ..................................................................................................... 13

1.3.2 PostgreSQL ...................................................................................................... 14

1.4 Framework .......................................................................................................... 16

1.5 Grails ................................................................................................................... 19

1.6 Lenguaje de programación .................................................................................. 20

1.6.1 Groovy .............................................................................................................. 21

1.7 Intellij IDEA ......................................................................................................... 22

Capitulo II. Descripción del proyecto o actividades de aportaciones realizadas


(métodos y recursos)

2.1 Ingeniería y análisis del sistema.......................................................................... 23

2.1.7 Requerimientos no funcionales ........................................................................ 32

2.3.1 Diseño .............................................................................................................. 36

Capitulo III. Resultados

Capitulo IV. Conclusiones

4.1 Conclusiones ....................................................................................................... 57

Bibliografía............................................................................................................... 58

iii
Anexos ..................................................................................................................... 60

Anexo 1. Diccionario de datos .................................................................................. 60

Anexo 2. Glosario de términos ................................................................................. 71

iv
Índice de ilustraciones, prototipos, tablas, figuras y diagramas
Índice de ilustraciones
Ilustración 1. Escaneo de QR. .............................................................................. 50
Ilustración 2. Inicio de sesión. .............................................................................. 51
Ilustración 3. Mensaje de registro......................................................................... 51
Ilustración 4. Mensaje con la contraseña. ............................................................ 52
Ilustración 5. Registro para iniciar sesión. ............................................................ 53
Ilustración 6. Categorías de comidas y bebidas ................................................... 53
Ilustración 7. Productos que contiene la categoría cocina. .................................. 54
Ilustración 8. Cuadro de dialogo para enviar la orden. ......................................... 55
Ilustración 9. Lista de productos ordenados. ........................................................ 55
Ilustración 10. Botones para regresar, ver orden y salir. ...................................... 56

Índice de prototipos
Prototipo 1. Escaneo QR ...................................................................................... 36
Prototipo 2. Autenticación..................................................................................... 37
Prototipo 3. Registrarse o cambiar el número ...................................................... 37
Prototipo 4. Alta al usuario ................................................................................... 38
Prototipo 5. Departamentos.................................................................................. 38
Prototipo 6. Nombre del producto......................................................................... 39
Prototipo 7. Cantidad del producto a ordenar ....................................................... 39
Prototipo 8. Lista de órdenes................................................................................ 40
Prototipo 9. Botones, regresar, ver orden y salir. ................................................. 40

Índice de tablas
Tabla 1. Matriz de rastreabilidad .......................................................................... 33
Tabla 2. Esquema relacional de la base de datos para el control de ventas. ....... 34
Tabla 3. Esquema relacional de la base de datos para el control de usuarios. .... 34
Tabla 4. Pruebas .................................................................................................. 49

v
Índice de figuras
Figura 1 . Validación del escaneo QR .................................................................. 41
Figura 2. Registro de número ............................................................................... 41
Figura 3. Registró de usuario ............................................................................... 42
Figura 4. Validación del usuario ........................................................................... 42
Figura 5. Carta de presentación de comidas y bebidas ....................................... 43
Figura 6. Platillos de comidas............................................................................... 43
Figura 7. Cantidad de producto ............................................................................ 44
Figura 8. Departamento de bebidas ..................................................................... 44
Figura 9. Selección de producto de bebidas ........................................................ 45
Figura 10. Lista de productos comprados ............................................................ 45
Figura 11. Cierre de sesión. ................................................................................. 46

Índice de diagramas
Diagrama 1. Representación gráfica de los paquetes de casos de uso ............... 30
Diagrama 2. Gestionar los códigos QR y los clientes. .......................................... 31
Diagrama 3. Gestionar las órdenes. ..................................................................... 31
Diagrama 4. General. ........................................................................................... 32
Diagrama 5. De clases ......................................................................................... 34
Diagrama 6. Arquitectura modelo, vista, controlador. ........................................... 35

vi
Introducción
El presente documento aborda el tema “APLICACIÓN MÓVIL PARA ÓRDENES
DE SERVICIO DE BARES Y RESTAURANTES”, este módulo fue desarrollado en
la empresa VisorUs Soft Factory, en el estado de Oaxaca; se creó para mejorar el
sistema ResBar con el que cuenta la empresa obteniendo un sistema más
completo para ofrecer a sus clientes.
Este documento contiene información del desarrollo e implementación de la
aplicación, abarcando puntos importantes del proyecto, a través de la
introducción, los objetivos: generales y específicos, así como la justificación del
proyecto. También se mencionan los temas de investigación realizada antes de
dar inicio con el desarrollo del proyecto, para ello se realizan varias consultas en
páginas de internet y libros, con la finalidad de conocer y retroalimentar el uso de
herramientas tecnológicas. También se describen los pasos que se siguieron para
el desarrollo de este proyecto, la metodología utilizada y los puntos necesarios
para obtener un resultado satisfactorio. Se muestran los resultados obtenidos al
aplicar la metodología de desarrollo, al igual que cada una de las pantallas de la
aplicación cada una con su respectiva descripción.

vii
Objetivos
Objetivo general
Diseñar, desarrollar e Implementar una aplicación para dispositivos móviles para
bares y restaurantes que permita ver el contenido de la carta y realizar órdenes.

Objetivos específicos
 Crear códigos QR para las mesas los cuales contendrán el número de
mesa y nombre del mesero.

 Elaborar un módulo para el registro de usuarios, el cual contendrá el


número telefónico y contraseña de ingreso.

 Elaborar un módulo para la visualización de departamentos y productos, en


el cual se mostrará la carta de presentación de productos del bar o
restaurante.

 Elaborar un módulo para mostrar la nota de consumo, el cual contendrá la


lista de productos consumidos con la hora del pedido los precios y el total a
pagar.

 Pruebas de funcionalidad.

 Implementación de la aplicación.

viii
Justificación del proyecto
El siguiente proyecto se desarrolla con la finalidad de mejorar el sistema para
control de ventas de Bares y restaurantes denominado ResBar con el que cuenta
la empresa Visorus Soft Factory. Esta empresa es reconocida por el interés que
tiene hacia sus clientes brindándoles buenos sistemas que de acuerdo a los
avances de tecnologías de desarrollo de software estén actualizados y tengan
mejoras que ofrecer a sus clientes.
Es por ello que se opta por mejorar el sistema ResBar aumentando un módulo de
levantamiento de órdenes por medio de un dispositivo móvil. Con el cual se
requiere lograr una satisfacción a la empresa misma y a sus clientes al igual que
los diferentes usuarios que interactúen con la aplicación que se les brindará.
Este módulo agilizará el levantamiento de órdenes de servicio de bares o
restaurantes, brindando a los usuarios de los establecimientos la facilidad de
ordenar sus bebidas o platillos desde su teléfono celular, en el cual se le mostrará
la carta de presentación del bar o restaurante, el diseño de las interfaces fue
programadas para el fácil entendimiento de los usuarios.

ix
Capitulo I. Fundamentos
1.1 Fundamento teórico
1.1.1 Metodología cascada
En Ingeniería de software el desarrollo en cascada, también llamado modelo en
cascada, es el enfoque metodológico que ordena rigurosamente las etapas
del proceso para el desarrollo de software, de tal forma que el inicio de cada
etapa debe esperar a la finalización de la etapa anterior.
Estas etapas son:

Ingeniería y análisis del sistema: Debido a que el software es siempre parte de


un sistema mayor el trabajo comienza estableciendo los requisitos de todos los
elementos del sistema y luego asignando algún subconjunto de estos requisitos al
software.
Análisis de los requisitos del software: el proceso de recopilación de los
requisitos se centra e intensifica especialmente en el software. El ingeniero de
software (Analistas) debe comprender el ámbito de la información del software,
así como la función, el rendimiento y las interfaces requeridas.
Diseño: El diseño del software se enfoca en cuatro atributos distintos del
programa: la estructura de los datos, la arquitectura del software, el detalle
procedimental y la caracterización de la interfaz. El proceso de diseño traduce los
requisitos en una representación del software con la calidad requerida antes de
que comience la codificación.
Codificación: El diseño debe traducirse en una forma legible para la máquina. El
paso de codificación realiza esta tarea. Si el diseño se realiza de una manera
detallada la codificación puede realizarse mecánicamente.
Prueba: una vez que se ha generado el código comienza la prueba del programa.
La prueba se centra en la lógica interna del software, y en las funciones externas,
realizando pruebas que aseguren que la entrada definida produce los resultados
que realmente se requieren.
Mantenimiento: El software sufrirá cambios después de que se entrega al cliente.
Los cambios ocurrirán si por algún motivo se hayan encontrado errores, a que el
software deba adaptarse a cambios del entorno externo (sistema operativo o

10
dispositivos periféricos), o debido a que el cliente requiera ampliaciones
funcionales o del rendimiento.
(Wall, 2014).
1.1.2 Ventajas de la metodología en cascada
Se utiliza correctamente para ciclos en los que se tiene una decisión estable del
producto.
 Puede constituir una elección correcta para el desarrollo rápido.
 ayuda a minimizar los gastos de la planificación porque permite realizarla
sin problemas.
 Funciona bien.
 Evita una fuente común de errores importantes.
 Presenta el proyecto con una estructura que ayuda a minimizar el esfuerzo
inútil.
(Cataldi, 2015).
1.2 Fundamento conceptual
1.2.1 Software
Para definir el concepto de software se realiza una comparación en diferentes
fuentes bibliográficas con el objetivo de comprender su significado. De tal manera
que se define como el conjunto de los programas de cómputo, procedimientos,
reglas, documentación y datos asociados, que forman parte de las operaciones de
un sistema de computación.

“El software es un ingrediente indispensable para el funcionamiento del


computador. Está formado por una serie de instrucciones y datos, que permiten
aprovechar todos los recursos que el computador tiene, de manera que pueda
resolver gran cantidad de problemas. Un computador en sí, es sólo un
conglomerado de componentes electrónicos; el software le da vida al computador,
haciendo que sus componentes funcionen de forma ordenada.
El software es un conjunto de instrucciones detalladas que controlan la operación
de un sistema computacional.”
(Ferreyra , 2015).

11
“El software representa toda la parte inmaterial o intangible que hace funcionar a
un ordenador para que realice una serie de tareas específicas, coloquialmente
conocidos como programas el software engloba a toda la información digital que
hace al conjunto de elementos físicos y materiales que componen el computador
trabajar de manera inteligente.”
(Silverio, 2015).

“Software Es el conjunto de los programas informáticos, procedimientos, reglas,


documentación y datos asociados que forman parte de las operaciones de un
sistema de computación.”
(Journal, 2015).

Por lo tanto, se concluye que software es el conjunto de los programas de


cómputo, procedimientos, reglas, documentación y datos asociados, que forman
parte de las operaciones de un sistema de computación.

1.2.2 Ingeniería de software


La ingeniería de software se define como: aquella disciplina que se ocupa del
desarrollo, la operación y el mantenimiento del software o programas informáticos
según los distintos autores que se han dedicado al estudio del tema, como se
muestra en los conceptos siguientes.
“Ingeniería de software es una disciplina formada por un conjunto de métodos,
herramientas y técnicas que se utilizan en el desarrollo de los programas
informáticos (software).”
(Miguel, 2015).

“La definicion del IEE “software es la suma total de los programas de ordenador,
procedimientos, reglas, la documentacion asociada y los datos que pertenecen a
un sistena de computo” y “un producto de software es un producto diseñado para
un usuario” software (SE del Ingles “software Engineering”) es un enfoque
sistematico del desarrollo, operación, mantenimiento y retiro del software.”
(Palacios, 2013).

12
“La Ingeniería de software es aquella disciplina que se ocupa del desarrollo, la
operación y el mantenimiento del software o programas informáticos. “
(Lopez L, 2012).
1.3 Base de datos
“Una base de datos es una colección de archivos relacionados que permite el
manejo de la información de alguna compañía. Cada uno de dichos archivos
puede ser visto como una colección de registros y cada registro está compuesto
de una colección de campos. Cada uno de los campos de cada registro permite
llevar información de algún atributo de una entidad del mundo real.”
(Fuentes, 2013).

“Una base de datos o banco de datos es un conjunto de datos pertenecientes a


un mismo contexto y almacenados sistemáticamente para su posterior uso. En
este sentido; una biblioteca puede considerarse una base de datos compuesta en
su mayoría por documentos y textos impresos en papel e indexados para su
consulta. Actualmente, y debido al desarrollo tecnológico de campos como
la informática y la electrónica, la mayoría de las bases de datos están en formato
digital, siendo este un componente electrónico, por tanto se ha desarrollado y se
ofrece un amplio rango de soluciones al problema del almacenamiento de datos.“
(Carlos-vialfa, 2017).

“Una base de datos es un “almacén” que nos permite guardar grandes cantidades
de información de forma organizada para que luego se pueda encontrar y utilizar
fácilmente...” (Valdés, 2012).

El concepto de una base de datos es una colección de archivos relacionados que


permite el manejo de la información de alguna compañía. Para realizar trabajos
específicos dentro del contexto laboral.

1.3.1 Ventajas de utilizar una base de datos


 Información compacta. No se necesitan voluminosos archivos de papel.
 Velocidad. La velocidad de operación es mayor a la que se tiene con un
sistema manual.

13
 Menos cansado. Al manipular información más organizada.
 Actualización. La información se puede mantener más fácilmente
actualizada.
 Un control centralizado. Se reduce la redundancia. Se evita la
inconsistencia. Los datos pueden ser compartidos. Se tiene el control del
acceso. La integridad puede ser mantenida.
 Mayor seguridad (protección de los datos). Resulta más fácil replicar
una base de datos para mantener una copia de seguridad que hacerlo con
un conjunto de ficheros almacenados de forma no estructurada. Además, al
estar centralizado el acceso a los datos, existe una verdadera
sincronización de todo el trabajo que se haya podido hacer sobre estos
(modificaciones), con lo que esa copia de seguridad servirá a todos los
usuarios.
 Mayor disponibilidad. Se facilita el acceso a los datos desde contextos,
aplicaciones y medios distintos, haciéndolos útiles para un mayor número
de usuarios.

Esto tiene una consecuencia directa sobre los resultados que se obtienen de la
explotación de la base de datos, presentándose al respecto ventajas como son:

 Mayor coherencia. La mayor calidad de los datos que se deriva de su


mejor gestión deriva en mayor calidad de los resultados.
 Mayor eficiencia. Facilitando el acceso a los datos y haciendo más
sencilla su explotación, la obtención de resultados es más eficiente.
 Mayor valor informativo. Resulta más sencillo extraer la información que
los datos contienen, ya que uno de los cometidos de la Base de Datos es
aumentar el valor de estos como fuente de información.
(Chávez, 2013).

1.3.2 PostgreSQL
“Es un sistema de gestión de bases de datos relacional orientado a objetos y libre,
publicado bajo la licencia PostgreSQL, similar a la BSD o la MIT. Como muchos
otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado

14
por una empresa o persona, sino que es dirigido por una comunidad de
desarrolladores que trabajan de forma, desinteresada, altruista, libre o apoyados
por organizaciones comerciales. Dicha comunidad es denominada el PGDG
(PostgreSQL Global Development Group).”
(Sarría, 2016).

“PostgreSQL es un sistema de gestión de bases de datos objeto-relacional,


distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el
sistema de gestión de bases de datos de código abierto más potente del mercado
y en sus últimas versiones no tiene nada que envidiarles a otras bases de datos
comerciales.
1.3.3 Características de postgreSQL
Utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para
garantizar la estabilidad del sistema.”
(Lopez, 2013).

“Es el control de concurrencias multiversión; o MVCC por sus siglas en inglés.


Este método agrega una imagen del estado de la base de datos a cada
transacción. Esto nos permite hacer transacciones eventualmente consistentes,
ofreciéndonos grandes ventajas en el rendimiento. Permite que los clientes hagan
búsquedas (sólo de lectura) en los servidores mientras están en modo de
recuperación o espera. De esta manera, podemos hacer tareas de mantenimiento
o recuperación sin bloquear completamente el sistema.”

Después de la investigación realizada de acuerdo al gestor de base de datos


PostgreSQL se define como un sistema gestor para creación de base de datos,
en el cual los datos son controlados de manera ordenada, este gestor es útil en el
proyecto realizado por la facilidad de integrar los datos y hacer uso de ellos sin
afectar la estructura de entidad - relación creando segmentos diferentes,
apoyándonos de los multiprocesos que brinda este gestor.
La utilidad de este gestor en este proyecto es para complementar la tabla que se
define como usuarios en la cual se otorgan diferentes roles, a través de este

15
gestor se permitió duplicar la tabla para lograr la administración de los usuarios
sin afectar la tabla principal creada en Firebird.
1.3.4 Administración de postgreSQL
“PostgreSQL almacena los datos de usuarios, así como también los datos de los
grupos dentro de sus propios catálogos de sistema. De esta manera, cualquier
conexión a PostgreSQL debe ser realizada con un usuario específico, y cualquier
usuario puede pertenecer a uno o más grupos definidos.

La tabla de usuarios en PostgreSQL controla los permisos de acceso y quién está


autorizado a realizar acciones en el sistema, al igual que las acciones puede
realizar. Los grupos existen como un mecanismo para simplificar la ubicación de
estos permisos. Tanto las tablas de usuarios como de grupos existen como
objetos globales de base de datos, por consiguiente, no están agregadas a
ninguna base de datos en particular.”
(Wed, 2015).
1.3.5 Administración de usuarios
Se crean cuentas de usuarios, para poder identificar y autentificar a un individuo
con el sistema. Las cuentas de usuarios tienen diferentes componentes, primero,
está el nombre de usuario. Posteriormente, está la contraseña, seguida de la
información de control de acceso por lo cual en administrar los usuarios podemos
tener información de los clientes frecuentes o cuantos usuarios llegan al día en
dicho establecimiento.
1.4 Framework
La definición de framework se puede tomar como una plataforma de desarrollo
estructurada para conllevar un orden de código, así como para tener una
secuencia ordenada en con los diferentes módulos que se desarrollaran de
acuerdo a la metodología que se utilizara. Es una estructura para una aplicación
completa, o bien sólo se centra en un aspecto de ella. Por lo tanto cuenta con un
marco para el desarrollo completo de una aplicación web o escritorio.

“La palabra inglesa "framework" (infraestructura, armazón, marco) define, en


términos generales, un conjunto estandarizado de conceptos, prácticas y criterios

16
para enfocar un tipo de problemática particular que sirve como referencia, para
enfrentar y resolver nuevos problemas de índole similar. (Mc Graw Hill, 2015)

En el desarrollo de software, un framework o infraestructura digital, es una


estructura conceptual y tecnológica de soporte definido, normalmente con
artefactos o módulos concretos de software, que puede servir de base para la
organización y desarrollo de software. Típicamente, puede incluir soporte
de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas,
para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.

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.”
(Edwards, 2015.)
1.4.1 Características del framework
1.- Evitar escribir código repetitivo
La mayoría de los proyectos tienen partes comunes necesarias para el
funcionamiento como, por ejemplo, acceso a base de datos, validación de
formularios o seguridad. Un framework nos evita tener que programar estas
partes, de esta manera nos resulta más fácil centrarnos en programar la
aplicación.
2.- Utilizar buenas prácticas
Los frameworks están basados en patrones de desarrollo, normalmente MVC
(Modelo-Vista-Controlador) que ayudan a separar los datos y la lógica de negocio
de la interfaz con el usuario. Por lo tanto todo témenos más ordenado.
3.-Permitir hacer cosas avanzadas
Un framework siempre te va permitir hacer cosas de una manera fácil y segura.

4.-Desarrollar más rápido


Si tenemos en cuenta los puntos anteriores, sabremos que desarrollar una
aplicación con un framework nos permite hacerlo más rápido, más limpio y más
seguro.

17
1.4.2 Puntos básicos de framework
No es más que una base de programación que atiende a sus descendientes
(manejado de una forma estructural y/o en cascada), posibilitando cualquier
respuesta ante las necesidades de sus miembros, o en secciones de una
aplicación (Web), satisfaciendo así las necesidades más comunes del
programador.
Modelo
Este miembro del controlador maneja las operaciones lógicas, y de manejo de
información (previamente enviada por su ancestro), para resultar de una forma
explicable y sin titubeos. Cada miembro debe ser meticulosamente llamado, con
su correcto nombre y en principio, con su verdadera naturaleza: el manejo de
información, su complementación directa.
Vista
Al final, a este miembro de la familia le corresponde dibujar, o expresar la última
forma de los datos: la interfaz gráfica que interactúa con el usuario final del
programa (GUI). Después de todo, a este miembro le toca evidenciar la
información obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos
espera demostrar la información.
Controlador
Con este apartado se puede controlar el acceso (incluso todo) a nuestra
aplicación, y esto puede incluir: archivos, scripts, y/o programas; cualquier tipo de
información que permita la interfaz. Así, nuestro contenido de forma dinámica, y
estática (a la vez); pues, solo se puede controlar ciertos aspectos (como se ha
mencionado antes).
Estructura
Dentro del controlador, modelo o vista, se pueden manejar datos, y depende de
cada uno cómo interpretar y manejar esos datos. Se sabe que el único dato de
una dirección estática web es: conseguir un archivo físico en el disco duro o
de Internet, etcétera e interpretado o no, el servidor responde.
El modelo, al igual que el controlador y la vista, maneja todos los datos que se
relacionen consigo (solo es el proceso medio de la separación por capas que
ofrece la arquitectura MVC). Y solo la Vista, puede demostrar dicha información.

18
Con lo cual ya se ha generado la jerarquía de dicho programa: Controlador,
Modelo y Vista.
(Gutierrez, 2012).
1.5 Grails
“Framework para aplicaciones Web libre desarrollado sobre el lenguaje de
programación Groovy (el cual a su vez se basa en la Java platform). Grails
pretende ser un marco de trabajo altamente productivo siguiendo paradigmas
tales como convención sobre configuración o no te repitas (DRY), proporcionando
un entorno de desarrollo estandarizado y ocultando gran parte de los detalles de
configuración al programador. (Latorre, 2013).

Grails ha sido impulsado principalmente por la empresa G2One, la cual fue


adquirida por la desarrolladora de software libre SpringSource en noviembre de
2008. En Agosto de 2009 SpringSource fue a su vez adquirida por VMWare,
empresa especializada en virtualización de sistemas.

Grails fue conocido como 'Groovy on Rails' (el nombre cambió en respuesta a la
petición de David Heinemeier Hansson, fundador de Ruby on Rails). Se inició en
Julio de 2005, con la versión 0.1 29 de Marzo de 2006 y la versión 1.0 anunciada
el 18 de Febrero de 2008. En Diciembre de 2009 se publicó la versión 1.2, y
en Mayo de 2010 la versión 1.3.”
(Latorre, 2013).
1.5.1 Características de Grails
Grails se ha desarrollado con una serie de objetivos en mente:

 Ofrecer un framework para Web y plataformas de escritorio de alta


productividad para la plataforma Java.
 Reutilizar tecnologías Java ya probadas como hibernate y spring bajo una
interfaz simple y consistente.
 Ofrecer un framework consistente que reduzca la confusión y que sea fácil
de aprender.
 Ofrecer documentación para las partes del framework relevantes para sus
usuarios.

19
Proporcionar lo que los usuarios necesitan en áreas que a menudo son complejas
e inconsistentes:
 Framework de persistencia potente y consistente.
 Patrones de visualizaciones potentes y fáciles de usar con GSP. (Groovy
Server Pages).
 Bibliotecas de etiquetas dinámicas para crear fácilmente componentes
Web.
 Buen soporte de Ajax que sea fácil de extender y personalizar.
 Proporcionar aplicaciones ejemplo que muestren la potencia del
framework.
 Proporcionar un entorno de desarrollo orientado a pruebas.
 Proporciona un entorno completo de desarrollo, incluyendo un servidor
Web y recarga automática de recursos.

Grails se ha diseñado para ser fácil de aprender, fácil para desarrollar


aplicaciones y extensible. Intenta ofrecer el equilibrio adecuado entre consistencia
y funcionalidades potentes.
(Brito, 2014).

1.6 Lenguaje de programación


“Un lenguaje de programación es un lenguaje formal diseñado para realizar
procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y
lógico de una máquina, para expresar algoritmos con precisión, o como modo de
comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso
por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se
mantiene el código fuente de un programa informático se le llama programación.”
(Oscar, 2014).

20
1.6.1 Groovy
“Groovy es un lenguaje de programación orientado a objetos implementado sobre
la plataforma Java. Tiene características similares a Python, Ruby, Perl y
Smalltalk.
Groovy usa una sintaxis muy parecida a Java, comparte el mismo modelo de
objetos, de hilos y de seguridad. Desde Groovy se puede acceder directamente a
todas las API existentes en Java. El bytecode generado en el proceso de
compilación es totalmente compatible con el generado por el lenguaje Java para
la Java Virtual Machine (JVM), por tanto puede usarse directamente en cualquier
aplicación Java. Todo lo anterior unido a que la mayor parte de código escrito en
Java es totalmente válida en Groovy hacen que este lenguaje sea de muy fácil
adopción para programadores Java; la curva de aprendizaje se reduce mucho en
comparación con otros lenguajes que generan bytecode para la JVM, tales
como Jython o JRuby. Groovy puede usarse también de manera dinámica como
un lenguaje de scripting.”
(José María, 2014).
1.6.2 Características de Groovy
“El lenguaje Groovy es un superconjunto del lenguaje Java. En general se puede
renombrar un archivo .java en .groovy y va a funcionar (aunque hay algunas
pocas incompatibilidades). Además, Groovy tiene algunas características que no
existen en Java. Esto hace que Groovy sea un paso natural para los
desarrolladores Java, ya que aprender Groovy implica aprender algunos detalles
extra más.

Entre las características que distinguen a Groovy incluyen el tipado estático y


dinámico, closures, sobrecarga de operadores, sintaxis nativa para la
manipulación de listas y maps, soporte nativo para expresiones regulares,
iteración polimórfica, expresiones embebidas dentro de strings.”
(Jalón, 2012) .
1.6.3 Sintaxis de Groovy
La sintaxis de Groovy es una especie de código Java minimalista, eliminando la
mayor parte del código "innecesario" (por innecesario se refiere al código que no
es estrictamente necesario para ejecutar la acción que deseamos). Esto, que a

21
priori podría parecer una dificultad, haciendo pensar que aprender un nuevo
lenguaje, casi todo el código Java puede ser compilado con Groovy. De esta
manera, se puede introducir en Groovy poco a poco, utilizando su sintaxis de Java
el resto del tiempo. Esto es válido en una misma clase o método, de manera que
la curva de aprendizaje del lenguaje es muy suave.

1.6.4 Scripts en Groovy


Existen diversas maneras de ejecutar código Groovy. Esta consola funciona en
modo gráfico y permite opciones más potentes que el shell, como guardar y
cargar archivos, opciones de edición de texto, etc. Groovy importa por defecto
varios paquetes y clases, de manera que pueden ser utilizados inmediatamente
sin necesidad de escribir sus correspondientes sentencias import. Dichos
paquetes y clases son:
 groovy.lang
 groovy.util
 java.lang
 java.util
 java.net
 java.io
 java.math.BigInteger
 java.math.BigDecimal
(Nelson, 2014).
1.7 Intellij IDEA
Es un entorno de desarrollo Java creado por Jet Brains del que existen dos
distribuciones: Comunity Edition (open source) y Ultimate (comercial). Intellij IDEA
Comunity Edition (es de pago).
Sus creadores definen este IDE como el más inteligente del mundo. La mayoría
de gente que lo prueba lo define como el mejor entorno de desarrollo Java que
existe. Intellij IDEA en su versión Ultimate (versión comercial) de desarrollo Java
del mundo. (S., 2016).

22
Capitulo II. Descripción del proyecto o actividades de
aportaciones realizadas (métodos y recursos)
2.1 Ingeniería y análisis del sistema
2.1.1 Objetivos del sistema
OBJ – 01 Gestionar los códigos QR y los clientes.
Descripción La aplicación deberá gestionar los códigos QR escaneados por
los clientes. Así como permitir a los clientes darse de alta.
Estabilidad Alta.
Comentarios Los códigos QR contienen la información del número de mesa y
el nombre del mesero a cargo.

OBJ – 02 Gestionar las órdenes.


Descripción El sistema deberá gestionar las órdenes que el cliente da de alta
desde su dispositivo móvil.
Estabilidad Alta.
Comentarios Ninguno.

2.1.2 Requisitos de almacenamiento de la información

RI – 01 Información sobre clientes


Objetivos asociados OBJ - 01 Gestionar los códigos QR y los clientes

RF 0 - 1 escaneo de QR.
Requisitos asociados RF 0 - 2 Autenticación del cliente.
RF 0 - 3 Alta de cliente.

La aplicación se iniciará escaneando el código QR


que contiene la mesa a ocupar, después debe
Descripción
permitir almacenar los números telefónicos de los
clientes que se registran en el inicio de sesión.
Códigos QR.
Datos específicos
Número de teléfono móvil.

23
Intervalo temporal Pasado y presente
Estabilidad Alta.
Comentarios Ninguno.

RI – 02 Información sobre ordenes


Objetivos asociados OBJ - 02 Gestionar las ordenes
Requisitos asociados RF- 04 Alta de ordenes

RF - 05 Visualizaciones de nota de consumo.


La aplicación almacenara las órdenes dadas de alta
por los clientes y también mostrara al cliente una nota
Descripción
de consumo.
Datos específicos Nombre del platillo o bebida.
La hora del pedido.
Cantidad.
Precio.
Total a pagar.
Intervalo temporal Presente
Estabilidad Alta.
Comentarios Ninguno.

2.1.3 Requisitos funcionales


2.1.4 Casos de uso del subsistema gestión de códigos QR y
clientes

RF - 01 Escaneo de QR.
Objetivos asociados OBJ – 01 Gestionar los códigos QR y
los clientes.
Requisitos asociados RI – 01 Información sobre clientes
Para iniciar la aplicación se tiene que
Descripción
escanear el código QR, la aplicación
debe almacenar el número de mesa y
nombre del mesero, datos que contiene
el código QR.
El usuario no será cliente si solo
Precondición

24
escanea el código QR.
Paso Acción
El cliente escaneara el código
1 QR de la mesa.
Secuencia normal

2 Accede a la primera fase de la


aplicación.

El cliente ya tiene número de mesa y


Postcondición
mesero asignado. Pero aun no puede
ver el menú.
Paso Acción
Si no se escanea el código QR
Excepciones
2 no tiene acceso a la aplicación.
Rendimiento Paso Cuota de tiempo
2 5 segundos
Frecuencia esperada 3 veces al día
Estabilidad Alta
Comentarios El escaneo de código QR es necesario
para iniciar con la aplicación.

RF - 02 Autenticación del cliente


Objetivos asociados OBJ – 01 Gestionar los códigos QR y
los clientes.
Requisitos asociados RI – 01 Información sobre clientes
La aplicación consultara los datos
Descripción
guardados y verificara si el número de
teléfono del cliente existe o no en la
base de datos.
Si el número de teléfono del cliente no
Precondición
se encuentra en la base de datos se le

25
pedirá que realice un registro.
Paso Acción
1 La aplicación solicitara el
número de teléfono del cliente.
Secuencia normal
La aplicación verificara si el
número ya está registrado o no
2 en caso de que no se pedirá
que haga su registro.
Postcondición El cliente no podrá acceder al menú si
su número de teléfono no es
encontrado.
Paso Acción
El cliente no podrá acceder al
Excepciones
menú si intenta ingresar un
2 número incorrecto. A
continuación, este caso de uso
termina.
Rendimiento Paso Cuota de tiempo
2 5 segundos
Frecuencia esperada 3 veces al día
Estabilidad Alta
Comentarios Un cliente puede utilizar la aplicación
las veces que él lo requiera.

RF - 03 Alta de cliente
Objetivos asociados OBJ – 01 Gestionar los códigos QR y
los clientes.
Requisitos asociados RI – 01 Información sobre clientes
Para que el cliente tenga acceso al
Descripción
menú de la aplicación necesitará
registrarse con su número de teléfono,
en el cual por seguridad se le enviara
una contraseña de acceso.

26
El cliente podrá darse de alta solo si
Precondición
ingresa su número de teléfono correcto,
ya que la aplicación le enviará una
contraseña para que pueda realizar su
registro.
Paso Acción
1 La aplicación solicitara el
número de teléfono del cliente.
Secuencia normal
2 La aplicación enviara una
contraseña al número
ingresado.
El cliente ingresa la contraseña
para darse de alta y acceder al
3 menú de la aplicación.
Postcondición La contraseña solo se enviará a
clientes que no han sido dados de alta.
Paso Acción
Si el usuario ingresa un
número de teléfono ya
Excepciones
registrado en automático
1 ingresara al menú de la
aplicación. A continuación,
este caso de uso termina.
Rendimiento Paso Cuota de tiempo
2 5 segundos
Frecuencia esperada 1 vez
Estabilidad Alta
Comentarios Un cliente puede utilizar la aplicación
las veces que él lo requiera.

2.1.5 Casos de uso del subsistema gestión de órdenes.


RF - 04 Alta de ordenes
Objetivos asociados OBJ – 02 Gestionar órdenes.

27
Requisitos asociados RI – 02 Información sobre ordenes
La aplicación deberá comportarse tal
Descripción
como se describe en el siguiente caso
de uso, cuando un cliente solicite dar
de alta su orden.
El cliente puede ordenar las veces que
Precondición
lo requiera.
Paso Acción
1 La aplicación mostrara los
apartados de platillos y
Secuencia normal
bebidas
2 El cliente elige un platillo o
bebida
El cliente ingresara la cantidad
de platillos y bebidas que
3 ordenara.

4 El cliente envía su orden.


Postcondición El cliente puede seguir ordenando
después de enviar una orden.
Paso Acción
Si el cliente quiere una orden
especial no la podrá pedir
Excepciones
2 mediante la aplicación. A
continuación, este caso de uso
termina.

4 Si el cliente envió su orden no


la podrá cancelar mediante la
aplicación. A continuación,
este caso de uso termina.

28
Rendimiento Paso Cuota de tiempo
4 5 segundos
Frecuencia esperada 10 vez
Estabilidad Alta
Comentarios Un cliente puede utilizar la aplicación
las veces que él lo requiera.

RF - 05 Visualizaciones de nota de consumo


Objetivos asociados OBJ – 02 Gestionar órdenes.
Requisitos asociados RI – 02 Información sobre ordenes
La aplicación deberá mostrarle al
Descripción
cliente una lista de todo lo consumido.
La nota de consumo ira aumentando
Precondición
dependiendo del consumo del cliente.
Paso Acción
1 El cliente entra al apartado de
ver orden.
Secuencia normal
La aplicación muestra al
usuario su nota de consumo.
2 Enlistado por nombre, hora, la
cantidad de platillos y bebidas,
así como el total a pagar.
Postcondición Los productos enlistados no podrán ser
modificados por el cliente.
Paso Acción
Si el cliente no ha ordenado
nada la nota de consumo
estará vacía. A continuación,
2 termina el caso de uso.
Excepciones

29
Rendimiento Paso Cuota de tiempo
4 5 segundos
Frecuencia esperada 10 vez
Estabilidad Alta
Comentarios Un cliente puede utilizar la aplicación
las veces que él lo requiera.

2.1.6 Diagramas de casos de uso

Diagrama 1. Representación gráfica de los paquetes de casos de uso

30
Diagrama 2. Gestionar los códigos QR y los clientes.

Diagrama 3. Gestionar las órdenes.

31
Diagrama 4. General.

2.1.7 Requerimientos no funcionales


RNF – 01 Rendimiento del sistema
Objetivos asociados OBJ – 02
Requisitos asociados -
Descripcion El sistema debe ser eficiente a la hora de realizar
consultas con el objetivo de tener un alto rendimiento,
así como debe ser capaz de responder al usuario en
menos de 5 segundos y también debe ser capaz de
operar adecuadamente con hasta 5000 usuarios con
sesiones concurrentes.

Comentarios

RNF – 02 interfacez del sistema


Objetivos asociados OBJ- 02
Requisitos asociados -

32
Descripcion El sistema debe tener un diseño sencillo y funcional.

Comentarios

RNF – 03 Actualizaciones del sistema


Objetivos asociados OBJ – 02
Requisitos asociados -
Descripcion El sistema deberá ser actualizado constantemente
para mejorar su funcionamiento.
Comentarios

2.1.8 Matriz de rastreabilidad

OBJ - 01 OBJ – 02 … OBJ – N


RI - 01 
RI - 02 

RF - 01 
RF - 02 
RF - 03 
RF - 04 
RF - 05 

RNF - 01 
RNF - 02 
RNF - 03 

Tabla 1. Matriz de rastreabilidad

33
2.2.1 Diagrama de clases

Diagrama 5. De clases

2.2.2 Base de datos.


Para el control de usuarios y consumo frecuente se agregó una pequeña base de
datos en el gestor PostgreSQL esto con el fin de mejoras en el futuro del sistema
sin perjudicar la base principal.

Tabla 3. Esquema relacional de la base de datos para el control de usuarios.

Hardware de alojamiento de la aplicación

Requisitos de hardware

34
 1 GB de RAM como mínimo, 2 GB de RAM recomendados
 300 MB de espacio en el disco duro + al menos 1 GB para las memorias
caché
 1024x768 resolución mínima de pantalla
 JDK 1.8 desde 2016.1

Windows

 Microsoft Windows 10/8/7 / Vista / 2003 / XP (incl.64-bit)


 Para desarrollar aplicaciones Java con IntelliJ IDEA, instale la versión JDK
de acuerdo con los requisitos de su proyecto.

Mac

 macOS 10.5 o superior.


 Solo macOS de 64 bits son compatibles.
 Para desarrollar aplicaciones Java con IntelliJ IDEA, instalar la versión JDK
de acuerdo con los requisitos de su proyecto.

Diagrama 6. Arquitectura modelo, vista, controlador.

35
2.3.1 Diseño
El diseño del Software se enfoca en cuatro atributos distintos del programa: la
estructura de los datos, la arquitectura del Software, el detalle procedimental y la
caracterización de la interfaz. El proceso de diseño traduce los requisitos en una
representación del Software con la calidad requerida antes de que comience la
codificación.
En este apartado se da inicio con el diseño de interfaces para el sistema de Bares
y Restaurantes, por lo que a continuación se muestra cada una con su respectiva
descripción.
2.3.2 Prototipos
Figura 1. Prototipo que muestra los componentes que contendrá la interfaz inicial
donde se iniciará con el escaneo de los códigos QR de las mesas.

Prototipo 1. Escaneo QR

Figura 2. Prototipo de la interfaz de autenticación con sus campos y botones que


contendrá.

36
Prototipo 2. Autenticación

Figura 3. Prototipo de la interfaz donde se dará la opción de registrarse o cambiar

el numero en caso de una equivocación.

Prototipo 3. Registrarse o cambiar el número

Figura 4. Prototipo de la interfaz para dar de alta al usuario y campos que tendrá
que rellenar.

37
Prototipo 4. Alta al usuario

Figura 5. Prototipo de la interfaz de los departamentos que contendrá la aplicación


estos representados por medio de imágenes.

Prototipo 5. Departamentos

Figura 6. Prototipo de la interfaz que se mostrara cuando el usuario pulse algún


departamento mostrando el nombre del producto y su precio.

38
Prototipo 6. Nombre del producto

Figura 7. Prototipo de la interfaz que se mostrara cuando el usuario pulse sobre la


imagen del producto que desea ordenar permitiéndole introducir la cantidad del
producto a ordenar antes de enviar su orden.

Prototipo 7. Cantidad del producto a ordenar

39
Figura 8. Prototipo de la interfaz que se mostrara cuando el usuario requiera ver
su orden mostrándole el nombre de los productos que ordeno, la hora del pedido,
la cantidad, el precio y el total a pagar.

Prototipo 8. Lista de órdenes

Figura 9. Prototipo de los botones de fácil navegación, regresar, ver orden y salir.

Prototipo 9. Botones, regresar, ver orden y salir.

40
2.3.3 Diseño de interfaces
Figura 1. Diseño donde se validará el código QR de las mesas de los bares o
restaurantes, este código contendrá el número de mesa y área donde se
encuentra al igual que el nombre del mesero que llevará la orden.

Figura 1 . Validación del escaneo QR

Figura 2. Diseño donde se validará el número de teléfono del usuario para


posteriormente ingresar al sistema.

Figura 2. Registro de número

41
Figura 3. Diseño donde se mostrará una petición de registro para los usuarios que
no se encuentran dados de alta.

Figura 3. Registró de usuario

Figura 4. Diseño de los campos que tendrá que rellenar el usuario para realizar su
registro.

Figura 4. Validación del usuario

42
Figura 5. Diseño que muestra el ingreso a la carta de presentación del bar o
restaurante, el usuario puede pulsar sobre la imagen para entrar a cada
departamento.

Figura 5. Carta de presentación de comidas y bebidas

Figura 6. Diseño muestra la navegación dentro del departamento de comidas,


esto se hace pulsando sobre la imagen.

Figura 6. Platillos de comidas

43
Figura 7. Diseño que muestra la selección del platillo y la cantidad de órdenes que
se elegirán, al enviar el pedido retornara al departamento seleccionado.

Figura 7. Cantidad de producto

Figura 8. Diseño que muestra el departamento de bebidas de igual manera el


usuario puede pulsar para seleccionar.

Figura 8. Departamento de bebidas

44
Figura 9. Diseño que muestra al igual que la selección de comidas el usuario
puede introducir la cantidad de bebidas a pedir.

Figura 9. Selección de producto de bebidas

Figura 10. Diseño que muestra la acción después de pulsar el botón de ver orden
se muestra la lista de productos ordenados por el usuario, mostrado de manera
ordenada con la hora del pedido, cantidad de cada producto y el total a pagar.

Figura 10. Lista de productos comprados

45
Figura 11. Se muestra el diseño de los botones para salir del sistema siempre y
cuando el usuario ya haya realizado su pago al igual que un botón para regreso y
ver la orden del usuario.

Figura 11. Cierre de sesión.

46
Capitulo III. Resultados.
3.1 Pruebas

Caso de prueba escaneo de QR.


Paso Resultado esperado Resultado real
1) Escanear el Con la información del
código QR de la código Qr. El usuario ya
mesa. cuenta con una mesa
enumerada y mesero que Ok
lo atenderá.
2) Accede a la Se debe mostrar la
primera fase de la interfaz del login.
aplicación

Caso de prueba autenticación del cliente


Paso Resultado esperado Resultado real
1) Ingresar el
número de
teléfono del
Ok
cliente
2) Hacer clic en el Se debe mostrar una
botón notificación donde se le
Ok
“identificate”. hace saber al usuario que
su número no está en la
base de datos.
Caso de prueba alta de cliente
Paso Resultado esperado Resultado real
1) Ingresar el
número de
teléfono del Ok
cliente.

47
2) Clic en el botón El usuario debe recibir un
registrase. mensaje con la
contraseña de acceso. Ok
3) Ingresar la
contraseña de
acceso. Ok
4) Clic en el botón Se debe mostrar la
identifícate. interfaz de los productos
ofrecidos por la
aplicación.

Caso de prueba alta ordenes


Paso Resultado esperado Resultado real
1) Clic sobre una Se debe mostrar un
imagen para campo de texto para Ok
ordenar. poner la cantidad a pedir.
2) Ingresar la
cantidad del
producto a Ok
ordenar.
3) Clic en el botón Se debe guardar en una
enviar. lista. Ok
Caso de prueba visualizaciones de nota de consumo
Paso Resultado esperado Resultado real
1) Clic en el botón Se debe mostrar la lista
ver orden. de productos que el
usuario ha ordenado.

48
2) Clic en el botón Se debe cerrar la nota de
cerrar consumo y el usuario Ok
puede seguir ordenando
lo que quiera.
Tabla 4. Pruebas

49
3.2 Implementación

3.2.1 Inicio de sesión en la aplicación


Para inicializar la aplicación los usuarios deben tener un lector de códigos QR en
sus dispositivos, estos lectores están disponibles en cualquier tienda de
aplicaciones online en Play Store en caso de Android y en App Store en caso de
IOS. Contando con algún lector de QR el usuario ya puede escanear el código
que estará puesto en las mesas, como se muestra en la ilustración 1. Este Código
contendrá la información del número de la mesa y el mesero que será el
encargado de llevar la orden.

Ilustración 1. Escaneo de QR.

Una vez escaneado el código QR de la mesa en automático lo enviará a la URL


de la aplicación donde se le solicita un inicio de sesión. Para iniciar sesión el
usuario debe ingresar su número de teléfono. Como se muestra en la ilustración
2.

50
Ilustración 2. Inicio de sesión.

En caso de que sea la primera vez que se utiliza la aplicación el usuario debe
registrarse para ello debe ingresar su número telefónico, en caso de que ocurra
un error en el registro podrá cambiar el número, como se muestra en la ilustración
3.

Ilustración 3. Mensaje de registro.

51
Si el registro fue exitoso el usuario recibe un mensaje de texto con una
contraseña de 4 dígitos. Como se muestra en la ilustración 4.

Ilustración 4. Mensaje con la contraseña.

Una vez que el mensaje fue enviado aparece un mensaje indicándole que la
contraseña fue enviada y que ya puede iniciar sesión para validar la cuenta, como
se muestra en la ilustración 5.

52
Ilustración 5. Registro para iniciar sesión.

3.2.2 Selección de productos y cerrar sesión


Una vez iniciada la sesión se muestra el menú con las respectivas categorías que
se manejan en la aplicación ilustración 6.

Ilustración 6. Categorías de comidas y bebidas

53
El usuario podrá seleccionar cualquier categoría con solo pulsar en la imagen la
cual muestra los productos contenidos en esa categoría como se muestra en la
ilustración 7.

Ilustración 7. Productos que contiene la categoría cocina.

Para ordenar un producto se pulsa en la imagen la cual muestra un cuadro de


dialogo en la que usuario puede seleccionar la cantidad del producto que desea
ordenar. Como se muestra en la ilustración 8.

54
Ilustración 8. Cuadro de dialogo para enviar la orden.

Una vez que el usuario haya hecho su orden se le podrá mostrar una lista con los
productos que ha ordenado con la respectiva sumatoria de su consumo. Como se
muestra en la ilustración 9.

Ilustración 9. Lista de productos ordenados.

55
La aplicación cuenta con un botón para cerrar la sesión que se encuentra en la
parte superior derecha, así como un botón regresar para facilitar el manejo y el
respectivo botón para mostrar la orden (ilustración 10). Una vez cerrando sesión
regresara al Login.

Ilustración 10. Botones para regresar, ver orden y salir.

56
Capitulo IV. Conclusiones.
4.1 Conclusiones
La implementación de la “La APLICACIÓN MÓVIL PARA ÓRDENES DE
SERVICIO DE BARES Y RESTAURANTES se realizó en la empresa Visorus Soft
Factory, con la finalidad de aumentar las ventas del sistema ResBar con el nuevo
módulo móvil agregado, también para brindar a sus un clientes un sistema más
completo para que ellos mismos ofrezcan en sus establecimientos un mejor
servicio a través del módulo de ordenes agregado al sistema se podrán realizar
ordenes desde un dispositivo móvil, además de llevar el control a través de una
nota de consumo que los usuarios pueden ver.
Los alcances de la aplicación es llevar una buena administración al
establecimiento, para que cada uno de los trabajadores cuente con un rol
especifico y así brindar mejor atención al cliente, tomando en cuenta la rapidez de
atención al cliente, en dado caso que el usuario no tenga conocimiento de la
aplicación o no quiera acceder al sistema un mesero podrá pedir su orden
(también cuando sea una orden especial) ya que los platillos y bebidas estarán
especificadas en el menú que se mostrara a través del dispositivo, cuando el
usuario requiera de otros servicios extras como agregar algún producto a los
platillos o bebidas estará un mesero a su disposición para evitar mal servicio.
Cuando sea la primera vez en registrarse, abra un mesero destinado en el cual
podrá ayudar al cliente a registrarse y pedir su orden además de enseñarle su
funcionamiento.

El desarrollo de la aplicación móvil se realizó utilizando las herramientas IntelliJ


IDEA, Groovy and Grails, así como los gestores de base de datos Firebird y
PostgreSQL que fueron herramientas fundamentales para el desarrollo de la
aplicación.

57
Bibliografía
Address, L. J. (2012). Framework. New York: Pantheon.
Adolfo. (2013). Metodologias Scrum. Mexico: IEE.
Anderson, D. (abril de 2014). Desarrollo Ágil con Kanban. Barcelona: Consultora
TI .
Banchero, S. (Septiembre 2015). Bases de Datos Masivas. España: Primera
Editorial.
Beck, K. (Marzo del 2014). Ingeniería de Software. En K. Beck, Ingeniería de
Software (págs. 5-8-13 ). España: Barinas.
Carlos-vialfa. (8 de marzo de 2017). BASE DE DATOS. España.
Cataldi, Z. L. (2015). Ciclos de Vida y Metodologías. Mexico: 3.ª Edición.
David, A. (enero de 2014). Metodologia Kanban. En A. David, Agile Management
for Software Engineering (págs. 12-15,17-20). Mexico: Engineering.
Dmitry Filippov, D. K. (11 August 2016). Language Reference. Rusia: Editor's note
:: The sky is falling, take cover.
Edwards, S. (Febrero 2, 2015.). Framework. New York: portal: Libraries and the
Academy.
Ferreyra , C. G. (2015). Software. México: Ed. Alfaomega.
Fuentes, D. M. (. 2013). BASES DE DATOS. MÉXICO, D.F: Primera edición 2013.
Fuentes, D. M. (2013). BASES DE DATOS. MÉXICO, D.F.: Primera edición 2013.
Grady, , R. (1990). El desarrollo del software. Mexico: IEEE Software.
Jalón, J. G. (2012/13). Groovy. España: Struts. 2ºEdición.
Journal, C. I. (Agosto/25/2015). Requirements Engineering and Management”.
España: Cutter Consortium.
Latorre, D. (2013). Manual de desarrollo web con Grails. Los Angeles: Second
Edition.
Lopez, L. (marzo de 2012). Que es la ingenieria software. España: Segunda
Edicion.
Lopez, M. (2013). Metodologia Agil. Mexico: Segunda Ediccion.
Lopez, R. (02/10/2013). Sobre PostgreSQL. Mexico: segunda Ediccion.
Luna, C. (Enero 2015). Qué es PostgreSQL. Mexico: enciclopedia.
Mc Graw Hill. (2015). Aplicaciones Web. España: Editorial Mc Graw Hill.

58
Miguel, M. R. (4/07/2015). LA INGENIERÍA DELSOFTWARE. Madrid (España):
INTERAMERICANA EDITORES S,A DE CV.
Nelson. (2014). Goovy. España: Primera.
Palacios, A. (2013). Ingeniería del software. Mexico: Gestión Pública Facultad
Derecho. UMU.
Patricia, C. R. (2013). Metodologia Iconix. España: 3.ª Edición.
PostgreSQL. (24 de agosto de 2015). Mexico.
Retrieved. (2014). Modos de Software. España: Segunda Ediccion.
Robson. (2015). Metoologias . En Robson, Metodologias (págs. 12-19). USA: SAP
Implementations.
Rodríguez, M. A. (2016). IntelliJ IDEA. España: segunda Editorial.
Rosenberg, D. (2016). ICONIX. En D. Rosenberg, Metodologia (págs. 19-30).
España: Addison Wesley.
Rumbaugh., J. ( 9 oct 2017 ). El Proceso Unificado de Desarrollo de Software.
Mexico: 3.ª Edición.
S., D. (2016-02-15). IntelliJ IDEA. España: IntelliJ IDEA Editions Comparison.
Sarría, F. A. (Enero 2015). Programación con PostgreSQL. Mexico: 4 Editorial.
Silverio, N. (2015). La socialización de la web. España: Universidad de la Habana.
Silverio, N. (2015). La socialización de Software. España: Universidad de la
Habana.
Soteldo, O. (2015). Tipos de Software. TAIPÉI, TAIWAN: ERP.
Valdés, D. P. (octubre 26 2012). ¿Qué son las bases de datos? California, USA:
segunda Ediccion.
Vinkenoog, P. (25 April 2016). Firebird 3 Quick Start Guide. Brasil : Primera
Editorial.
Wall, L. (. (2014). ibro del camello. España: Programming Perl.
Wed, P. o. (12 de Agosto de 2015). El valor de la gestión de datos. Recuperado el
5 de 12 de 2016, de El valor de la gestión de datos:
http://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/406547/tipos-y-
funci-n-de-los-gestores-de-bases-de-datos
Zafón, C. R. (2015). SQL Firebird. ITALIA: JILANI KHALDI.

59
Anexos
Anexo 1. Diccionario de datos
maedep
Columna Tipo Nul Predetermin Enlaces a Comentari MIME
o ado res_maecomanda -> os
NUMDEP varchar(3) No
FOLIO
NOMDEP varchar(4 No
ORDDEP varchar(1
0) No
COCDEP varchar(1
0) No
COZDEP varchar(1
5) No
VTCDEP varchar(1
5) No
VTZDEP varchar(1
5) No
COSTOS_FIJOS double
5) No
INVERSION_MAXI double No
CCCOMC
MA varchar(1 No
CCCOMCR varchar(1
5) No
CCDEVC varchar(1
5) No
CCDEVCR varchar(1
5) No
CCVENC varchar(1
5) No
CCVENCR varchar(1
5) No
CCCOSVEN varchar(1
5) No
CCDECC varchar(1
5) No
CCDECCR varchar(1
5) No
TOPE double
5) No
ACUMILATIVO int(11) No
REPLICA varchar(1) No

Índices
Nombre de la Tipo Únic Empaquetad Column Cardinalida Cotejamient Nul Co
clave o o a d o o me
PRIMARY BTRE Sí No NUMDE 0 A No nta
E P rio

Precios
Columna Tipo Nulo Predetermina Enlac Comentari MI
NUMPRECIO int(11) No do maedep ->es
NUMDEP
a os ME
FGPRE varchar(70 No
)

60
PRECIO double No res_produart ->
CONDPRE char(70) No CVEPRODU
DES1PRE double No
DES2PRE double No
DES3PRE double No
DES4PRE double No
DES5PRE double No
NUMCONDICIO int(11) No
N
NUMFORMULA int(11) No

Índices
Nombre
Tipo Únic Empaqueta Columna Cardinalida Cotejamient Nul Come
de la
o do d o o ntario
clave
PRIMARY BTREE Sí No NUMPRE 0 A No
CIO
res_maearea
Columna Tipo Nulo Predetermina Enlac Comentarios MIM
CVEARE varchar(3) Sí NULL
do res_mesperes->aIDMP E
A
NOMARE varchar(40 Sí NULL maedep -> NUMDEP
A )

res_maeasigmes
Column Tipo Nulo Predetermina Enlac Comentario MIM
NUMAG
a varchar(8) Sí NULL
do res_maeasigpro
es a-> IDPROM s E
T
IDME int(11) Sí NULL

res_maeasigpri
Column Tipo Nulo Predetermina Enlaces a Comentarios MIM
a do E
NUMPR int(11) Sí NULL res_mesper ->
I IDMP
NOMPR varchar(30 Sí NULL
I )

res_maeasigpro

61
Columna Tipo Nulo Predetermina Enlac Comentari MIM
do es a os E
IDPROM int(11) No 0 res_tipser -> CVETIP
FECHAINICI Date No
O
FECHAFINA Date No
L
HORAINICIO Time No

HORAFINAL Time No

NUMART varchar(18 Sí NULL


)
CANMIN int(11) Sí NULL

CVETIP varchar(3) Sí NULL

res_maecomanda ->
DESPROM varchar(20 No
PUNTOVENTA
0)

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Coment
clave o do a d to o ario
PRIMARY BTRE Sí No IDPRO 0 A No
E M

res_maeasigprodtm
Columna Tipo Nulo Predetermina Comentarios MI
do M
IDPROM int(11) No 0 E
NUMART varchar(18 Sí NULL
)
CANTIDA int(11) No
D

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Coment
clave o do a d to o ario

62
PRIMARY BTRE Sí No IDPRO 0 A No
E M

res_maeasigrep
Columna Tipo Nul Predetermina Enlaces a Comentario MIME
NUMAGT varchar(1 Sí
o NULL
do res_mesper -> IDMP s
FOLIO varchar(1
0) Sí NULL
FECHA Date
0) Sí NULL
HORA_SALIDA Time No
HORA_LLEGAD Time No
A

res_maecomanda
Columna Tipo Nul Predetermina Comentarios MIM
o do E
FOLIO varchar(1 Sí NULL
FECHA Date
0) Sí NULL
NUMPRI int(11) Sí NULL
CVETIP varchar(3) Sí NULL
PUNTOVEN varchar(3) No
COMTER
TA int(3) Sí NULL
NUMCTE varchar(1 Sí NULL
CVEAREA varchar(3)
8) Sí NULL
HORA Time Sí NULL
COMPOR int(12) Sí NULL
IMPRESO int(11) Sí NULL

Índices
Nombre
Tipo Únic Empaqueta Columna Cardinalid Cotejamie Nul Comenta
de la
o do ad nto o rio
clave
PRIMARY BTRE Sí No PUNTOVEN 0 A No
FOLIO E
BTRE No No TA
FOLIO 0 A Sí
E
PUNTOVEN BTRE No No PUNTOVEN 0 A No
TA E TA

res_maecomandtm

63
Columna Tip Nul Predetermina Enla Comentari MIME
o o do ces a os
res_maecomanda ->
ID int(11) No 0
PUNTOVENTA
FOLIO varchar(10) Sí NULL
FECHA Date Sí NULL
NUMART varchar(18) Sí NULL

NOMART varchar(70) Sí NULL


CVEPRODU varchar(3) Sí NULL
CANTIDAD decimal(16, Sí NULL
PRECIO decimal(16,
0) Sí NULL
DEVUELTO int(11)
0) Sí NULL
ESTADO int(11) Sí NULL
OBSERVACI varchar(40 No
ON 0)
DEL int(11) Sí NULL
IDPADRE int(11) No
ID2 int(11) Sí NULL
HORA Time No
DESCUENTO decimal(16, Sí NULL
IDSEPARAD varchar(10)
0) Sí NULL
OR
LIBERADO int(11) Sí NULL
SALDO decimal(16, Sí NULL
0)

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalid Cotejamien Nul Comentar
clave o do a ad to o io
PRIMARY BTRE Sí No ID 0 A No
E

res_maeprodu
Columna Tipo Nul Predetermina Enlac Comentario MIME
o
CVEPROD varchar(3) Sí do
NULL res_ticket es a
-> CLAVET s

64
NOMPROD varchar(40 Sí NULL
U )
IMPRESO varchar(25 No
RA 0)

res_maepvocu
Column Tipo Nul Predetermina Coment MI
a o do arios ME
NUMPV varchar(4) No

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalid Cotejamien Nul Comentar
clave o do a ad to o io
PRIMARY BTRE Sí No NUMP 0 A No
E V

res_maerecope
Column Tipo Nul Predetermin Comentarios MIM
a o ado E
IDREGOP float No 0
E
FOLIO varchar(1 Sí NULL
0)

FECHA date Sí NULL


NUMAGT varchar(1 Sí NULL
0)

Índices
Nombre
Tipo Únic Empaqueta Columna Cardinalid Cotejamie Nul Comentar
de la
o do ad nto o io
clave
PRIMARY BTRE Sí No IDREGO 0 A No
E PE
res_maeregfol
Columna Tipo Nul Predetermin Enlac Comentario MIME
o ado es a s

65
IDFOL int(11) Sí NULL
NUMAGT varchar(1 Sí NULL
FOLIO_INI 0)
int(11) Sí NULL precios -> NUMPRECIO
FOLIO_FIN int(11) Sí NULL
FOLIO_NU int(11) Sí NULL
M
NUM_PV varchar(3) No
FECHA_ASI Date Sí NULL
G
TERMINAD int(11) Sí NULL
A
INDICE int(11) Sí NULL

res_maeregopedtm
Column Tipo Nul Predetermin Enla Comentari MIME
a o ado ces os
IDREGOP float Sí NULL a
res_serres -> FOLIO
E
CANTIDA float Sí NULL res_maecomanda ->
D PUNTOVENTA
NUMART varchar(1 Sí NULL
8)
CVEPROD varchar(1 Sí NULL
U 0)
HORA_INI time Sí NULL
HORA_FI time Sí NULL
N
res_mesa
Columna Tipo Nul Predetermina Enlac Comentar MIME
CLAVEME varchar(5) Sí
o NULL
do res_mesper
es ->
a IDMP ios
IMAGMES
S varchar(25 No
IDME
A int(11)
5) Sí NULL
CVEAREA varchar(3) Sí NULL
DEL int(11) Sí NULL

res_mesper
Columna Tipo Nul Predetermina Comentarios M
IDMP int(11) No
o 0
do I
M
E66
IDMESA int(11) Sí NULL
FECHA Date Sí NULL
HORAI Time No
HORAF Time No
TERMINAD smallint(6) No
NUMPER
A int(11) No
EXTRA int(1 S NUL
S 6) í L

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalid Cotejamien Nul Coment
clave o do a ad to o ario
PRIMARY BTRE Sí No IDMP 0 A No
E

res_mesperdtm
Columna Tipo Nul Predetermina Enlac Comentar MIM
IDMP int(11)

o NULL
do res_mesper
es->
a IDMP ios E
COMENSA varchar(2 No
LIBERADO
L smallint(6)
5) Sí NULL

res_mod
Columna Tipo Nul Predetermina Enlac Comentario MIM
o do es a s E
NUMART varchar(1 Sí NULL res_tipserdet -> CVETIP
8)
NUMARTMO varchar(1 Sí NULL res_maepvocu -> NUMPV
D 8)
CVEGPO varchar(3) Sí NULL

FLGMOD varchar(1 Sí NULL


0)

res_produart
Columna Tipo Nul Predetermina Enlac Comentario MIM
o do es a s E
CVEPROD varchar( No res_maecomanda -> FOLIO
U 3)
NUMART varchar(1 Sí NULL
8)

67
Índices
Nombre
Tipo Únic Empaqueta Columna Cardinalid Cotejamien Nul Comen
de la
o do ad to o tario
clave
PRIMARY BTRE Sí No CVEPROD 0 A No
E U
CVEPRODU BTRE No No CVEPROD 0 A No
E U
res_promarea
Column Tipo Nul Predetermina Enla Comentari MIM
a o do ces a os E
IDPROM int(11) Sí NULL res_maerecope ->
CVEARE varchar(3) Sí NULL IDREGOPE
A

res_serdom
Columna Tipo Nul Predetermina Enlaces a Comentari MI
FOLIO varchar(10 Sí
o NULL
do res_maeasigprodtm -> os ME
) IDPROM
FECHA Date Sí NULL
HORAACTUAL Time Sí NULL
HORAENTRE Time Sí NULL
GA
REPAR varchar(5) Sí NULL
TIDOR
OBSERVACIO varchar(10 No
N 0)
SERVIDORSA varchar(5) Sí NULL
COMASIG
D int(11) Sí NULL

res_serres
Column Tipo Nul Predetermina Comentarios M
a o do I
FOLIO varchar(1 No M
FECHA 0)
date Sí NULL E
SERVIDO varchar(5) Sí NULL
R
IDMP int(11) Sí NULL

68
Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Coment
clave o do a d to o ario
PRIMARY BTRE Sí No FOLIO 0 A No
E

res_ticket
Column Tipo Nulo Predetermina Enlac Comentari MIM
a do es a os E

CLAVET int(11) No 0 precios -> NUMPRECIO


LEYEND varchar(10 No
A 0)

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Coment
clave o do a d to o ario
PRIMARY BTRE Sí No CLAVE 0 A No
E T

res_tipser
Column Tipo Nulo Predetermina Coment MI
a do arios M
CVETIP varchar( No E
3)
DESTIP varchar(3 Sí NULL
0)

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Coment
clave o do a d to o ario
PRIMARY BTRE Sí No CVETI 0 A No
E P

res_tipserdet
Column Tipo Nulo Predetermina Enlaces a Comentarios MIM
a do E
CVETIP varchar( No res_var -> VARNAME
3)

69
TIPBUS varchar(3 Sí NULL
0)

Índices
Nombre de la Tipo Únic Empaqueta Column Cardinalida Cotejamien Nul Comenta
clave o do a d to o rio
PRIMARY BTRE Sí No CVETI 0 A No
E P

res_var
Column Tipo Nul Predetermina Comentarios MI
a o do ME
VARNAM varchar(50 No
E )
VARVAL varchar(30 Sí NULL
0)

Índices
Nombre
Tipo Únic Empaquetad Columna Cardinalid Cotejamien Nul Coment
de la
o o ad to o ario
clav
e
PRIMARY BTREE Sí No VARNAM 0 A No
E

70
Anexo 2. Glosario de términos
RDBMS: Sistema de gestión de bases de datos relacionales.
ODBC: Open DataBase Conectivity es un estándar de acceso a las bases de
datos desarrollado por SQL.
OLEDB: “Enlace e incrustación de objetos para bases de datos” es una
tecnología desarrollada por Microsoft usada para tener acceso a diferentes
fuentes de información, o bases de datos, de manera uniforme.
JDBC: Es usado para enviar comandos SQL hacia una base de datos relacional.
BSD: Es un derivado de Unix. Es un sistema operativo robusto que ha dado lugar
a una gran cantidad de derivados como OpenBSD.
MIT: Es un tipo de licencia de Software que se originan en el Instituto Tecnológico
de Massachusetts.
ACID: (Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia,
Aislamiento y Durabilidad) tienen la característica de los parámetros que permiten
clasificar las transacciones de los sistemas de gestión de base de datos.
BACKUPS: Es una copia y archivo de datos de la computadora de modo se
puede utilizar para restaurar la información original después de una eventual
pérdida de datos.
MVCC: (Acceso concurrente multiversión, por sus siglas en inglés) es una técnica
avanzada para mejorar las prestaciones de una base de datos en un entorno
multiusuario.
COMMIT: Se refiere a la idea de consignar un conjunto de cambios tentativos de
forma permanente. Un uso popular es al final de una transacción de base de
datos.
TRIGGERS: Son las operaciones de inserción, borrado o actualización ya que
modifican los da tos de una tabla.
DBMS: Son un tipo de Software muy específico, dedicado a server de interfaz
entre la base de datos, el usuario y las aplicaciones que la utilizan.
URL: Es una sigla del idioma inglés correspondiente a Uniform Resource Locator
(Localizador Uniforme de Recursos). Se trata de la secuencia de caracteres que
sigue un estándar y que permite denominar recursos dentro del entorno de
internet para que puedan ser localizados.
GUI: Es una interfaz de usuario grafica para una computadora.

71
MVC: Es un estilo que arquitectura de Software que separa los datos de una
aplicación, la interfaz de usuario, y la lógica de control en tres componentes
distintos.
SCRIPT: Archivo de órdenes, archivo de procesamiento por lotes o, cada vez más
aceptado en círculos profesionales y académicos, guion es un programa usual
simple, que por lo regular se amacena en un archivo de texto plano.
VMWare: Empresa especializada en virtualización de sistemas.
GSP: (Groovy Server Pages) es un Sistema formal de exención de las normas
más generales de la organización mundial del comercio.
ContaPyme: (Sistema de gestión empresarial y contable para PYMES) es una
aplicación de computador especialmente diseñada para proveer información al
empresario sobre su empresa, sus actividades y sus recursos. Maneja en forma
integrada las más importantes áreas de datos de gestión de la empresa, como
contabilidad, presupuestos, cartera, activos fijos e inventarios y muchos módulos
que gradualmente se van adicionado al sistema.
AgroWin: Es un sistema especialmente diseñado para ayudarle al empresario en
la gestión, planeación y seguimiento de la empresa y sus recursos.
Adicionalmente, le permite la disminución de los costos, el mejoramiento de los
ingresos y el aumento de las utilidades.
JVM: (Java Virtual Machine) es una máquina virtual de proceso nativo, es decir
ejecutable en una plataforma específica, capaz de interpretar y ejecutar
instrucciones expresadas en código binario.
BYTECODE: Es el tipo de instrucciones que la máquina virtual Java espera
recibir, para posteriormente ser compiladas a lenguaje de máquina.
MAVEN: Es una herramienta de Software para la gestión y construcción de
proyectos Java.
TOMCAT: Es un contenedor Web con soporte de servlets y JSPs. No es un
servidor de aplicaciones, como JBoss o JOnAS.
SPRING: Es un Framework para el desarrollo de aplicaciones y contenedor de
inversión de control de código abierto para la plataforma Java.
FreeBSD: Es un avanzado Sistema operativo para arquitectura.

72

Potrebbero piacerti anche