Software Web para Restaurantes
Software Web para Restaurantes
Quiero agradecer a mi familia por el apoyo durante todo el tiempo que me acompañaron
en esta etapa de mi vida, a mis tíos por su ayuda y hospitalidad en estos años. Agradecer
amigos y docentes que me ayudaron el crecimiento profesional, especialmente a Paola
Agudelo, que sus regaños constantes levantaban mis ánimos. A mi amiga Alejandra Parra
que fue la mejor compañía de todos estos años. A mi compañero Nelson Escobar, por
toda lo que aprendí a su lado, su conocimiento tan amplio aun me sorprende cada día y a
Bryan Moreno con el que disfrute muchos pasos adentro y fuera del campus. En especial
agradecimiento a Julián Patiño mi compañero de proyecto de grado, un gusto culminar
esta etapa juntos y espero que tenga una buena vida ingeniero y al ingeniero Carlos
Alberto Ocampo que nos asesoró y acompaño en la construcción del proyecto. La verdad
tengo muchas personas que agradecer por tantos momentos de alegrías y tristezas, y
aunque es muy grande la lista agradezco a todos aquellos futuros ingenieros con los que
compartí mi etapa universitaria. Mis primos Daniela, Camila, Nathalia, Sofía, Nicolás y
mi ahijada Salome que han sido mi fuente de motivación cada día. Llegue aquí derrotado
por mis pensamientos y me voy como el ganador que mis padres han luchado toda su
vida, desde el primer día que partí de casa ellos han estado pendientes de mí y nunca falto
una llamada desde lejos, gracias a mis padres y sobre todo mi viejo que espero este
momento como un sueño propio. Lo logre papá.
Luis Alfonso Zuleta Giraldo.
1. INTRODUCCIÓN ............................................................................................. 1
2. CAPÍTULO I – GENERALIDADES ................................................................... 2
2.1. PLANTEAMIENTO DEL PROBLEMA ............................................................ 2
3. JUSTIFICACIÓN .............................................................................................. 4
4. OBJETIVOS ..................................................................................................... 5
4.1. OBJETIVO GENERAL ................................................................................... 5
4.2. OBJETIVO ESPECÍFICOS ............................................................................ 5
5. ALCANCE DEL PROTOTIPO A DESARROLLAR ............................................ 6
6. CAPÍTULO II - MARCO REFERENCIAL .......................................................... 7
6.1. METODOLOGIA ............................................................................................ 7
6.1.1. INGENIERÍA DE SOFTWARE .................................................................. 7
6.1.2. PROCESO DE SOFTWARE..................................................................... 8
6.1.3. MODELO DE PROCESOS DE DESARROLLO DE SOFTWARE ............. 9
6.1.3.1 MODELO POR PROTOTIPOS ............................................................. 9
6.1.3.1.1. CICLO DE VIDA DE UN SISTEMA BASADO EN PROTOTIPO ... 10
6.1.4. METODOLOGÍAS ÁGILES ..................................................................... 11
6.1.4.1. PROGRAMACIÓN EXTREMA .......................................................... 12
6.1.5. LEVANTAMIENTO Y ANÁLISIS DE REQUERIMIENTOS ...................... 13
6.1.5.1. HISTORIAS DE USUARIO ................................................................ 14
6.1.6. DISEÑO DE SOFTWARE ....................................................................... 15
6.1.6.1. UML (LENGUAJE UNIFICADO DE MODELADO) ............................. 15
6.1.6.1.1. CASOS DE USO .......................................................................... 17
6.1.6.1.2. DIAGRAMA DE CLASES ............................................................. 17
6.1.6.1.3. DIAGRAMA DE COMPONENTES ............................................... 18
6.1.6.1.4. DIAGRAMA DE ACTIVIDADES ................................................... 18
6.1.6.1.5. DIAGRAMA DE DESPLIEGUE .................................................... 18
6.1.6.2. MODELO RELACIONAL ................................................................... 18
6.1.6.3. ARQUITECTURA DE SOFTWARE ................................................... 19
6.1.6.3.1. MODELO VISTA CONTROLADOR .............................................. 19
6.1.7. CODIFICACIÓN ..................................................................................... 20
6.1.8. PRUEBAS .............................................................................................. 20
6.1.9. ENTREGA .............................................................................................. 21
6.1.10. ESTÁNDARES WEB ............................................................................ 21
6.1.10.1. HTML .............................................................................................. 21
6.1.10.2. CSS ................................................................................................. 21
6.1.10.3. PYTHON ......................................................................................... 21
6.1.10.4. FRAMEWORK................................................................................. 22
6.1.10.4.1. DJANGO .................................................................................... 22
6.1.10.5. MYSQL .............................................................................................. 23
6.2. DESARROLLO ............................................................................................ 23
6.2.1. RECETA DE COCINA .......................................................................... 23
6.2.1.1. NOMBRE DE LA RECETA ................................................................ 23
6.2.1.2. PORCIONES ..................................................................................... 24
6.2.1.3. ANÁLISIS NUTRICIONAL ................................................................. 24
6.2.1.4. TIEMPO DE PREPARACIÓN ............................................................ 24
6.2.1.5. TIEMPO DE COCCIÓN ..................................................................... 24
6.2.1.6. INGREDIENTES ............................................................................... 25
6.2.1.7. INDICACIONES ................................................................................ 25
6.2.2. COMENSAL ........................................................................................... 25
6.2.3. GASTRONOMÍA..................................................................................... 25
6.2.4. ADMINISTRADOR DE COCINA ............................................................. 26
6.2.5. CHEF ..................................................................................................... 26
6.2.6. ALMACÉN .............................................................................................. 26
6.2.7. BODEGA ................................................................................................ 27
6.2.8. ALIMENTO PERECEDERO ................................................................... 27
6.2.9. ALIMENTO NO PERECEDERO ............................................................. 27
6.2.10. MENÚ ................................................................................................... 28
7. CAPÍTULO III - OTRAS CONSIDERACIONES ................................................. 29
7.1. SITUACION LEGAL Y NORMATIVO ........................................................... 29
7.2. GEOLOCALIZACIÓN................................................................................... 29
8. CAPÍTULO IV - DEFINICIÓN DE LOS REQUERIMIENTOS DEL SISTEMA ..... 30
8.1. LEVANTAMIENTO DE REQUERIMIENTOS................................................ 30
8.1.1. HISTORIAS DE USUARIO ..................................................................... 32
8.2. DISEÑO DEL SISTEMA .............................................................................. 32
8.2.1. VISTA DE ESCENARIOS (CASOS DE USO) ......................................... 32
8.2.2. VISTA DE PROCESOS (DIAGRAMA DE ACTIVIDADES)...................... 36
8.2.3. VISTA LOGICA (DIAGRAMAS DE CLASES) ......................................... 36
8.2.4. VISTA DE DESARROLLO (DIAGRAMA DE COMPONENTES) ............. 37
8.2.5. VISTA FISICA (DIAGRAMA DE DESPLIEGUE) ..................................... 38
8.3. MODELO RELACIONAL .............................................................................. 38
9. CONCLUSIONES ............................................................................................. 40
10. RECOMENDACIONES ................................................................................... 41
11. BIBLIOGRAFÍA ............................................................................................... 42
12. WEB-GRAFÍA ................................................................................................. 43
LISTA DE DIAGRAMAS
ANEXO 1 ............................................................................................................................. 45
HISTORIAS DE USUARIO ................................................................................................ 45
ANEXO 2 ............................................................................................................................. 54
ESPECIFICACIONES DE CASOS DE USO ...................................................................... 54
ANEXO 3 ............................................................................................................................. 68
DIAGRAMA DE ACTIVIDADES ...................................................................................... 68
ANEXO 4 ............................................................................................................................. 86
MODELO RELACIONAL .................................................................................................. 86
ANEXO 5 ............................................................................................................................. 89
PLAN DE PRUEBAS DE APLICACIÓN MISTER CHEF ................................................ 89
1. INTRODUCCIÓN
Con los sistemas informáticos de hoy en día es posible aprovechar los recursos
disponibles que cada vez evolucionan de manera más precoz, y hacer más fácil el camino
para encontrar soluciones que sean útiles a los problemas de la sociedad.
Los aplicativos web 1 (web-based application) es un tipo especial de aplicación
cliente/servidor, donde el cliente (navegador o explorador) como el servidor (el servidor
web) y el protocolo que se comunican (HTTP) están estandarizados y no han de ser
creados por el programador de aplicaciones. Es una herramienta importante para
desarrollar aplicativos para manejo accesible y fácil entendimiento en el usuario, que
utilizamos para la creación del software implementado al chef o administrador de un
restaurante.
Entonces nos preguntamos, ¿Hasta qué punto son útiles las aplicaciones actuales para
chef? ¿Pueden estas aplicaciones agilizar las tareas relacionadas con la cocina? ¿Será que
estas aplicaciones tienen todo lo que necesita un verdadero chef o más aún, un
restaurante? Google Play ofrece muchas aplicaciones con variedad de recetas para llevar a
cabo, donde se exponen listas de materiales y modos de preparación, y en muchos casos
además de fotografías, también se incluyen comentarios de los usuarios de apps, acerca de
los resultados obtenidos al realizar las recetas. 2 Dada una gran lista de aplicaciones
alojada en la web, muchas de estas o la mayoría están orientadas a los cocineros amateur
y además su funcionalidad va orientada solo a la gestión de recetas, entonces creemos que
sería bueno para los negocios como los hoteles y restaurantes un aplicativo que aparte de
la gestión de recetas, controle el inventario y costeo de productos para la cocina.
1
Sergio Luján Mora. Programación de aplicaciones web: historia, principios básicos y clientes web, Editorial Club Universitario,
2002, p. 48
2
La mejores apps de Android para cocineros amateur ..." 2014. 19 Oct. 2015 <http://www.androidexperto.com/aplicaciones-
android/mejores-apps-android-cocineros/>
1
2. CAPÍTULO I – GENERALIDADES
Por otro lado, se puede ha comprobado que otro problema recurrente es el exceso de
comida que no se utiliza, y en ese caso se tenga que desperdiciar. Dejando en un segundo
plano los efectos que causa en lo económico, administrativo o publicitario, el desperdicio
de comida es un problema muy grave que afecta a la sociedad.
3
"Los restaurantes tiran 63.000 toneladas de comida ... - Público." 2014. 25 Nov. 2015 <http://www.publico.es/espana/restaurantes-
tiran-63-000-toneladas.html>
2
Según la FAO (Organización de las Naciones Unidas para la Alimentación y la
Agricultura) cada año los alimentos que producimos pero luego no comemos consumen
un volumen de agua equivalente al caudal anual del Volga y son responsables de añadir 3
300 millones de toneladas de gases de efecto invernadero a la atmósfera del planeta;
entonces el problema del derroche en la compra de alimentos genera consecuencias
ambientales que a futuro van a ser de gran preocupación porque la tierra va a llegar hasta
el punto que ya no puede dar abasto en la producción de alimentos 4.
Todo se centra a un descontrol del cálculo en las cantidades necesarias de los ingredientes
en la elaboración de un plato del menú, los chefs o administradores de cocina son
personas y como personas cometen errores ocasionando estos problemas que afecta tanto
al restaurante en lo económico como la comunidad en lo social con el desperdicio de
alimentos.
4
"FAO - Noticias: El desperdicio de alimentos daña al clima, el ..." 2013. 25 Nov. 2015
<http://www.fao.org/news/story/es/item/196368/icode/>
3
3. JUSTIFICACIÓN
4
4. OBJETIVOS
5
5. ALCANCE DEL PROTOTIPO A DESARROLLAR
6
6. CAPÍTULO II - MARCO REFERENCIAL
6.1. METODOLOGIA
En esta sección se presentan cada uno de los conceptos, procedimientos y herramientas
que se utilizaron en la construcción del aplicativo del sistema (lenguajes de programación,
técnicas de desarrollo, metodologías entre otros).
5
Roger S. Pressman. Ingeniería del Software Un enfoque moderno, McGrawHill, 2010, p. 28
6
ibidem, p. 30.
7
¿Qué es la Ingeniería de Software?
La ingeniería de software es una disciplina de la ingeniería que comprende todos los
aspectos de la producción del software desde las etapas iniciales de la especificación del
sistema, hasta el mantenimiento de éste después de que se utiliza. En esta definición,
existen dos frases claves:
7
Ian Sommerville. Ingeniería del Software, PEARSON Educación, 2005, p. 23
8
entender los objetivos de los participantes respecto del proyecto, y reunir los
requerimientos que ayuden a definir las características y funciones del software.
Modelado. Crea un “bosquejo” del objeto por hacer en fin entender el panorama general.
Si se requiere, refine el bosquejo con más y más detalles en un esfuerzo por comprender
mejor el problema y cómo resolverlo. Un ingeniero de software hace lo mismo al crear
modelos a fin de entender mejor los requerimientos del software y el diseño los satisfará.
8
Roger S. Pressman. op. cit., p. 40.
9
ingenieros tarden en hacer el software apropiado, podría darse un efecto de
ansiedad en el cliente, adverso para la salud del proyecto.
b) De no establecerse claramente los alcances del producto, en cada revisión
del producto se podrían “desbordar” los requisitos, lo cual haría tender a
un proyecto sin fin.
9
Roberto Cortés Morales. Introduccion al analisis de sistemas y la ingeniería del software, Editorial Universidad Estatal a Distancia
EUNED, 2006, p. 23
10
"INGENIERÍA DE SOFTWARE: MODELO DE PROTOTIPO." 2011. 28 Oct. 2015
<http://gestionrrhhusm.blogspot.com/2011/05/modelo-de-prototipo.html>
10
Realiza, por tanto, un proceso real de datos, para contrastarlo con el usuario. Se va
modificando y desarrollando sobre la marcha, según las apreciaciones del cliente. Esto
ralentiza el proceso de desarrollo y disminuye la fiabilidad, puesto que el software está
constantemente variando, pero, a la larga, genera un producto más seguro, en cuanto a la
satisfacción de las necesidades del cliente.
Cuando un prototipo se desarrolla con el sólo propósito de precisar mejor las necesidades
del cliente y después no se va a aprovechar ni total ni parcialmente en la implementación
del sistema final se habla de un prototipo desechable. Para que la construcción de
prototipos sea posible se debe contar con la participación activa del cliente 11.
11
“Modelo Prototipo.” 2013. Abril 28. 2016 <https://santmp.files.wordpress.com/2013/03/modelo-de-prototipo.pdf>
12
Roger S. Pressman. op. cit., p. 55
11
Cualquier proceso del software ágil se caracteriza por la forma en la que aborda cierto
número de suposiciones clave acerca de la mayoría de proyectos de software.
Codificación. Después que las historias han sido desarrolladas y de que se ha hecho el
trabajo de diseño preliminar, el equipo no inicia la codificación, sino que desarrolla una
serie de pruebas unitarias a cada una de las historias que se van a incluir en la entrega en
curso (incremento de software). Una vez creada la prueba unitaria, el desarrollador está
mejor capacitado para centrarse en lo que debe implementarse para pasar la prueba. No se
agrega nada extraño (MS), Una vez que el código es terminado, se le aplica de inmediato
13
Roger S. Pressman. op. cit., p. 60
12
una prueba unitaria, con lo que se obtiene retroalimentación instantánea para los
desarrolladores.
14
Roger S. Pressman. op. cit., p. 65
15
Ian Sommerville. op. cit., p. 122
13
En la etapa de la documentación de requerimientos, los requerimientos que se han
obtenido se documentan de tal forma que se pueden utilizar para ayudar al descubrimiento
de nuevos requerimientos. En esta etapa, se puede producir una versión inicial del
documento de requerimientos del sistema, pero faltaran secciones y habrá requerimientos
incompletos. Por otra parte, los requerimientos se pueden documentar como tablas en un
documento o en tarjetas. Redactar requerimientos en tarjetas (el enfoque utilizado en la
programación extrema) puede ser muy efectivo, ya que son fáciles de manejar, cambiar y
organizar para los stakeholders 16.
Independiente. Pueden existir historias con tengan dependencias con otras, es necesario
separar de manera que resulten lo más independiente posible, ya que esta independencia
es clave a la hora de la etapa del diseño.
Negociable. Las pruebas de validación son la manera en que los clientes pueden verificar
el alcance de la historia de usuario.
Valoradas por clientes o usuarios. Las historias de usuarios son importantes para
clientes y usuarios, deben reflejar lo que ellos esperan, no lo que el desarrollador quiera
hacer.
Estimables. Cuando se estiman los tiempos para cada historia de usuario es más fácil
definir cuánto tiempo se tardará un proyecto.
Pequeñas. Deben ser pequeñas por la naturaleza iterativa de los proyectos donde se
utilizan.
Verificables. Debe ser posible la verificación de los logros obtenidos en las historias de
usuario en cada entregable de los proyectos 17.
16
Ian Sommerville. op. cit., p. 149
17
Mike Cohn, 2004"User Stories Applied", , Addison Wesley
14
6.1.6. DISEÑO DE SOFTWARE
El diseño de software agrupa el conjunto de principios, conceptos y prácticas que llevan al
desarrollo del sistema o un producto de alta calidad. Los principios de diseño establecen
una filosofía general que guía el trabajo de diseño que debe ejecutarse. Deben de
entenderse los conceptos de diseño antes de aplicar la mecánica de este, y la práctica de
diseño en sí lleva a la creación de distintas representaciones del software que sirve como
guía para la actividad de construcción que siga 18.
Vistas 4+1
18
Roger S. Pressman. op. cit., p. 184
19
Martin Fowler con Kendall Scott. UML gota a gota, PEARSON Educación, 1999, p. 7
20
Luis Joyanes Aguilar, Ignacio Zahonero Martinez. Programación en C, C++, Java y UML, 2010, p. 454
15
Una de las herramientas para representar modelos de arquitectura anteriores al UML es la
denominada vistas 4+1 propuesta por Kruchten. Surge esta necesidad cuando un
desarrollador inicia el modelado de un problema; lógicamente en este proceso se hace
énfasis en proporcionar la mayor información del mismo a través de los diagramas que se
utilicen para su descripción, esto trae consigo que puedan suceder conflictos en la
representación de la arquitectura del sistema. Esta arquitectura de software propuesta por
Kruchten es una forma de resolver esta problemática.
Vista lógica. Es aquella que trata de clases y subsistemas, tiene las siguientes
particularidades: soporta los requerimientos funcionales (estos son asignados por el
usuario final), identifica mecanismos y diseña elementos comunes a través del sistema;
utiliza los diagramas de clases y la notación de Booch. Además de utilizar el estilo
arquitectónico orientado a objetos.
Vista de casos de uso o escenarios. Gobierna los requerimientos que son necesarios para
el usuario final, y construye elementos comunes a través del sistema. Esta vista es
redundante relacionado con el conjunto que forman las anteriores de ahí que se le
16
denomina +1, pero su inclusión es vital ya que desempeña dos roles importantes, actúa
como indicador que ayuda al diseñador a descubrir los elementos de la arquitectura
durante su diseño y valida e ilustra el diseño de la misma. La notación es similar a la que
se utiliza en la vista lógica, a excepción de que usa los conectores de la vista de procesos
para indicar la interacción entre objetos 21.
Ésta no es una lista exhaustiva, pero es suficiente para entender el papel de los casos de
uso y los diagramas de uso de caso. Un caso de uso describe la manera en la que un
usuario interactúa con el sistema, definiendo los pasos requeridos para lograr una meta
específica (por ejemplo, quemar una lista de canciones en un CD). Las variaciones en la
secuencia de pasos describen varios escenarios (por ejemplo, ¿y si todas las canciones de
la lista no caben en un CD?). Un diagrama UML de uso de caso es un panorama de todos
los casos de uso y sus relaciones. El mismo proporciona un gran cuadro de la
funcionalidad del sistema 22.
21
"THE 4+1 VIEW MODEL OF ARCHITECTURE." . 6 May. 2016
<http://docente.ucol.mx/almoradi/public_html/Respaldo/resumen3.htm>
22
Ian Sommerville. op. cit., p. 730.
17
los atributos y operaciones de una clase y las restricciones a que se ven sujetos, según la
forma en que se conecten los objetos 23.
6.1.6.1.3. DIAGRAMA DE COMPONENTES
El diagrama de componentes describe la composición física del sistema de software (y,
eventualmente, de su entorno organizativo) en componentes, a efectos de construcción y
funcionamiento. La descomposición del diagrama de componentes se realiza en términos
de componentes y de relaciones entre los mismos 24.
Vista. Es la presentación del Modelo. Puede acceder al Modelo pero nunca cambiar su
estado. Puede ser notificada cuando hay un cambio de estado en el Modelo.
27
C.J. Date. Introducción a los sistemas de bases de datos, PEARSON Educación, 2001, p. 109.
28
Roger S. Pressman. op. cit., p. 207.
19
Controlador. Reacciona a la petición del Cliente, ejecutando la acción adecuada y
creando el modelo pertinente.
Para entender cómo funciona nuestro patrón Modelo vista controlador, se debe entender la
división a través del conjunto de estos tres elementos y cómo estos componentes se
comunican unos con los otros y con otras vistas y controladores externos al modelo
principal. Para ello, es importante saber que el controlador interpreta las entradas del
usuario (tanto teclado como el ratón), enviado el mensaje de acción al modelo y a la vista
para que se proceda con los cambios que se consideren adecuados 29.
6.1.7. CODIFICACIÓN
En esta etapa se tienen que traducir dichos algoritmos a un lenguaje de programación
específico; es decir, las acciones definidas en los algoritmos hay que convertirlas a
instrucciones. Para codificar un algoritmo hay que conocer la sintaxis del lenguaje al que
se va a traducir. Sin embargo, independientemente del lenguaje de programación en que
esté escrito un programa, será su algoritmo el que determine su lógica. La lógica de un
programa establece cuáles son sus acciones y en qué orden se deben ejecutar. Por tanto, es
conveniente que todo programador aprenda a diseñar algoritmos antes de pasar a la fase
de codificación 30.
6.1.8. PRUEBAS
Los niveles de prueba son diferentes ángulos de verificar y validar un producto de
software. Es como el tomar una radiografía a un cuerpo humano desde diferentes lados y
buscar donde hay un problema en los huesos. Existen diferentes niveles de prueba de
Software, los principales son la Prueba unitaria que es la que realizan los desarrolladores
de software en su código o componente. La prueba de integración que es realizada
también por el desarrollador de software y consiste en validar las conexiones e integración
entre dos o más componentes (códigos) de software, estos dos niveles de prueba son
realizados a través de la técnica de caja blanca. Otro nivel de prueba es la prueba
funcional, es preparada y ejecutada por un grupo independiente al desarrollador, y
consiste en validar el apego funcional del software contra los requerimientos
especificados por el usuario, esta es ejecutada utilizando la técnica de caja negra. Otro
nivel de prueba es la prueba de usuario o UAT, y es realizada por el usuario final del
29
“Patrón de arquitectura Modelo Vista Controlador (MVC).” , May. 15 2016
<http://www.lab.inf.uc3m.es/~a0080802/RAI/mvc.html>
30
“Codificación del software.” 2009, May. 15 2016 <https://ciclodevidasoftware.wikispaces.com/codificacion+del+software>
20
producto de software con el propósito de validar si el producto de software hace o se
comporta funcionalmente como lo especificó en sus requerimientos iniciales 31.
6.1.9. ENTREGA
Una entrega es el resultado del proyecto que se entrega al cliente. De forma general, se
entrega al final de una fase principal del proyecto como la especificación, el diseño, etc. 32.
6.1.10.1. HTML
El HTML es un lenguaje de marcación de elementos para la creación de documentos
hipertexto, muy fácil de aprender, lo que permite que cualquier persona, aunque no haya
programado en la vida, pueda enfrentarse a la tarea de crear una web. HTML es fácil y
pronto podremos dominar el lenguaje 34.
6.1.10.2. CSS
Hojas de Estilo en Cascada (Cascading Style Sheets), es un mecanismo simple que
describe cómo se va a mostrar un documento en la pantalla, o cómo se va a imprimir, o
incluso cómo va a ser pronunciada la información presente en ese documento a través de
un dispositivo de lectura. Esta forma de descripción de estilos ofrece a los desarrolladores
el control total sobre estilo y formato de sus documentos 35.
6.1.10.3. PYTHON
Un lenguaje de programación de alto nivel que fue diseñado con una sintaxis muy limpia
que permitiese obtener códigos que fuesen fáciles de leer, es multiplataforma y soporta
orientación a objetos, programación imperativa e, incluso, programación funcional 36.
31
“Pruebas del software.” 2011, May. 15 2016 <http://ingenieriadepruebasdelsoftware.blogspot.com.co/2011/01/niveles-
de-prueba-del-software.html>
32
Ian Sommerville. op. cit., p. 90.
33
“Guía breve de estándares web.” May. 12 2016 <http://www.w3c.es/Divulgacion/GuiasBreves/Estandares>
34
“Qué es HTML.” 2001, May, 12 2016 <http://www.desarrolloweb.com/articulos/que-es-html.html>
35
“Guía breve de CSS.” May. 12 2016 <http://www.w3c.es/Divulgacion/GuiasBreves/HojasEstilo>
36
“Historia del Software: el lenguaje Python.” 2011, May. 12 2016<http://hipertextual.com/archivo/2011/12/lenguaje-python/>
21
6.1.10.4. FRAMEWORK
Siendo muy simple, es un esquema (un esqueleto, un patrón) para el desarrollo y/o la
implementación de una aplicación. Sí, es una definición muy genérica, pero también
puede serlo un framework: sin ir más lejos, el paradigma MVC (Model-View-Controller)
dice poco más que “separa en tu aplicación la gestión de los datos, las operaciones, y la
presentación”. En el otro extremo, otros frameworks pueden llegar al detalle de definir los
nombres de ficheros, su estructura, las convenciones de programación, etc. Los
frameworks no necesariamente están ligados a un lenguaje concreto, aunque sea así en
muchas ocasiones.
6.1.10.4.1. DJANGO
Es un framework para aplicaciones web gratuito y open source, escrito en Python. Es un
WEB framework - un conjunto de componentes que te ayudan a desarrollar sitios web
más fácil y rápidamente. Verás, cuando estás construyendo un sitio web, frecuentemente
necesitas un conjunto de componentes similares: una manera de manejar la autenticación
de usuarios (registrarse, iniciar sesión, cerrar sesión), un panel de administración para tu
sitio web, formularios, una forma de subir archivos, etc. Por suerte para ti, hace tiempo
varias personas notaron que los desarrolladores web enfrentan problemas similares
cuando construyen un sitio nuevo, por eso juntaron cabezas y crearon frameworks
(Django es uno de ellos) que te ofrecen componentes listos para usarse. Los frameworks
existen para ahorrarte tener que reinventar la rueda y ayudarte a aliviar la carga cuando
construyes un sitio 38.
37
“¿Qué es un ‘framework’?.” 2006, May. 15 2016 <http://jordisan.net/blog/2006/que-es-un-framework/>
38
“¿Qué es Django?. 2013, May. 15 2016 <http://tutorial.djangogirls.org/es/django/>
22
6.1.10.5. MYSQL
MySQL es un sistema de administración de bases de datos (Database Management
System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una
aplicación que permite gestionar archivos llamados de bases de datos. MySQL fue escrito
en C y C++ y destaca por su gran adaptación a diferentes entornos de desarrollo,
permitiendo su interacción con los lenguajes de programación más utilizados como PHP,
Perl y Java y su integración en distintos sistemas operativos. 39.
6.2. DESARROLLO
Los tratados modernos de cocina suelen tener recetas con una composición descriptiva
similar a la siguiente:
39
“¿Qué es MySQL?.” 2005, May. 12 2016 <http://www.esepestudio.com/noticias/que-es-mysql>
40
"Receta de cocina | Salud180." 2012. 28 Oct. 2015 <http://www.salud180.com/salud-z/receta-de-cocina>
23
fruta tropical —una bebida de verano refrescante y saludable". Algunas recetas también
incluyen un dibujo o una foto para mostrarte el aspecto de la comida o bebida cuando está
terminada 41.
6.2.1.2. PORCIONES
El número de porciones es importante para saber cuánta bebida o comida podrás hacer
con esa receta. Pero es fácil preparar más cantidad (el doble o el triple) o menos cantidad
(la mitad) 42.
● Grasas
● Proteína
● Hidratos de carbono
● Fibra
● Minerales (como el calcio o el hierro)
● Vitaminas (como la vitamina C)
Esta información es importante especialmente para los adultos y los niños que deben
seguir una dieta especial para mantenerse sanos 43.
41
“Cómo leer una receta de cocina.” 2013. 25 Abr. 2016 <http://kidshealth.org/es/kids/read-a-recipe-esp.html>
42
Loc. cit.
43
Loc. cit.
44
Loc. cit.
45
Loc. cit.
24
6.2.1.6. INGREDIENTES
Esta es la lista de todo lo que necesitas para cocinar. La mayoría de las listas de
ingredientes en recetas son fáciles de seguir. A veces las recetas incluyen información de
un ingrediente especial, como por ejemplo:
●
Ingredientes opcionales, los cuales no son necesarios pero pueden utilizarse
para lograr más sabor o un sabor diferente.
● Ingredientes sin una medida específica. Es posible que diga "Sal, a gusto". Esto
significa que puedes agregar la cantidad que desees en la receta. Puedes
agregar un poco o mucho.
Algunas listas de ingredientes te dicen lo que debes hacer inclusive antes de comenzar
con las indicaciones. Por ejemplo, "un pepino en rodajas finas" o "un huevo batido" 46.
6.2.1.7. INDICACIONES
Las indicaciones te dicen los pasos que debes tomar para hacer la comida. En muchas
recetas, las indicaciones se enumeran o listan en líneas por separado para que se entiendan
mejor y sean más fáciles de seguir 47.
6.2.2. COMENSAL
Es la persona que come con otras en el mismo lugar o mesa. El comensal se demuestra a
sí mismo y a la mesa que anhela conocer nuevos sabores, sentir, buscar un significado
diferente en el plato. Ser buen comensal es acercarse a nuevas propuestas, a restaurantes y
platos de cuyo gusto, olor e incluso presentación dudamos. 48.
6.2.3. GASTRONOMÍA
La gastronomía es el acto de cocinar dentro de un contexto más amplio donde hay
elementos relacionados con las maneras en la mesa (comportamientos individuales y
colectivos ligados con la alimentación), elementos socio antropológico (creencias,
supersticiones, prohibiciones, preferencias, elecciones alimentarias, orden culinario) y, en
especial, elementos simbólicos.
La alimentación es un acto social, regido por normas y significaciones, como si se tratara
de un segundo lenguaje, que permite a los miembros de una sociedad determinada
ubicarse dentro del mundo e integrarse como grupo social, para reafirmar su pertenencia
(identidad con los miembros de una cierta comunidad) 49.
46
Loc. cit.
47
Loc. cit.
48
“Las características del buen comensal.” 2015. 25 Abr. 2016 <http://elcellerdecanroca.bbva.com/las-caracter%C3%ADsticas-del-
buen-comensal>
49
“¿Qué es la gastronomía?.” 2013. 25 Abr. 2016 <http://cocinayvino.net/gastronomia/especiales/1589-que-es-la-gastronomia.html>
25
6.2.4. ADMINISTRADOR DE COCINA
El administrador de cocina de un restaurante debe saber administrar los recursos de los
que dispone para ello debe identificar los diferentes problemas que se forjan, saber
descomponerlos en partes y analizarlos. Organizar el trabajo y administrar los tiempos de
forma adecuada, así mismo emprender los recursos de seguimiento de información a las
mismas.
La propia operatividad de la actividad de servicios demanda que sea hábil para gestionar
y/o rectificar las acciones implementadas del producto de la planificación y que van a
estar presididas por la capacidad que tenga de modificar las pautas del trabajo cuando
surgen dificultades o cambios 50.
6.2.5. CHEF
Persona que cocina por oficio y profesión. Se categorizan las funciones en la cocina, dado
el hecho que el conocimiento y especialidades de los diversos cocineros implican el éxito
de una cocina de clase y satisfacción de los clientes. Es una figura de las más reconocidas
en todo el mundo dentro las profesiones, es una posición que requiere una serie de
características las cuales la han hecho tan famoso
6.2.6. ALMACÉN
Un almacén básicamente es un espacio, recinto, edificio, o instalación donde se suele
guardar la mercancía, pero al mismo tiempo puede hacer otras funciones, como por
ejemplo el acondicionamiento de productos determinados, hacer recambios, tanto para el
mantenimiento como para la existencia técnica. La característica que puede tener un almacén
son:
● Frío
● Caliente
● Peligroso
● Valor
50
“¿Cómo debe ser un administrador de restaurante.” 2014. 25 Abr. 2016
<http://gastronomiaygestion.blogspot.com.co/2014/04/como-debe-ser-un-administrador-de.html>
51
“Chef.”2014. 25 Abr. 2015 <http://www.ecured.cu/Chef>
26
Sus funcionalidades son recibir mercancías y se responsabiliza de las mercancías que
recibe de transportistas externos o provenientes de una fábrica cercana. Identifica las
mercancías, luego se registran y se anotan las cantidades recibidas de cada artículo. En el
almacén han de prohibirse expresamente las tareas que no sean específicamente de
almacenamiento 52.
6.2.7. BODEGA
La bodega sería el sub-departamento encargado del almacenamiento, conservación,
control y distribución de vinos, aguas, licores, a los departamentos correspondientes bar,
comedor, cocina. La ubicación de estos departamentos debe tener en cuenta una serie de
factores como son:
52
“En el restaurante: Almacenamiento de materias primas.” 2013. 25 Abr. 2016
<http://enelrestaurante.blogspot.com.co/2013/03/almacenamiento-de-materias-primas.html>
53
Loc. cit.
54
Loc. cit.
27
+5 °C. Siempre que sea posible, se dispondrán cámaras de refrigeración separadas para
alimentos crudos y alimentos cocinados, con el fin de evitar la contaminación cruzada.
Cuando esto no sea posible, conviene colocar los alimentos crudos siempre debajo de los
cocinados, para evitar el riesgo de contaminación por goteo y suciedad y siempre deben
estar debidamente protegidos e identificados. Los productos congelados y ultra
congelados se almacenan en cámaras a temperaturas mucho más bajas, inferiores o
iguales a-18 °C 55.
6.2.10. MENÚ
El menú de un restaurante es la recopilación de todo el concepto gastronómico del lugar.
Del tipo de comida que ofrezcas en el menú y la extensión del mismo dependerá la
calidad y variedad de tus insumos e inventario, el nivel de experiencia y especialidad del
personal que contrates y el equipo e instalaciones necesarias. Fast food, cafetería,
desayunos, bar o comida de especialidad, no importa cuál sea, es muy importante que
cuentes con un menú claro y estético que atrape la atención de tus clientes 56.
55
Loc. cit.
56
“El menú: una de tus mejores cartas de presentación.” 2013. 25 Abr. 2016
<http://www.elclaustro.edu.mx/claustronomia/index.php/investigacion/197-el-menu-una-de-tus-mejores-cartas-de-presentacion>
28
7. CAPÍTULO III - OTRAS CONSIDERACIONES
Las normas técnicas colombiana NTC 512-1 para el rotulado de alimento envasado y
materias primas para el consumo humano se da por la resolución No. 5109 de 2005, esta
norma informa al consumidor sobre el producto y que esta información sea lo
suficientemente clara y comprensible para evitar engaños o confusiones.
Para la aprobación del proyecto como trabajo de grado se maneja mediante el consejo
académico en su acuerdo No 12 de 2015, donde se modifica el acuerdo No. 25 de 2005
para la reglamentación de trabajos de grado de la Universidad Tecnológica de Pereira.
7.2. GEOLOCALIZACIÓN
La mayoría de los casos, los restaurantes pequeños o grandes tienen la costumbre de
desperdiciar alimentos a veces por la demanda y otras por el vencimiento de algunos
ingredientes como los vegetales. Estas pérdidas no son tomadas en cuenta pero afecta la
economía del restaurante. Provocando en algunos casos la mala publicidad del negocio
por el desperdicio de los alimentos, esto es causado al mal manejo en la preparación de
platos del menú, las cantidades no son exactas y se exagera en su producción.
29
8. CAPÍTULO IV - DEFINICIÓN DE LOS REQUERIMIENTOS DEL SISTEMA
1) Tomar orden: El mesero puede tomar una orden del cliente de acuerdo al
menú del día y registrarla en la cola de órdenes. Una orden contiene id
orden, número de mesa de la orden y fecha.
2) Plato del día:
a) Puede visualizar el menú del día.
1) Las órdenes en cola: Aparece un listado con las mesas que presentan
órdenes en un momento dado. Luego se procede a seleccionar una de estas
mesas para procesar el pedido.
2) Órdenes procesadas: Se listan las últimas cinco órdenes ejecutadas.
3) Selección de menú del día: El chef selecciona un menú para un día
correspondiente y luego puede visualizar todos los menús.
4) Administrar menús:
a) Crear menú.
b) Modificar menú.
c) Eliminar menú.
30
Inventario
● Cada uno de los ítems del inventario tiene un id, nombre, descripción, unidad de
medida y cantidad disponible.
● Se parametrizan cada uno de los tipos de ítems de inventario de tal manera que
cuando las cantidades de cada elemento se encuentre cerca del límite de escasez,
el sistema muestra una alerta al usuario chef para que tome las medidas
correspondientes.
Generalidades
● Las mesas se encuentran numeradas para que el mesero se disponga a registrar la
orden que será recibida por el chef.
● La orden contiene la elección de uno o más platos del menú ofrecido por el
restaurante.
● La orden tiene que estar identificada por el número de mesa donde se registró el
pedido.
● Una orden puede de tener más de un plato del menú o producto que se referencia
en la carta.
● El mesero dispone de una lista de platos del menú igual a la carta que se le entrega
al comensal para su orden.
● La lista se divide en las categorías que el restaurante maneja en la elaboración de
los platillos.
● Los productos que no se incluyen en el plato del menú, también se encuentran en
una categoría aparte.
● El chef o administrador de cocina recibe la orden con la información de los platos
a preparar.
● Las órdenes se juntaran en una lista con prioridad de llegada para despachar.
● El chef o administrador de cocina puede seleccionar una orden para obtener la
información sobre el plato a elaborar. Tendrá información de las cantidades
necesarias de cada ingrediente en su preparación.
● Las listas de platos solo tiene información de los ingredientes del plato más no el
costo de él.
● En caso una posible escasez del producto se muestra en pantalla el nombre del
producto resaltado en rojo.
● El programa tiene un panel para comunicarse con los distribuidores para la compra
del producto que se encuentra en límites de escasez.
● Una vez procesada la orden, ésta desaparecerá de la lista para darle prioridad a la
siguiente orden.
● En el proceso de procesar la orden esta se guardara en un historial de órdenes para
un manejo y control del inventario.
31
● El programa cuenta con un backup para tener un mejor manejo de la información
ante posibles fallas.
● El menú está compuesto por todos los platos y bebidas, el plato tiene un código,
descripción sobre la preparación e ingredientes.
● Un ingrediente pertenece a uno o varios platos, tiene un id plato, id ingrediente,
nombre, cantidad y disponibilidad.
32
DIAGRAMA DE CASO DE USO: ROOT
33
DIAGRAMA DE CASO DE USO: CHEF
34
DIAGRAMA DE CASO DE USO: MESERO
35
8.2.2. VISTA DE PROCESOS (DIAGRAMA DE ACTIVIDADES)
Cada actividad del sistema es modelado por un diagrama de actividades (Ver ANEXO 3
Diagrama de Actividades).
36
8.2.4. VISTA DE DESARROLLO (DIAGRAMA DE COMPONENTES)
37
8.2.5. VISTA FISICA (DIAGRAMA DE DESPLIEGUE)
38
39
9. CONCLUSIONES
La metodología agile aplicada es muy útil, aunque se tuvieron algunas desventajas que
con tiempo y prevención se pudieron solucionar a tiempo, y asegurar la calidad del
proyecto. El proyecto realizado entro a una primera fase y el cual requiere a futuro una
retroalimentación para cumplir con más éxito el total de sus funcionalidades.
El diseño de software nos ofrece una vista global del sistema y sus escenarios, a través de
los diagramas un mejor entendimiento de la lógica, física y dinámica del sistema. Las
pruebas se realizaron por cada proceso separado del sistema para garantizar el
cumplimiento de los requerimientos iniciales.
Cumplimos con objetividad cada una de las etapas de la ingeniería de software, aunque
tuvimos problemas con los deberes de cada integrante se designó al comienzo del
proyecto, por falta de tiempo para realizar reuniones de equipo y revisión de las tareas en
proceso. Las correcciones se hicieron al límite de entrega del proyecto, dejando escrito
que las funcionalidades cumplen con los requerimientos iniciales pero faltan más
optimización y desarrollo para mejoras de los procesos que se espera solucionar a futuro.
40
10. RECOMENDACIONES
Mejorar el diseño del aplicativo para una mejor visualización e imagen del producto,
respectando sus funcionalidades iniciales y lograr que el usuario entienda de manera
fácil sus funciones. Se debe optimizar minimizar los procesos para lograr una
normalización eficaz de los datos. Estos cambios deben de estar sujetos a política de
seguridad de la información, para asegurar la integridad, disponibilidad y
confidencialidad de los datos.
41
11. BIBLIOGRAFÍA
Martin Fowler con Kendall Scott. UML gota a gota, PEARSON Educación, 1999.
Luis Joyanes Aguilar, Ignacio Zahonero Martinez. Programación en C, C++, Java y UML,
2010.
C.J. Date. Introducción a los sistemas de bases de datos, PEARSON Educación, 2001.
42
12. WEB-GRAFÍA
"La mejores apps de Android para cocineros amateur ..." 2014. 19 Oct. 2015
<http://www.androidexperto.com/aplicaciones-android/mejores-apps-android-cocineros/>
"Definiciones de chef, chef ejecutivo, subchef, cadete de ..." 2012. 28 Oct. 2015
<http://gastronomia.laverdad.es/preguntas/terminologia/definiciones-chef-chef-ejecutivo-
subchef-cadete-cocina-entremettier-rotisseur-patissier-9374.html>
43
<http://www.planetajoy.com/?+7+formas+en+las+que+la+tecnolog%EDa+cambiar%E1+
los+restaurantes&page=ampliada&id=7610>
“Todo los artículos de: Restaurantes-Revista Turismo y Tecnología.” 2015. 29 Oct. 2015
<http://www.turismoytecnologia.com/todos-los-articulos-de-
tecnologia/itemlist/tag/Restaurantes>
44
ANEXO 1
HISTORIAS DE USUARIO
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
49
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
Historia de Usuario
52
Tabla 21: Historia de usuario 21
Historia de Usuario
Historia de Usuario
53
ANEXO 2
Caso de uso # 1
Caso de uso Iniciar Sesión
Actores Root, Mesero y Chef
Propósito Permite a los usuarios acceder a la
plataforma, diligenciando los campos
nombre de usuario y contraseña de usuario.
Resumen Comienza cuando el usuario decide iniciar
sesión para ingresar al sistema y acceder a
sus funcionalidades de la aplicación.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa nombre y contraseña. 2. El sistema comprueba que los datos
ingresados por el usuario coincidan con los
de la bases de datos.
3. El sistema deja al usuario acceder al
perfil.
Curso Alterno Iniciar Sesión
Acción 2: Si el sistema detecta que los datos ingresados por el usuario son incorrectos
debe notificarle al usuario que los datos son incorrectos y debe regresar al paso 1.
Sección Recuperar contraseña
1. El usuario accede a la funcionalidad 2. El sistema permite al usuario ingresar a la
Recuperar Contraseña. vista recuperar contraseña.
3. El usuario debe ingresar el correo que 4. El sistema verifica el correo del usuario
registro en la base de datos. sea el que se encuentra en la base de datos.
5. El sistema envía un correo electrónico al
correo que corresponde el nombre de
usuario con la contraseña olvidada.
Curso Alterno Recuperar contraseña
Acción 4. Si el nombre de usuario ingresado no corresponde con el asociado en la base
54
de datos del sistema, regresa al paso 3.
Caso de uso # 2
Caso de uso Crear Usuario
Actores Root
Propósito Permite al usuario crear un usuario y
registrarlo en la base de datos.
Resumen Comienza cuando el usuario decide crear
una o varios tipos de usuarios.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. Ingresar a Crear Usuario. 2. El sistema comprueba si el usuario que
está accediendo puede usar esta función.
3. El sistema muestra el formulario para la
creación del nuevo usuario.
4. El usuario diligencia el formulario. 5. El sistema comprueba que los datos
ingresados coinciden.
6. El sistema guarda la cuenta y termina la
acción.
Curso Alterno Crear Usuario
Acción 2: Si el usuario que está tratando de crear una cuenta no tiene la autorización no
permite la acción y muestra un mensaje diciendo que no está autorizado a realizar la
acción y vuelve al paso 1.
Acción 5: Si uno o varios de los datos no coinciden, el sistema cancela la acción y
vuelve al paso 4.
Caso de uso # 3
Caso de uso Editar Usuario
Actores Mesero y Chef
55
Propósito Permite a los usuarios editar su cuenta de
usuario.
Resumen Comienza cuando el usuario decide editar o
modificar una su cuenta de usuario.
Tipo Esencial
Referencias
Curso Normal de los eventos
Acción de los actores Respuesta del sistema
1. El usuario decide realizar cambios a su 2. El sistema comprueba que el usuario
cuenta de usuario, a través de la tenga los permisos para acceder a esta
funcionalidad de Editar Usuario. funcionalidad.
3. El sistema muestra los datos para
modificar.
4. El usuario realiza los cambios. 5. El sistema comprueba que todos los
campos del formulario coincidan.
6. El sistema acepta los cambios y los
guarda.
Curso Alterno Editar Usuario
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Acción 5: Si uno o varios de los datos no coinciden, el sistema cancela la acción y
vuelve al paso 4 para mostrar al usuario los datos incorrectos.
Caso de uso # 4
Caso de uso Consultar Usuario
Actores Root, Mesero y Chef
Propósito Permite a los usuarios consultar su cuenta
de usuario.
Resumen Comienza cuando el usuario decide
consultar la información de su propia cuenta
del usuario.
Tipo Esencial
Referencias
56
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario decide Consultar la 2. El sistema comprueba que el usuario que
información de una cuenta o la suya propia está tratando de acceder tenga el permiso.
accediendo a la función Consultar Cuenta.
3. El sistema muestra una lista de usuarios
que puede consultar.
4. El usuario selecciona cuenta a consultar 5. El sistema muestra todos los datos que
allí se encuentran registrados en la cuenta
seleccionada.
6. El usuario termina sección si no tiene
más cuentas a consultar.
Curso Alterno Consultar Usuario
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Acción 6: Si el usuario desea consultar otras cuentas de usuario, regresara al paso 3.
Caso de uso # 5
Caso de uso Eliminar Usuario
Actores Root
Propósito Permite al usuario eliminar una o varias
cuentas.
Resumen Comienza cuando el usuario decide
eliminar una o varias cuentas.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario decide acceder a la función 2. El sistema comprueba que el usuario que
Eliminar cuenta. está tratando de acceder tenga el permiso.
3. El sistema muestra una lista de cuentas a
eliminar.
4. El usuario elige la cuenta a eliminar y 5. El servidor Acepta la solicitud y guarda
57
decide realizar la acción. los cambios en la base de datos.
Curso Alterno Eliminar Usuario
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Acción 4: Si el usuario decide cancelar la acción podrá cancelar la acción y finalizar.
Caso de uso # 6
Caso de uso Ordenes en Cola
Actores Chef
Propósito Permite al usuario acceder al sistema para
visualizar las órdenes pendientes a
despachar.
Resumen Comienza cuando se tienen órdenes
pendientes por despachar.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa a Lista de Ordenes. 2. El sistema comprueba que el usuario que
está tratando de acceder tenga el permiso.
3. El sistema muestra una lista de órdenes a
despachar.
4. El usuario escoge orden para elaborar y 5. El sistema muestra la información de la
servir. orden (Sección Servir Orden).
6. El sistema actualiza la lista de órdenes
para repetir el proceso.
Curso Alterno Ordenes en Cola
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Acción 6: Si el sistema tiene más órdenes en lista vuelve al paso 3.
Sección Servir Orden
1. El usuario accede a una lista de órdenes 2. El sistema muestra la información de la
58
en cola y selecciona una. orden.
3. El usuario consulta la información de la
orden.
4. El usuario prepara la orden y le indica al 5. El sistema Sirve la Orden y cambia de
sistema Servir Orden. estado actualizando las órdenes en lista y
guarda la información.
6. El sistema vuelve a la vista de Órdenes
en cola.
Curso Alterno Servir Orden
Acción 1. Si el usuario no desea ver la orden puede devolver a la ventana principal.
Acción 4. Si el usuario no desea Servir la Orden puede cancelar la opción y volver a la
vista de Ordenes en cola.
Caso de uso # 7
Caso de uso Facturar Orden
Actores Chef
Propósito Permite al usuario facturar una orden.
Resumen Comienza cuando el usuario Chef decide
imprimir el recibo de una mesa.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa a la opción Facturar 2. El sistema comprueba los permisos del
Orden. usuario.
3. El sistema muestra la lista de mesas con
órdenes sin facturar.
4. El usuario elige la mesa a imprimir 5. El sistema muestra la información de la
recibo. mesa con todas las órdenes sin facturar.
6. El usuario le indica al sistema imprimir 6. El sistema imprime la factura y guarda
factura. los cambios.
Curso Alterno Facturar Orden
59
Acción 2: Si el sistema detecta que el usuario no cuenta con los permisos debe cancelar
la acción y regresa al usuario al paso 1, mostrando un mensaje de error en los permisos.
Acción 6: Si el usuario no desea imprimir factura se cancela la opción y vuelve al paso
1.
Caso de uso # 8
Caso de uso Escoger Plato
Actores Chef
Propósito Permite al usuario acceder al sistema para
elaborar un plato del menú.
Resumen Comienza cuando se desea conocer
información sobre la preparación de un
plato del menú.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa a Escoger Plato. 2. El sistema comprueba que el usuario que
está tratando de acceder tenga el permiso.
3. El sistema muestra los platos indicados
para el menú del día. (Sección Preparar
Plato).
Curso Alterno Escoger Plato
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Sección Preparar Plato
1. El sistema muestra una lista de platos del
menú.
2. El usuario selecciona un plato del menú. 3. El sistema le pide al usuario un valor
numérico positivo de cantidad para la
información de ingredientes necesarios para
elaborar el plato.
4. El usuario ingresa la cantidad de platos a 5. El sistema comprueba si existe la
60
preparar. cantidad ingresada.
6. El sistema muestra las cantidades de
ingredientes del plato seleccionado.
7. El usuario visualiza la información y 8. El sistema descuenta las cantidades
dispone a oprimir el botón Aceptar. ingresadas del Inventario y guarda los
cambios.
9. El sistema vuelve a la vista principal del
usuario.
Curso Alterno Preparar Plato
Acción 4. Si el usuario no desea agregar cantidades puede cancelar la opción al paso 1.
Acción 5. Si el sistema detecta que no existe escasez de ingredientes le mostrara un
mensaje al usuario y volverá a la ventana principal.
Caso de uso # 9
Caso de uso Crear Menú
Actores Chef
Propósito Permite al usuario Chef crear menús.
Resumen Comienza cuando el usuario Chef decide
crear un menú del día.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario decide crear un menú. 2. El sistema comprueba que el usuario que
está intentando ingresar a la función este
autorizado.
3. El sistema muestra una lista de platos
para registrar el nuevo menú y un valor para
su venta.
4. El usuario elige los platos para crear el 5. El sistema comprueba que los datos
nuevo menú. coincidan y guarda los cambios realizados.
6. El sistema lo devuelve a la ventana de
anterior.
61
Curso Alterno Eliminar Menú
Acción 2: Si el sistema detecta que el usuario no cuenta con los permisos debe cancelar
la acción y regresa al usuario al paso 1, mostrando un mensaje de error en los permisos.
Acción 4: Si usuario decide cancelar la opción volverá al paso 1.
Acción 5: Si el sistema detecta que alguno de los campos del formulario no coincide,
cancela la acción y regresa al paso 4 mostrando los campos que no coinciden.
Caso de uso # 10
Caso de uso Eliminar Menú
Actores Chef
Propósito Permite al usuario Chef eliminar menús.
Resumen Comienza cuando el usuario Chef decide
eliminar un menú de la lista de menús.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario decide eliminar un menú. 2. El sistema comprueba que el usuario
que está intentando realizar esta acción
tenga los permisos necesarios.
Acción 2: Si el sistema detecta que el usuario no tiene permisos para acceder a esta
aplicación, el sistema devuelve al usuario al paso 1 y muestra un mensaje de error en la
autorización del usuario.
Acción 4: Si el usuario decide cancelar la acción puede volver a la ventana principal.
62
Caso de uso # 11
Caso de uso Seleccionar Menú
Actores Chef
Propósito Permite al usuario Chef eliminar menús.
Resumen Comienza cuando el usuario Chef decide
eliminar un menú de la lista de menús.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario decide seleccionar un menú 2. El sistema comprueba los permisos del
del día. usuario.
Acción 2: Si el sistema detecta que el usuario no cuenta con los permisos debe cancelar
la acción y regresa al usuario al paso 1, mostrando un mensaje de error en los permisos.
Acción 4: Si el usuario desea cancelar la opción volverá a la ventana principal.
Caso de uso # 12
Caso de uso Inventario
Actores Chef
Propósito Permite al usuario buscar algún producto en
la base de datos del inventario.
Resumen Comienza cuando el usuario Chef decide
obtener información sobre algún producto
que se encuentre en el inventario del
restaurante.
63
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa a Inventario 2. El sistema comprueba que el usuario
tenga la autorización para usar esta
funcionalidad
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Caso de uso # 13
Caso de uso Ver menú del día
Actores Mesero
Propósito Permite al usuario visualizar el menú del
día.
Resumen Comienza cuando el usuario Mesero decide
obtener información sobre el menú del día
del restaurante.
Tipo Esencial
Referencias
Curso Normal de los Eventos
64
Acción de los actores Respuesta del sistema
1. El usuario ingresa a Menú del día. 2. El sistema comprueba que el usuario
tenga la autorización para usar esta
funcionalidad
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Caso de uso # 14
Caso de uso Tomar orden
Actores Mesero
Propósito Permite al usuario tomar la orden de la
mesa.
Resumen Comienza cuando el usuario Mesero toma
la orden de una mesa asignada.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa a Tomar Orden. 2. El sistema comprueba que el usuario
tenga la autorización para usar esta
funcionalidad
65
6. El sistema muestra los platos
disponibles para asignar a la orden.
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
Caso de uso # 15
Caso de uso Añadir Orden
Actores Mesero
Propósito Permite al usuario añadir una orden a una
mesa.
Resumen Comienza cuando el usuario Mesero añade
una orden de más a las órdenes de la mesa
que se encuentre sin facturar.
Tipo Esencial
Referencias
Curso Normal de los Eventos
Acción de los actores Respuesta del sistema
1. El usuario ingresa Añadir Orden. 2. El sistema comprueba que el usuario
tenga la autorización para usar esta
funcionalidad
66
4. El usuario selecciona una mesa para 5. El sistema muestra los platos
asignar la nueva orden. disponibles para asignar a la orden.
Acción 2: Si el sistema identifica que el usuario no tiene los permisos para acceder a la
funcionalidad, cancela la acción y vuelve al paso 1.
67
ANEXO 3
DIAGRAMA DE ACTIVIDADES
68
DIAGRAMA DE ACTIVIDADES # 2: RECUPERAR CONTRASEÑA
69
DIAGRAMA DE ACTIVIDADES # 3: CREAR USUARIO
70
DIAGRAMA DE ACTIVIDADES # 4: EDITAR USUARIO
71
DIAGRAMA DE ACTIVIDADES # 5: CONSULTAR USUARIO
72
DIAGRAMA DE ACTIVIDADES # 6: ELIMINAR USUARIO
73
DIAGRAMA DE ACTIVIDADES # 7: ORDENES EN COLA
74
DIAGRAMA DE ACTIVIDADES # 8: SERVIR ORDEN
75
DIAGRAMA DE ACTIVIDADES # 9: FACTURAR ORDEN
76
DIAGRAMA DE ACTIVIDADES # 10: ESCOGER PLATO
77
DIAGRAMA DE ACTIVIDADES # 11: PREPARAR PLATO
78
DIAGRAMA DE ACTIVIDADES # 12: CREAR MENU
79
DIAGRAMA DE ACTIVIDADES # 13: ELIMINAR MENU
80
DIAGRAMA DE ACTIVIDADES # 14: SELECCIONAR MENU
81
DIAGRAMA DE ACTIVIDADES # 15: INVENTARIO
82
DIAGRAMA DE ACTIVIDADES # 16: VER MENU DEL DIA
83
DIAGRAMA DE ACTIVIDADES # 17: TOMAR ORDEN
84
DIAGRAMA DE ACTIVIDADES # 18: AÑADIR ORDEN
85
ANEXO 4
MODELO RELACIONAL
88
ANEXO 5
Introducción
Se redacta el plan de pruebas con el que se evaluaron las funcionalidades del software
codificado por el desarrollador del proyecto. Este documento no pretende sobrecargar las
tareas del desarrollador, sino mostrar una demostración que el trabajo realizado cumpla
con los objetivos del proyecto.
Elementos a Probar
Se realizaron pruebas modulares al software, incluyeron los siguientes módulos:
a) Gestión de usuarios. El módulo de gestión de usuarios consta de la creación,
modificación, eliminación y consulta de perfiles de usuario.
b) Autenticación. El módulo de autenticación es el que permite ingresar a los
usuarios a la aplicación por medio de un nombre de usuario y contraseña.
c) Gestión de recetas. Encargado de colaborar con la preparación de platos
entregándole al usuario chef los ingredientes necesarios para llevar a cabo esta
tarea.
d) Toma de orden. Permite al usuario mesero tomar una orden de acuerdo con el
menú del día y enviarla al chef.
e) Gestión de menús. Encargado de crear, eliminar y establecer el menú del día
de acuerdo a los platos que maneja el restaurante.
f) Inventario. Permite visualizar y actualizar la disponibilidad de productos para
preparar las comidas.
g) Atender orden. Atiende las ordenes tomadas por el mesero visualizando el
detalle de estas y poder servir el plato.
h) Facturar. Calcular el costo de la orden.
89
Lista de riesgos de software
Riesgo. Descripción.
Tiempo reducido para las pruebas. Se necesitó más tiempo del asignado para
las pruebas y por lo tanto no se logró testear
las funcionalidades previstas.
90
Alcance de las pruebas
Se prueban las siguientes funcionalidades: Gestión de usuarios, autenticación, gestión de
recetas, toma de orden, gestión de menús, inventario, atender orden y facturar.
Enfoque
Se realizan los siguientes tipos de pruebas:
92
Criterios de suspensión y requisitos de reanudación
No hay conexión con la base de datos. Se puede efectuar la conexión con la base de
datos.
Documentos a entregar.
a. Documento de plan de pruebas.
b. Documentos casos y reporte de pruebas.
Necesidades de entorno.
c. Computador con un procesador de 2.0 GHz y 2 núcleos (lógicos o físicos), 2 GB
de memoria RAM.
d. Navegadores webs (Mozilla, Chrome, Internet Explorer) últimas versiones.
Responsabilidades
Julián Andrés Patiño: Desarrollador.
93
ID Caso Descripción Paso a Paso Se debe
REQ Cumplir Salida
Tipo de Entrada Salida Esperada Observaciones
o HU Obtenida
Prueba SI NO
Ingresar a la página web
julian2016.pythonanywhere.com URL Abrir inicio de Página de
pf1 1 X
visitantes. inicio.
1) Escribimos el nombre de
usuario y contraseña.
2) Damos clic en ingresar Página principal
Usuario, Página
pf2 1 correspondiente al X
contraseña. principal.
tipo de usuario.
95
1) Estando logueados como chef Aparece una
ingresamos a la opción preparar lista de
plato. Aparece una lista de ingredientes
Cantidades de
13, 2) Seleccionamos el plato a ingredientes con su con su
pf8 platos a X
14 preparar. respectiva cantidad y respectiva
preparar.
3) Digitamos la cantidad de unidad de medida. cantidad y
platos a preparar. unidad de
medida.
1) Estando logueados como chef
ingresamos a la opción preparar El sistema no deja
El sistema
plato. preparar el plato y
permite
13, 2) Seleccionamos el plato a Valores aparece un mensaje
pf9 X ingresar los
14 preparar. negativos. que dice: solo se
valores
3) Digitamos una cantidad pueden digitar valores
negativos.
negativa. negativos.
96
1) Estando logueados como chef
El sistema
ingresamos a la opción gestión de
elimina el
menús. El sistema elimina el
Selección de menú
15, 2) Ingresamos a eliminar menú. menú seleccionado y
pf12 menú a X seleccionado y
17 3) Seleccionamos un menú a re direcciona a la
eliminar. re direcciona a
eliminar. página principal.
la página
4) Damos clic en el botón
principal.
eliminar
1) Estando logueados como chef
ingresamos a la opción gestión de Se muestra el
menús. El sistema vuelve a siguiente
15, 2) Ingresamos a eliminar menú. cargar el formulario mensaje de
pf13 No aplica. X error: menu
17 3) Damos clic en el botón para eliminar el
eliminar sin seleccionar un menú menú. matching query
does not exist.
97
1) Estando logueados como chef Se carga la
ingresamos a la opción página de
Se carga la página de
inventario. inventario
inventario mostrando
mostrando una
una barra de búsqueda
barra de
pf16 19 URL y una tabla que x
búsqueda y una
describe todos los
tabla que
elementos del
describe todos
inventario.
los elementos
del inventario.
1) Estando logueados como chef La búsqueda se
ingresamos a la opción realizó de
inventario. manera
Si el elemento existe,
2) Buscamos un elemento del satisfactoria.
este aparecerá en una
inventario haciendo uso de la Para el caso de
tabla con todas las
barra de búsqueda. búsqueda de un
Cadena de características, de lo
pf17 19 x elemento que
caracteres. contrario, aparecerá
no existe
un mensaje de no se
apareció un
encontraron
mensaje que
elementos.
dice: no se
encontraron
elementos.
1) Estando logueados como chef
ingresamos a la opción mi perfil Se visualizaron
Se debe cargar una
de usuario. los datos del
vista con todos mis
pf18 6 2) Ingresamos a la opción URL x perfil de
datos de perfil
consultar mi perfil. usuario
excepto la contraseña.
logueado.
98
1) Estando logueados como chef
ingresamos a la opción mi perfil
El sistema
de usuario.
El sistema guarda los guarda los
2) Ingresamos a la opción editar
Datos de cambios y re cambios y re
pf19 7 mi perfil. x
usuario. direcciona a la página direcciona a la
3) Aparecerá un formulario con
principal. página
los datos a editar.
principal.
4) Cambiamos los campos a
desear y guardamos los cambios.
1) Estando logueados como chef El sistema
El sistema mostrará
ingresamos a la opción facturar. mostró los
los detalles de la
2) Seleccionamos una orden detalles de la
Identificador factura con el valor
pf20 12 identificada por el número de x factura y
de mesa. total, además
mesa. cambió su
cambiará su estado a
estado a
facturada.
facturada.
1) Se intenta ingresar a la El sistema no
aplicación con una contraseña El sistema no permite permite entrar
Nombre de
incorrecta. entrar re re
ps1 1 usuario y X
direccionando a la direccionando
contraseña.
PRUEBAS página de inicio. a la página de
DE inicio.
SEGURIDA 2) Se intenta acceder a la El sistema no
D aplicación con un usuario que no El sistema no permite permite entrar
Nombre de
existe. entrar re re
ps2 1 usuario y X
direccionando a la direccionando
contraseña.
página de inicio. a la página de
inicio.
99
1) Estando logueado como chef
ingresaremos a un link que hace El sistema no dejará
El sistema
que el chef ingrese a
Toda parte del usuario mesero. permitió
ps3 URL esta funcionalidad y X
s. ingresar a esta
re direccionará a la
funcionalidad.
página principal.
100
Reporte de pruebas aplicación Mister Chef.
Fecha: 25/05/16
101
102